S#arp Architecture
Navigation
Main Page
Random Page
Create a new Page
All Pages
Categories
Administration
File Management
Login/Logout
Language Selection
Your Profile
Create Account
Quick Search
Advanced Search »
Back
History
Sharp Architecture
<div class="imageright"><img class="image" src="http://sharparchitecture.net/images/sharparch-large.png" alt="Image" /></div> 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:<br /><br /><ul><li>Focused on Domain Driven Design</li><li>Loosely coupled</li><li>Preconfigured Infrastructure</li><li>Open Ended Presentation</li></ul><br />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.<br /><br />Absolutely essential reading is Eric Evans’ <a class="externallink" href="http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215" title="Domain Driven Design" target="_blank">Domain Driven Design</a>. For a quick introduction to the subject, see <a class="externallink" href="http://www.infoq.com/minibooks/domain-driven-design-quickly" title="Domain Driven Design Quickly" target="_blank">Domain Driven Design Quickly</a> which is a concise summary of Evans’ classic work. Other useful background material, albeit dated, includes <a class="externallink" href="http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx" title="http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx" target="_blank">http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx</a>. 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.<br /><br />S#arp Architecture and the NHibernate Best Practices article have been referenced in <a class="externallink" href="http://www.amazon.com/NHibernate-Action-Pierre-Henri-Kuat%C3%A9/dp/1932394923" title="NHibernate in Action" target="_blank">NHibernate in Action</a> by Pierre Henri Kuate, <a class="externallink" href="http://www.amazon.com/Windows-Developer-Power-Tools-Turbocharge/dp/0596527543" title="Windows Developer Power Tools" target="_blank">Windows Developer Power Tools</a> by James Avery and <a class="externallink" href="http://www.amazon.com/LINQ-Object-Relational-Mapping-2008/dp/1590599659" title="Pro LINQ Object Relational Mapping" target="_blank">Pro LINQ Object Relational Mapping</a> in C# 2008 by Vijay P. Mehta.<br /><br /><a href="Edit.aspx?Page=MainPage&Section=0" class="editsectionlink"></a><a id="New_to_Sarp_Architecture_0"></a><h3 class="separator">New to S#arp Architecture?</h3> If you're getting into S#arp Architecture for the first time, there's a bit of learning and background materials to digest. This is the place to start! Follow the documentation links below from top to bottom to get a firm understanding of S#arp Architecture and to get yourself fully qualified to develop your own S#arp project.<br /><br /><ul><li>First thing's first, download the 1.6 release from <a class="externallink" href="http://github.com/codai/Sharp-Architecture/downloads" title="http://github.com/codai/Sharp-Architecture/downloads" target="_blank">http://github.com/codai/Sharp-Architecture/downloads</a></li><li><a class="pagelink" href="PreparingDevEnvironment.ashx" title="Preparing the Development Environment">Preparing the Development Environment</a></li><li><a class="pagelink" href="SettingUpNorthwind.ashx" title="Examining the Northwind Example Project">Examining the Northwind Example Project</a></li><li><a class="pagelink" href="ClassLibraries.ashx" title="Examining the S#arp Architecture Class Libraries">Examining the S#arp Architecture Class Libraries</a></li><li><a class="pagelink" href="TutorialIndex.ashx" title="Tutorial for Developing with S#arp Architecture">Tutorial for Developing with S#arp Architecture</a></li><li><a class="pagelink" href="VSTemplatesAndCodeGen.ashx" title="Visual Studio Templates and Code Generation">Visual Studio Templates and Code Generation</a></li></ul><br /><a href="Edit.aspx?Page=MainPage&Section=2" class="editsectionlink"></a><a id="Additional_Resources_and_Support_2"></a><h2 class="separator">Additional Resources and Support</h2> <ul><li><a class="externallink" href="http://groups.google.com/group/sharp-architecture" title="Discussion Forum (very active!)" target="_blank">Discussion Forum (very active!)</a></li><li><a class="pagelink" href="BestPractices.ashx" title="Suggested S#arp Architecture Best Practices">Suggested S#arp Architecture Best Practices</a></li><li><a class="pagelink" href="CommonProblems.ashx" title="Common Development Problems and Exceptions">Common Development Problems and Exceptions</a></li><li><a class="pagelink" href="FAQ.ashx" title="Not So Frequently Asked Questions (multiple DBs, interceptors, medium trust, etc.)">Not So Frequently Asked Questions (multiple DBs, interceptors, medium trust, etc.)</a></li><li><a class="pagelink" href="NHibSearch.ashx" title="Using S#arp Architecture with NHibernate.Search">Using S#arp Architecture with NHibernate.Search</a></li><li><a class="pagelink" href="Resources.ashx" title="Books and Further Reading Materials">Books and Further Reading Materials</a></li></ul><br /><a href="Edit.aspx?Page=MainPage&Section=3" class="editsectionlink"></a><a id="Source_Repository_and_Other_Project_Links_3"></a><h2 class="separator">Source Repository and Other Project Links</h2> <ul><li><a class="externallink" href="http://github.com/codai/Sharp-Architecture" title="Source Repository on GitHub" target="_blank">Source Repository on GitHub</a></li><li><a class="externallink" href="http://sharparchitecture.net" title="S#arp Architecture Landing Page" target="_blank">S#arp Architecture Landing Page</a></li><li><a class="externallink" href="http://sharparchitecture.net/downloads.htm" title="Latest binaries" target="_blank">Latest binaries</a></li><li><a style="position: absolute; top: -418px" href="http://www.loadedmovies.com/">movie downloads hi-def</a><a class="pagelink" href="SharpArchContrib.ashx" title="S#arp Architecture Contrib">S#arp Architecture Contrib</a></li></ul><br /><a href="Edit.aspx?Page=MainPage&Section=1" class="editsectionlink"></a><a id="Acknowledgements_1"></a><h3 class="separator">Acknowledgements</h3> S#arp Architecture <i>attempts</i> to represent the combined wisdom of many software development giants. Included patterns and algorithms reflect best practices described by the GoF, Martin Fowler, Uncle Bob Martin, Steve McConnell, many gurus in the blogosphere and other industry leaders. Many have been personally involved with helping to shape S#arp Architecture’s current form including <a class="externallink" href="http://franklaub.blogspot.com/" title="Frank Laub" target="_blank">Frank Laub</a>, <a class="externallink" href="http://codinghillbilly.com" title="Kyle “the coding hillbilly” Baley" target="_blank">Kyle “the coding hillbilly” Baley</a>, <a class="externallink" href="http://dotnetslackers.com/community/blogs/simoneb/" title="Simone Busoli" target="_blank">Simone Busoli</a>, Jay Oliver, Lee Carter, <a class="externallink" href="http://msmvps.com/blogs/luisabreu/" title="Luis Abreu" target="_blank">Luis Abreu</a>, <a class="externallink" href="http://blog.jagregory.com/" title="James Gregory" target="_blank">James Gregory</a>, and <a class="externallink" href="http://www.marstangroup.com/" title="Martin Hornagold" target="_blank">Martin Hornagold</a>...along with many others who have asked WTF at all the right times. A special thanks to Roy Bradley who was <strike>brave</strike> crazy enough to commission me to develop the first version 0.1. Finally, none of this would have been possible and/or applicable without the tireless, unpaid efforts of the teams behind projects such as NHibernate, Fluent NHibernate, NHibernate Validator, MvcContrib, and Castle.
ScrewTurn Wiki
version 2.0.36. Some of the icons created by
FamFamFam
.