Representing Component-Based Scalable Logical Architecture, CSLA.NET is a software development framework designed to manage the cost of building and maintaining applications. By focusing on object-based design, CSLA provides all its created business objects with full functionality across all .NET platforms. CSLA is widely preferred due to its versatility and detailed documentation. The great barriers to successful CSLA implementation are the challenging learning curve and its complexity; These factors lead some to consider other options.
Businesses gravitate toward CSLA because of its ease of use with other critical programs and platforms. The latest incarnation of CSLA.NET, version 4.3, works with Microsoft.NET 4.0, Visual Studio 2010, and Silverlight 5. As demand for robust mobile applications increases, CSLA 4.3 also supports mobile devices, including Linux, Android, and Mac. OSX.
Utility aside, some critics argue that CSLA’s learning curve makes it unsuitable for some business needs. In theory, small businesses don’t have the time or budget to learn the program or hire experts. CSLA’s only documentation comes in the form of books by creator Rockford Lhotka, and while they are not prohibitively expensive, some may object to the proposal to learn a software development framework from a book. The alternative would be to seek a mentor in the classroom setting, but the cost (and perhaps more significantly, the time) involved could be a barrier to entry. Even with training, companies will need at least one person with expert knowledge of things like serialization, generics, and programming using abstract classes. Although no software development framework is “easy” to learn, other open source alternatives may provide a simpler solution. Likewise, the belief in the “bloat of functions” of CSLA generally comes from those with a specific need as opposed to the broad applications of CSLA. For a startup with a small project, CSLA’s powerful capabilities could become unnecessary complications.
Other users cite frustration with reliance on CSLA in reflection on interface method implementation. CSLA DataPortal uses reflection to identify the behavior of saving and retrieving data for an object, which can lead to problems when debugging your code. Specifically, reflection will override compile time during DataPortal runtime, increasing the threat of implementing buggy code. Also, critics of reflection claim that it is slow, especially compared to running static code.
Lhotka developed the flagship version of CSLA.NET in 1998, and its long history of refinement has now earned it the “alpha and omega” status of open source software development frameworks. For some, your general capabilities will require too complex knowledge for efficient use due to time and budget constraints. Those without the experience or finances to take full advantage of CSLA.NET offerings should consider a more focused open source alternative. However, for companies that have the means to take full advantage of it, it remains one of the best options on the market for open source .NET development frameworks.