BusinessBase is a fundamental editable business object. Project & Resource are two of these in the ProjectTracker sample. Typically you can create, fetch, insert, update, and delete these.
CommandBase is really more of a object designed to provide the ability for additional server-capable functionality besides the CRUD of a business base and to provide procedural type abilities for the business base (or other classes) to invoke - "Exists" is a common command base that people will often expose via a static method on the BusinessBase. CommandBase will typically shuttle some criteria over to the server (does id #4 exist?) and perform an operation and most times set internal values within itself about "how things went" so that you can pull the result after invoking the functionality of a CommandBase object. i.e. did the Profile exist?
No question is a dumb question but I'd say you have a lot more reading to do! :)
I've been very impressed with CSLA performance thus far, even on an underpowered desktop machine with a 1-tier deployment. And remember, one of the benefits of CSLA is that you can scale up to more tiers with the same code base as your requirements evolve.
It's a bit to get your head wrapped around at first, but then you realize that all your objects work the same way and you don't have business logic tied up in the user interface layer where it can't be reused for another type of interface.
It's all good...
Copyright (c) Marimer LLC