Again I have too much time on my hands so I started looking for new frameworks to take a peek at. Normally I turn to Microsoft for new frameworks. However I thought that it would be a good idea to look for a different kind of challenge this time.
CSLA is a framework for business objects, it offers n-level undo and transaction support. It is build around concepts that can be found in N-tier architecture. However after spending some weeks learning how to use and modify the framework I discovered that it is well suited for service-oriented scenarios too.
One of the things I like about CSLA is the fact that the intelligence on how to insert,update and delete business objects is actually packaged inside the object itself. There is one down-side, the data-access code that is required to insert, update and delete the object is also placed in the business object. That is not something I want. However with a little refactoring it is possible to move that code to separate data-access layer components.
One other thing that I would like to point out about CSLA is the almost 90-degree learning curve. It’s very hard to learn how to use the framework without the book and even if you have the book it’s still a challenge. Once you are over that, it’s a great framework to work with. Now if they only had a set of MyGeneration templates to make it even more convinient to work with the framework.