SlideShare a Scribd company logo
1 of 21
Introduction to CSLA


Chris Dufour
Software Architect, Compuware
chris.dufour@wigets.net
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
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
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
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
Introduction to CSLA

Distributed Architecture
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)
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.
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.
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)
Introduction to CSLA

N-tier independent
•1-, 2- 0r 3-tier deployments support
•Change deployment models without changing code
Introduction to CSLA

Standalone Application
Introduction to CSLA

2-Tier Client/Server
Introduction to CSLA

3-Tier Client/Server
Presentation title

Object Stereotypes
• Editable object
      Single
      List
      Root
      Parent
      Child
• Dynamic list
    List of editable root objects
• Read-only object
    Single
    List
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
Introduction to CSLA

Demo



       Lets see some code!
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
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
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
Thank You


Chris Dufour
Software Architect, Compuware
chris.dufour@wigets.net

More Related Content

Similar to Introduction to CSLA

10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
Majong DevJfu
 

Similar to Introduction to CSLA (20)

application-template-deployment-guide.pdf
application-template-deployment-guide.pdfapplication-template-deployment-guide.pdf
application-template-deployment-guide.pdf
 
Introduction to soa suite 12c in 20 slides
Introduction to soa suite 12c in 20 slidesIntroduction to soa suite 12c in 20 slides
Introduction to soa suite 12c in 20 slides
 
Oracle SOA Suite 11g
Oracle SOA Suite 11gOracle SOA Suite 11g
Oracle SOA Suite 11g
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Rapid SQL Datasheet - The Intelligent IDE for SQL Development
Rapid SQL Datasheet - The Intelligent IDE for SQL DevelopmentRapid SQL Datasheet - The Intelligent IDE for SQL Development
Rapid SQL Datasheet - The Intelligent IDE for SQL Development
 
Introduction to SQL Server Analysis services 2008
Introduction to SQL Server Analysis services 2008Introduction to SQL Server Analysis services 2008
Introduction to SQL Server Analysis services 2008
 
Integration with dynamics ax 2012
Integration with dynamics ax 2012Integration with dynamics ax 2012
Integration with dynamics ax 2012
 
Resume
ResumeResume
Resume
 
Enterprise Service Bus
Enterprise Service BusEnterprise Service Bus
Enterprise Service Bus
 
Web-Scale Library Management Services (Paul Harvey)
Web-Scale Library Management Services (Paul Harvey)Web-Scale Library Management Services (Paul Harvey)
Web-Scale Library Management Services (Paul Harvey)
 
ORACLE SOA - IBANK
ORACLE SOA - IBANKORACLE SOA - IBANK
ORACLE SOA - IBANK
 
21st Century SOA
21st Century SOA21st Century SOA
21st Century SOA
 
21st Century Service Oriented Architecture
21st Century Service Oriented Architecture21st Century Service Oriented Architecture
21st Century Service Oriented Architecture
 
Systems Advantage Forum : Autonomous DB e DBaaS
Systems Advantage Forum : Autonomous DB e DBaaS Systems Advantage Forum : Autonomous DB e DBaaS
Systems Advantage Forum : Autonomous DB e DBaaS
 
Profile_Ahmad2
Profile_Ahmad2Profile_Ahmad2
Profile_Ahmad2
 
Accelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesAccelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and Kubernetes
 
AXCIOMA, the component framework for distributed, real-time and embedded systems
AXCIOMA, the component framework for distributed, real-time and embedded systemsAXCIOMA, the component framework for distributed, real-time and embedded systems
AXCIOMA, the component framework for distributed, real-time and embedded systems
 
SOA for PL/SQL Developer (OPP 2010)
SOA for PL/SQL Developer (OPP 2010)SOA for PL/SQL Developer (OPP 2010)
SOA for PL/SQL Developer (OPP 2010)
 
Information management
Information managementInformation management
Information management
 
Oracle EBS R12.2 - Deployment and System Administration
Oracle EBS R12.2 - Deployment and System AdministrationOracle EBS R12.2 - Deployment and System Administration
Oracle EBS R12.2 - Deployment and System Administration
 

More from Chris Dufour

Windows Azure Active Directory: Identity Management in the Cloud
Windows Azure Active Directory: Identity Management in the CloudWindows Azure Active Directory: Identity Management in the Cloud
Windows Azure Active Directory: Identity Management in the Cloud
Chris Dufour
 

More from Chris Dufour (11)

Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5
 
Developing Windows 10 Hosted Web Apps
Developing Windows 10 Hosted Web AppsDeveloping Windows 10 Hosted Web Apps
Developing Windows 10 Hosted Web Apps
 
Developing windows 10 universal apps
Developing windows 10 universal appsDeveloping windows 10 universal apps
Developing windows 10 universal apps
 
DevCamp - What can the cloud do for me
DevCamp - What can the cloud do for meDevCamp - What can the cloud do for me
DevCamp - What can the cloud do for me
 
Microsoft Azure Platform-as-a-Service (PaaS)
Microsoft Azure Platform-as-a-Service (PaaS)Microsoft Azure Platform-as-a-Service (PaaS)
Microsoft Azure Platform-as-a-Service (PaaS)
 
Migrate an Existing Application to Microsoft Azure
Migrate an Existing Application to Microsoft AzureMigrate an Existing Application to Microsoft Azure
Migrate an Existing Application to Microsoft Azure
 
Whats new for developers in Visual Studio 2013
Whats new for developers in Visual Studio 2013Whats new for developers in Visual Studio 2013
Whats new for developers in Visual Studio 2013
 
Windows Azure Active Directory: Identity Management in the Cloud
Windows Azure Active Directory: Identity Management in the CloudWindows Azure Active Directory: Identity Management in the Cloud
Windows Azure Active Directory: Identity Management in the Cloud
 
Asynchronous Programming in ASP.NET
Asynchronous Programming in ASP.NETAsynchronous Programming in ASP.NET
Asynchronous Programming in ASP.NET
 
Implementing OData: Create a UG Event Feed
Implementing OData: Create a UG Event FeedImplementing OData: Create a UG Event Feed
Implementing OData: Create a UG Event Feed
 
Scale Your Data Tier With Windows Server App Fabric
Scale Your Data Tier With Windows Server App FabricScale Your Data Tier With Windows Server App Fabric
Scale Your Data Tier With Windows Server App Fabric
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 

Introduction to CSLA

  • 1. Introduction to CSLA Chris Dufour Software Architect, Compuware chris.dufour@wigets.net
  • 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
  • 17. Introduction to CSLA Demo Lets see some code!
  • 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
  • 21. Thank You Chris Dufour Software Architect, Compuware chris.dufour@wigets.net