Welcome to Pete Brown's 10rem.net

First time here? If you are a developer or are interested in Microsoft tools and technology, please consider subscribing to the latest posts.

You may also be interested in my blog archives, the articles section, or some of my lab projects such as the C64 emulator written in Silverlight.

(hide this)

Why Silverlight 2.0 will Change How We Build Applications

Pete Brown - 08 January 2008

I previously blogged about why I stopped coding in Silverlight 1.1. I want to make it clear that that is in no way an indictment of that technology. It's just that I've learned from it what I wanted to and have moved on.

While I find 1.0 great for web gadgets and media, and found 1.1 very interesting to learn from, Silverlight 2.0, is what really excites me. It does for several reasons, some of which may not be immediately obvious when you look at the technology.

Silverlight 2.0 is Powerful

The more I play with Silverlight, the more I am amazed at just how much you can really do in it. 1.0 was about media and graphics. 2.0 is about RIA. 2.0 is also about Cross-Platform Line of Business applications which I'll be talking about that in my webcast in March.

Don't make the mistake of tossing Silverlight in the same bucket as Flash. While they definitely compete in some significant areas, and both have real strengths in different areas, Silverlight 2.0 was created from the ground-up to be an application development platform equally friendly to designers and developers. If you're a .NET developer (or want to be), you'll find the .NET framework included with Silverlight to be extremely capable and powerful.

Silverlight 2.0 Leverages your .NET Skillset

Using .NET for server-side applications or for other desktop applications? Maybe you're writing .NET code for SharePoint, or BizTalk, or Office, or any number of other platforms that support .NET. You can now add another supported platform: the browser client. From a developer perspective, this helps minimize the number of different syntaxes you need to keep in your head. From a management perspective, it means you will be more free to move people between tiers or between projects, without retraining them. In both cases, you can make the most of what you've got.

Silverlight 2.0 is Cross-Platform and Cross-Browser 

You have all the power of a trim .NET 3.5 framework running in a browser, cross-platform. You can build rich internet applications that don't care which browser they sit in, as long as there is a Silverlight plugin for it. You don't have to worry about minute rendering differences between the different browsers, or how one line of code will work on one vs. the other. Nope. You have C# (or VB, or DLR) and you have your standard rendering surface.

Most web applications that attempt to be cross-browser in any real way are full of code that detects differences in different browsers or, at the least, they choose to go with the least common denominator across them and implement a sub-par experience. That goes away, and IMHO, qualifies as a BFD.

Mobile and Devices

Not much gas been annouced on this yet, but we've all seen the MLB demo that was done at MIX. Silverlight will be on mobile devices at some point - yet another place where you will be able to leverage the same skillset and knowledge.

 

One other big thing that is exciting about Silverlight is not really something in Silverlight; it is a side-effect it will have on WPF.

Increased WPF Adoption

In a nutshell, Silverlight is a cross-platform version of WPF, optimized for the browser. While Silverlight brings a lot to the table in a browser-based cross-platform application scenario, it is not necessarily the right choice for all your applications. There are lots of places where web applications are still the norm, but shouldn't be. I've had clients ask me for "a web app that..." and then go forward to list a bunch of things that would be difficult to do in a web app, and which must run in their Windows-only, IE-only intranet. For those people, I used to do my best to get them to adopt Windows Forms, as the development time is quicker, and the resulting user experience (performance and features) almost always better than a similar web application.

Unfortunately, many folks still insisted on web applications to the detriment of the user experience and the project budget. Sometimes there are legitimate reasons (like if the app is actually on the internet available to the public). More often than not, though, it was because one of these reasons:

  1. Web applications are easier to deploy 
  2. AJAX applications are as good as desktop applications
  3. Web applications look more modern

#1 is based on problems folks have had deploying applications in the past. I won't go into detail here, but there are many many ways to get applications deployed to desktops without running into issues or running floppies around to each machine. I can't blame them for the perception, though, as we've all been burned by deployment problems in the past. It's time to move forward, though.

#2 is an unfortunate result of the great job the various AJAX library vendors have done. AJAX isn't about replacing desktop applications, it's about building better web applications. Despite the power and flexibility of the various AJAX libraries, you still have to deal with a lot of web application baggage, and are still constrained by what you can do on the client. As an aside, calling many AJAX applications "thin clients" is a misnomer, IMHO. Once you look at how much javascript gets downloaded to the client, and then how much is in the page, "thin client" really becomes marketecture. Again, there are definitely scenarios where AJAX fits, but it needs to be evaluated against the requirements project-by-project, not mandated.

