Last year I developed a demo CRM sales application in Silverlight with Ward Bell - VP Product Management at IdeaBlade - so that we could show it off by the time of PDC 2008. We wanted to show the capability of Silverlight (being developed on 2.0 beta - converted to 2.0 RTM by the start of PDC) to build advanced context sensitive business apps in Silverlight, given that most Silverlight demos being touted around were purely rich media or graphics related.
We were successful in developing the prototype application that demonstrated not only that you could create a useful forms over data type application, but that you could implement a true MVVM pattern in Silverlight. This was achieved by relying heavily on attached behaviors (built off the dependency property infrastructure) and our own custom commanding mechanisms to separate the views from the view models. The views and view models were managed in a central shell and controller for the management of the visual state of the application.
The end result was a prototype application that had some very powerful features to demonstrate a Silverlight CRM type application that could readily allow users to switch operating state and visually track their work context using the graphical power of Silverlight.
We went down to PDC 2008 in LA and showed it off to various people including Brad Abrams, Billy Hollis and Rocky Lhotka.
I will write more on the techniques used in the demo app in future posts. Some of the challenges we faced have been removed with the progression of Silverlight and the release of the Composite Application Guidance for WPF and Silverlight (CAG) in February, but by covering them and adopting the techniques you can learn to use the power of the Silverlight property system without adopting the CAG, but then appreciate the work that has gone into the CAG and the value it provides.