smiley riley:
I think this is very apt, and probably one of the hardest things to do.
'balance performance, coupling, complexity'
There's no doubt that achieving balance is very hard.
It is certainly true that parts of CSLA are very prescriptive. The framework is focused on helping you build a domain business layer, and within that context it is reasonably prescriptive. It specifies the structure of each object stereotype, and how various stereotypes interact with each other. It specifies how you implement properties, validation rules, business rules and authorization rules. It specifies how you are allowed to move objects between client and app server (mobile objects).
But it expressly does not specify how you create the UI or other interface. It enables data binding in Windows, Web and WPF, but doesn't require it.
And it expressly does not specify how you talk to the database or other data store. It specifies the control points for data operations (the DataPortal_XYZ methods), but doesn't specify how you write them, or what technologies you use.
Rocky