"Building rich applications can be a challenge in today’s environment. You have a wide range of UI technologies and patterns to choose from like ASP.NET, MVC, MVP, MVVM, SilverLight, Mobile, WFP, WCF. To complicate matters UI techniques are evolving and you often find yourself supporting many presentation layers. CSLA (Component-Based, Scalable, Logical Architecture) is a fantastic framework for building business objects which tie together the multitude of UI choices with the data provided by any number of access technologies.
The primary focus of CSLA .NET is to help in the creation of a rich object-oriented business layer that expresses the needs of the business domain model. CSLA objects provide rich databinding, validation and authorization making them a logical choice for today's business applications and services. This talk will provide an introduction to CSLA.
2. Introduction to CSLA
Objective
Develop an application design architecture that will allow
us to develop leading edge applications utilizing a
composite design approach.
Our design needs to provide us with the following
features
• Performance
• Scalability
• Security
• Maintainability
• Extensibility
• Testability
3. Introduction to CSLA
Challenges of Application Development
Applications are costly to develop and maintain
• Lack of consistency at an architectural level
• Too much focus on technology, not enough on business
Applications become rigid and hard to change
• Lack of formalization around building a business layer
• Too many “one-off” solutions to problems
Underlying technology is in constant change
• Technology is in turmoil
– UI technologies change continually
– Database access techniques change regularly
4. Introduction to CSLA
What is CSLA .NET?
•A development framework focused on
managing and implementing business logic
•Enables creation of business objects with
automatic support for advanced features
•Supports 1,2 and n-tier deployment models
Provide flexible data management
5. Introduction to CSLA
CSLA .NET Features
•Data binding
•Silverlight, WPF, Windows, Web
•Standardized business logic
•Validation rules
•Authorization rules
•Powerful undo capabilities
•Abstract data persistence
•ADO.NET, EF,LINQ, Others
•Mobile objects
•Deployment flexibility
7. Introduction to CSLA
Responsibilities
Layer Roles
Interface Renders display and collects user input.
Interface Control Acts as an intermediary between the user and the business
logic, taking user input and providing it to the business
logic, then returning results to the user. (ASPX Server Side
Code)
8. Introduction to CSLA
Responsibilities
Layer Roles
Interface Renders display and collects user input.
Interface Control Acts as an intermediary between the user and the business
logic, taking user input and providing it to the business
logic, then returning results to the user. (ASPX Server Side
Code)
Business Logic Provides all business rules, validation, manipulation,
processing, and security for the application.
9. Introduction to CSLA
Responsibilities
Layer Roles
Interface Renders display and collects user input.
Interface Control Acts as an intermediary between the user and the business
logic, taking user input and providing it to the business
logic, then returning results to the user. (ASPX Server Side
Code)
Business Logic Provides all business rules, validation, manipulation,
processing, and security for the application.
Data Access Acts as an intermediary between the business logic and
data management. Also encapsulates and contains all
knowledge of data access technologies (such as ADO
.NET, Enterprise Library etc), databases, and data
structures.
10. Introduction to CSLA
Responsibilities
Layer Roles
Interface Renders display and collects user input.
Interface Control Acts as an intermediary between the user and the business
logic, taking user input and providing it to the business
logic, then returning results to the user. (ASPX Server Side
Code)
Business Logic Provides all business rules, validation, manipulation,
processing, and security for the application.
Data Access Acts as an intermediary between the business logic and
data management. Also encapsulates and contains all
knowledge of data access technologies (such as ADO
.NET, Enterprise Library etc), databases, and data
structures.
Data Storage & Physically creates, retrieves, updates, and deletes data in
Management a persistent data store. (SQL Server)
11. Introduction to CSLA
N-tier independent
•1-, 2- 0r 3-tier deployments support
•Change deployment models without changing code
15. Presentation title
Object Stereotypes
• Editable object
Single
List
Root
Parent
Child
• Dynamic list
List of editable root objects
• Read-only object
Single
List
16. Presentation title
Object Stereotypes
• Name/value list
Read-only list of name/value objects
• Command
Execute code on client and server
• Criteria
Parameter object to create/fetch
• Object factory
Create
Fetch
Update
Delete
Execute
18. Introduction to CSLA
CSLA .NET Reduces Application
Development and Maintenance Costs
•CSLA defines specific application layers
• Every type of code has a “home” in the architecture
•CSLA codifies a formal architecture
• Framework makes it easy to do the right thing
• Developers follow the path of least resistance
•CSLA enables object-orientation
• OO design results in code that is more…
Organized, readable, maintainable, flexible
•CSLA lets developers focus on your business problems,
not the technology
19. Introduction to CSLA
CSLA Increases Application Agility
•Formal business layer enables change
• Change the UI, Change the database, change
deployment
• Use iterative, agile techniques to refactor objects over
time
•Object-oriented design aligns with business
• Use case driven design
• Common terminology between business and
developers
•Object-oriented business layer enables change
• Minimize dependencies and coupling
• Normalization of behavior
20. Introduction to CSLA
CSLA Minimizes Impact of Change
A CSLA .NET business layer is
•UI independent
• Web Forms, AJAX, MVC, Silverlight, WCF services,
Workflow, Windows Forms, etc
•Database independent
• Formal structure for invoking all CRUD operations
• Can use any data access layer or ORM tool
– ADO .NET, Enterprise Library, Entity Framework, NHibernate, etc
•N-tier independent
• 1-, 2- 0r 3-tier deployments support
• Change deployment models without changing code