I happen to have a lot of experience with CSLA.   I cannot
wholeheartedly recommend it.

We use it in our shop for the current version of our main app, but do
not plan on using it when we begin work on our next version.

One reason is because no one on my team understands how it works and
would not be able to support it if I left.

A bigger reason is because many of its features either are not useful
to us, N-Level undo, for example.

CSLA is designed for scaling to large number of users and for running
in a distributed environment.   We have few users at any given site,
mostly under 10, and have no need to run as a distributed application
on 99% of our customers.

Also, the way CSLA handles errors with its BrokenRules collection is
clumsy, offering few decent ways to report problems to users.  We
ended up with a jury-rigged mess of code designed to bypass CSLA’s
restrictions.  Had we designed the error handling from scratch, which
we will do in the next version, we would have come up with a more
flexible system that matches our UI needs better.

In short, CSLA’s design imposes complexity, limitations, and
performance issues not appropriate to our environment.  It may not be
appropriate to yours either.

Don’t get me wrong.  CLSA is a well-thought out design, and there are
many very good ideas it incorporates nicely.  That said, some of its
design is predicated upon problems that are not the same as when it
was first written.  Distributed programming in particular has
solutions now that I think are superior to those offered by CSLA.
The first question you should ask is, “Why do I want to use CSLA?”
What are the precise features of its design that you need or want?
Once you have that question answered, do research to make sure CSLA’s
solution is the best, or at least acceptable, option.  Steal the ideas
that are right for solving your problems.  The rest you can safely
disregard and roll your own solutions instead.


- R.B. Davidson

On Feb 18, 5:40 am, Pooja <[email protected]> wrote:
> Can anyone help me on CSLA ??We are upgrading our software and
> planning to use CSLA framework... Please help me with good intro on
> the same... Thanks in advance...

Reply via email to