Patrones: Cuándo y Por Patrones: Cuándo y Por qué utilizarlos en la qué utilizarlos en la implementación de implementación de arquitecturas arquitecturas corporativas corporativas Eugenio Pace - Eugenio Pace - [email protected][email protected]Product Manager Product Manager patterns patterns & practices & practices “Un sistema complejo que funciona, casi siempre ha evolucionado a partir de un sistema simple que funciona. Un sistema complejo diseñado desde cero, casi nunca funciona y es imposible de arreglar. En esa situación, debe comenzarse de nuevo con un sistema simple que funciona” - John Gall en Systemantics: How Systems Really Work and How They Fail
45
Embed
Patrones: Cuándo y Por qué utilizarlos en la implementación de arquitecturas corporativas Eugenio Pace - [email protected] Product Manager patterns.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Patrones: Cuándo y Por Patrones: Cuándo y Por qué utilizarlos en la qué utilizarlos en la implementación de implementación de arquitecturas corporativasarquitecturas corporativas
Eugenio Pace - Eugenio Pace - [email protected]@microsoft.com Product ManagerProduct Managerpatternspatterns & practices & practices
“Un sistema complejo que funciona, casi siempre ha evolucionado a partir de un sistema simple que funciona. Un sistema complejo diseñado desde cero, casi nunca funciona y es imposible de arreglar. En esa situación, debe comenzarse de nuevo con un sistema simple que funciona”- John Gall en Systemantics: How Systems Really Work and How They Fail
Construyendo una casa Construyendo una casa …….…….
Guías de diseñoGuías de diseño PlanosPlanos
MaterialesMateriales
PatronesPatrones
ProcesoProcesoPersonasPersonas
TaxonomiaTaxonomia
Country
Tilt-up
DepartamentosPH
Stick Frame
Pre-hung doors
Truss Frame
Petit Hotel
Post and Beam
Pre-fab trusses Framing patterns
Patrones de cableados
Patrones
Construyendo una aplicación Construyendo una aplicación …….…….
TaxonomiaTaxonomia
Guias de diseñoGuias de diseño PlanosPlanos
ElementosElementos
PatronesPatrones
PersonasPersonasProcesoProceso
Construyendo una aplicación Construyendo una aplicación …….…….
TaxonomiaTaxonomia
Guias de diseñoGuias de diseño PlanosPlanos
ElementosElementos
PatronesPatrones
PersonasPersonasProcesoProceso
Construyendo una aplicacion Construyendo una aplicacion …….…….
TaxonomiaTaxonomia
Guias de diseñoGuias de diseño PlanosPlanos
ElementosElementos
PatronesPatrones
PersonasPersonasProcesoProceso
Guias
Local – dentro de la compañíaIndustria - principios
Construyendo una aplicación Construyendo una aplicación …….…….
TaxonomiaTaxonomia
Guias de diseñoGuias de diseño PlanosPlanos
ElementosElementos
PatronesPatrones
PersonasPersonasProcesoProceso
Construyendo una aplicación Construyendo una aplicación …….…….
TaxonomiaTaxonomia
Guias de diseñoGuias de diseño PlanosPlanos
ElementosElementos
PatronesPatrones
PersonasPersonasProcesoProceso
Elementos
Application Controller (Custom)Application Controller (Custom)11PAG Data Access ComponentPAG Data Access Component11Microsoft SQL ServerMicrosoft SQL Server11Microsoft Windows Server 2003Microsoft Windows Server 200333Microsoft ASP.NETMicrosoft ASP.NET11DescripciónDescripciónCant.Cant.
Construyendo una aplicación Construyendo una aplicación …….…….
TaxonomiaTaxonomia
Guias de diseñoGuias de diseño PlanosPlanos
ElementosElementos
PatronesPatrones
PersonasPersonasProcesoProceso
Aplicación en capas
BrokerObserver
Implementando Singleton con C#
Model-View-ControllerFacade
Implementando MVC con ASP.NET
Patrones
Distribución de componentes
Gateway
Qué es un patrón?Qué es un patrón?
Es una soluciónEs una solución
A un problema recurrenteA un problema recurrente
En un contexto dado En un contexto dado
Un patrón describe un problema frecuente que Un patrón describe un problema frecuente que ocurre en un contexto determinado y propone una ocurre en un contexto determinado y propone una
solución al mismosolución al mismo
Es “incompleto” por naturaleza Es “incompleto” por naturaleza
Por qué son importantes?Por qué son importantes?
No “reinventar la rueda”No “reinventar la rueda”
Mayor eficiencaMayor eficienca
Reduccion de riesgosReduccion de riesgos
SingletonSingleton
Contexto:Contexto:Controlar el acceso a una clase Controlar el acceso a una clase controlando su instanciacióncontrolando su instanciación
Problema:Problema:Ciertos tipos de datos necesitan ser Ciertos tipos de datos necesitan ser accedidos y mantenidos globalmente accedidos y mantenidos globalmente
Esta información es única a lo largo de Esta información es única a lo largo de todo el sistematodo el sistema
Contexto:Contexto:Diseño de una aplicación de negocios Diseño de una aplicación de negocios compleja, con multiples componentes y compleja, con multiples componentes y numerosos niveles de abstracciónnumerosos niveles de abstracción
Problema:Problema:Como estructurar dicha solución para Como estructurar dicha solución para que cumpla con requerimientos de que cumpla con requerimientos de mantenibilidad, escalabilidad, seguridad mantenibilidad, escalabilidad, seguridad y reusabilidad demandados?y reusabilidad demandados?
Arquitectura en capasArquitectura en capas
UI Components
UI Process Components
Data Access Components
Business Workflows
Business Components
Users
Business Entities
Service Agents
Op
eration
al Man
agem
ent
Secu
rity
Co
mm
un
ication
Service Interfaces
Data Sources Services
Patrones y solucionesPatrones y soluciones
RequirimientosRequirimientos
Solución de ingeniería
Packaged Software
Custom Software Hardware
Patterns
Packaged Software
Custom Software Hardware
Organizando el Organizando el pensamientopensamiento
Organizando el Organizando el pensamientopensamiento
Organizando el Organizando el pensamientopensamiento
DiseñoDiseño
ArquitecturaArquitectura
ImplementaciónImplementación
Organizando el Organizando el pensamientopensamiento
Las guias de Patterns & practices, son Las guias de Patterns & practices, son la recomendacion de Microsoft a la recomendacion de Microsoft a arqitectos, desarrolldores, y arqitectos, desarrolldores, y profesinales de IT responsables por la profesinales de IT responsables por la produccion y operacion de soluciones produccion y operacion de soluciones corporativas con tecnologia Microsoftcorporativas con tecnologia Microsoft