CSLA .NET provides a home for your business logic. It helps you build a scalable and reusable business domain object model for your application. Your business logic can run anywhere .NET runs: Windows, iOS, Android, Linux, Mac, and more.
Questions with the csla tag should relate to the CSLA .NET framework.
CSLA .NET
A Home for Your Business Logic
CSLA .NET is an open source framework, created by Rockford Lhotka, designed to help developers create a rich, scalable, reusable, and maintainable business domain model for their application. This business domain model is ideally designed around user scenarios/stories or use cases, and encapsulates business, validation, and authorization rules.
CSLA .NET also supports an architectural concept called mobile objects. Using this concept, in an n-tier application the business object graphs are able to move between the client workstation and application server. The CSLA .NET data portal enables this concept, as well as completely abstracting any idea of the network from the application code. The result is that an application can switch from a 1- or 2-tier deployment to a 3- or 4-tier deployment without needing to change any application code.
The platforms supported by CSLA .NET include:
- Windows (MAUI, UWP, WPF, Windows Forms)
- Android (MAUI, Xamarin)
- iOS (MAUI, Xamarin)
- MacOS (MAUI, Xamarin, .NET Core)
- Linux (MAUI, Xamarin, .NET Core)
- WebAssembly (Blazor, Uno, etc.)
- Blazor, ASP.NET MVC, Razor Pages, Web API, Web Forms
The primary feature areas provided by CSLA .NET are:
- Business rules: CSLA .NET includes a rules engine supporting business, validation, and authorization rules. This engine integrates with, and extends, standard DataAnnotations, and brings DataAnnotations support to WP7 and Windows Forms. Additionally, it supports synchronous and asynchronous rule execution
- Data binding support: Business objects created with CSLA .NET support data binding in all supported platforms. The data binding support includes full support for in-place editing in datagrid controls, as well as read-only data, and standard detail forms.
- LINQ: CSLA .NET collections are queryable, and can optionally create "live views" so changes made to the results of a LINQ query are automatically synchronized with the original business object.
- Mobile objects: Through the data portal, CSLA .NET supports 1-, 2-, 3-, and 4-tier application deployments, and allows an application to switch between deployment configurations without changing existing code.
- Abstract persistence: CSLA .NET is not an ORM and does not implement mapping to databases. However, the data portal does provide a clear, well-defined structure for invoking the application's data access layer. This is abstract, and supports the use of any data access technology, including ADO.NET, Entity Framework, dapper, REST service calls, interacting with the file system or XML files, or any other data access model you care to use.
Important links
- CSLA .NET home page
- CSLA .NET releases
- Frequently asked questions and docs
- Online discussion and support forum
- Discord server
- CSLA .NET license (MIT)