Redmond Diary

By Andrew J. Brust

Blog archive

What Does Windows 8 Mean for Silverlight's Future?

The software industry lives within an interesting paradox. IT in the enterprise moves slowly and cautiously, upgrading only when safe and necessary.  IT interests intentionally live in the past.  On the other hand, developers and Independent Software Vendors (ISVs) not only want to use the latest and greatest technologies, but this constituency prides itself on gauging tech's future, and basing its present-day strategy upon it.  Normally, we as an industry manage this paradox with a shrug of the shoulder and musings along the lines of "it takes all kinds."  Different subcultures have different tendencies.  So be it.

Microsoft, with its Windows operating system (OS), can't take such a laissez-faire view of the world.  Redmond relies on IT to deploy Windows and (at the very least) influence its procurement, but it also relies on developers to build software for Windows, especially software that has a dependency on features in new versions of the OS.  It must indulge and nourish developers' fetish for an early birthing of the next generation of software, even as it acknowledges the IT reality that the next wave will arrive on-schedule in Redmond and will travel very slowly to end users.

With the move to Windows 8, and the corresponding shift in application development models, this paradox is certainly in place. On the one hand, the next version of Windows is widely expected sometime in 2012, and its full-scale deployment will likely push into 2014 or even later.  Meanwhile, there's a technology that runs on today's Windows 7, will continue to run in the desktop mode of Windows 8 (the next version's codename), and provides absolutely the best architectural bridge to the Windows 8 Metro-style application development stack.  That technology is Silverlight.  And given what we now know about Windows 8, one might think, as I do, that Microsoft ecosystem developers should be flocking to it.

But because developers are trying to get a jump on the future, and since many of them believe the impending v5.0 release of Silverlight will be the technology's last, not everyone is flocking to it; in fact, some are fleeing from it.  Is this sensible?  Is it not unprecedented?  What options does it lead to?  What's the right way to think about the situation?

Is v5.0 really the last major version of the technology called Silverlight?  We don't know.  But Scott Guthrie, the "father" and champion of the technology, left the Developer Division of Microsoft months ago to work on the Windows Azure team, and he took his people with him.  John Papa, who was a very influential Redmond-based evangelist for Silverlight (and is a Visual Studio Magazine author), left Microsoft completely.  About a year ago, when initial suspicion of Silverlight's demise reached significant magnitude, Papa interviewed Guthrie on video and their discussion served to dispel developers' fears; but now they've moved on.

So read into that what you will and let's suppose, for the sake of argument, speculation that Silverlight's days of major revision and iteration are over now is correct.  Let's assume the shine and glimmer has dimmed.  Let's assume that any Silverlight application written today, and that therefore any investment of financial and human resources made in Silverlight development today, is destined for rework and extra investment in a few years, if the application's platform needs to stay current.

Is this really so different from any technology investment we make?  Every framework, language, runtime and operating system is subject to change, to improvement, to flux and, yes, to obsolescence.  What differs from project to project is how near-term that obsolescence is and how disruptive the change will be.  The shift from .NET 1.1. to 2.0 was incremental.  Some of the further changes were, too.  But the switch from Windows Forms to WPF was major, and the change from ASP.NET Web Services (asmx) to Windows Communication Foundation (WCF) was downright fundamental.

Meanwhile, the transition to the .NET development model for Windows 8 Metro-style applications is actually quite gentle.  The finer points of this subject are covered nicely in Magenic's excellent white paper, "Assessing the Windows 8 Development Platform." As the authors of that paper (including Rocky Lhotka) point out, Silverlight code won't just "port" to Windows 8. And, no, Silverlight user interfaces won't either; Metro always supports XAML, but that relationship is not commutative.  But the concepts, the syntax, the architecture and developers' skills map from Silverlight to Windows 8 Metro and the Windows Runtime (WinRT) very nicely.  That's not a coincidence.  It's not an accident.  This is a protected transition.  It's not a slap in the face.

There are few things that are unnerving about this transition, which make it seem markedly different from others:

  • The assumed end of the road for Silverlight is something many think they can see.  Instead of being ignorant of the technology's expiration date, we believe we know it.  If ignorance is bliss, it would seem our situation lacks it.
  • The new technology involving WinRT and Metro involves a name change from Silverlight.
  • .NET, which underlies both Silverlight and the XAML approach to WinRT development, has just about reached 10 years of age.  That's equivalent to 80 in human years, or so many fear.

My take is that the combination of these three factors has contributed to what for many is a psychologically compelling case that Silverlight should be abandoned today and HTML 5 (the agnostic kind, not the Windows RT variety) should be embraced in its stead.  I understand the logic behind that.  I appreciate the preemptive, proactive, vigilant conscientiousness involved in its calculus.  But for a great many scenarios, I don't agree with it. 

HTML 5 clients, no matter how impressive their interactivity and the emulation of native application interfaces they present may be, are still second-class clients.  They are getting better, especially when hardware acceleration and fast processors are involved.  But they still lag.  They still feel like they're emulating something, like they're prototypes, like they're not comfortable in their own skins.  They're based on compromise, and they feel compromised too.

HTML 5/JavaScript development tools are getting better, and will get better still, but aren't as productive as tools for other environments, like Flash, like Silverlight or even more primitive tooling for iOS or Android.  HTML's roots as a document markup language, rather than an application interface, create a disconnect that impedes productivity.  I don't necessarily think that problem is insurmountable, but it's here today.

If you're building line-of-business applications, you need a first-class client and you need productivity.  Lack of productivity increases your costs and worsens your backlog.  A second-class client will erode user satisfaction, which is never good.  Worse yet, this erosion will be inconspicuous, rather than easily identified and diagnosed, because the inferiority of an HTML 5 client over a native one is hard to identify and, notably, doing so at this juncture in the industry is unpopular.  Why would you fault a technology that everyone believes is revolutionary?  Instead, user disenchantment will remain latent and yet will add to the malaise caused by slower development.

If you're an ISV and you're coveting the reach of running multi-platform, it's a different story.  You've likely wanted to move to HTML 5 already, and the uncertainty around Silverlight may be the only remaining momentum or pretext you need to make the shift.  You're deploying many more copies of your application than a line-of-business developer is anyway; this makes the economic hit from lower productivity less impactful, and the wider potential installed base might even make it profitable.

But no matter who you are, it's important to take stock of the situation and do it accurately.  Continued, but merely incremental changes in a development model lead to conservatism and general lack of innovation in the underlying platform.  Periods of stability and equilibrium are necessary, but permanence in that equilibrium leads to loss of platform relevance, market share and utility.  Arguably, that's already happened to Windows.  The change Windows 8 brings is necessary and overdue.  The marked changes in using .NET if we're to build applications for the new OS are inevitable.  We will ultimately benefit from the change, and what we can reasonably hope for in the interim is a migration path for our code and skills that is navigable, logical and conceptually comfortable.

That path takes us to a place called WinRT, rather than a place called Silverlight.  But considering everything that is changing for the good, the number of disruptive changes is impressively minimal.  The name may be changing, and there may even be some significance to that in terms of Microsoft's internal management of products and technologies.  But as the consumer, you should care about the ingredients, not the name.  Turkish coffee and Greek coffee are much the same. Although you'll find plenty of interested parties who will find the names significant, drinkers of the beverage should enjoy either one.  It's all coffee, it's all sweet, and you can tell your fortune from the grounds that are left at the end.  Back on the software side, it's all XAML, and C# or VB .NET, and you can make your fortune from the product that comes out at the end.  Coffee drinkers wouldn't switch to tea.  Why should XAML developers switch to HTML?

Posted on 11/28/2011 at 1:16 PM

comments powered by Disqus

Reader Comments:

Thu, Nov 15, 2012 Steve Ballmer

And that's why I fired Steven Sinofsky. Sorry guys, deal with it this time around. We would soon have another release of windows in few years. I would personally look into each stage of development before it goes RTM.

Tue, Jul 17, 2012

Redmond's continuing decline is entirely of their own making - they can put as much lipstick on the pig as wish, but for those of us that matter, HTML5 is of no interest, Windows 8 looks increasingly like a far greater debacle than Vista and it's still 'SILVERLIGHT OR NOTHING' out here in the real world. Get back to us when someone with a clue in Redmond wants to talk with us about Silverlight 6 - until then, piss off - we're too busy moving to other platforms to listen to your nonsense...

Sun, May 13, 2012 jens

They didn´t real understand Silverlight. WinRT is not only a name change. WinRT bind us to Windows 8 only . That´s a main difference to Silverlight. And it bind us to Windows Store. That´s the main reason why we have canceled all Development in WinRT before its on market. Silverlight runs on Windows from Xp to Windows 8 and on MAC OS X. That´s the first part of difference. Second one is that the WinRT Framework is like a Alpha based framework at this time. No deep Zoom control . No XNA (and no directX is not an option for many programmers in this case). And a lot of other different missing parts. WinRT is like Silverlight 2 and not more. Nearly every bigger Project must be rewritten from Scartch to WinRT. With a less User base than before.

Sat, May 12, 2012 alex

Rod Mac said: 'Why should XAML developers switch to HTML?' ...because (Metro) XAML can't be run against a local database which is important for desktop apps, so why not go HTML if you have to use a web database? I would prefer having a local web service hosting the database rather than using HTML anyway.. but of course, no client database is kinda limited.. The problem that the Microsoft team don't understand is that if you change everything.. then everything the .net community will have made for silverlight will not work and will need to be ported.. this take time, resource, money and is a pain.. You say your can do a SL5 app and port it easy afterwards but it's more complicated than that if your using tons of 3rd party dlls. Also they don't seem to understand that now junior/intermediate programmers will have to learn both SL5 and WinRT at the same time.. Anyway, personally I don't like your windows 8 interface.. if you really really want to do something nice.. support skinning and total flexibility of the windows 8 UI.. even a windows 7 mode... Also it better be very very fast because it's the only reason people will change from windows 7 to windows 8.. that is if interface is perfect for multimonitors desktops

Sat, May 12, 2012 Mark

The switch from other things to Silverlight was a good thing because it was a better technology. It had the xaml, but it was cross-platform. Moving to Silverlight was a good thing. Moving from Silverlight to WinRT, not so much. We still have the xaml and that is a good thing. BUT no cross-platform. Just the opposite. things ONLY run on Windows. That forces many of us back to HTML/javascript. That is NOT a good thing. I think that is why so many developers are angry about the dropping of Silverlight. Unlike the past where the technology change was a step forward and NOTHING was lost, but only gained. WinRT only means stepping backward. We lose technology. And there is not legitimate replacement. Hence, developers, including me, aren't happy about it. Some, maybe many, are jumping ship. No more Microsoft. No more Windows. Just HTML5/javascript in a cross platform way. So people are unhappy because this "de-emphasizing" Silverlight means years of backward progress with no really good alternative.

Sun, Mar 18, 2012 Dave Asheville

Regardless of the plan, Microsoft needs to share it. Period. Without saying what technologies are being concentrated on going forward, they are doing a HUGE disservice to the developer community. Winforms, WPF, Silverlight, Webforms, Metro, HTML5? Which is the primary one? I can understand supporting them all but which is the main stream and will receive the bulk of the investment? Tell us the plan please...

Tue, Mar 13, 2012 Jeff microsoft

Every Microsoft-focused developer should be learning about Metro applications. It's also important that Silverlight developers begin to understand how to work with this new technology using their existing skillset.

Main Point to remember is that :
•XAML is XAML. If you can write XAML in Silverlight, you can easily port that code to Metro applications.
•It's safe to write a Silverlight application today and port it over four years from now when Metro becomes more mainstream.
•The crucial factors are the differences in XML namespaces and the asynchronous nature of Metro applications.

Silverlight developers have the best of both worlds. They can create an application in native Silverlight and easily port it to Metro, or run it on the Windows 8 Desktop. HTML5 developers don't get this luxury. Silverlight aint dead it will live on...Also who is to say that every company who uses silverlight apps wants to move over to Windows 8, people havnt even migrated over to windows 7 yet. Another thing is Silverlight will be supported until 2021 so dont be afraid that it wont be in use because it will be, developers can continue develiping SL apps for years to come.

Tue, Mar 13, 2012

im a mssive fan of silverlight being doing for about a year now and i'd hate to see it go to waste, but i watched this video and thought there might be light at th eend of the tunnel. Tell me if im wrong but silverlight/xaml will still be an option ?

Tue, Feb 14, 2012 Austraila

I love WinForms.

"Coffee drinkers wouldn't switch to tea. Why should XAML developers switch to HTML?"

What if you're not a XAML developer. Winforms is still going strong. More productive. More efficient. And in my opinion, delivers a better end product for the user.

The question is not how does WinRT compare to XAML, but how does it compare to WinForms?

The WinAPI is available to WinForms (I am yet to write an application which doesn't use the WinAPI heavily), but will it be available to WinRT.

I suspect WinRT will make it easier to write dumbed down applications and that Micrsoft will keep the API for itself.

Tue, Jan 31, 2012

Heck we haven't even finished the migration to Windows 7. We'll have Windows 7 for another five years in our corporate environment. It's Silverlight or Asp .Net, the choice is clear.

Wed, Dec 7, 2011 Dan TN

Knowing Microsoft as we all do, it will be HTML#5 loaded with Microsoft only features of course. :-) not that I'm complaining because some of those features end up being pretty cool...

Wed, Dec 7, 2011 Dave England

"why not just skip all the pain and just start with XAML/C# to begin with." Because that means no cross-platform support and very limited mobile support.

Mon, Dec 5, 2011

My vote is MSFT continue to suppt Silverlight and actually expand upon it with clear official support for OSX, Linux, mobile platforms etc. If they want to satify the script kiddies with HTML5/JS, okay then fine. But don't take away my dev tools because someone who writes sw on the order of a few thousand lines of code thinks it's the way to go. When devs write tens and hundreds of thousands of lines of code, will they still say "yeah let's do that in HTML5/JS" - I think not (hope not). SL is one of the very best things Microsoft has ever developed and to bin it would be a real shame. But hey who am I to say, only been writing code for 30 years.

Thu, Dec 1, 2011 Yuri Paez

Does HTML5 is really the solution for development in multiplataforms? I really think that we don’t learn from what we lived before.. we don’t remember the compatibility issues between browsers and the level of support of HTML4 and older versions?? Are we don’t remember the nightmares to make compatible a web app between browsers? This is going to change with HTML5? How? When? For now the specification is incomplete, maybe in another 5 years is going to be done. Ok there is going to be HTML5 in every mobile device, with what level of compatibility? Depending of the browser, manufacturer, OS Type, OS Version? I think that this is going to be a bigger mess and a bigger nightmare for us, the developers. A better solution I think that it was Flash and Silverlight… but shortly I’m wrong because Adobe and MS look like are going to support this big mess better than support his own platforms… please tell me why I’m wrong.

Thu, Dec 1, 2011 Ken Smith

I'm not sure I agree. For all their API similarity, Silverlight and WinRT are dramatically different platforms, for one simple reason: Silverlight is a browser plugin. I can write a Silverlight app and have it run on the machines of maybe 70% of the folks that visit my website. Twelve months from now, when an app that targets WinRT will be able to run on maybe 1% of the world's Internet-connected devices, it'll still run on precisely 0% of the browsers that visit my website.

Wed, Nov 30, 2011

Microsoft needs to create a new sub-brand...something that is releases new code every 3 months...something that could care less about backward compatibility...something that is cutting edge. Something that trys big initiatives and fails miserably only to win at them 6 months later when they get "it" right. They can't be all things to all people and keeping the legacy while trying to move forward is killing them.

Wed, Nov 30, 2011

Note the last paragraph:

Wed, Nov 30, 2011 Ship

Introducing a new platform (WinRT) that it is not back portable to the existing Windows base (notably Windows 7) AND at the same time totally neglecting what do work today for dev (Silverlight/WPF), I think it is a big mistake.

Wed, Nov 30, 2011 Indy Wollerau

I agree with the argument that change is the constant in our IT field, especially in software development. But with regards to Silverlight's future, IMHO Microsoft has done a VERY poor job communicating their commitment(or rather lack of) and providing clarity about future direction of Silverlight or stating the end of it. That is the root of the FUD up to this point.

Tue, Nov 29, 2011

Hard to imagine anyone more critical of Microsoft's handling of Silverlight than me, but I couldn't disagree more that native application development is dead. Despite all of the lip service being paid to HTML5/JavaScript, none of the major players have any real interest in catering to the lowest common denominator - there are a plethora of technology analysts who've already observed that that web as we know it is fading, replaced by native applications connected to increasing cloud services via the web. Apple's empire is built on native applications, with the exception of those forced to HTML5 due to Apple's ridiculous AppStore policy. Google's already declared HTML5/JavaScript insufficient to its development needs and that Microsoft is shifting to even greater focus on native web-enabled applications has never been more obvious. The need for plugins evolved because the web was otherwise dead, lifeless and primitive, characteristics HTML5/JavaScript won't be enough to change, as the web's traditional document model is hideously arcane. With the possible exception of Silverlight, while it lasted, the most exceptional user experiences on the web were (and are, for now) created via Flash. Why the fierce effort to kill it? Because the most effective, if flawed, cross-platform technology for the web is proprietary to Adobe, a level of applicability none of the major players could let stand, as once again, it eliminates the intrinsic value of their native platforms. HTML5/JavaScript will far no better...

Tue, Nov 29, 2011 Rod Mac

Euphoric: I meant ASP.NET generated HTML. There is currently no provision in WinRT for local database access, and .NET will be replaced by WinRT.

Tue, Nov 29, 2011 Don Rochester

They should switch because the market will move to HTML5 and not Silverlight. The bad taste left in devs mounths is such that spending the time learning a fruitless endeavor doesn't pay any bills in the long term. Microsoft bait and switched on the technology they sold. They know it and they are lying low trying to let the negativity pass by. John Papa left! I didn't know that until this post and he issued a plea to developers to stay the course. I bet he feels real good about putting his family on the line for Microsoft. Yes you can reuse XAML and C# skills, but for building what? Client side apps are dead and no new RT name will reignite that fire, especially if MS needs to push the cloud for making money. Apps on mobile are the rage right now, but you can do that with HTML5/CSS3/JavaScript and phonegap - even Windows Phone 7 so I really don't see the argument for Silverlight. Let's all learn cobol because hey it's still around. Developers need to send Microsoft a message that we're no longer going to drink its coolaid and I think that is happening now.

Tue, Nov 29, 2011 Fallon Massey

Good article, but misses the most major point. If MS came out and said that we need to move in a different direction with Silverlight, and here is where we're going, and here's the roadmap, everybody would have been fine. However, that's NOT what they did! They created an elaborate scheme to progressively LIE to their developers, employees, and customers about SL. Why? Who knows, but in the wake of this behavior, developers lost faith, employees had to move on, and customers are left scratching their heads. All of that to try to compete in a tablet market that has since become a loss leader market with at best minimum margins for the foreseeable future. Can MS be trusted in the future? The evidence isn't good, and IMO, it's time to hedge all of your bets!

Tue, Nov 29, 2011

You've missed a couple of key points: 1) Windows 8 is already destined to be a catastrophioc failure and Microsoft has no chance whatsoever of gaining any more traction in the tablet space than they have with anything other than the XBox, 2) HTML5/JavaScript is just the latest false messiah about which there's inevitable hype, yet none of the major players has anything to gain by its longer term success, as it makes their proprietary platforms irrelevant (everyone loses), 3) Redmond had the chance to beat the iPad to market with a version of Courier created by Jim Allard and the XBox team, but it was killed by the Windows weenies, with their obsession for it having put Microsoft out of the running because attempting to be all things to all people (a losing strategy) put them more than a year from feasibility, especially given that what we've seen of Windows 8 is a Frankenstein monster. To know what lies ahead for Redmond, we need await the collapse of the Windows 8 regime and the much-needed purging of ass-clowns like Sinoksky...

Tue, Nov 29, 2011 Bo

Why should XAML developers switch to HTML? -- They should switch to pure HTML5/JS without WinRT. It still amazes me that all throughout this article and numerous others like it that no one ever points out that HTML5/JS apps that target WinRT will only run on Win8! All MS did was adopt and support the syntax in order to win over existing JS developers. Everyone seems to think that MS is all encompassing and support cross platform development - they're not! So to me that is the number one reason why if reach is a major feature for your app then you should ditch WinRT-H5-JS apps and just write pure H5/JS apps that truly can run on multiple platforms. Otherwise if reach is not a concern then yeah go with C#/Xaml if thats where you're comfortable.

Tue, Nov 29, 2011 Marc Pennsylvania

I'm not a developer and so this is more like a question and a gripe than a comment. I'm a volunteer for a small not-for-profit conservation organization and we just had a Silverlight application built ( for us. It merges bing maps, a database, video still images and a certain amount of social networking, all in one very slick package. Access is a member benefit and so it has not been a hard sell get our end users to install Silverlight. Here's our problem. It's not clear any of our expensive application will work in a very few years. And for sure won't work on most peoples' smart phones unless we move away from Microsoft's proprietary development environment. The idea that Microsoft's will become a major player in phones is speculative at best and we can't afford to develop five entirely different products for many system. It appears to me that we would be fools to remain Microsoft partisans no matter how good the present technology. Why shouldn't we be running away from Silverlight, WinRT or anything like it?

Tue, Nov 29, 2011 Josh Alabama

Good Article. I completely agree and looking back, I'm glad that our programming shop never started building our applications in silverlight.

Tue, Nov 29, 2011

I knew Silverlight's goal. Microsoft wants to dominate and control the Internet and make the world captive as it has with Windows. With such good open standards as HTML5,CSS3, javascript, etc, we'd be fools to ever allow that. Maybe the world will move to a time when Windows and all things Microsoft, other than perhaps a few applications is a reality. There would certainly be more freedom, and people could actually answer the question "Where do you want to go today?" with where I want to, instead of where Microsoft forces me to.

Tue, Nov 29, 2011 Euphoric

Perfect article. Exactly how I think about it too. Roy Lawson: Read the article again. MS gave up on multi-platform Silverlight. There was no demand for it. And MS alone can't compete agains Google, Apple, Mozila and pretty much anyone else who is pushing HTML5. So they joined the HMLT5 for multi-platform development and degraded SL to Windows-only development. And then it makes sense to make WinRT out of it. Rod Mac: XAML and HTML are UI description languages. What you want to compare are C#/VB + .NET vs. JavaScript. And .NET can do local databases and much much more than JavaScript can.

Tue, Nov 29, 2011 Tom Chicago

Silverlight started out as a web plug-in but has grown to become a great Application Developement solution for both Web and Out of Browser apps and now with WinRT it is evolving into a great way to write native windows applications. HTML5/Javascript and CSS will never be a great way to write native applications because they were never designed for that purpose so will always be a kluge. If HTML5/Javascript/CSS eventually evolve into a great native app dev solution then they will most likely be indistinguishable from XAML/C# so why not just skip all the pain and just start with XAML/C# to begin with.

Tue, Nov 29, 2011 Andrew Brust New York City

Tad, your post, though sad, was very well-written and well-taken. I've tweeted it.

Tue, Nov 29, 2011 Edgar Utah

Fantastic article. I completely agree with you, and I've been making the same argument to other Silverlight developers. However I haven't made this argument nearly as eqolquently as you hae. I will be recommending that my fellow Silverlight developers read this.

Tue, Nov 29, 2011 Tad Anderson PA

Nice article. It makes a lot of great point. I am not as worried about the skills porting as I am about the longevity of the Silverlight browser apps built today. Especially when it comes to SharePoint. I just summarized my thoughts here:

Tue, Nov 29, 2011 Roy Lawson Tampa

If this is true: "The new technology involving WinRT and Metro involves a name change from Silverlight." I say fantastic. But, I would also say that Microsoft hasn't communicated effectively to developers that is the case. Will there be a "light" version of WinRT that can run on other operating systems - such as Mac, Linux, Android, mobile and so forth? That was a major selling point to Silverlight - although it wasn't supported on many mobile devices it was supported on most desktops. If you built a Silverlight out of browser app and the requirement was support for Mac users, obviously we don't want to lose the ability to support them.

Tue, Nov 29, 2011

Absolutely brilliant article. Every CIO should read this before making any strategic decisions!

Mon, Nov 28, 2011 Rod Mac

'Why should XAML developers switch to HTML?' ...because (Metro) XAML can't be run against a local database which is important for desktop apps, so why not go HTML if you have to use a web database?

Mon, Nov 28, 2011 Jay Dallas

Finally, I've been saying this till I'm blue in the face all the signs pointed to it, I'm so glad you posted this article. This definitely clears up why Azure is built using Silverlight and why it compliments so well to deployment of Silverlight and MVC applications and web services. After I downloaded Windows 8 Dev Preview, I was able to instinctly start building applications, there are a few changes, but they seem more like upgrades. I found this postto be very concise and informative. Thank you,

Add Your Comments Now:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Please type the letters/numbers you see above

.NET Insight

Sign up for our newsletter.

I agree to this site's Privacy Policy.