SlideShare a Scribd company logo
https://www.net-baires.com.ar/JoinSlack
https://www.meetup.com/es-ES/Net-Baires
https://www.net-baires.com.ar
@NetBaires
11 de Abril
09:00 – 13:00
Microsoft
Lanzamiento de Visual Studio 2019 en Argentina
Global Azure Bootcamp 2019 - Buenos Aires
27 de Abril
08:30 – 18:30
Microsoft
http://bit.ly/gabba19
http://bit.ly/cfs-gabba19
Vertical Slice
Architecture
Germán Küber
CloudX
Software Architect
>_
Arquitectura Tradicional N-Capas
UI
Lógica de Negocios
Acceso a Datos
Base de datos
¿ Como organizamos nuestras capas?
• User.cs
• UserController.cs
• UserService.cs
• UserRepository.cs
Arquitectura N capas Asp.Net
1
2
3
4
5
6
7
8
9
10
11
12
Arquitectura N-Capas
UI
BL
DAL
DB
public interface IPostsRepository : IBaseRespository
{
Task<Post> CreateAsync(Post newPost);
bool PostExistById(int id);
Task<Post> GetById(int id);
Task<List<Post>> GetAllByCommentIdAsync(int comment);
Task<List<Post>> GetAllByDataIdAsync(DateTime date);
Task<List<Post>> GetAllByCoordinatorIdAsync(int commentId, List<string> categories);
Task<Post> GetByIdAsync(int id);
Task<Post> GetByIdForDraftAsync(int id);
Task<List<Post>> GetAllByProviderIdAsync(int providerId);
Task<List<Post>> GetAllWithProvidersAsync();
Task<Post> GetByCommentDraftIdAsync(int idPost);
Task<Post> GetByIdAndProviderIdAsync(int idProvider, int idPost);
Task<Post> GetByIdWithQuestionAsync(int postId);
Task<Post> GetByIdWithQuestionDraftAsync(int postId);
Task<Post> GetByProviderIdWithQuestionAsync(int postId, int providerId);
Task<Post> GetSoftByIdAsync(int id);
Task<Post> GetByIdWithMilestonesAsync(int idPost);
Task<Post> GetByIdWithCommentMessageAsync(int id);
Task<Post> GetByIdAndProviderIdWithCommentMessageAsync(int postId, int providerId);
Task<Post> GetByIdWithProviderPostsAsync(int id);
Task<Post> GetByIdAndQuestionIdWithQuestionAsync(int postId, int questionId);
Task<List<Post>> GetAsync();
Task<List<Post>> FilterPosts(Filter filter);
}
Vertical Slice Architecture
Vertical Slice Architecture
De métodos a Clases
void BlockUser()
void AcceptUser()
void CreateUser()
UsersServices
BlockUser { }
AcceptUser { }
CreateUser { }
Modelo de Requests
Input
Request
Handler
Output
Comandos y Queries
Web
App
GET
Query
POST
Command
Query Handler Response
Command Handler Response
Idempotente
No Idempotente
Encapsulamiento
Request Response
Encapsulamiento
Request
Handler
Response
Domain
¿Por que Vertical Slice Architecture?
• Código sencillo
• Código fácil de probar
• Separación de tests
• Aplicación fácil de dividir
Gracias!!!
Germankuber
http://germankuber.com.ar
Link
http://www.germankuber.com.ar/
vertical-slice-architecture

More Related Content

Similar to Vertical slice architecture

Week1SP800-145 NIST Cloud Definitionhttpnvlpubs.nist.govni.docx
Week1SP800-145 NIST Cloud Definitionhttpnvlpubs.nist.govni.docxWeek1SP800-145 NIST Cloud Definitionhttpnvlpubs.nist.govni.docx
Week1SP800-145 NIST Cloud Definitionhttpnvlpubs.nist.govni.docx
philipnelson29183
 
Employee Info Starter Kit
Employee Info Starter KitEmployee Info Starter Kit
Employee Info Starter Kit
joycsc
 
