My Master's Thesis Problems and solutions encountered…



So I wanted to post a small epilogue for bringing closure to this blog.

I handed in my Thesis on November 1st 2010, and defended it on November 23rd. I was very nervous about the result as I had spent the better part of 9 months coding the Silverlight application, and really not focusing on the writing of my Thesis until much later than anticipated. But at the end, everything went well - and I got a 12 for my Thesis (an A), which of course was very nice considering the immense amount of hours and stressful months spent on the project.

For the Thesis defence I made a small presentation that outlined the main aspects of my Thesis, along with its three main contributions:

  • The actual Silverlight application (that can be used for streamlining the certification processes for the standards SA8000 and ISO14001),
  • A new process model for software development, that takes into account the special circumstances of the development of RIA's, and lastly,
  • The demonstration of how the MVVM architectural pattern can be implemented.

My Thesis blog has of course focused on the last contribution - the implementation of the MVVM pattern. I have created a model showing the structure of the MVVM pattern, which I have added below, as it provides a good overview and is nice to have seen for anyone reading the other posts in this blog (click to enlarge):

Model-View-ViewModel (MVVM) - Silverlight

The figure lists the content of the View, the ViewModel, and the various classes within the Model:

  • The Model contains all data consumed and modified by the user. It defines the objects needed and the database data access, which populates the objects. The data retrieval and population of objects is completely separated from the other aspects, and can be tested in isolation through unit tests.
  • The View is the actual UI of the application. Written in the declarative language XAML, it defines all buttons, datagrids, dropdown-boxes, and other controls.
  • The ViewModel serves as data binding between the View and the Model. It has several purposes: It acts as data binder/converter as it changes data from the Model into the View, and it executes commands from the View to the Model.

MVVM project - Visual Studio
The MVVM project in Visual Studio is seen in the figure to the right, and shows that the Model, View and ViewModel each are created as individual projects. The View project is created as a Silverlight Application, and contains all the .xaml files, where the UI is specified. The ViewModel, on the other hand, is created as Silverlight Class Library, and contains the .cs files that are binded to the the .xaml files of the View. A .xaml file can be bound to one, and only one, class in the ViewModel, but several .xaml files can be bound to the same ViewModel. The Model is created as a WCF Service Application, which is designed to offer a manageable approach to creating WebServices.

I have zipped my Visual Studio application and stored in my public Dropbox folder. Do not expect it to compile, as I have shut down the WebService and made the database inaccessible. But maybe it can help you somehow:


Filed under: Metapost No Comments