Working on solutions based on IoC systems and for our recent DotNetMarche workshop, in which we shown how you can architect a solution based on these systems and some advantages you can have using AOP techniques, I wanted to update the actual Castle Windsor binaries I use in my Silverlight solutions.

The version I used in the past was tied to Silverlight 3, but with Silverlight 4 going RTM I thought that an update was needed; given also the tremendous job the guys that maintain and develop the solution are doing to add new features, improve performances and narrow down the number of assemblies the core solution have.

I downloaded the solution and tried to compile it for Silverlight 4, unfortunately during the moving from Subversion to Git and during the solution refactoring some things were left behind/stopped working (the refactoring is still in progress) and the project compiles well for .net 3.5 but not for Silverlight: the relative solutions got removed from the project.

So I’ve then decided to checkout the actual trunk code, and brutally rebuild the solution files using Visual Studio 2010 and recompile them by myself, it wasn’t that hard after the refactoring they made. Exchanging a couple of mails with Krzysztof Koźmic on the topic, he suggested me to create a fork on Github and also informed me that Julian Birch was working on a solution to convert and adapt the project to enable Silverlight compilation (however Julian is currently working only on Castle.Core, while I also needed Windsor for the IoC container).

After fighting against Git a bit to make it work on my machine, I was able to have it up and running and commit the files to my forks, here are some links for you:

Castle Windsor: http://github.com/castleproject

My forks: http://github.com/AGiorgetti

The compiled binaries:

Note: actually I’ve got no unit tests that runs on the Silverlight solution, I took those binaries and used them in my current projects without any issue (but I’m not using any of the more advanced Castle Windsor capabilities, just normal plain IoC/DI and AOP through interceptors). Julian’s solution have a version of NUnit (the unit test framewrok used in Castle) that works with Silverlight, when I’ve time I’ll look into it or maybe I’ll see how hard is to port the tests into the standard Silverlight test framework.

Related Content