#3 is something that WPF directly addresses. It's true that battleship gray applications look really dated. It's also true that trying to make a Windows Forms application look like a web application is a pretty time-consuming process, especially if you are limited in what third-party controls you can get. I've done it, and the result was decent, but not perfect. The effect that had on the users though, was amazing. The application felt fresh and modern like a web app, but performed the way they expected it to - like a Windows app.

WPF now brings a much easier model for creating a compelling UI to the ease of development of a desktop application. When you add in some of the cool binding and other features of WPF, it really makes for a very productive development platform and a very rich user interface. Adding in the 3d support just makes it all the more useful, although the use of that in business applications is still being felt out by many.

Unfortunately, WPF hasn't taken off like I'd like it to. I think Silverlight is going to help change that.

What Higher Silverlight Adoption Means for WPF

Silverlight hits a sweet spot in that you have desktop-like functionality and the "web application/cross platform" check-off. (Don't get me wrong, in many cases "web application" is more than just a check-off - it's a real requirement, but that's not the target I'm addressing here at the moment.) For those reasons, I expect Silverlight to have a much higher rate of adoption than WPF did.

Once developers become familiar with Silverlight 2.0, they'll inevitably want more features and power. They, and astute management, will realize that if they code some applications in WPF, they can use the same skillset (much of the same code and xaml in some cases) and take advantage of the additional features WPF provides, including full access to the entire .NET framework and W*F. It's not the massive rewrite and skills wipe you'd expect when moving between technologies.

 

Silverlight Will Change How We Build Applications

Developers will be able to choose between writing powerful and rich desktop applications or powerful and rich browser applications, and won't have the massive skillset difference between the two that exists today. This is what the .NET framework was promised to be all about. This will change the way we write applications in the coming years.

Now that's exciting.

 

           
posted by Pete Brown on Tuesday, January 8, 2008
filed under:            

