Subversion's a great product and hosting on code.google.com with it has been very convenient for getting the S#arp Architecture project to the 1.0 release. But with the large number of ideas people have been wanting to try out on the S#arp Architecture codebase and share with others, it was time to go with a Distributed Version Control system. After taking a close look at both Mercurial and Git, we ultimately decided to go with Git on GitHub.com for the hosting of S#arp Architecture.
S#arp What?
S#arp Architecture is a the world's premier framework, and set of architectural guidelines, for developing domain-driven applications with ASP.NET MVC and (Fluent) NHibernate. S#arp Architecture emphasizes a clean separation of concerns among project layers and uses proven, enterprise design patterns to assist with creating maintainable, scalable business applications. S#arp Architecture includes a Visual Studio 2008 project template, a customizable CRUD scaffolding generator (similar to what Ruby on Rails provides), and pre-configured infrastructure to reduce the time you have to spend on the "plumbing" of your application.
But there hasn't been any major development on it since mid-July...is S#arp Architecture dead?
I've gotten this "complaint" a few times over the past couple of months. Blasphemy I say! S#arp Architecture is far from dead...but keep in mind that it has hit the 1.0 milestone release. To me, this means that it will be experiencing far fewer changes than during the initial year of development and will be more subject to quarterly releases than to continuous development changes. Giving it a version of 1.0 is my commitment to its users that A) it is finished, B) it is stable, C) it is fully ready to handle enterprise project work, and D) updates to it will require a minimal migration effort. Accordingly, I will be providing quarterly releases - the first one likely coming out in early October - with updated dependencies (e.g., NHibernate, Rhino Mocks, and MvcContrib) and expanded documentation, but the core principles and means of developing with it will not be changed. Just because its dependencies may need an update, its core ideas are solid.
But what about ideas X, Y, and Z that were discussed on the forum?
This is where distributed source control comes in. Many people have had a number of good and/or interesting ideas with repect to directions to take S#arp Architecture such as making it more "opinionated," using different dependencies, or having auto-themed CRUD scaffolding templates. Accordingly, the project has moved to http://github.com/codai/Sharp-Architecture to allow developers to easily fork the project, submit upgrades and patches, and to make variations as opinionated as the community would like them to be. Those variations which are the most inline with the goals of S#arp Architecture (very subjective here ;) will likely be merged back with the primary trunk and included in quarterly releases.
So what do I do now?
If you want the latest pre-compiled 1.0 release, simply go to http://code.google.com/p/sharp-architecture/downloads/list and download the 1.0 RTM.
If you want to download the latest source and compile it locally:
- Go to http://code.google.com/p/msysgit/downloads/list and download Git-1.6.4-preview20090730.exe (or latest version). For installation, follow the advice at http://kylecordes.com/2008/04/30/git-windows-go/, particularly the directions under "Install and Configure msysGit on Windows." (This blog post also has other Git tips for going a bit further with it.)
- Open a git-bash shell, cd to where you'd like the S#arp Architecture project to reside and run the following command line to "clone" a copy of the S#arp Architecture codebase to a folder called, aptly enough, SharpArchitecture:
git clone git://github.com/codai/Sharp-Architecture.git SharpArchitecture
- Via Windows Explorer, browse to your newly created SharpArchitecture folder and read _README_FIRST.txt for next steps.
If you want to get your hands dirty and mess around with your own fork:
- http://help.github.com/forking/ - We'll be able to view who has forked S#arp Architecture from the main trunk, but please keep us all posted with what you're up to on the discussion forum at http://groups.google.com/group/sharp-architecture ...there will surely be others interested in what clever ideas you're working on.
If you'd like to learn more about Git:
So where is everything now?
Good question...let's summarize:
Be sure to Google S#arp Architecture to find out more and to see what others are saying about the project...enjoy!
Billy McCafferty
http://www.itsamuraischool.com
Posted
09-14-2009 12:48 PM
by
Billy McCafferty