MarimerLLC / cslaforum

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

Compare CSLA to DevExpress XAF and other alternatives (if they exist) #844

Open aprokopyev opened 4 years ago

aprokopyev commented 4 years ago

Dear Rockford,

Can you please help me to compare your CSLA to DevExpress XAF framework?

It seems these are the only business frameworks which survived till today.

I do not see any significant progress on any other frameworks mentioned at: https://web.archive.org/web/20191016043646/http://forum.ideablade.com/forum_posts.asp?TID=767

They look obsolete and not compatible with the latest DotNet Core on Linux.

And I am not aware of any other framework.

Yours already supports the latest DotNet features and XAF is going too using at least Blazor as a GUI in about a year.

It seems like XAF is better in terms that it has a graphical designer for the whole business model while CSLA needs a lot of coding and declarative definition of everything except Microsoft GUI designers if used at all.

Is XAF much more productive?

Are there any other business framework alternatives for DotNet Core ?

Can you please highlight the strongest features of CSLA over XAF except price? Both frameworks are open source.

As for me, I think that CSLA is much better in how soon it adopts all new technologies like Mono, DotNet Core, Blazor, etc. May be it is because CSLA provides only very basic features for GUI development. Actually only data bindings interfaces?

Best Regards, Alex

BlagoCuljak commented 4 years ago

XAF is an ORM, like eg. Entity Framework. CSLA is much more.

aprokopyev commented 4 years ago

Most likely you confuse XAF (which is a Business Application Framework) and XPO (which is an ORM).

https://www.devexpress.com/products/net/application_framework/

https://www.facebook.com/DevExpress.XAF

https://docs.devexpress.com/eXpressAppFramework/112559/Fundamentals/XAF-Architecture

Architecture

As for me I prefer nHibernate as an ORM and will probably continue to use nHibernate even if XAF is choosen as a framework. There is a plugin API for other ORMs.

Are there any other comparable framework competitors yet for XAF and CSLA? With DotNet Core support at least in its nearest roadmap. How is it possible that only two frameworks stayed and even they are so different.

I would prefer DevExpress company integrate their XAF with both nHibernate and even CSLA too. CSLA could be used as an alternative code for business rules. Developers could switch between CSLA and XAF implementation of rules without rewriting their custom code. Also may be CSLA could add better concept for multiple logical layers of an application.

So developer could just choose (by a quick switch) what implementation to use by the whole XAF model:

1) For data layer: nHibernate or their native XPO 2) For business layer: CLSA or XAF rules abstractions 3) For visualization: WinForms or WebForms or even Blazor

BlagoCuljak commented 4 years ago

@aprokopyev yes, you are right, my bad!

rockfordlhotka commented 4 years ago

I've never looked at or used XAF, so I can't compare.

It is true that, to my knowledge, no other framework focused on business logic has been around for the 22+ years that CSLA has existed. Some folks, like IdeaBlade, created competitors that were around for a few years here and there. But it is difficult to make money off this sort of thing, at least not the kind of money necessary to run a company, so they've all come and gone over time.

Chicagoan2016 commented 4 years ago

My two cents, Csla is a business layer framework, Rocky does provide some controls for easy integration with different UI 'technologies' like WPF, Winforms, MVC etc. I have never worked with XAF only Csla. How good is XAF's business rules engine? that's one of the strongest aspects of Csla. Another thing I would be looking at, what kinda object stereotypes does XAF support?

Regards

Chicagoan2016 commented 4 years ago

@rockfordlhotka , one of your good friends from CA (currently Nashville) used to sell an excellent framework :), I was a big fan but unfortunately he sold his company and I am not sure if he still sells his framework.

Kind Regards

rockfordlhotka commented 4 years ago

@Chicagoan2016 yes, that's true 😄 And another CA-based friend had NetTiers (??) or something like that.

There've been a few off and on over the years to be sure, each with their own philosophy and set of patterns.

Chicagoan2016 commented 4 years ago

@rockfordlhotka ,I always thought your Nashville friend should have integrated his framework with Csla. In my opinion that would have been a great combination.

Regards

aprokopyev commented 4 years ago

How good is XAF's business rules engine? that's one of the strongest aspects of Csla.

I am not sure if XAF validation covers what you mentioned: https://docs.devexpress.com/eXpressAppFramework/113684/concepts/extra-modules/validation/validation-module-overview

I did not use CSLA yet except a few simple tries. If I understood correctly CSLA remembers a chain of user actions towards to business logic, those can be undone if needed. Each action is validated for business rules conformance.

aprokopyev commented 4 years ago

A screenshot of XAF validation rules in the model designer:

Model Designer

aprokopyev commented 4 years ago

I've never looked at or used XAF, so I can't compare. But it is difficult to make money off this sort of thing, at least not the kind of money necessary to run a company, so they've all come and gone over time.

Perpetual (with only 1 year of upgrades) DevExpress XAF license costs about $2K initially per each developer and then $1K/year for upgrades only if upgrades are needed. End users applications based on XAF are free from DevExpress license charges. If you do not wish to upgrade you can still continue to use your expired subscription perpetually as long as you need.

aprokopyev commented 4 years ago

I wonder if there is any sense to try to use CSLA as an object space provider for DevExpress XAF:

https://www.devexpress.com/Support/Center/Question/Details/E411/how-to-customize-the-underlying-database-provider-options-and-data-access-behavior-in-xaf

https://www.devexpress.com/Support/Center/Question/Details/T400009/can-i-connect-an-xaf-application-to-a-custom-data-source-web-service-odata-service-nosql

