I participated in Code Mastery event yesterday. The event was put on by my company Magenic as an all day free community training event. It was all about CSLA. The author if this widely used framework, Rocky Lhotka himself was in attendance. He presented on two topics. Yours truly spoke on CSLA and XAML technologies. I talked about advantages on CSLA in XAML world, and documented big code savings that CSLA brings to the table. I am planning to upload my project to CSLA web site in the next few days, as there have been some requests to show how to use CSLA in conjunction with Prism to build Silverlight or WPF applications. I will blog once that happens, and you should be able to take advantage of that sample. The sample is using an extensive technology stack, including Entity Framework Code First, CSLA, Prism for Silverlight, SQL Server. You can download PowerPoint presentation here.
Here is the full agenda of the event.
1. CSLA .NET intro – Rocky Lhotka
Topic will give attendees a high level overview of CSLA as an application framework. Key moving parts of CSLA will be covered, along with answering the most important question: Why use CSLA? Roles of business objects, data portal, rules, authentication and authorization will be covered in principal.
2. Business object design – Eric Blackwell
Session will concentrate of best practices for designing business objects. Single responsibility principal and maintainability will be covered in light of using CSLA. Key aspects of good CSLA business layer will be covered in detail, including properties, rules, data portal, data access, business method and validation. Particular attention will be paid to structuring classes and relationship between classes. Designing based on use cases will be an important aspect of the session.
3. Business, validation, and authorization rules – Tim Price-Williams
This session will be a deep dive into the world or rules. Topics such as validation rules, user authentication and authorization will be covered. Distinction between validation and business rules be drawn. Important key scenarios will be covered, such as synchronous and asynchronous rules, client / server rules, object creation and save scenario from rules perspective. Custom and built-in rules be covered in detail. A pattern for typical business rule/methods will be illuminated.
4. Data portal and n-tier architecture – Rocky Lhotka
This topic will cover in details all possibilities that CSLA provides when abstracting communication channels between client and server components. Difference between local and remote data portal will be discussed. Various configuration patterns will be highlighted along with usage scenarios for each one. Multi-tier deployment as it relates to data portals will be covered, as well as using external data sources instead of CSLA data portal in client only scenarios.
5. Data access – Travis Brown
This session is all about data access technologies and how they relate to CSLA data portal access. The topic will include patterns for abstracting data access for business objects to promote maintainability. Discussion of Microsoft technologies for data access will take place as well.
6. XAML and MVVM – Sergey Barskiy
This session will concentrate on using CSLA as business layer in XAML based user interfaces. Taking Silverlight as an example, session will highlight how CSLA base classes can be used to facilitate communication between UI and business objects. Adaptability of CSLA business layer to seamlessly alter user interface based on rules be will covered. Patterns for wiring business objects for Silverlight environment will be part of the discussion.
7. ASP.NET MVC – Mitch Gordon
This session will concentrate on using CSLA as business layer in ASP.NET MVC based user interfaces. The discussion will include CSLA provided base classes that will allow developers write less code. The session will illuminate patters for maintaining authentication and authorization rules between server calls. Patterns for adapting UI based on user rights will be discussed.
Rocky wrote a blog post about the event that includes a link to a downloadable file with all the material enclosed. You can find the blog post here.