Tikal's Solution brief on S#arp Architecture
What is S#arp Architecture
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.
It consolidates well known open source projects such ASP.NET MVC, MVCContrib, NHibernate, NUnit, log4net, Castle, T4Toolbox
Why S#arp Architecture
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.
Visual Studio Templates and Code Generation
S#arp Architecture provides project template for creating a multi tier application containing
- Web application (ASP.NET MVC + MVCContrib)
- Business layer - domain objects
- Data access layer (NHibernate based)
- Unit test project (NUnit)
- code generation template - CRUD Scaffolding
CRUD Scaffolding allows to automate adding new model to the project by generating suitable code for all tiers of application: Domain object, add/edit/remove web forms, unit test etc.
ASP.NET MVC and MVCContrib
The ASP.NET MVC framework provides an implementation of the “Model – View – Controller” design pattern for ASP.NET. Since 2007, the ASP.NET MVC framework has been implemented as an open framework, enabling the possibility of open source development in conjunction with the framework.
MVC Contrib is a community project that takes advantage of this openness to provide enhancements and alternative implementations to the ASP.NET MVC framework that are open source. Grounded in principles of test-driven development, MVC Contrib is especially useful to developers looking to develop and test UI elements on top of the ASP.NET MVC framework.
NUnit
NUnit is a unit-testing framework for all .Net languages. Initially ported from JUnit, the current production release, version 2.5, is the sixth major release of this xUnit based unit testing tool for Microsoft .NET. It is written entirely in C# and has been completely redesigned to take advantage of many .NET language features, for example custom attributes and other reflection related capabilities. NUnit brings xUnit to all .NET languages.
References:
S#arp Architecture official site - http://wiki.sharparchitecture.net/
ASP.NET MVC at CodePlex - http://aspnet.codeplex.com/wikipage?title=MVC&referringTitle=Home
MVC Contrib at CodePlex -http://mvccontrib.codeplex.com/
NUnit official site-http://www.nunit.org/
