Tuesday, July 28, 2009

What is CSLA .NET?

CSLA .NET is a software development framework that helps you build a powerful, maintainable business logic layer for Windows, Web, service-oriented and workflow applications.

There are many frameworks in the world. Most of them focus on the common issues of getting data into and out of the database or creating a flexible UI. What is typically missing is a focus on managing or implementing business logic. This puzzles me, because business logic is the centerpiece of a business application.

Helping to manage and implement this business logic is the purpose of my CSLA .NET framework and is the focus of my Expert Business Objects books.

CSLA .NET enables you to create an object-oriented business layer that abstracts and encapsulates your business logic and data. The framework ensures your business objects fully support data binding in WPF, Silverlight, ASP.NET Web Forms and Windows Forms. It also supports ASP.NET MVC, Windows Workflow Foundation, WCF and web services interfaces.

CSLA .NET simplifies and standarizes implementation of business logic, validation and authorization logic within your objects. The goal is to provide an easy and consistent coding pattern by which you can encapsulate all your business logic within your object-oriented business layer. The result is a business layer that can support all the interface types listed above, while remaining decoupled from any specific interface technology.

CSLA .NET includes a technology-neutral client/server abstraction, allowing you to build your application and then decide at deployment whether to use 2-tier or 3-tier client/server (and 4-tier with Silverlight). If you opt for 3-tier deployment, you can choose between WCF, .NET Remoting, Web Services or Enterprise Services as a network protocol. The key point here is that you can switch between 2-tier and any of these 3-tier networking options without changing your UI, business logic or data access code; all that changes is a configuration file (and of course deployment to both client and server).

Finally, CSLA .NET provides a clearly defined location in your architecture where you get data from or put data into the database. This is not the focus of CSLA .NET, and so the framework’s goal is to put you in charge. To give you optimum flexibility in how that data is managed and to enable decoupling of the data access from the business object and user interface or presentation layers.

CSLA stands for Component-based, Scalable Logical Architecture, and is the result of over 12 years worth of research and development. The .NET implementation of CSLA was started in 1999, and development continues today, with the addition of CSLA .NET for Silverlight and upcoming support for Silverlight 3.0 and Microsoft .NET 4.0.

(Updated 5/20/2009)

Original article can be found here