SlideShare ist ein Scribd-Unternehmen logo
1 von 53
Downloaden Sie, um offline zu lesen
Clean Architecture Essentials
Ivan Paulovich

Betsson Dev’Talk #4

Stockholm - 23rd May 2019
@ivanpaulovich https://paulovich.net
Ivan Paulovich
Software craftsman and GitHub addicted. 

Interested in TDD, SOLID and 

Clean Architecture.
@ivanpaulovich
The “Software Architecture”
Presentation Layer ASP.NET MVC and Autofac
Business Layer MediatR and AutoMapper
Data Layer Entity Framework and Dapper
Database and Messaging SQL Server and RabbitMQ
IDE and Tools Visual Studio, Resharper and .NET Framework
!3 @ivanpaulovich
The “Software Architecture”
Presentation Layer ASP.NET MVC and Autofac
Business Layer MediatR and AutoMapper
Data Layer Entity Framework and Dapper
Database and Messaging SQL Server and RabbitMQ
IDE and Tools Visual Studio, Resharper and .NET Framework
!4 @ivanpaulovich
Not a Software
Architecture!
@ivanpaulovich!5
Resources I Like
Architecture is About Usage
!6 @ivanpaulovich
Architecture is About Usage
• The floor plan shows where people
enter the building and sit. It shows
where the focus is.
!7 @ivanpaulovich
Architecture is About Usage
• The floor plan shows where people
enter the building and sit. It shows
where the focus is.

• When looking at the image it is
easy to notice that it is a church
floor plan.
!8 @ivanpaulovich
Architecture is About Usage
• The floor plan shows where people
enter the building and sit. It shows
where the focus is.

• When looking at the image it is
easy to notice that it is a church
floor plan.

How to make the software
architecture scream its
usage?
!9 @ivanpaulovich
Use Cases
Ticket Terminal
Ticket Terminal
Display movies
Request
movie details
Print pre-ordered
tickets
Order tickets
Customer
Movie Catalog
Order System
Credit
Processing
!10 @ivanpaulovich
Use Cases
Ticket Terminal
Ticket Terminal
Display movies
Request
movie details
Print pre-ordered
tickets
Order tickets
Customer
Movie Catalog
Order System
Credit
Processing
• Use Cases are delivery independent,
they show the intent of a system.
!11 @ivanpaulovich
Use Cases
Ticket Terminal
Ticket Terminal
Display movies
Request
movie details
Print pre-ordered
tickets
Order tickets
Customer
Movie Catalog
Order System
Credit
Processing
• Use Cases are delivery independent,
they show the intent of a system.

• Use Cases are algorithms which
interpret the input to generate the
output data.
!12 @ivanpaulovich
Ticket Terminal
Ticket Terminal
Display movies
Request
movie details
Print pre-ordered
tickets
Order tickets
Customer
Movie Catalog
Order System
Credit
Processing
Use Cases
• Use Cases are delivery independent,
they show the intent of a system.

• Use Cases are algorithms which
interpret the input to generate the
output data.

• Primary and secondary actors.
!13 @ivanpaulovich
Use Cases Implementation

Guided by Tests
• Test Cases should be the first consumers implemented. Test Cases
Use Cases
Core

Layer
Test Suite
!14 @ivanpaulovich
Use Cases Implementation

Guided by Tests
• Test Cases should be the first consumers implemented.

• You should design the Use Cases by following the
Single Responsibility Principle.
Test Cases
Use Cases
Core

Layer
Test Suite
!15 @ivanpaulovich
Use Cases Implementation

Guided by Tests
• Test Cases should be the first consumers implemented.

• You should design the Use Cases by following the
Single Responsibility Principle.

• Fake implementations should be the first delivery
mechanisms implemented.
Test Cases
Use Cases
Fake
Persistence
Core

Layer
Infrastructure

Layer
Test Suite
!16 @ivanpaulovich
Use Cases Implementation

Guided by Tests
• Test Cases should be the first consumers implemented.

• You should design the Use Cases by following the
Single Responsibility Principle.

• Fake implementations should be the first delivery
mechanisms implemented.

• Test Cases help you design fine grained Use Cases
(Interface Segregation Principle).
Test Cases
Use Cases
Fake
Persistence
Core

Layer
Infrastructure

Layer
Test Suite
!17 @ivanpaulovich
Software Architecture
“A good architecture allows major decisions
to be deferred. A good architect maximizes
the number of decisions not made.

Uncle Bob.
!18
@ivanpaulovich
Decoupling

User Interface, Use Cases and Repositories
TicketController IOrderTicketUseCase
OrderTicket ITicketRepository
SQLTicket

Storage
Core

Layer
Infrastructure

Layer
User Interface

Layer
Abstract,
General,

Stable
Concrete, 

Specific, 

Unstable
Concrete, 

Specific, 

Unstable
Level
Level
!19
<<interface>>
<<interface>>
@ivanpaulovich
Plugin Architecture
OrderTicket ITicketRepository
SQLTicket

Storage
<<interface>>
Core

Layer
Infrastructure

Layer !20 @ivanpaulovich
• The dependencies point in the direction of the abstract components.
Plugin Architecture
OrderTicket ITicketRepository
SQLTicket

Storage
<<interface>>
Core

Layer
Infrastructure

Layer
2nd
!21 @ivanpaulovich
• The dependencies point in the direction of the abstract components.
Plugin Architecture
OrderTicket ITicketRepository
SQLTicket

Storage
<<interface>>
Core

Layer
Infrastructure

Layer
2nd
InMemoryTicket

Storage
1st
Development Order!22 @ivanpaulovich
• The dependencies point in the direction of the abstract components.

• First implement the simplest component version!
Plugin Architecture
OrderTicket ITicketRepository
SQLTicket

StorageInMemoryTicket

Storage
OrderSystemTicket

Storage
Development Order
• The dependencies point in the direction of the abstract components.

• First implement the simplest component version!

• Defer decisions. Keep the options open as long as possible!
<<interface>>
Core

Layer
Infrastructure

Layer
1st
2nd 3rd
!23 @ivanpaulovich
High Level Design
SQL

Storage
Order

Service
MVC
In Memory

Storage
Main
Core

Layer
Infrastructure

Layer
User Interface
Layer
Console
@ivanpaulovich
• Complex systems should be made of components that are
designed, implemented and tested in isolation.
High Level Design
SQL

Storage
Order

Service
MVC
In Memory

Storage
Main
Core

Layer
Infrastructure

Layer
User Interface
Layer
Console
@ivanpaulovich
• Complex systems should be made of components that are
designed, implemented and tested in isolation.

• Some components share implementation symmetry.
Components Overview
1. Components are designed to fulfill the Core needs and
are implemented and tested in isolation.
Test Cases
Infrastructure

Layer
Test Suite
SQL

Storage
!26 @ivanpaulovich
Components Overview
1. Components are designed to fulfill the Core needs and
are implemented and tested in isolation.

2. Components could be replaced, upgraded or
decommissioned with minimum Core business impact.
Test Cases
Infrastructure

Layer
Test Suite
SQL

Storage
!27 @ivanpaulovich
Components Overview
1. Components are designed to fulfill the Core needs and
are implemented and tested in isolation.

2. Components could be replaced, upgraded or
decommissioned with minimum Core business impact.

3. Good components are loosely coupled.
Test Cases
Infrastructure

Layer
Test Suite
SQL

Storage
!28 @ivanpaulovich
Frameworks are Details
• Application code called by frameworks should be under control.
!29
@ivanpaulovich
Frameworks are Details
• Application code called by frameworks should be under control.

• Hide 3rd party libraries, use them behind core interfaces.
!30
@ivanpaulovich
Frameworks are Details
• Application code called by frameworks should be under control.

• Hide 3rd party libraries, use them behind core interfaces. 

• The .NET Framework is a detail.
!31
@ivanpaulovich
Frameworks are Details
• Application code called by frameworks should be under control.

• Hide 3rd party libraries, use them behind core interfaces. 

• The .NET Framework is a detail.

• Keep outside the application: Reflection, Linq, Entity Framework, MVC,
Data Annotations, WCF.
!32
@ivanpaulovich
The UI is a detail
TicketController IOrderTicketUseCase OrderTicket
Core

Layer
User Interface

Layer
<<interface>>
OrderTicket

Request
OrderTicketPresenter
OrderTicket

Response
IOrderResponseHandler
OrderTicket

Model
<<interface>>
@ivanpaulovich!33
Layered Diagram
Domain
Application
Infrastructure
User Interface
@ivanpaulovich!34
Application
Infrastructure
Unit Test
Web
Database
Domain
Ports and Adapters
@ivanpaulovich!35
Application
Infrastructure
Unit Test
Web
Database
Domain
Ports and Adapters
@ivanpaulovich!36
Application
Infrastructure
Unit Test
Web
Database
Domain
Ports and Adapters
@ivanpaulovich!37
Application
Infrastructure
Unit Test
Web
Database
Domain
Ports and Adapters
@ivanpaulovich!38
Application
Infrastructure
Unit Test
Web
Database
Domain
Ports and Adapters
@ivanpaulovich!39
Application
Infrastructure
Unit Test
Web
Database
Domain
Ports and Adapters
@ivanpaulovich!40
Application
Infrastructure
Unit Test
Web
Database
Domain
Ports and Adapters
@ivanpaulovich!41
Application
Unit Test
Web
Database
Domain
Primary

Actors
Secondary

Actors
@ivanpaulovich!42
Infrastructure
Ports and Adapters
Evolutionary Architecture Definition:
An evolutionary architecture supports
guided, incremental changes as a first
principle across multiple dimensions.
!43
@ivanpaulovich
Sample Application
Ticket Terminal
Todo List App
Add Todo Item
List Todo Items
Do
Undo
User Storage
!44 @ivanpaulovich
Sample Application
Ticket Terminal
Todo List App
Add Todo Item
List Todo Items
Do
Undo
User Storage
!45 @ivanpaulovich
!46
✅ Commad-Line
Task management
with storage on
your GitHub 🔥
@ivanpaulovich
$ dotnet tool install -g todo
https://github.com/ivanpaulovich/todo
Evolutionary Architecture In Action
!47
Use Cases Todo
List
Do Undo Remove
Rename
Unit Tests Web API
Console App
In Memory
File System
SQL Server
GitHub
Persistence
User Interface
@ivanpaulovich
@ivanpaulovich
Packages on the software lifetime
Domain
Application
Infrastructure
User Interface
Tests
Tests
Core
Tests
Core
Infrastructure
1 2 3 4
Wrapping up Clean Architecture
• Clean Architecture is about usage and the use cases are the central
organising principle.
!49
@ivanpaulovich
Wrapping up Clean Architecture
• Clean Architecture is about usage and the use cases are the central
organising principle.

• Use cases implementation are guided by tests.
!50
@ivanpaulovich
Wrapping up Clean Architecture
• Clean Architecture is about usage and the use cases are the central
organising principle.

• Use cases implementation are guided by tests.

• The User Interface and Persistence are designed to fulfil the core
needs (not the opposite!).
!51
@ivanpaulovich
Wrapping up Clean Architecture
• Clean Architecture is about usage and the use cases are the central
organising principle.

• Use cases implementation are guided by tests.

• The User Interface and Persistence are designed to fulfil the core
needs (not the opposite!).

• Defer decisions by implementing the simplest component first.
!52
@ivanpaulovich
Fork me on GitHub
!53
Ask me 

2 Questions!
@ivanpaulovich

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (9)

Improving the Quality of Existing Software
Improving the Quality of Existing SoftwareImproving the Quality of Existing Software
Improving the Quality of Existing Software
 
Breaking Dependencies to Allow Unit Testing - DevIntersection Spring 2016
Breaking Dependencies to Allow Unit Testing - DevIntersection Spring 2016Breaking Dependencies to Allow Unit Testing - DevIntersection Spring 2016
Breaking Dependencies to Allow Unit Testing - DevIntersection Spring 2016
 
Power-Up Your Test Suite with OLE Automation by Joshua Russell
Power-Up Your Test Suite with OLE Automation by Joshua RussellPower-Up Your Test Suite with OLE Automation by Joshua Russell
Power-Up Your Test Suite with OLE Automation by Joshua Russell
 
Improving the Quality of Existing Software
Improving the Quality of Existing SoftwareImproving the Quality of Existing Software
Improving the Quality of Existing Software
 
REST-API's for architects and managers
REST-API's for architects and managersREST-API's for architects and managers
REST-API's for architects and managers
 
Super simple introduction to REST-APIs (2nd version)
Super simple introduction to REST-APIs (2nd version)Super simple introduction to REST-APIs (2nd version)
Super simple introduction to REST-APIs (2nd version)
 
Improving the Quality of Existing Software
Improving the Quality of Existing SoftwareImproving the Quality of Existing Software
Improving the Quality of Existing Software
 
Building Scalable Applications with Laravel
Building Scalable Applications with LaravelBuilding Scalable Applications with Laravel
Building Scalable Applications with Laravel
 
PL/SQL Guilty Pleasures
PL/SQL Guilty PleasuresPL/SQL Guilty Pleasures
PL/SQL Guilty Pleasures
 

Ähnlich wie Clean Architecture Essentials @ivanpaulovich

Protection and Verification of Security Design Flaws
Protection and Verification of Security Design FlawsProtection and Verification of Security Design Flaws
Protection and Verification of Security Design Flaws
Hdiv Security
 

Ähnlich wie Clean Architecture Essentials @ivanpaulovich (20)

Clean Architecture Essentials - Stockholm Software Craftsmanship
Clean Architecture Essentials - Stockholm Software CraftsmanshipClean Architecture Essentials - Stockholm Software Craftsmanship
Clean Architecture Essentials - Stockholm Software Craftsmanship
 
Tips to Reduce the Attack Surface When Using Third-Party Libraries
Tips to Reduce the Attack Surface When Using Third-Party LibrariesTips to Reduce the Attack Surface When Using Third-Party Libraries
Tips to Reduce the Attack Surface When Using Third-Party Libraries
 
Single Source of Truth for Network Automation
Single Source of Truth for Network AutomationSingle Source of Truth for Network Automation
Single Source of Truth for Network Automation
 
ITCamp 2018 - Damian Widera - SQL Server 2016. Meet the Row Level Security. P...
ITCamp 2018 - Damian Widera - SQL Server 2016. Meet the Row Level Security. P...ITCamp 2018 - Damian Widera - SQL Server 2016. Meet the Row Level Security. P...
ITCamp 2018 - Damian Widera - SQL Server 2016. Meet the Row Level Security. P...
 
Reactive Micro Services with Java seminar
Reactive Micro Services with Java seminarReactive Micro Services with Java seminar
Reactive Micro Services with Java seminar
 
springtraning-7024840-phpapp01.pdf
springtraning-7024840-phpapp01.pdfspringtraning-7024840-phpapp01.pdf
springtraning-7024840-phpapp01.pdf
 
SUGCON 2015 Modelling
SUGCON 2015 ModellingSUGCON 2015 Modelling
SUGCON 2015 Modelling
 
SUG Bangalore - Kick Off Session
SUG Bangalore - Kick Off SessionSUG Bangalore - Kick Off Session
SUG Bangalore - Kick Off Session
 
Building frameworks: from concept to completion
Building frameworks: from concept to completionBuilding frameworks: from concept to completion
Building frameworks: from concept to completion
 
Online voting system ppt by anoop
Online voting system ppt by anoopOnline voting system ppt by anoop
Online voting system ppt by anoop
 
