Advertisement

The Silverlight Application Corner

One of the things that we have heard in feedback is the need to surface more end-to-end samples.  While the atomic learning videos/samples are great as are more in-depth tutorials, there is still a desire to see how to package all these things up into a single application.  Seeing from start to finish helps absorb the learning process and see how these atomic things fit together and interoperate.

Today we added the “application corner” to the Silverlight community site.  Yes, I know the name is less than exciting, but hey I’m not a super cool marketing person with unlimited imagination!  The goal here is to provide an area with samples of more full-featured applications that put these different practices in implementation as applications.  No, this will not be an area for a multitude of media-only applications, although I think we will show some more full-featured media solutions as some examples.  This is something that I had talked about before in the forums and had been promising to people for a while and what got some people angry at me.  I could expand on the reasons for delays, but won’t as that doesn’t matter.  What matters to me is the initiative has started.

The goal of the Application Corner is to demonstrate various different types of line-of-business applications and techniques.

NOTE: I hate the term “line of business” – isn’t any application to any organization their line-of-business application?

Here’s my plan over the next short-term.  Ideally your feedback will help iterate the longer term:

    • AdventureOps – yes, people hate sample databases.  I’m not sure why.  They are full of data, have good relationships defined, etc.  I’m going to use AdventureWorks as the base for the first application (and perhaps more) as it has a good base of data and scenarios.  This first iteration of this application will be an attempt to create a Silverlight front-end dashboard for managing certain data (first just the HR system).  We’ll examine integrating with ASP.NET application services (part 1) and then look at techniques we can do today for page navigation and working with data services (part 2)
    • M-V-VM (and other patterns) – seems to be a popular pattern these days and we’ll explore writing an application that uses this pattern in Silverlight and what we can learn from it.  We’ll pull in experts from the community to demonstrate what they’ve done and provide samples.
    • Gaming – not on the gambling sense, but in the casual games sense.  What is a game loop, best practices for animation, etc.
    • Media – we’ve seen the Olympics, we’ve seen the original “Top Banana” site – how were these done, how can we use media in our applications effectively?
    • Continuum – how can you provide some application capabilities for Silverlight and bring them forward to a more full/rich client application?

So that’s the plan.  I know the part 1 of AdventureOps may be old hat to some of you Silverlight pros, but stick with me (and leave feedback).  I look forward to iterating on this section of the site for your benefit.  What do you want to see?

Be sure to subscribe to this blog for updates as the applications get added to the site!


