MarimerLLC / cslaforum

Discussion forum for CSLA .NET
https://cslanet.com
Other
31 stars 6 forks source link

Alternatives to Csla? #150

Open amselem opened 8 years ago

amselem commented 8 years ago

Hello there

First let me be clear: I'm a fully advocate of Csla.Net and I've been applying it succesfully to my projects.

However now I'm writing some papers (for management) and I'd like to compare cost and features of Csla vs other similar current frameworks. Can you point me to any modern framework which achieves (fully or partially) the same things than csla (even if it isn't .NET based)? What are "non-cslaers" using as business layer today?

Thank you!

rockfordlhotka commented 8 years ago

For my part I'm not actually aware of any current frameworks that do what CSLA does. The primary alternative I'm aware of at the moment is to implement and maintain your own custom framework.

There used to be things like NetTier and DevForce, and sometimes people mistakenly compare CSLA to various ORM tools (which is silly, because CSLA isn't an ORM). I know the DevForce people have moved onto JavaScript (breeze.js), and I haven't heard about NetTier (NetTiers?) for a very long time, so I don't know if it still exists.

People creating non-interactive smart client apps sometimes use things like inRule as a rules engine - but they aren't designed to support the per-property interactivity of CSLA, so they don't really compare either - they are designed for back-end pipeline processing, not supporting rich/interactive smart clients.

Bowman74 commented 8 years ago

I agree with Rocky that I don't know of any other frameworks that handle exactly what CSLA does. What I think is the primary competition is to use an architectural framework and handle the bits that CSLA does that are unique on a more or less ad-hoc per-app basis.

For example, it is common to use one of the many MvvM frameworks, use custom REST services and handle business, validation and authorization logic with some custom code bits. I'd argue that CSLA's largest and most common alternative is to do custom code. I find this particularly true in mobile projects where the amount of business, authorization and validation logic on the client is light and the server APIs are in many cases already in place.

amselem commented 8 years ago

Thank you for your insights, it was helpful!

lmsantin commented 7 years ago

I am a "cslaer" and being honest, I would like to know some alternative to CSLA if I don't want to support rich/interactive smart clients, just web applications. Any recommendations?

jonnybee commented 7 years ago

If you are only doing web applications you can go a long way on using api contract objects/viewmodels with FluentValidation for validating your entities.

You would still need to do mapping between the database model and api contract objects/viewmodels but that is pretty much what you have in many DataPortal_XYZ/Child_XYZ methods.