views:

169

answers:

2

Hi

I've been asked to extend a simple legacy application by adding a few tables and classes in it to extend functionality.

This is a .Net 1.1 application which I have now successfully upgraded to .Net 3.5

Now my problem is that for these new tables and classes I wanted to add an ORM and a business logic layer that I can in the future extend to the legacy classes whenever I need to touch a piece of that code.

I know about a quite few ORM tools that I can use, e.g. Entity Framework and NHibernate.

For me the problem is in deciding what business logic layer to use, I've used csla.net in the past with good results but my question is what other real alternatives are out there ?

+1  A: 

Other than using a tool to maybe code generate some of the business objects and/or DTOs based on the database or data layer, I don't personally have much need for a framework for the business layer.

I believe CLSA.NET helps some with validation, and tries to make it easier to "tier" an application.

Some people may want a framework or something similar to help serialize business objects, but the versioning issues are usually pretty severe, so I work pretty hard to avoid needing that.

My business layers are pretty much business objects, business logic and business rules. I try to keep it minimal, preferring simplicity.

Michael Maddox
A: 

The best approach to designing maintainable applications is to not rely upon any frameworks or code generation tools for the creation of your domain layer (i.e. business layer). Keep your infrastructure away from your domain as much as possible (Infrastructure Ignorance) and avoid all-encompassing, tightly coupled frameworks which try to do everything for you. For infrastructure concerns, seek out targeted frameworks, or frameworks which enable you to chose only those concerns which you need.

Derek Greer