This work is licensed under a Creative Commons Attribution By license.

  1. 12/3/2008 4:55 PM | # re: The Silverlight Application Corner
    Thanks Tim. I'm very excited about this announcement. Many thanks for continuing to listen to community feedback and I look forward to seeing the AdventureOps project evolve.
  2. 12/3/2008 5:24 PM | # re: The Silverlight Application Corner
    In speaking for all of us (or it may just be one of us) who appreciate an end to end solution built on good old basic building blocks like Adventure Works, I wanted to thank-you personally for taking the time and effort to feel around for where there may be holes to fill in understanding and ramping up on Silverlight.
    I have more than several years of database programming experience but I am having tough time grasping all the newer technologies in .Net 3 and 3.5. Don't get me wrong, I can really see the end goal believe me, but when your day is filled with VBA and SQL coding and your spare time being filled with trying to cram in the knoledge it takes to make the leap to the next level, any help thrown my way to toss a line out for me (and perhaps another developer or ten...) is truly appreciated.
    Sincer thanks.
    Dan
  3. 12/3/2008 5:51 PM | # re: The Silverlight Application Corner
    Awesome! This is what really makes a difference in terms of choosing a platform: SUPPORT. It allt starts by listening to the comunity. Thank you!
  4. 12/3/2008 6:16 PM | # re: The Silverlight Application Corner
    >>what got some people angry at me. <<

    Hey Man, it wasn't me......This time ;-)

    I'm heading down to read this blog!
    Bye!!!

    ..Ben
  5. 12/3/2008 6:42 PM | # re: The Silverlight Application Corner
    Hi Tim!
    Thanks soooooo much, I was waiting for this so long, thanks for listening to us, we really need this kind of tutorial. I'm so glad you're get started on this.
    Rachida Dukes
  6. 12/3/2008 6:50 PM | # re: The Silverlight Application Corner
    You are a good man, Tim.
    I don't care what they say.
  7. 12/3/2008 6:51 PM | # re: The Silverlight Application Corner
    Great plan! waiting to see these.
  8. 12/3/2008 7:36 PM | # re: The Silverlight Application Corner
    Just finished watching the video. Very nice!
    Something strange with the beginning of the video when you were in config.web file. Seems like your audio was ahead of the video for about half to one second. What you were saying would actually happened a second later, unless your hand was moving slower that your speech ;-)

    Tim, could you not scroll so much man, I'm trying to see what your talking about and you keep scrolling up and down. For next video, no more coffee for you ;-)

    Secondly, it would be better to show the finish app FIRST, so when you talk about parts, the viewer can refer to something they already saw, but without prior view, it's like walking around in dark.

    You asked for feedback! ;-)
    Thanks!
  9. 12/3/2008 10:10 PM | # re: The Silverlight Application Corner
    Ben: Thanks for the feedback! I'll try less pan/zoom in the next. One reason I do that is we get feedback that people watch these on ipods, etc. -- and if we don't it becomes hard to see the actual code. Trying to please everyone :-)

    With regard to showing the completed app first...that's an interesting one -- I think on some apps we'll do that for sure, but this one I was wanting to do some iteration work partly because I was waiting for some information to come out of PDC (and this work has been done before that)...but we'll have a mix of in-process and completed.

    Duly noted and thanks for the feedback!

    Oh -- got another comment about the audio so I'm checking on that.
  10. 12/4/2008 1:17 AM | # re: The Silverlight Application Corner
    Perfect:) Thank you!
  11. 12/4/2008 2:41 AM | # re: The Silverlight Application Corner
    Very exciting news. Looking good so far, I'm eagerly awaiting the end to end gaming app, would love to know if I'm approaching game development in the best way.
  12. 12/4/2008 5:03 AM | # re: The Silverlight Application Corner
    Bravo !! really nice stuff..
    Hope to see one more addition to it as "Silverlight on Mobile Devices" in future..i guess may be after Mix 09 :)
  13. 12/4/2008 5:44 AM | # re: The Silverlight Application Corner
    Thanks Tim for starting the "Application Corner"!

    In some line-of-business apps it would be nice to be able to fill a data grid with a 10,000 to maybe a million records (we deal with 700 gig databases) and still get good performance. The data grid can certainly be paged but there are some situations where it would be helpful to be able to scroll through all the records - so how does one do that and still get good performance?

    If one looks at the SQL Server Management Studio data grid, it can be seen that the data grid does not scroll on a pixel by pixel basis but rather the grid stays stationary and the record data inside the grid scrolls on a record by record basis which help performance significantly. So how do we download a million records and still get good performance? Well, we send binary, compressed data and we only send essential data - in other words, we don't use XML. XML is great for cross platform compatibility but it is poor for performance; however, with a Silverlight application we own both ends of the data stream and can create custom protocols if needed (standard protocols are better, of course, as long as they have the needed performance). So how do we prevent the user from becoming frustrated while we download a million records - it easy, most user expect to have to wait a little for data to download; however, they become frustrated when they do not know what, if anything, is happening. So it is important to let the user see with visible feedback that the download process has started and how many records of the total number of records that have been downloaded - this is what SQL Server Management Studio does. We immediately display the total number of records to be downloaded and then we update the displayed number of records that have been downloaded on a frequent basis.

    The point of the above is that it does not matter what database you use (AventureWorks is fine) as long as everyone can easily obtain a copy and it does not matter what the application does - what matters is a demonstration of how to solve issues like the above in a manner that a developer can use in whatever type application they are building.

    So it is the demonstration of key techniques, good architectures, how to integrate testing, and best practices for solving common problems that is important - the type of application used to demo the techniques does not really matter.

    Thank you Tim for all your contributions,
    David Roh
  14. 12/4/2008 6:35 AM | # re: The Silverlight Application Corner
    David: Yes this is a great scenario that would be fun to demonstrate (tons of records). One thing we don't have right now in the controls is virtualization. Have you seen some of the new framework features we are exploring for Silverlight that were presented at PDC? Take a look at the PDC sessions about Silverlight and some enhancements we are exploring are demonstrated there.
  15. 12/4/2008 7:19 AM | # re: The Silverlight Application Corner
    Hi Tim,

    Great initiative. Since some of these demos will be about creating LOB apps, it'd be nice to see important tips on topics such as Security, Authentication, Performance. Also a demo of a full app of Silverlight using Azure services would be really nice.

    Thanks,

    AN.
  16. 12/4/2008 12:49 PM | # re: The Silverlight Application Corner
    I'm getting audio problems too.
    This is the first time I've had problems (have watched many of your previous screencasts)

    It seems to be a sync issue.
    I've downloaded the WMV & MP4 versions and tried them in both media player 11 and the old player. Same problem.

    In the WMV the audio pauses and then picks up.
    In the MP4 the audio "stutters" for the approx. the first minute and then sounds fine, but gradually loses sync with video. Sync is off in the middle of the video.

    I hope this helps.
    (I'm using Vista 32 Home Sp1)
  17. 12/4/2008 12:52 PM | # re: The Silverlight Application Corner
    BTW,

    The text link is broken on the silverlight.net/learn page.
    The ? is missing. silverlight.net/.../adventureworkspt1.aspxpt=1
  18. 12/4/2008 2:22 PM | # re: The Silverlight Application Corner
    I'm glad to see more end-to-end examples. I've been following this series (www.silverlightshow.net/.../...ication-Part-4.aspx) and it will be interesting to see how navigation, business objects layer, data binding, etc. are handled differently in AdventureOps.

    Please provide plenty of detail on -why- the various implementation decisions were made, and possibly what alternatives were considered and why they were not used. We need more info on best practices and when/how to apply them in Silverlight LOB apps.

    Thanks! RC
  19. 12/4/2008 9:49 PM | # re: The Silverlight Application Corner
    Interesting stuff. Keep rolling. Nice slow and keep it simple pace.
    In my particular situation, I'm not seeing our company embrace silverlight quickly. I expect the similar approach as Flash, suddenly everyone has it and corporate IT didn't know what hit them. In the meantime, especially with the WCF services approach. I'd like to see some thought given to building the service infrastructure that supports asp.net/ajax (or really anything) and having the silverlight app hook into that. Seems like a slam dunk, but it points out a migration path... build your app this way and silverlight can be plugged in anytime. It seems like that is what you are doing.

    you rock! have fun.

    p.s. Make sure you keep a nice catalog of this stuff somewhere, silverlight is in my future, just not the immediate future ;)
  20. 12/6/2008 5:48 AM | # re: The Silverlight Application Corner
    Great! I am really excited with your project, specially about AdventureOps.
    Do you have a tentative date? I am working in a ERP system, planning the migration from desktop to Internet, and I guess that your plan can help me a lot.

    Thanks
  21. 12/6/2008 6:26 PM | # re: The Silverlight Application Corner
    Hi Tim!

    I have the full version SQL server 2008 installed with visual studio 2008 with SP1, I downloaded the database from the web, I attached it to SQL Server.
    Can you give us more details about setting up the web.config file so we can connect to the database?
    Because of this, when I run the application then I log in using the user and the password you provided I got an error because of the web.config was not configured.
    Thanks
  22. 7/14/2009 8:53 PM | # re: The Silverlight Application Corner
    Looking forward to some great application samples :)

 
Please add 5 and 3 and type the answer here:
First time here? You are looking at the most recent posts. You may also want to check out older archives. Please leave a comment, ask a question and consider subscribing to the latest posts via RSS or email. Thank you for visiting! (hide this)