Project DescriptionThis project will attempt to consolidate various interesting CodePlex frameworks into a comprehensive build environment for implementing non-trivial spikes and prototypes related to composite application and system development.
Target: Visual Studio 2010 and .NET 4.0
Phase II:
Now that version 4.0 of the .NET framework has been released, I'll be gradually moving this project into a second "phase". In the first phase the focus was on identifying useful libraries and guidance that could contribute to a powerful and flexible sandbox for advanced experiments and prototyping of fairly complex systems. Most of the heavy lifting, of course, is provided by the constituent parts that have been developed elsewhere. And that, in case you were wondering, is the whole point of this humble exercise.
Now let us see what obtains as we strive to "compose" a larger system out of prefabricated building blocks developed by the leading providers of architectural guidance for our platform of choice. You may have noticed that there has been some exploration of the "auxilliary" apparati that might be put to good use and that quest will not be abandoned. But for the moment, the focus is going to narrow a bit to begin construction with a core set of "mature" resources:
| Download | Version | Description |
| Enterprise Library | 5.0 | MS P&P: "Cross-Cutting Concerns" (a.k.a. AOP) |
| Unity | 2.0 | MS P&P: Dependency Injection (IoC) |
| Prism | 2.2 | MS P&P: Composite WPF Application Library |
| CSLA | 4.0 b2 | "Mobile" Business Objects Library - Rockford Lhotka |
Note that these are now all official release versions available on their original sites. They are all touted as compatible with .NET 4.0. Thus they will no longer need to be maintained here in any extensively modified form. However,
Composure will likely continue to include the sources for these and some minor modifications may be necessary. Wherever this is the case, the modifications will be duly noted and fully explained.
Ultimately, I will be striving to include several different business logic and persistence layers to choose from: Entity Framework, Castle Active Record, NHibernate, and CSLA. I do not have a particular philosophical preference among these (or others). Each one of them has different strengths and weaknesses. It will be interesting to see which of them works best with the other frameworks (EntLib, Unity, Prism) in various situations.
Phase I Artifacts:
Some of the modified auxilliary frameworks that were posted here will remain available for download. But as versions start appearing compatible with the new .NET framework I'll be taking those down as well unless important modifications must be maintained specific to the build strategy of
Composure solutions.
NOTE: An "NA" in the conversion column means the project now currently supports .NET 4.0 / Silverlight 4.
Auxilliary Packages
| Originating Project | Version | Conversion | Description |
| Caliburn | 44007 | NA | Application Framework for WPF and Silverlight 4 |
| Calcium | 84609 | NA | Application Framework for WPF and Silverlight 4 |
| AvalonDock | 62949 | NA | Popular VS-Style WPF docking library |
| NHibernate | 3.0.0.GA | NA | Robust Entity Persistence Framework |
| MEF | 2P2 | NA | Interesting insight into the MEF implementation |
| log4net | 1.2.10 | LogNet4 | A new branch of the venerable logging framework |
| CruiseControl.NET | 2010-01-27 | NET4 | Recent trunk conversion of the Continous Integration framework |
| Gallio | 3.2.260.x | NET4 | Automation framework with an emphasis on testing |
| NUnit | 2.5.3 | NET4 | A widely used testing framework |
| xUnit | 53389 | NET4 | Recent drop of another popular testing framework |
| Moq | 4.0.812.4 | NET4 | A popular and easy to use mocking framework |
| MS Web Test LW | Nov 5 2009 | NET4 | Snazzy little tool for web testing (first part of an AJAX port) |
| MS AJAX Library | 46266 | NET4 | Microsoft's AJAX Library |
| CassiniDev | 40745 | NET4 | A small and portable web server, ideal for simple testing. |
Be sure to run the unit tests to understand where any problems lurk.
IMPORTANT WARNING!
These are
MODIFIED VERSIONS OF THE ORIGINAL DROPS and they are to be used
ONLY FOR EXPERIMENTAL AND EDUCATIONAL PURPOSES! I strive to use the absolute minimum amount of modification to create stable builds, but there is always a good chance that this will vary significantly from the approach that will be taken by the originating teams in their future release versions. There are guaranteed to be substantial differences in the way that each developer will choose to use new features of the latest framework. So it goes...
Special Thanks to Those Who Support Open Source Development: