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

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
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
"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
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 

Recently uploaded (20)

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...
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
"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
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 

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