Track 4 Session 5_ 架構即代碼 – AWS CDK 與 CDK8S 聯手打造下一代的 K8S 應用
Track 4 Session 5_ 架構即代碼 – AWS CDK 與 CDK8S 聯手打造下一代的 K8S 應用Track 4 Session 5_ 架構即代碼 – AWS CDK 與 CDK8S 聯手打造下一代的 K8S 應用
Track 4 Session 5_ 架構即代碼 – AWS CDK 與 CDK8S 聯手打造下一代的 K8S 應用
Amazon Web Services
 
Azure Administration.docx
Azure  Administration.docxAzure  Administration.docx
Azure Administration.docx
Futurepoint13
 

Similar to Vertical slice architecture (20)

Microsoft Dynamics 365 Business Central
Microsoft Dynamics 365 Business CentralMicrosoft Dynamics 365 Business Central
Microsoft Dynamics 365 Business Central
 
DevHangout Microsoft Azure como Infraestructura para emprendedores de Tecnolo...
DevHangout Microsoft Azure como Infraestructura para emprendedores de Tecnolo...DevHangout Microsoft Azure como Infraestructura para emprendedores de Tecnolo...
DevHangout Microsoft Azure como Infraestructura para emprendedores de Tecnolo...
 
Week1SP800-145 NIST Cloud Definitionhttpnvlpubs.nist.govni.docx
Week1SP800-145 NIST Cloud Definitionhttpnvlpubs.nist.govni.docxWeek1SP800-145 NIST Cloud Definitionhttpnvlpubs.nist.govni.docx
Week1SP800-145 NIST Cloud Definitionhttpnvlpubs.nist.govni.docx
 
Microsoft Azure News - July 2021
Microsoft Azure News - July 2021Microsoft Azure News - July 2021
Microsoft Azure News - July 2021
 
SQLArgentina - Data Platform Summit BA - Keynote
SQLArgentina - Data Platform Summit BA - KeynoteSQLArgentina - Data Platform Summit BA - Keynote
SQLArgentina - Data Platform Summit BA - Keynote
 
Cloud computing: highlights
Cloud computing: highlightsCloud computing: highlights
Cloud computing: highlights
 
Azure Meetup: Novità CosmosDB modalità Serverless e Cognitive Services
Azure Meetup: Novità CosmosDB modalità Serverless e Cognitive ServicesAzure Meetup: Novità CosmosDB modalità Serverless e Cognitive Services
Azure Meetup: Novità CosmosDB modalità Serverless e Cognitive Services
 
Microsoft Azure News - June 2021
Microsoft Azure News - June 2021Microsoft Azure News - June 2021
Microsoft Azure News - June 2021
 
Microsoft Azure News - October 2020
Microsoft Azure News - October 2020Microsoft Azure News - October 2020
Microsoft Azure News - October 2020
 
Employee Info Starter Kit
Employee Info Starter KitEmployee Info Starter Kit
Employee Info Starter Kit
 
An Introduction to the Microsoft Cloud
An Introduction to the Microsoft CloudAn Introduction to the Microsoft Cloud
An Introduction to the Microsoft Cloud
 
Building Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows AzureBuilding Cloud-Native Applications with Microsoft Windows Azure
Building Cloud-Native Applications with Microsoft Windows Azure
 
Microsoft Azure News - November 2021
Microsoft Azure News - November 2021Microsoft Azure News - November 2021
Microsoft Azure News - November 2021
 
Microsoft Azure Websites Webjobs
Microsoft Azure Websites WebjobsMicrosoft Azure Websites Webjobs
Microsoft Azure Websites Webjobs
 
Microsoft education for it professionals
Microsoft education for it professionalsMicrosoft education for it professionals
Microsoft education for it professionals
 
Real World Azure - Dev
Real World Azure - DevReal World Azure - Dev
Real World Azure - Dev
 
Codemotion Rome 2015 IBM Bluemix and Docker
Codemotion Rome 2015 IBM Bluemix and DockerCodemotion Rome 2015 IBM Bluemix and Docker
Codemotion Rome 2015 IBM Bluemix and Docker
 