XAF Object Space interface -> custom ObjectSpace based on CSLA -> CSLA Data portal -> nHibernate

When performance does not matter but CSLA functionality is needed like CSLA business rules and CSLA portable multitier concept.

So DevExpress XAF would be used more for visualization while CSLA as a distributed application server compatible with Mono which is portable even to OpenBSD and many other operation systems (currently more than where DotNet Core exists).

angtianqiang commented 4 years ago

@aprokopyev I've been using CSLA for the business layer, DevExpress for the interface (WPF), and a framework that works great

aprokopyev commented 4 years ago

Most likely you had to manually design WPF forms or used a custom or third party generator for them. On the other hand XAF does rendering to GUI forms automatically from a model definition without a need to design forms manually, the forms are still created dynamically by XAF at runtime.

Currently WinForms and WebForms on Windows are supported, but in about a year it is going to support also Blazor server side rendering (from model to web pages) even on a Linux server.

Just switch an option like Win/Web/Blazor and XAF will render your data at runtime by a choosen GUI API ruled by your model definition. No any manual changes needed at least unless you customized your own GUI components, it is like a RAD magic.

Chicagoan2016 commented 4 years ago

Most likely you had to manually design WPF forms or used a custom or third party generator for them. On the other hand XAF does rendering to GUI forms automatically from a model definition without a need to design forms manually, the forms are still created dynamically by XAF at runtime.

Currently WinForms and WebForms on Windows are supported, but in about a year it is going to support also Blazor server side rendering (from model to web pages) even on a Linux server.

Just switch an option like Win/Web/Blazor and XAF will render your data at runtime by a choosen GUI API ruled by your model definition. No any manual changes needed at least unless you customized your own GUI components, it is like a RAD magic.

It starts to sound like an advertisement for XAF framework

aprokopyev commented 4 years ago

Actually I am not affiliated with DevExpress, they even do not have an affiliate program for reselling and I did not place any links to any shop. I am an independent developer living in another city from DevExpress dev center, never worked for them. And I even generally develop something only just as a hobby.

Though I have used to purchase a DevExpress subscription earlier and I am very happy with their GUI components, never seen anything more advanced and convenient at the same time.

The reason why I have created this thread is to try to estimate other existing XAF alternatives if they exist, get other people critical opinions. May be something better exists and then I would like to look at it and may be switch to it.

On a popular IT forum there is a mention by another member from Yekaterinburg city (another city, not me and not DevExpress too) that XAF makes development of a general modern data entry application about 50 times faster than if it would be done manually creating corresponding forms and custom framework:

https://translate.google.com/translate?hl=&sl=ru&tl=en&u=https%3A%2F%2Fwww.sql.ru%2Fforum%2Factualutils.aspx%3Faction%3Dgotomsg%26tid%3D1315922%26msg%3D21956329

A copy for me: https://web.archive.org/web/20191202171422/https://www.sql.ru/forum/1315922-a/ishhu-podrabotku-na-devexpress-xaf-na-2-4-chasa-den-v-vechernee-vremya-2tr-30eur-35usd-v-chas?hl=xaf

https://web.archive.org/web/20191202171623/https://github.com/MarimerLLC/cslaforum/issues/844

Though I will try to get a discount from DevExpress for an upgrade ;b They are so good and so hardly affordable for me without a discount :(

aprokopyev commented 4 years ago

Please let me know how much CSLA is portable?

1) Can CSLA work on Mono under OpenBSD? 2) Can CSLA interact remotely crossplatform like: CSLA tierX on DotNet v4.8 under Windows -> CSLA tierY on DotNet Core v3x under Linux -> CSLA tierZ on Mono v6x under OpenBSD
?

rockfordlhotka commented 4 years ago

I haven't tested all those platforms/scenarios, but in general the answer should be yes.

I know it works on

  1. mono (Xamarin sits on mono) on iOS/Android/Mac
  2. .NET Core on Windows and Linux (amd64, arm32, arm64)
  3. mono on Linux (Ubuntu, Debian, and others)
  4. mono on Mac (which is a variant of OpenBSD right?)

Basically, if the platform can host .NET Standard 2.0 code then it will run CSLA - Csla.dll is a netstandard2.0 assembly.

rockfordlhotka commented 4 years ago

In terms of spanning platforms from client to server via the data portal, that works across any platform combination.

Nearly everything I've been doing for the past 12-18 months involves running server-side code in Linux containers in Docker/Kubernetes/etc. and building client apps on Windows, Android, and now WebAssembly.

Chicagoan2016 commented 4 years ago

In terms of spanning platforms from client to server via the data portal, that works across any platform combination.

Nearly everything I've been doing for the past 12-18 months involves running server-side code in Linux containers in Docker/Kubernetes/etc. and building client apps on Windows, Android, and now WebAssembly.

@rockfordlhotka , I am really interested in getting to know about this. I wonder if you get some down time and may be write a blog about this :). Kind Regards

rockfordlhotka commented 4 years ago

My goal, @Chicagoan2016, is to finish the Blazor book and then update the data portal book to include hosting in containers and using the "new" CSLA features to do routing to different containers.

Chicagoan2016 commented 4 years ago

My goal, @Chicagoan2016, is to finish the Blazor book and then update the data portal book to include hosting in containers and using the "new" CSLA features to do routing to different containers.

I look forward to reading the Blazor book, how many books are available on csla store regarding Csla V 5.X ? I know the introduction is free to download.

Kind Regards

rockfordlhotka commented 4 years ago

Right now only the free introduction book is online. Blazor will be book number 2.