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

From OpenStack.... towards an Open cloud architecture
From OpenStack.... towards an Open cloud architecture From OpenStack.... towards an Open cloud architecture
From OpenStack.... towards an Open cloud architecture Claude Riousset
 
application-template-deployment-guide.pdf
application-template-deployment-guide.pdfapplication-template-deployment-guide.pdf
application-template-deployment-guide.pdfamazon4it
 
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 slidesVincenzo Capozzoli
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 
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 DevelopmentEmbarcadero Technologies
 
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 2008Tobias Koprowski
 
Integration with dynamics ax 2012
Integration with dynamics ax 2012Integration with dynamics ax 2012
Integration with dynamics ax 2012Ali Raza Zaidi
 
ORACLE SOA - IBANK
ORACLE SOA - IBANKORACLE SOA - IBANK
ORACLE SOA - IBANKibankuk
 
21st Century SOA
21st Century SOA21st Century SOA
21st Century SOABob Rhubart
 
21st Century Service Oriented Architecture
21st Century Service Oriented Architecture21st Century Service Oriented Architecture
21st Century Service Oriented ArchitectureBob Rhubart
 
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 Riccardo Romani
 
Accelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesAccelerate DevOps/Microservices and Kubernetes
Accelerate DevOps/Microservices and KubernetesRick Hightower
 
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 systemsRemedy IT
 
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)Lucas Jellema
 

Similar to Introduction to CSLA (20)

From OpenStack.... towards an Open cloud architecture
From OpenStack.... towards an Open cloud architecture From OpenStack.... towards an Open cloud architecture
From OpenStack.... towards an Open cloud architecture
 
Prashant Patel
Prashant PatelPrashant Patel
Prashant Patel
 
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)
 

More from Chris Dufour

Introduction to ASP.NET 5
Introduction to ASP.NET 5Introduction to ASP.NET 5
Introduction to ASP.NET 5Chris Dufour
 
Developing Windows 10 Hosted Web Apps
Developing Windows 10 Hosted Web AppsDeveloping Windows 10 Hosted Web Apps
Developing Windows 10 Hosted Web AppsChris Dufour
 
Developing windows 10 universal apps
Developing windows 10 universal appsDeveloping windows 10 universal apps
Developing windows 10 universal appsChris Dufour
 
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 meChris Dufour
 
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)Chris Dufour
 
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 AzureChris Dufour
 
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 2013Chris 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 CloudChris Dufour
 
Asynchronous Programming in ASP.NET
Asynchronous Programming in ASP.NETAsynchronous Programming in ASP.NET
Asynchronous Programming in ASP.NETChris Dufour
 
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 FeedChris Dufour
 
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 FabricChris 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

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfjimielynbastida
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 

Recently uploaded (20)

Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
Science&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdfScience&tech:THE INFORMATION AGE STS.pdf
Science&tech:THE INFORMATION AGE STS.pdf
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 

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