by alec.whittington
19. December 2010 07:37
It has been quite some time since our last release. This latest release brings upgrades in several dependencies as well as removing of others.
Upgraded
The following dependencies have been upgraded to their latest versions:
Removed
The following have been removed from the project:
- MvcContrib.Castle -> There were only two classes from this assembly we were using: WindsorExtensions.cs and WindsorControllerFactory.cs. Since the release schedules of many OSS projects do not match up and the fact that the MvcContrib project had already updated their vNext (MVC 3) branch with the castle dependencies and not the MVC 2 branch, it was decided we should bring these two classes in and lose the dependency when it was not needed.
- Castle.DynamicProxy2 and Castle.MicroKernal -> The assemblies were merged into other assemblies by the Castle project. They are no longer needed
- NHibernate.Linq -> Since NHibernate 3.0 GA has a new Linq provider, it was no longer needed.
Download it now
We are offering this release in two formats, a Templify package and binaries only. Since the source is readily available, we no longer will be prodiving it in the downloads. If you do not know what Templify is, you can read about it here. If you are going to spin up a new solution, please follow the guide for using Templify below. It will show you how to get the package into your Templify repo. If you are wanting to upgrade a 1.5.x or higher solution, follow the guide to upgrading.
Starting a fresh solution with Templify
If you have not already downloaded and installed Templify, do so now. You can obtain the build from: http://opensource.endjin.com/templify/download.htm
- Download the Sharp Architecture 1.9.0.0 Templify package from: https://github.com/downloads/sharparchitecture/Sharp-Architecture/sharp-architecture-1.9.0.0-templify-package.zip
- Extract the contents into their own folder
- run the copy-package.cmd script
- Follow the instructions located here (http://weblogs.asp.net/alecwhittington/archive/2010/10/10/using-templify-to-create-a-new-s-arp-architecture-solution.aspx) to get up and going using Templify.
Upgrading your existing project
These instructions are only good for people using Sharp Architecture 1.5.x or higher.
- Download the Sharp Architecture 1.9.0.0 binaries only zip from: https://github.com/downloads/sharparchitecture/Sharp-Architecture/sharp-architecture-1.9.0.0-binaries-only.zip
- Extract the contents into their own folder
- copy the contents of the folder into your /lib folder
- Delete the following from the /lib folder
- Castle.DynamicProxy2.dll and .xml
- Castle.MicroKernel.dll and .xml
- Castle.Services.Logging.Log4netIntegration.xml
- MvcContrib.Castle.dll and .xml
- NHibernate.Linq
- Open your solution in Visual Studio
- Go through each project and remove references to
- Castle.DynamicProxy2
- Castle.MicroKernel
- MvcContrib.Castle
- NHibernate.Linq
- Now you need to update your projects to use the proper version of the updated components. There are several ways to do this, from upgrading each .*proj file manually or by using Visual Studi. I've done it both ways, but prefer to use VS to help out.
- Using Visual Studio - Open a project that references any of the following: Castle.*, NHibernate.*, MvcContrib.*, Fluent NHibernate, or SharpArch. Right click on the reference and click properties. Once there, set Specific Version = true. This will update the proj file to use the version that is in your /lib folder.
- Build the solution to see what errors are there
- Remove reference to MvcContrib.Castle from your global.asax in the .Web project.
- [OPTIONAL] Update your component registration to use the newer Castle.Windsor API
Your mileage will vary. If you find any issues with this, please report them on the google group, http://groups.google.com/group/sharp-architecture.
Notables
I would like to point out that we have removed the dependency on MvcContrib.Castle, if you are using anything more than the WindsorExtensions.cs and WindsorControllerFactory.cs, then you will need to implement that functionality yourself or upgrade MvcContrib to the latest dependencies. While we normally do not like to nick code from others, in this case we wanted to upgrade to the latest version of Castle (also required for NHibernate and Fluent Nhibernate) and would have had to make a custom build of MvcContrib to do so properly. The end result is that those two classes now reside within S# and we have one less dependency that has a dependency.