We are looking for a dotNet application Framework, or a framework for dorNet, like PFC in PowerBuilder. It seems this PFC idea is not that popular in dotNet community. So I was surprised when CSLA appear in front of me.
Spent a little of time on it, set up the demo. Looks nice so far. The thing I like most is it supports distribute so well.
Some people complain it’s too HEAVY. My concern is it’s flexibility, such as how to implement NH or Linq. It’s forum is very active, those questions all have answers or solutions.
I wish it is the one we want. There is another one called Quick Object framework. Looks it is not that popular as CSLA.
How about NetTier + Entlib + codeSmith?
Here is Chirstian’s comments:
I have used Codesmith with Net-Tiers templates in several ASP.Net 2.0 projects and found the whole experience very pleasant. There is a slight learning curve into getting to know API of the generated code but you are up and running quickly. Our team were developing in an agile process, with small regualar iterations, hence the database schema was changing several times a day. We could re-generate the data layer at a click of a button no problems. Net Tiers could potentially generate every layer, from datas through to presentationm including web services, however we turned off all layers except for basic data access.
This was perhaps a year ago, and was an exercise to determine our best DAL options. Today I would argue that with the variety of ORM packages available that code generation is dying a slow death, and would recommend depending on your language of choice something like nHibernate, Linq to SQL or Castle active record.
Here is Rockford’s response:
nettiers and csla take radically different approaches to solving issues.
nettiers relies almost entirely (maybe entirely) on code generation and extensive templates. In other words, it generates everything.
CSLA .NET is a framework that tries to fill in the gaps not filled in by .NET itself in the case that you want to design and build an object-oriented business layer for your application. People have created code-generation templates to help implement this style of business object for the business layer.
You’ll have to decide which approach fits your needs the best…
A very interesting discuss about CSLA. Only problem is it happened 4 years ago.
After looking into CSLA code, I am surprised it’s still based on SqlConnection object, and it is using ActiveRecord pattern, not service/task/repository pattern at all. All the so-called business objects also do the retrieve and save data work. There is no DAL, or BO is DAO. It’s very similar to LinqtoSQL. I have to say, CSLA encapsulates distribute very well, and its security service looks very easy to use.
There is a hot fight between CSLA and NH. To CSLA or Not CSLA, is a question, especially if you know NH or LINQ. I think CSLA is more suitable for team coding, just as a developer mentioned:
Again, I used CSLA and liked it, but I don’t know if I would consider myself a CSLA expert. I will say this:
– you are getting lots of functionality for free
– you’re getting something that is supported (Rocky’s book, Rocky’s forums)
– you are getting something that is well-tested (people all over the world are using it)
In CSLA, because you are coding CRUD in business object (DataPortal_Create, Insert, Delete, Update), it will be a lot of wrapping code, and also there is no GUI to help you. (Think about LinQ, or xml file based NH)
The WinForms library is similar to the NetTiers Web Controls library, but is still in a developmental stage.