21
Introduction to CSLA Chris Dufour Software Architect, Compuware [email protected]

Introduction to CSLA

Embed Size (px)

DESCRIPTION

"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.

Citation preview

Page 1: Introduction to CSLA

Introduction to CSLA

Chris Dufour

Software Architect, Compuware

[email protected]

Page 2: Introduction to CSLA

Objective

Introduction to CSLA

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

Page 3: Introduction to CSLA

Challenges of Application Development

Introduction to CSLA

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

Page 4: Introduction to CSLA

What is CSLA .NET?

Introduction to CSLA

•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

Page 5: Introduction to CSLA

CSLA .NET Features

Introduction to CSLA

•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

Page 6: Introduction to CSLA

Distributed Architecture

Introduction to CSLA

Page 7: Introduction to CSLA

Responsibilities

Introduction to CSLA

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)

Page 8: Introduction to CSLA

Responsibilities

Introduction to CSLA

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.

Page 9: Introduction to CSLA

Responsibilities

Introduction to CSLA

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.

Page 10: Introduction to CSLA

Responsibilities

Introduction to CSLA

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 & Management

Physically creates, retrieves, updates, and deletes data in a persistent data store. (SQL Server)

Page 11: Introduction to CSLA

N-tier independent

Introduction to CSLA

•1-, 2- 0r 3-tier deployments support

•Change deployment models without changing code

Page 12: Introduction to CSLA

Standalone Application

Introduction to CSLA

Page 13: Introduction to CSLA

2-Tier Client/Server

Introduction to CSLA

Page 14: Introduction to CSLA

3-Tier Client/Server

Introduction to CSLA

Page 15: Introduction to CSLA

• Editable object Single List Root Parent Child

• Dynamic list List of editable root objects

• Read-only object Single List

Object Stereotypes

Presentation title

Page 16: Introduction to CSLA

• 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

Object Stereotypes

Presentation title

Page 17: Introduction to CSLA

Demo

Introduction to CSLA

Lets see some code!

Page 18: Introduction to CSLA

CSLA .NET Reduces Application Development and Maintenance Costs

Introduction to CSLA

•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

Page 19: Introduction to CSLA

CSLA Increases Application Agility

Introduction to CSLA

•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

Page 20: Introduction to CSLA

CSLA Minimizes Impact of Change

Introduction to CSLA

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

Page 21: Introduction to CSLA

Thank You

Chris Dufour

Software Architect, Compuware

[email protected]