Silverlight? Not So Good for Intranet Apps

At my day job we develop a lot of web applications.  I don't mean web sites, I mean web applications.  The type where you fill in a lot of forms and have workflows and need reports, etc.

Our websites are the front end for our business operations.  We also code back office business processes.  These processes require somewhat complex configuration through the web interface.

We were lamenting how hard it is to get reliable AJAX going across browsers.  If you want to support IE7/IE8, Firefox, Chrome, etc you need to do a lot of work.

When Silverlight was announced, it sounded like a great replacement for standard asp.net webforms.  You use C# for the client code, no JavaScript necessary.  As long as there is a Silverlight plugin for your browser, your application willl just work.  Not only will it just work but it will work the same in every browser.  Hallelujah and Amen brother!

However, the reality is different.  Most (but not all) of our apps run on a corporate intranet.  Silverlight is designed to run in an internet environment.  Why is that important?  Data Access.

Data Access Sucks in Silverlight!

I hope thats clear enough.  Why does it suck?  Because you can't simply query your SQL Database as you did before.  You see there is no real data access layer in Silverlight.  You use web services to get all the data.  And that's understandable in an Internet environment.  But in an Intranet it makes no sense.  

Instead of querying your database you have to either use ADO.NET Entity Framework with .NET RIA Services and a DomainService class.  Or you can use ADO.NET Data Services with the ADO.NET Entity Framework.

WTF?  The Architecture Astronauts have left the stratosphere.  Here's a good example post dealing with the insanity that is .NET RIA.

Silverlight looks to be a great Flash replacement for those who need such a thing.  But I can't recommend it as a replacement to good old ASP.NET web forms.

About

[Insert Witty Saying Here]