Track 4 Session 5_ 架構即代碼 – AWS CDK 與 CDK8S 聯手打造下一代的 K8S 應用
Track 4 Session 5_ 架構即代碼 – AWS CDK 與 CDK8S 聯手打造下一代的 K8S 應用Track 4 Session 5_ 架構即代碼 – AWS CDK 與 CDK8S 聯手打造下一代的 K8S 應用
Track 4 Session 5_ 架構即代碼 – AWS CDK 與 CDK8S 聯手打造下一代的 K8S 應用
 
Ordina SOFTC Presentation - UsingGeoData_ReportBuilder
Ordina SOFTC Presentation - UsingGeoData_ReportBuilderOrdina SOFTC Presentation - UsingGeoData_ReportBuilder
Ordina SOFTC Presentation - UsingGeoData_ReportBuilder
 
Azure Administration.docx
Azure  Administration.docxAzure  Administration.docx
Azure Administration.docx
 

More from Germán Küber

More from Germán Küber (20)

Explorando el Diseño de la Memoria en Rust
Explorando el Diseño de la Memoria en RustExplorando el Diseño de la Memoria en Rust
Explorando el Diseño de la Memoria en Rust
 
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NETDe Código a Ejecución: El Papel Fundamental del MSIL en .NET
De Código a Ejecución: El Papel Fundamental del MSIL en .NET
 
Mev Rapido.pptx
Mev Rapido.pptxMev Rapido.pptx
Mev Rapido.pptx
 
Que son los smart contracts.pptx
Que son los smart contracts.pptxQue son los smart contracts.pptx
Que son los smart contracts.pptx
 
De 0 a blockchain developer en 3 meses
De 0 a blockchain developer en 3 mesesDe 0 a blockchain developer en 3 meses
De 0 a blockchain developer en 3 meses
 
Patrones funcionales
Patrones funcionalesPatrones funcionales
Patrones funcionales
 
Patrones de diseño en solidity
Patrones de diseño en solidityPatrones de diseño en solidity
Patrones de diseño en solidity
 
Vertical slice architecture
Vertical slice architectureVertical slice architecture
Vertical slice architecture
 
De 0 a blockchain developer en 3 meses
De 0 a blockchain developer en 3 mesesDe 0 a blockchain developer en 3 meses
De 0 a blockchain developer en 3 meses
 
Diamon pattern presentation
Diamon pattern presentationDiamon pattern presentation
Diamon pattern presentation
 
Patrones funcionales
Patrones funcionalesPatrones funcionales
Patrones funcionales
 
Defensive code
Defensive codeDefensive code
Defensive code
 
Programación Funcional C#
Programación Funcional C#Programación Funcional C#
Programación Funcional C#
 
Unit testing consejos
Unit testing   consejosUnit testing   consejos
Unit testing consejos
 
Defensive code C#
Defensive code C#Defensive code C#
Defensive code C#
 
Event sourcing
Event sourcingEvent sourcing
Event sourcing
 
C sharp 8
C sharp 8C sharp 8
C sharp 8
 
Arquitectura en aplicaciones Angular y buenas practicas.
Arquitectura en aplicaciones Angular y buenas practicas.Arquitectura en aplicaciones Angular y buenas practicas.
Arquitectura en aplicaciones Angular y buenas practicas.
 
Un mundo sin if. generics al rescate
Un mundo sin if. generics al rescateUn mundo sin if. generics al rescate
Un mundo sin if. generics al rescate
 
Azure 360º para Desarrolaldores
Azure 360º para DesarrolaldoresAzure 360º para Desarrolaldores
Azure 360º para Desarrolaldores
 

Recently uploaded

How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 

Recently uploaded (20)

How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
How Does XfilesPro Ensure Security While Sharing Documents in Salesforce?
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdfA Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
A Comprehensive Appium Guide for Hybrid App Automation Testing.pdf
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 

Vertical slice architecture

Editor's Notes

  1. Azure pass 80 USD Stickers
  2. UserRepository: Todo el tiempo cambiamos la base de datos no?
  3. Tocar en diferentes lugares
  4. Organizada entorno a lo que debe cambiar juntos. Organiza de manera lógica todo lo que cambia junto, en un mismo lugar
  5. Un modelo entra un modelo sale