Programming on Windows 8.1: The New Stream and Storage Paradigm (Raffaele Ria...
Programming on Windows 8.1: The New Stream and Storage Paradigm (Raffaele Ria...Programming on Windows 8.1: The New Stream and Storage Paradigm (Raffaele Ria...
Programming on Windows 8.1: The New Stream and Storage Paradigm (Raffaele Ria...
 
Serverless Single Page Apps with React and Redux at ItCamp 2017
Serverless Single Page Apps with React and Redux at ItCamp 2017Serverless Single Page Apps with React and Redux at ItCamp 2017
Serverless Single Page Apps with React and Redux at ItCamp 2017
 
Building Observable Infrastructure and Code
Building Observable Infrastructure and CodeBuilding Observable Infrastructure and Code
Building Observable Infrastructure and Code
 
Stability anti patterns in cloud-native applications
Stability anti patterns in cloud-native applicationsStability anti patterns in cloud-native applications
Stability anti patterns in cloud-native applications
 
Security vulnerabilities decomposition
Security vulnerabilities decompositionSecurity vulnerabilities decomposition
Security vulnerabilities decomposition
 
Protection and Verification of Security Design Flaws
Protection and Verification of Security Design FlawsProtection and Verification of Security Design Flaws
Protection and Verification of Security Design Flaws
 
MWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVCMWLUG 2015 - An Introduction to MVC
MWLUG 2015 - An Introduction to MVC
 
Resilient Event Driven Systems With Kafka
Resilient Event Driven Systems With KafkaResilient Event Driven Systems With Kafka
Resilient Event Driven Systems With Kafka
 
How to Use Innoslate for Advanced Users
How to Use Innoslate for Advanced UsersHow to Use Innoslate for Advanced Users
How to Use Innoslate for Advanced Users
 
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
Enabling IoT Devices’ Hardware and Software Interoperability, IPSO Alliance (...
 

Mehr von Ivan Paulovich

Mercado de ti e suas oportunidades
Mercado de ti e suas oportunidadesMercado de ti e suas oportunidades
Mercado de ti e suas oportunidades
Ivan Paulovich
 
Construindo Apps com ASP.NET SignalR
Construindo Apps com ASP.NET SignalRConstruindo Apps com ASP.NET SignalR
Construindo Apps com ASP.NET SignalR
Ivan Paulovich
 
Levando sua aplicação para a nuvem
Levando sua aplicação para a nuvemLevando sua aplicação para a nuvem
Levando sua aplicação para a nuvem
Ivan Paulovich
 
Conhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIConhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web API
Ivan Paulovich
 
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Criando aplicativos para Windows 8 usando apenas HTML5 e JavascriptCriando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Ivan Paulovich
 

Mehr von Ivan Paulovich (17)

Moving to Microservices
Moving to MicroservicesMoving to Microservices
Moving to Microservices
 
Produzindo e consumindo um stream de eventos
Produzindo e consumindo um stream de eventosProduzindo e consumindo um stream de eventos
Produzindo e consumindo um stream de eventos
 
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crec...
 
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em creches
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em crechesComo uma aplicação baseada em fluxo de dados pode ampliar a segurança em creches
Como uma aplicação baseada em fluxo de dados pode ampliar a segurança em creches
 
Aggregates com Event Sourcing
Aggregates com Event SourcingAggregates com Event Sourcing
Aggregates com Event Sourcing
 
Estudo do eShopOnContainers
Estudo do eShopOnContainersEstudo do eShopOnContainers
Estudo do eShopOnContainers
 
Introdução ao Domain-Driven-Design (DDD)
Introdução ao Domain-Driven-Design (DDD)Introdução ao Domain-Driven-Design (DDD)
Introdução ao Domain-Driven-Design (DDD)
 
Princípios SOLID de OO usando .NET
Princípios SOLID de OO usando .NETPrincípios SOLID de OO usando .NET
Princípios SOLID de OO usando .NET
 
Utilize o vso e publique imagens docker Global Azure Bootcamp - BH
Utilize o vso e publique imagens docker Global Azure Bootcamp - BHUtilize o vso e publique imagens docker Global Azure Bootcamp - BH
Utilize o vso e publique imagens docker Global Azure Bootcamp - BH
 
Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014Windows Azure Mobile Services InfoTech 2014
Windows Azure Mobile Services InfoTech 2014
 
Mercado de ti e suas oportunidades
Mercado de ti e suas oportunidadesMercado de ti e suas oportunidades
Mercado de ti e suas oportunidades
 
Construindo Apps Com SignalR
Construindo Apps Com SignalRConstruindo Apps Com SignalR
Construindo Apps Com SignalR
 
Construindo apps de tempo real com SignalR
Construindo apps de tempo real com SignalRConstruindo apps de tempo real com SignalR
Construindo apps de tempo real com SignalR
 
Construindo Apps com ASP.NET SignalR
Construindo Apps com ASP.NET SignalRConstruindo Apps com ASP.NET SignalR
Construindo Apps com ASP.NET SignalR
 
Levando sua aplicação para a nuvem
Levando sua aplicação para a nuvemLevando sua aplicação para a nuvem
Levando sua aplicação para a nuvem
 
Conhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web APIConhecendo os recursos do ASP.NET Web API
Conhecendo os recursos do ASP.NET Web API
 
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Criando aplicativos para Windows 8 usando apenas HTML5 e JavascriptCriando aplicativos para Windows 8 usando apenas HTML5 e Javascript
Criando aplicativos para Windows 8 usando apenas HTML5 e Javascript
 

Kürzlich hochgeladen

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Kürzlich hochgeladen (20)

How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 

Clean Architecture Essentials @ivanpaulovich