The stock market was getting challenging for technical analysts so I lost motivation in developing the Euclid project (mentioned in the previous post.) Perhaps I will revisit it once the markets and trading get interesting again.
I have instead resumed developing my WPF ERP framework. I am currently using / planning to use the following free frameworks / tools available for my client layer:
- Rich Client Presentation Layer: Composite Application Guidance or Prism – http://www.codeplex.com/CompositeWPF (When I create a web presentation layer, I will most probably be using ASP.NET MVC http://www.asp.net/mvc/, ASP.NET Ajax http://www.asp.net/ajax/ and JQuery http://jquery.com/)
- Data Layer / ORM: NHibernate – https://www.hibernate.org/343.html and ActiveRecord – http://www.castleproject.org/activerecord/index.html (or I might sell out and go for Entity Framework 4, but I’ll need to wait for .Net 4.0 for this)
- Reporting: Crystal Reports for Visual Studio (well, it comes free with the IDE and there’s no popular open source products are out there.)
- IOC: Unity – http://msdn.microsoft.com/en-us/library/dd140117.aspx
- Logging, Configuration, etc: Enterprise Library – http://www.codeplex.com/entlib
- Object Mapping: Automapper – http://www.codeplex.com/AutoMapper
- Unit Testing: NUnit – http://www.nunit.org/index.php
- Mocking: RhinoMocks – http://www.nunit.org/index.php
- Code Quality: FXCop – http://msdn.microsoft.com/en-us/library/bb429476(VS.80).aspx and StyleCop – http://code.msdn.microsoft.com/sourceanalysis
- Automated / Continuous Build: NAnt – http://nant.sourceforge.net/ and CruiseControl.Net – http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET
- Work Management: Trac - http://trac.edgewall.org/
This WPF ERP framework will start off as two-tier, consisting only of a client and a remote database, most probably SQL Express Edition.
The design, however, should be scaleable enough so that I can move the business layer to a server and put a service layer on top of it. When this happens, I will be using WCF, naturally.
UPDATE (Dec. 12, 2009)
I have decided to make the following changes:
- Data Layer / ORM: Fluent NHibernate – http://fluentnhibernate.org/
- IOC: Castle Windsor – http://www.castleproject.org/container/index.html

As an alternative to ActiveRecord’s XML-less configuration, you might also want to consider Fluent NHibernate (http://fluentnhibernate.org/)
For reporting, also take a look at fyiReporting (http://www.fyireporting.com/) which is based on the RDL format.
Thanks!
I actually was looking for other alternatives for ActiveRecord as I wasn’t 100% sold on the idea of decorating my domain objects with any kind of persistence metadata.
Thanks also for the reporting suggestion. You’re right, I should go for standards like RDL.