Like many people who get into Silverlight, I quickly caught the bug and enjoyed this technology that allowed me to create robust business applications in the client relatively quickly. With a few months under my belt I then started looking into different development patters and grabbed ahold of the Model-View-View Model (MVVM) design pattern… I shared my experience of how I learned MVVM here .
Over the last year I spent some time talking about leveraging Silverlight and MVVM with SharePoint 2010 at a few user groups & did a webinar on it that you can watch on YouTube . One thing that surprised me was that many folks in these sessions were under the impression you couldn’t use MVVM with SharePoint. It seemed the CSOM or OData/REST piece of the puzzle was confusing to some. Of course you can!
The next few posts are going to talk about a few things related to SharePoint, MVVM and SharePoint. In here I’ll talk about a few different challenges I ran into and some techniques I’ve adopted. I’ll use this post as the table of contents for all those posts. One thing to keep note of is that most of the topics discussed here are not SharePoint related at all… they are mostly Silverlight & the MVVM design pattern. I’m simply using SharePoint as my app host, deployment vehicle & the thing that holds my data (which is exposed via the SharePoint client side object model (CSOM) or an OData service).
Throughout this series I’ll refer to a reference implementation (RI) I’ve got that you can grab from my company site, Critical Path Training . Just navigate to the Members section & login (create a free login if you don’t already have one) and look in the code samples for the AC’s SharePoint+Silverlight+MVVM Sample Product Browser download. I plan to keep updating it with new stuff.
By the way, these days there’s a lot of noise about the future of Silverlight and Microsoft’s stance and how HTML5 plays a role going forward. I addressed this in a previous post . For now I’m just going to stick with the technology discussion.
So here we go…