43 comments for “Why Silverlight 2.0 will Change How We Build Applications”

  1. TK/JEEsays:
    I don't normally bother commenting on blogs etc, but I'm compelled to make this my first exception.

    Congrats on making a clear and concise write-up - I'll be referring my clients and bus partners who don't 'get' the revolutionary aspects of SL to this article.

    As a suggestion for your next blog entry, how about looking at the architecture to lay down in a SL project to support team development for multi-lingual, multi-locale, skin-able, configurable, modular apps? It's a tall order, but serious app development capabilities are what is going to make SL the success that Java should have been. But it's not yet clear what the layers will be. It's also likely that the lack of an end-to-end development environment will doom Flash to shrivel and die as SL ascends.

    Note to doubters. I'm not an MS stooge. I am a hands-on co-owner of a UK-based software house developing a modular software package delivered as a classic browser-based web application. Whilst the small team we have are all craftsmen and heroes, from a business perspective their output is never stable and ultimately disappoints customers because of the client UI environment - the browser. If god meant us to fly he would have given us wings - if he meant browsers to be application UI's he would have given us modal dialogues, combo boxes, etc, etc.

    I'm ready to admit that, given the momentum of the current body of content on the net, we can't turn our backs on the browser. However, we can't limp on bodging browser capability gaps with reams of unsupportable interpreted JavaScript. Better a revolution to finally put to death the hope of cross browser apps in their current guise. Welcome to SL - software for the new millennium, 8 years late !
  2. Pete Brownsays:
    Thanks TK/JEE

    When 2.0 comes out in Beta, I'll have some bits lined up and ready to go, and will also hit full-force after that. I'll definitely try and address (perhaps as components of multiple posts/samples) the types of scenarios you're talking about

    Pete
  3. Pete Brownsays:
    <p>Rodrigo</p><p>To disqualify a platform because it doesn't support a 10 year old and now unsupported operating system seems a bit short-sighted. It's one of those "checklist" requirements that has little actual meaning in reality.</p><p>Cross-platform doesn't mean "every last old OS out there" or else we'd disqualify both for lack of BeOS or Amiga OS support (both of which have an active user community). :)Silverlight supports platforms comprising some percent of desktops in the high 90+% range. I don't have official numbers handy, but it's enough to make platform coverage a non-issue.</p><p>The percent of people running Windows 98 is much lower than you may think. I have to think that folks still running Windows 98 as their primary OS don't have high expectations for a RIA experience anyway :)</p><p>Pete</p>
  4. Johnsays:
    With the exception of a Q1 2008 2.0 Beta release, has anyone heard any more specific details as to timing of this release?

    Is that within weeks or are we looking at a May 2008 time frame?
  5. Dustinsays:
    I wrote an article a while ago stating that Silverlight would revolutionize how we build web applications. People told me I was drinking the Microsoft Kool-Aid. Maybe I should have used "change" instead of "revolutionize". I ended up deleting the article because of all the comments that were either off topic or insinuating I was a few cans short of six pack. It's nice to see that someone actually thinks the same way I do.
  6. Dan Millersays:
    The claim in the article that application deployment is no longer an issue leads me to doubt that the author has much (if any) real world experience in application development.

    The attempt to dismiss web application and cross platform as "check offs" that don't really matter is also troubling. The implication seems to be that those aren't real issues, so Silverlight's weakness in those areas isn't important.
  7. Pete Brownsays:
    lol Dan. 15+ Years of building and deploying applications counts for something :)

    As I mentioned in the article, for many companies, the "web application" requirement is, in fact, a mis-informed "check off". Certainly not in all cases, but I have seen it in a fairly large percentage.

    Installing the .NET framework is no more painful than installing an appropriate Java runtime. Installing the .NET framework might even be a little easier, as there is one version by one vendor, and it works as expected :)

    Unfortunately, Community Server doesn't display your subject, which was "Why not JAVA, which is proven and actually supports cross platform dev and deploy?"

    For information on Java, I should point you to Frank La Vigne's own past experience with Java. Read a (very old, but good) post on http://franksworld.com/blog/archive/2004/03/18/187.aspx

    That all being said, Java is a great language to develop in, but I don't see many Java in-page applets or full applications out there. I'm sure there are good reasons behind that.

    Pete
  8. Davidsays:
    Interesting you don't think WPF has been well adopted so far. As I recall 12 months after .net was released some people were declaring it a flop but now 5 or 6 years down the line I don't know anyone who wants to develop unmanaged code anymore if they can help it. WPF needs a new way of thinking, people have to get on with their work and can't study it that fast so I don't expect to see lots of WPF apps until .net 4.0 and another couple of years have passed. SL2.0 will definitely help though.
  9. XAML-fiedsays:
    Good article. However, I have mixed feelings here.

    I'm one who's been advocating 'fat client' for a while for a more sophisticated UI. We bit and with Visual Studio's one-click publish model it's a cinch.

    However, we had a business need for a richer UI than the classic "battleship gray". XAML looked like the way to go. Having spent over a month climbing the XAML/WPF learning curve I'd have to take great exception to you saying "WPF now brings a much easier model for creating a compelling UI to the ease of development of a desktop application." I warn anyone coding no-trivial UIs that WFP isn't for the faint of heart.

    The stock master-detail type form with some text boxes and a grid (note, WPF doesn't technically ship with a data grid) holding data isn't too hard to pull off. Adding cool gradients is a cinch. But try doing complex UIs and Microsoft's implementation of WPF starts to look exceedingly immature.

    For example, to pull off a splash screen I had to dump WPF in favor of an old WinForm because of WPF's threading model. MDI isn't available out of the box but requires a kludgy work-around. But that isn't so bad.

    What I didn't expect is how much unintiuitive code-behind stuff I was going to need to do to cobble together working objects. Microsoft's documentation on WPF is the absolute pits (to the point I wonder if they are even behind it) and Googling, while a lifesaver as always for programmers, can be pretty thin on many topics since, as you point out, adoption of WPF isn't widespread.

    Microsoft's WPF tools are rather weak. VS 2008 adds support for viewing XAML but I find its XAML support limiting. Expression Blend (only the beta September Preview is compatible with VS 2008) is a product I am less than thrilled with but often it's a necessary evil to use. Running both at the same time and swapping back and forth ocassionaly can hammer your solution.

    Watching some of MS's case study videos I get the impression a WPF assumption is there's a designer on staff who builds a UI in Expression Blend then hands it off to developers. But, IMHO, the amount of code-behind stuff needed makes that model unworkable. There's not a clean break between XAML and VB/C#. Expression Blend doesn't do VB/C# but shells off to VS 2008. Plus, how many small shops can afford to keep a designer on the payroll?

    I hope in a few years MS cleans up WPF enough for the mainstream.

  10. Pete Brownsays:
    Dustin:

    I know what you're saying. It's funny how that works :)

    David and Xaml-Fired:

    I agree. Jumping to WPF is not easy for everyone. I've found that it takes a particular mindset to make that, and even then, it is definitely some work. Much like early windows forms development, third-party controls are really necessary for applications of any real complexity. Unlike windows forms, though, I can actually deliver on the user experience the customer is requesting :) Just because it is WPF doesn't mean you need to go designer-crazy on the UI. Even the stock presentation can look pretty sharp and offer you flexibility beyond what you are used to in other technologies.
  11. Pete Brownsays:
    Amelie

    Not sure why you think that, but as I built an application on the 1.1 alpha bits back in June/July, and have been working with the pre-beta 2.0 bits since December through the Silverlight TAP program, I'm pretty sure I understand the differences and relationships between the versions :)

    I can't talk about specifics in 2.0, as that is all under NDA. However, check out the 2.0 beta bits when they are realeased on or around MIX, and I think it will all be clear.

    Pete
  12. Phil Winstanleysays:
    "Most web applications that attempt to be cross-browser in any real way are full of code that detects differences in different browsers or, at the least, they choose to go with the least common denominator across them and implement a sub-par experience. That goes away, and IMHO, qualifies as a BFD."

    Isn't that exactly what Silverlight does behind the scenes, it's just abstracted from the developer in the same way that ASP.NET controls work in uplevel and dowlevel modes depending on the browser loading them.
  13. Pete Brownsays:
    Phil, not really.

    Silverlight provides its own runtime environment, its own compiled languages and its own presentation surface. Beyond that, sure, it's browser dependent. The ceiling is a heck of a lot higher here, though.
  14. Pete Brownsays:
    <p>Hi Simon</p><p>It would be great if Silverlight supported all the different processors and machines out there. However, not supporting PowerPC Macs will not make Silverlight a dead duck :)</p><p>The non-intel Macs have a limited life, and people who hold on to them for some reason or other will find themselves unable to run a number of applications going forward, not just Silverlight.</p><p>So short-term, yes it's an issue. Long term it isn't. In the end, I'd prefer Microsoft to spend time on features, functionality and stability right now, as they have a significant portion of the market covered with Silverlight. If they're able to expand the base after that, that's even better. :)</p><p>Pete</p>
  15. Simon Andrewssays:
    Pete - I take your point and indeed every platform will eventually become obsolete. However, as a provider of professional streaming services, we find we cannot use Silverlight v1 for streamed video because it doesn't support server-side playlists and we can't use Silverlight v2 because a substantial part of our installed user base still have non-Intel Macs. By the time they've all bought new Macs, we will probably have had to give in and use Flash.

  16. Vic Martinsays:
    If Microsoft are honestly willing to wait 4-5 years while all the non-intel MACs disappear then fine, Silverlight is just where it needs to be. However, currently, Silverlight is of no use to professional streaming provders exactly because of what Simon Andrews points out.

    We have done a lot of testing with Silverlight 1.0 and Server Side Play Lists and have observed it working fine on a number of occasions, which suggests to us that the problem is actually bug related and not a matter that 1.0 doesn't support SSPLs. If Microsoft were to fix the bug (if that's what it is) then Silverlight adoption in the streamed media market would rocket TODAY!
  17. Tim Misrasays:
    Thanks for the info. One of the most important issues for me and my customers is can SL 2.0 sites/apps be indexed by search engines? Any info on this would be very helpful.

    Thanks

    Tim Misra
    MCP, MCAD.Net, MCSD.Net
  18. Pete Brownsays:
    Lixin

    I honestly have no idea what they'll do. Ideally, they will as that will increase the supported platforms and keep a number of folks with older macs happily occupied with our content :)

    If they didn't, however, that would only be a short-term problem (non-intel macs are declining at a very quick pace).

    I wouldn't let that deter you. Microsoft is really good at responding to customer concerns.

    Pete
  19. Pete Brownsays:
    >>I'm curious, what mailing list did this post hit, and is there anything in there you would like me to address?<<

    I found it. It was the DDJ front page and their Silverlight update newsletter.

    http://www.ddjresources.com/silverlight/silverlight_1_22_08.html

    Very cool :)

    Pete
  20. chrissays:
    Pete-

    I'll say that silverlight has come a long way, and rich support for the .net framework classes is welcoming.
    I am working extensively on SharePoint and Silverlight, and also saw some of cool webparts launched by Microsoft for SharePoint, tht uses SilverLight.
    But i really feel that Microsoft should push forward this two technology and make users aware of it. I mean, silverlight with sharepoint is certainly going to be the gen-next thing. The robust and scalable sharepoint along with silverlight RIA effect can do wonders! Certailny it will be nice if you can put some point forward regarding this.

    chris
  21. Andy Dentsays:
    Pete Brown said "The non-intel Macs have a limited life, and people who hold on to them for some reason or other will find themselves unable to run a number of applications going forward".

    I think that's an argument with broad ignorance of the Mac market. Legacy hardware is an important factor, people get years more life out of older hardware and the second-hand market for Intel Macs, especially laptops, has an "appeal gap" because the first generation (Core Duo) machines had significant limitations and dreadful battery life. Thus anyone looking for a second-hand Mac will be looking for Core 2 Duo machines or the last of the PPC machines. In the laptop world, the formfactor of the 12" models is treasured by many, especially flyers.

    Given that SL 1.1 was the watershed, where the CLR was introduced, I suspect MS will indeed say the engineering cost is too high but it makes for an uncomfortable developer decision. The large legacy Mac installations are often in education and if you are preparing rich content for that market, I'd have to say ignore SilverLight.
  22. Stevesays:
    Nice read - thanks.

    I am also excited about the possibility of embedded silverlight in phones and smart devices.

    As a mostly 'ajax web developer' - I'm seeing a tremendous amount of potential in SL. SL 2.0 is finally offering something I can chew on for awhile :)
  23. Againsays:
    Real Story: MS reimplements competitor's technology, pays off reporters to write nice stories and media outlets to distribute content exclusively in its proprietary format to protect the Windoze monopoly. What a great marketing company!

