The past two weeks have been wonderful for me, spending 12 days on Oahu, Hawaii. Then followed up with the S#arp Architecture 1.5 release.

It has been a short 4 months since taking over as the project lead and this is my first major milestone. With this release, we advance S# even more forward with the ASP.NET MVC 2 enhancements. 

What's is S#?
Pronounced "Sharp Architecture," this is a solid architectural foundation for rapidly building maintainable web applications leveraging the ASP.NET MVC framework with NHibernate. The primary advantage to be sought in using any architectural framework is to decrease the code one has to write while increasing the quality of the end product. A framework should enable developers to spend little time on infrastructure details while allowing them to focus their attentions on the domain and user experience. Accordingly, S#arp Architecture adheres to the following key principles:

  • Focused on Domain Driven Design
  • Loosely coupled
  • Preconfigured Infrastructure
  • Open Ended Presentation

The overall goal of this is to allow developers to worry less about application "plumbing" and to spend most of their time on adding value for the client by focusing on the business logic and developing a rich user experience.

Absolutely essential reading is Eric Evans’ Domain Driven Design.

For a quick introduction to the subject, see Domain Driven Design Quickly which is a concise summary of Evans’ classic work. Other useful background material, albeit dated, and http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx. Although there are major infrastructural changes from the referenced article when compared to the current S#arp Architecture, the general structure is very similar and the background reading is helpful in understanding many of the ideas behind this development foundation.

S#arp Architecture and the NHibernate Best Practices article have been referenced in NHibernate in Action by Pierre Henri Kuate, Windows Developer Power Tools by James Avery and Pro LINQ Object Relational Mapping in C# 2008 by Vijay P. Mehta.

 What's new in this version?

  • ASP.NET MVC 2 - this is the single biggest change. Internally there were not many changes to make use of MVC 2. The largest changes coming to the SharpModelBinder to use the new ModelBinder.
  • Visual Studio 2010 - included with this release are templates for Visual Studio 2010 targeted for the 3.5 framework
  • Areas - the baked in areas have now been updated to use the built-in area support
  • Nhibernate - updated to the latest GA assemblies, 2.1.2.4
  • Fluent NHibernate - updated to 1.0.0.636 built on NHibernate 2.1.2.4
  • MvcContrib - updated to 2.0.36.0
  • Castle project - updated to Castle.Core 1.2, Castle.DynamicProxy2 2.2, Castle.MicroKernel and Castle.Windsor 2.1
  • jQuery - updated to 1.4.2

 Where can I get it?

There are 3 downloads. Two of which are templates only and the last one being the full source with the templates.

Visual Studio 2008 Template only - http://github.com/downloads/codai/Sharp-Architecture/SharpArchitecture_1.5_RTM_TemplateOnly.zip

Visual Studio 2010 Template only - http://github.com/downloads/codai/Sharp-Architecture/SharpArchitecture_1.5_RTM_VS2010_TemplateOnly.zip

Full Source and both Templates - http://github.com/downloads/codai/Sharp-Architecture/SharpArchitecture_1.5_RTM_FullSourceAndTemplates.zip

If you have any questions or concerns, please feel free to browse our google group, http://groups.google.com/group/sharp-architecture