Creating Business Applications with Silverlight...as easy as 1, 2, 3.
On my current project we are building an enterprise line of business application using Silverlight. What drew us to this platform was the lightweight framework that packed a serious punch when it came to developer productivity. Of course, we started very early on with Silverlight 2.0 Beta 1 (the first real release in my opinion) and overcame many challenges one would face with any immature platform but we hung in there and had faith that Scott Gu and his team would eventually get it right. It was a big bet but we’re happy to say that it has paid us back in more ways than one.
Today, we have a robust application and a lightweight MVP implementation that completely decouples the view from UI processing and business logic.
Our designer friendly views are accessible from Blend which makes it easy for application maintenance developers to make aesthetic changes without worry.
Every call is asynchronous. Every “page” snaps into view without a postback or any waiting thanks to proactive caching on the client.
The experience is far superior to even the most rigorous of AJAX applications and to be honest, most of it was free thanks to out of the box Silverlight.
However, with all the technical superiority of Silverlight there is an 800 pound gorilla in the room: Developer Productivity. To most developers, WPF/Silverlight topics are foreign, let alone ways to do things.
Also, in our hypertext world we have created, there are certain things that developers have become acustomed to the browser doing for them. Something as simple as swapping out content when a link is clicked. This may not seem like a very daunting technical feat (just clear the children on your content container and replace it the active view on a button click event) but I wouldn’t consider wiring up content swapping on click events a very scalable solution nor does this solution account for the transferance of DataContext (another foreign concept to the land of ASP.NET).
So with the onset of Silverlight, the browser has shed some responsibility..so who will step up and claim that responsibility? Unfortunately, you, the developer, will have to. Unless, you build or use a framework that takes on that responsibility for you. At Avanade, we have created the Silverlight Accelerator Framework to do just that.
As a result, for our developers to create a business form in Silverlight it is as simple as:
1) Create a Model class to manage state 2) Create a Presenter class to manage state transitions 3) Create a View (simple Silverlight User Control) to display the state to the user
With these three steps you can create a fully data bound component that integrates into the navigational system of the Silverlight Accelerator. This eliminates the integration issues that you might see from an OOB Silverlight solution and turns a business form into what it should be: an atomic unit of functional scope.