Comment on this Post

Remember me

22 trackbacks for “Why Silverlight 2.0 will Change How We Build Applications”

  1. Christopher Steensays:
    ASP.NET Web Development Toolbox [Via: Chris Brandsma ] WPF WPF/Xaml Web News - 2008/01/08 [Via: rrelyea...
  2. Community Blogssays:
    SL for Designers Webcast, Pete Brown on how SL 2.0 will change how we build Apps, Tim Heuer reports on
  3. NasKhan.com &raquo; Blog Archive &raquo; Picks of the day...says:
    PingBack from http://www.naskhan.com/2008/01/10/picks-of-the-day/
  4. Synergistsays:
    Pete Brown just wrote a great article on his blog about the upcoming Silverlight 2.0 and how it will
  5. Excited about Silverlight 2.0? &laquo; Tales from a Trading Desksays:
    PingBack from http://mdavey.wordpress.com/2008/01/09/excited-about-silverlight-20/
  6. VBandisays:
    Biztos azt hiszitek, hogy Silverlight-fetisiszta leszek lassan, de itt van megint egy ajánlott olvasmány
  7. Jesse Ezell Blogsays:
    "...Don't make the mistake of tossing Silverlight in the same bucket as Flash. While they definitely
  8. Conversations with the Communications Sectorsays:
    Pete Brown has a great blog post here on Silverlight 2.0 and WPF.  Pete makes some great points
  9. Noticias externassays:
    Pete Brown has a great blog post here on Silverlight 2.0 and WPF.  Pete makes some great points
  10. POKE 53280,0: Pete Brown's Blogsays:
    My server at home (which hosts this blog and my main web site) is on the fritz due to too many beta products
  11. POKE 53280,0: Pete Brown's Blogsays:
    During the Q&A in Reston, Marc and I mentioned a few places of interest. The Silverlight Deployment
  12. Getting Startedsays:
    I came across a blog on Why Silverlight 2.0 will Change How We Build Applications by Pete Brown, a Microsoft
  13. POKE 53280,0: Pete Brown's Blogsays:
    Announced at Tech Ed today: Silverlight 2 Beta 2 is coming this week, right on time according to the
  14. POKE 53280,0: Pete Brown's Blogsays:
    My annual review is coming up. This is the time when you’re encouraged to reflect on what you’ve done
  15. POKE 53280,0: Pete Brown's Blogsays:
    When I first became an MVP in January 2008 there was some questions as to what bucket Silverlight would
  16. POKE 53280,0: Pete Brown's Blogsays:
    Over the past 13 1/2 years, I’ve had the pleasure of working with some really talented developers, architects