Billy McCafferty, one of the creators of S#arp Architecture, recently announced S#arp Lite. The new framework is an effort to scale back to just the essential parts of S#arp Architecture, and make it more accessible to all developers.
S#arp Architecture is a framework for developing ASP.NET MVC applications using NHibernate. It focuses on ease of maintenance, domain-driven design, and scalability. According to McCafferty, one of the downsides of building an application with S#arp Architecture is the steep learning curve:
To many, S#arp Architecture is simply too big of an architectural framework to easily get your head around. When I used to discuss S#arp Architecture with teams who were considering using it, I would always suggest that their developers be very experienced and well versed with topics such as dependency inversion, low-level NHibernate, and domain-driven design. The reality of business is that it's not likely that your team will be made up of all senior level developers who are all experts in these topics.
S#arp Lite reduces S#arp Architecture to its absolute essentials. It includes a project template set up to connect to a database via NHibernate, a set of reusable class libraries, a base repository, and a sample project. The base repository only includes the methods Get, GetAll (returning IQueryable, which can be further manipulated using LINQ queries), SaveOrUpdate, and Delete.
McCafferty says that one of the main goals with S#arp Lite was to stick to the architecture of the original project. However, a few things had to change in order to keep S#arp Lite as scaled-back as possible:
- controllers have been moved from .Web.Controllers to .Web, as part of the presentation layer
- an .Init project was added to remove initialization-related dependencies from .Web
- the .NHibernate layer is greatly reduced (and could even potentially be replaced with EntityFrameworkProvider).
For more details on the structure of S#arp Lite, please refer to S#arp Lite: The Basics. The framework is available for download from GitHub.