Introduction

In this day and age, Rich Internet Applications (RIA) are all the rage. Microsoft touts Silverlight as the platform of choice for writing RIA-style applications, in particular line of business (LOB) applications. A typical LOB application often deals with data coming from a central database and not only needs to read data, but often modify said data. The first challenge in writing RIA-style applications is how to shuttle data back and forward between the UI and the back-end. On the Web, this challenge is particularly difficult due to the asynchronous nature of web requests and Silverlight is no stranger to this.

Microsoft created WCF RIA Services, a free, but immature framework to address this challenge. Here at IdeaBlade, we build our much more mature flagship framework called DevForce 2010. A free version, which is limited to 10 entities can be downloaded from our website (http://www.ideablade.com/). Both frameworks address the how to access your data over an n-tier infrastructure like the Web. You can learn more about DevForce on our website.

On the UI side of the equation we have MVVM, an architectural pattern that originated from Microsoft. MVVM is not a framework. It’s a way to structure the UI layer of an application. Nevertheless, a number of MVVM frameworks have emerged over time. Each one promises to make things easier. In particular once you get into screen composition, many of these frameworks do make that part a lot easier. The usual suspects you may have heard of are Prism, Caliburn, Caliburn Micro and MVVM Light. The latter is more of a toolkit than a framework. A bag of goodies that are helpful to get started with MVVM, but one might also use a true MVVM framework and complement it with parts from MVVM Light.

Despite DevForce 2010, WCF RIA Services and the various MVVM frameworks, what we are hearing and seeing is that developers new to this world of applications are struggling with putting the pieces together, the how to build a well architected, designed and maintainable application. They understand how to the get the data at the lowest level in the application using DevForce and use MVVM to structure the UI, but what’s missing is the void in between and how to design a compelling user experience. If this sounds all too familiar to you, then you have come to the right place.  A disclaimer upfront, though. The user experience part is more of an art than a science, but very important to the success of a product. At IdeaBlade we are equipped to help with designing a compelling user experience, but the framework we are about to discuss only addresses the building of the UI.

The DevForce Application Framework is a .NET framework, that brings DevForce 2010 and Caliburn Micro together and provides an end-to-end foundation for building an application. The goal of the framework is to keep the noise out of the source code, so that you as a developer can focus on solving the actual business problem and not worry about the plumbing and wiring. I chose Rob Eisenberg’s Caliburn Micro framework, because of its small footprint and easy to understand source code. Caliburn Micro is roughly 2000 lines of code and is available here on CodePlex as well. I do provide a compiled version of Caliburn Micro as part of my framework’s source code, but if you want the latest and greatest, I recommend you download and build Caliburn Micro, separate from this framework.

The focus of the DevForce Application Framework is developing RIA-style applications, but it can also be used to write WPF desktop applications. The assemblies are built for both Silverlight and Desktop.

The following diagram shows the high level architecture of the framework:

High Level Architecture

Last edited Oct 23, 2011 at 7:08 AM by marcelgood, version 12

Comments

No comments yet.