dotNet Application Framework

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)

.NetTiers, according to it’s getting started document, is pretty similar to NH, but some people don’t like EntLib. Also I still could find WinForm example yet. In fact, it’s doc page says,

The WinForms library is similar to the NetTiers Web Controls library, but is still in a developmental stage.


2 thoughts on “dotNet Application Framework

  1. Hello, Since there is good and useful information about different frameworks here I thought I’ll add information about the Quick Objects Business Logic Framework as well. Quick Objects is a radically different approach but has some similarities with CSLA. The main similarity is that it is not completely dependent on code generation, and it is rather a framework. QO consists of reusable libraries that are usable without generating any code at all. However, the included Designer application makes it super easy to generate the classes that extend the power of the framework. So essentially the developer is immediately productive using QO. There is no hassle of maintaining templates and no external tools/templates are needed.

    The other big difference is that the QO’s focus is keeping it simple, flexible and keep up the high performance. The business objects generated by QO allow the developer to decide what to select, search, sort, group etc in a very easy way. Also, instead of having a “lazy load” feature where the developer does not have control on what all will be loaded, QO rather has smart loading. For example, if you needed OrderItem, Order, Customer, and CustomerType information, instead of making 4 calls to the database QO can do it in one, and you still have control over what fields get loaded/selected. Similar possibility with multi level joins and searches. Same approach with concurrency management, instead of forcing the developer to choose between Optimistic or Pessimistic, the developer can choose what he/she wants and how (for example may be the developer does not want to include a binary field in concurrency check).

    The biggest difference is that QO is not just limited to CRUD, it has other capabilities such as ability to work in a disconnected environment and reconnecting/saving at a later time. Then the validation framework is the cherry on top. So with QO you don’t need to worry about data access, rather you can concentrate on implementing your logic and validation rules and creating user interfaces.

    And our framework and Data Source for ASP.NET works with almost all third party user interface controls.

    QO has been thoroughly tested and perfected over the years and it is fully supported. We probably have one of the best response times for support requests 🙂 QO is gaining more popularity as people get frustrated with the other approaches and need something flexible and easier to use. In no means I am saying that other approaches are bad, everything has its own +/-

    Ish Singh

    Akal Tech
    Quick Objects – Faster Way To Powerful Applications

  2. Pingback: Video – Reunión ALT .NET Café 29 De Agosto « BeyondNet

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s