Images in this post missing? We recently lost them in a site migration. We're working to restore these as you read this. Should you need an image in an emergency, please contact us at
S#arp Architecture 0.9 Released!

I'm pleased to announce that S#arp Architecture 0.9 has been released at  Along with completely updated documentation (in /docs) and migration guidance (in /VersionHistory.txt), this release has a number of improvements to the SharpArch libraries including, among others:

  • Update of dependencies such as ASP.NET MVC Beta;
  • Inclusion of NHibernate.Validator and Fluent NHibernate (no more HBMs...although they're still supported if you love getting your hands dirty in XML);
  • A final resolution to Equals and GetHashCode; they're now completely independent from one another;
  • Interfaces for DomainObject (was "DomainSignatureComparable") and PersistentObject for rolling your own versions if you'd prefer;
  • A greatly simplified Repository interface and with a small addition of GetByProperties (and now being called "Repository" instead of "DAO" to be more inline with DDD nomenclature); the more advanced NHibernate-centric Repository interface is still available for use if needed;
  • Support for NHibernate configuration settings being elsewhere than web.config; and
  • An extracted DbContext, accessible from any Repository, to access methods such as CommitChanges and RollbackTransaction.

The Northwind sample project code has also been developed further to include:

  • Plenty of examples of using Fluent NHibernate in various situations such as one-to-many, many-to-one, many-to-many;
  • Inclusion of NHibernate.Validator as the preferred mechanism for performing validation with S#arp Architecture (although other mechanisms may be used); and
  • A full CRUD life cycle example (trivial as it may be) for managing basic employee information.

While feedback is always welcome and encouraged, I particularly hope to receive a lot of critiques, suggestions, and ideas for improvement of the employee CRUD example as this will serve as the basis for templates and scaffolding generators.

To give you an idea of what stands between 0.9 and 1.0:

  • Add WCF integration
  • Add example of using a Unit of Work to encapsulate non-trivial controller logic
  • Add support for the Common Service Locator
  • Hone CRUD capabilities
  • Scaffolding generators!  I intend to include scaffolding generators for various presentation options such as ASPX, Ext JS and NVelocity.

A big thanks goes out to Frank Laub, Simone Busoli, Luis Abreu, Kyle Baley, and Roy Bradley for the terrific insight, suggestions and all around assistance for this release.  Feel free to join in on the discussions at


Billy McCafferty

Posted 11-12-2008 10:43 PM by Billy McCafferty
Filed under:



Dew Drop - November 13, 2008 | Alvin Ashcraft's Morning Dew wrote Dew Drop - November 13, 2008 | Alvin Ashcraft's Morning Dew
on 11-13-2008 8:23 AM

Pingback from  Dew Drop - November 13, 2008 | Alvin Ashcraft's Morning Dew

Reflective Perspective - Chris Alcock » The Morning Brew #223 wrote Reflective Perspective - Chris Alcock » The Morning Brew #223
on 11-14-2008 3:28 AM

Pingback from  Reflective Perspective - Chris Alcock  » The Morning Brew #223

ASP.NET MVC Archived Blog Posts, Page 1 wrote ASP.NET MVC Archived Blog Posts, Page 1
on 11-14-2008 11:31 AM

Pingback from  ASP.NET MVC Archived Blog Posts, Page 1

Digital Donkey wrote re: S#arp Architecture 0.9 Released!
on 12-21-2008 6:32 PM

Hi Billy,

Can you please comment on S#arp Architecture's approach towards the MS EntLib Application blocks?

Specifically, you mention that NHibernate.Validator is the preferred mechanism for performing validation in this release. Would it be straight forward to replace that with the EntLib Validation Application Block, for example?

I haven't dived into the code just yet, but thank you in advance for the release!

Billy McCafferty wrote re: S#arp Architecture 0.9 Released!
on 12-21-2008 9:17 PM

Although I haven't tried it, I doubt that it would be difficult to switch out the validation mechanism.  you'll just need to alter SharpArch.Core.DomainObject and the auto migration of NHibernate validator errors to the MVC view.

About The CodeBetter.Com Blog Network
CodeBetter.Com FAQ

Our Mission

Advertisers should contact Brendan

Google Reader or Homepage Latest Items
Add to My Yahoo!
Subscribe with Bloglines
Subscribe in NewsGator Online
Subscribe with myFeedster
Add to My AOL
Furl Latest Items
Subscribe in Rojo

Member Projects
DimeCasts.Net - Derik Whittaker

Friends of
Red-Gate Tools For SQL and .NET


SmartInspect .NET Logging
NGEDIT: ViEmu and Codekana
NHibernate Profiler
Balsamiq Mockups
JetBrains - ReSharper
Web Sequence Diagrams
Ducksboard<-- NEW Friend!


Site Copyright © 2007 CodeBetter.Com
Content Copyright Individual Bloggers


Community Server (Commercial Edition)