I have a question and am looking for real-world responses. Has anyone who has used CSLA for a significant project done an analysis on the impact to development effort (i.e., development costs). If so, what has been the rule of thumb?
For example, does it impact the effort by -- say -- +10%, 0%, -10%.
I really like this framework and what it does for us, but still must be sensitive to development costs.
It's tempting to just blurt out that it couldn't cost you MORE time to develop using CSLA. But it really just depends on the types of projects you build. If the apps you build don't require n-tier architechture (for a variety of reasons - see the Complexity section in the first chapter), using an n-tier architechture (even with a good framework), will increase the amount of design and implementation work you have to do. You would basically be over-building.
But if your apps require n-tier, and you're comparing designing and developing with CSLA to no framework at all, CSLA WILL save you a LOT of effort. And I believe the savings are approximated well in the earlier reply.
Be sure and take at least SOME advantage of the code generation capabilities that supplement this great framework, too (no matter what tool you choose for that). It really is a separate topic, of course. But to miss out on the opportunity to save the effort eliminated by code generation of your business classes would be a real shame.
There are other frameworks to choose from and I have no experience with any of them. But if you are going to try and make some comparisons between CSLA and another framework, be sure and take the community support into consideration. The "peer" support here is awesome and Rocky is here frequently, too.
You may not realize the gains on your first project; there is, after all, some learning curve here (and with your code generation tool, as well). But the savings on future projects will make it well worth the climb(s).
These are both excellent responses. In looking over the code samples provided to me, it appears the comparison is between CSLA and Datasets. This strikes me as apples or oranges as that actually boils down to a decision between Business Objects or Datasets, which is a different matter entirely.
I would agree that intially it is much easier to drag and drop a table from Server Explorer to create a Dataset that provides generic support for SQL databases, which is what I have generally done historically. However, I also agree with Rocky on the value of using Smart Data in order to contstrain business logic and prevent diffusing it throughout the application, which will eventually become a maintenance and support issue.
I have not looked into any of the code generation aspects regarding CSLA applications. Sounds like this is an area I need to do additional research.
Copyright (c) Marimer LLC