Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Guía de Arquitectura N-Capas Orientada al Dominio con .NET 4.0, Resúmenes de Informática Móvil

Esta guía detalla la arquitectura n-capas orientada al dominio utilizando .net 4.0, enfocándose en aplicaciones empresariales complejas con lógica de negocio significativa. Explora conceptos de desacoplamiento, patrones ddd y la implementación de servicios web. Incluye ejemplos prácticos y diagramas para ilustrar la generación de entidades poco/ipoco con plantillas t4 de ef, así como el uso de inotifypropertychanged en aplicaciones mvvm wpf. Se discuten también aspectos de seguridad como sts y adfs 2.0, y la estructuración de aplicaciones web en n-capas con tendencias ddd. Además, aborda la adaptación de aplicaciones a la nube y el desarrollo para dispositivos móviles, ofreciendo una visión completa de la arquitectura de software moderna. Útil para estudiantes universitarios y profesionales del desarrollo de software que buscan profundizar en la arquitectura de aplicaciones empresariales.

Tipo: Resúmenes

2024/2025

Subido el 22/10/2025

gonzalo-cardenas-8
gonzalo-cardenas-8 🇦🇷

1 documento

1 / 433

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Vista previa parcial del texto

¡Descarga Guía de Arquitectura N-Capas Orientada al Dominio con .NET 4.0 y más Resúmenes en PDF de Informática Móvil solo en Docsity!

Guía de Arquitectura N-Capas

orientada al Dominio con .NET

(Beta)

César de la Torre Llorente

Unai Zorrilla Castro

Miguel Angel Ramos Barros

Javier Calvarro Nelson

Índice

iv Guía de Arquitectura N-Capas orientada al Dominio con .NET 4.0 (Beta)
vi Guía de Arquitectura N-Capas orientada al Dominio con .NET 4.0 (Beta)

Índice vii

1

Arquitectura Marco .NET

Microsoft Ibérica

1.- INTRODUCCIÓN

Microsoft Ibérica ha detectado en diversos clientes la necesidad de disponer de una
“Guía de Arquitectura base .NET” en español, que sirva para marcar unas líneas
maestras de diseño e implementación a la hora de desarrollar aplicaciones .NET
complejas. Este marco de trabajo común (en muchas empresas denominado “Libro
Blanco”) define un camino para diseñar e implementar aplicaciones empresariales de
envergadura, con un volumen importante de lógica de negocio. Seguir estas guías
ofrece importantes beneficios en cuanto a calidad, estabilidad y especialmente un
incremento en la facilidad del mantenimiento futuro de las aplicaciones, debido al
desacoplamiento entre sus componentes, así como por la homogeneidad y similitudes
de los diferentes desarrollos.
Microsoft Ibérica define el presente „ Libro de Arquitectura Marco ‟ como patrón y
modelo base, sin embargo, en ningún caso este marco debe ser inalterable. Al
contrario, se trata del primer peldaño de una escalera, un acelerador inicial, que debería
ser personalizado y modificado por cada organización que lo adopte, enfocándolo hacia
necesidades concretas, adaptándolo y agregándole funcionalidad específica según el
mercado objetivo, etc.

1.1.- Audiencia del documento

Este documento está dirigido a las personas involucradas en todo el ciclo de vida
de productos software o de aplicaciones corporativas desarrolladas a medida.
Especialmente los siguientes perfiles:
 Arquitecto de Software
 Desarrollador

1.2.- Objetivos de la Arquitectura marco .NET

Este documento pretende describir una arquitectura marco sobre la que desarrollar
las aplicaciones a medida y establece un conjunto de normas, mejores prácticas y guías
de desarrollo para utilizar .NET de forma adecuada y sobre todo homogénea en las
diferentes implementaciones de aplicaciones.
2 Guía de Arquitectura N-Capas orientada al Dominio con .NET 4.0 (Beta)

1.3.- Niveles de la documentación de la Arquitectura marco

.NET

La documentación de esta Arquitectura se diseña en dos niveles principales:
 Nivel lógico de Arquitectura de Software: Este primer nivel lógico, es una
Arquitectura de software agnóstica a la tecnología (donde no se debe especificar
tecnologías concretas de .NET). Para resaltar este nivel, se mostrará el icono:
 Nivel de Implementación de Arquitectura .NET: Este segundo nivel, es la
implementación concreta de Arquitectura .NET, donde se enumerarán las
tecnologías posibles para cada escenario (con versiones concretas) y normalmente
se escogerá una opción y se explicará su implementación. Así mismo, la
implementación de la arquitectura cuenta con una aplicación .NET ejemplo, cuyo
alcance funcional es muy pequeño, pero debe implementar todas y cada una de las
áreas tecnológicas de la Arquitectura marco. Para resaltar este nivel, se mostrará el
icono de .NET al inicio del capítulo:

DESCARGO DE RESPONSABILIDAD :

Queremos insistir en este punto y destacar que la presente propuesta de
„ Arquitectura N-Capas Orientada al Dominio ‟ no es adecuada para cualquier
tipo de aplicaciones, solamente es adecuada para aplicaciones complejas
empresariales con un volumen importante de lógica de negocio y una vida de
aplicación larga, donde es importante implementar conceptos de
desacoplamiento y ciertos patrones DDD. Para aplicaciones pequeñas y
orientadas a datos, probablemente sea más adecuada una aproximación de
Arquitectura más sencilla implementada con tecnologías RAD.
Así mismo, esta guía (y su aplicación ejemplo asociada) es simplemente una
propuesta a tener en cuenta y ser evaluada y personalizada por las
organizaciones y empresas que lo deseen. Microsoft Ibérica no se hace
responsable de problemas que pudieran derivarse de ella.
4 Guía de Arquitectura N-Capas orientada al Dominio con .NET 4.0 (Beta)
Para los usuarios es importante que el sistema responda a la interacción de una
forma fluida, mientras que para los objetivos del negocio es importante que el sistema
cueste poco. Los usuarios pueden querer que se implemente primero una funcionalidad
útil para su trabajo, mientras que el sistema puede tener prioridad en que se implemente
la funcionalidad que permita definir su estructura.
El trabajo del arquitecto es delinear los escenarios y requisitos de calidad
importantes para cada agente así como los puntos clave que debe cumplir y las
acciones o situaciones que no deben ocurrir.
El objetivo final de la arquitectura es identificar los requisitos que producen un
impacto en la estructura del sistema y reducir los riesgos asociados con la construcción
del sistema. La arquitectura debe soportar los cambios futuros del software, del
hardware y de funcionalidad demandada por los clientes. Del mismo modo, es
responsabilidad del arquitecto analizar el impacto de sus decisiones de diseño y
establecer un compromiso entre los diferentes requisitos de calidad así como entre los
compromisos necesarios para satisfacer a los usuarios, al sistema y los objetivos del
negocio.
En síntesis, la arquitectura debería:
 Mostrar la estructura del sistema pero ocultar los detalles.
 Realizar todos los casos de uso.
 Satisfacer en la medida de lo posible los intereses de los agentes.
 Ocuparse de los requisitos funcionales y de calidad.
 Determinar el tipo de sistema a desarrollar.
 Determinar los estilos arquitecturales que se usarán.
 Tratar las principales cuestiones transversales.
Una vez vistas las principales cuestiones que debe abordar el diseño de la
arquitectura del sistema, ahora vamos a ver los pasos que deben seguirse para
realizarlo. En una metodología ágil como Scrum , la fase de diseño de la arquitectura
comienza durante en el pre-juego (Pre-game) o en la fase de Inicio ( Inception ) en RUP,
en un punto donde ya hemos capturado la visión del sistema que queremos construir.
En el diseño de la arquitectura lo primero que se decide es el tipo de sistema o
aplicación que vamos a construir. Los principales tipos son aplicaciones móviles, de
escritorio, RIAs ( Rich Internet Application ), aplicaciones de servicios, aplicaciones
web… Es importante entender que el tipo de aplicación viene determinado por la
topología de despliegue y los requisitos y restricciones indicadas en los requisitos.
La selección de un tipo de aplicación determina en cierta medida el estilo
arquitectural que se va a usar. El estilo arquitectural es en esencia la partición más
básica del sistema en bloques y la forma en que se relacionan estos bloques. Los
principales estilos arquitecturales son Cliente/Servidor, Sistemas de Componentes,
Fundamentos de Arquitectura de Aplicaciones 5
Arquitectura en capas, MVC, N-Niveles, SOA… Como ya hemos dicho, el estilo
arquitectural que elegimos depende del tipo de aplicación, una aplicación que ofrece
servicios lo normal es que se haga con un estilo arquitectural SOA.
Por otra parte, a la hora de diseñar la arquitectura tenemos que entender también
que un tipo de aplicación suele responder a más de un estilo arquitectural. Por ejemplo,
una página web hecha con ASP.NET MVC sigue un estilo Cliente/Servidor pero al
mismo tiempo el servidor sigue un estilo Modelo Vista Controlador.
Tras haber seleccionado el tipo de aplicación y haber determinado los estilos
arquitecturales que más se ajustan al tipo de sistema que vamos a construir, tenemos
que decidir cómo vamos a construir los bloques que forman nuestro sistema. Por ello el
siguiente paso es seleccionar las distintas tecnologías que vamos a usar. Estas
tecnologías están limitadas por las restricciones de despliegue y las impuestas por el
cliente. Hay que entender las tecnologías como los ladrillos que usamos para construir
nuestro sistema. Por ejemplo, para hacer una aplicación web podemos usar la
tecnología ASP.NET o para hacer un sistema que ofrece servicios podemos emplear
WCF.
Cuando ya hemos analizado nuestro sistema y lo hemos fragmentado en partes más
manejables, tenemos que pensar como implementamos todos los requisitos de calidad
que tiene que satisfacer. Los requisitos de calidad son las propiedades no funcionales
que debe tener el sistema, como por ejemplo la seguridad, la persistencia, la usabilidad,
la mantenibilidad, etc. Conseguir que nuestro sistema tenga estas propiedades va a
traducirse en implementar funcionalidad extra, pero esta funcionalidad es ortogonal a la
funcionalidad básica del sistema.
Para tratar los requisitos de calidad el primer paso es preguntarse ¿Qué requisitos de
calidad requiere el sistema? Para averiguarlo tenemos que analizar los casos de uso.
Una vez hemos obtenido un listado de los requisitos de calidad las siguientes preguntas
son ¿Cómo consigo que mi sistema cumpla estos requisitos? ¿Se puede medir esto de
alguna forma? ¿Qué criterios indican que mi sistema cumple dichos requisitos?
Los requisitos de calidad nos van a obligar a tomar decisiones transversales sobre
nuestro sistema. Por ejemplo, cuando estamos tratando la seguridad de nuestro sistema
tendremos que decidir cómo se autentican los usuarios, como se maneja la autorización
entre las distintas capas de nuestro sistema, etc. De la misma forma tendremos que
tratar otros temas como las comunicaciones, la gestión de excepciones, la
instrumentación o el cacheo de datos.
Los procesos software actuales asumen que el sistema cambiará con el paso del
tiempo y que no podemos saber todo a la hora de diseñar la arquitectura. El sistema
tendrá que evolucionar a medida que se prueba la arquitectura contra los requisitos del
mundo real. Por eso, no hay que tratar de formalizar absolutamente todo a la hora de
definir la arquitectura del sistema. Lo mejor es no asumir nada que no se pueda
comprobar y dejar abierta la opción de un cambio futuro. No obstante, sí que existirán
algunos aspectos que podrán requerir un esfuerzo a la hora de modificarlos, donde para
minimizar dichos esfuerzos es especialmente importante el concepto de
desacoplamiento entre componentes. Por ello es vital identificar esas partes de nuestro
sistema y detenerse el tiempo suficiente para tomar la decisión correcta. En síntesis las
claves son:
Fundamentos de Arquitectura de Aplicaciones 7
Dado que usamos una metodología iterativa e incremental para el desarrollo de
nuestra arquitectura, la implementación de la misma debe seguir el mismo patrón. La
forma de hacer esto es mediante pruebas arquitecturales. Estas pruebas son pequeños
desarrollos de parte de la aplicación (Pruebas de Concepto) que se usan para mitigar
riesgos rápidamente o probar posibles vías de maduración de la arquitectura. Una
prueba arquitectural se convierte en una arquitectura candidata que se evalúa contra la
línea base. Si es una mejora, se convierte en la nueva línea base frente a la cual crear y
evaluar las nuevas arquitecturas candidatas. Las preguntas que debemos hacerle a una
arquitectura candidata que surge como resultado de desarrollar una prueba arquitectural
son:
 ¿Introduce nuevos riesgos?
 ¿Soluciona algún riesgo conocido esta arquitectura?
 ¿Cumple con nuevos requisitos del sistema?
 ¿Realiza casos de uso arquitecturalmente significativos?
 ¿Se encarga de implementar algún requisito de calidad?
 ¿Se encarga de implementar alguna parte del sistema transversal?
Los casos de uso importantes son aquellos que son críticos para la aceptación de la
aplicación o que desarrollan el diseño lo suficiente como para ser útiles en la
evaluación de la arquitectura.
En resumen, el proceso de diseño de la arquitectura tiene que decidir qué
funcionalidad es la más importante a desarrollar. A partir de esta decisión tiene que
decidir el tipo de aplicación y el estilo arquitectural, y tomar las decisiones importantes
sobre seguridad, rendimiento… que afectan al conjunto del sistema. El diseño de la
arquitectura decide cuales son los componentes más básicos del sistema y como se
relacionan entre ellos para implementar la funcionalidad. Todo este proceso debe
hacerse paso a paso, tomando solo las decisiones que se puedan comprobar y dejando
abiertas las que no. Esto significa mitigar los riesgos rápidamente y explorar la
implementación de casos de uso que definan la arquitectura.
10 Guía de Arquitectura N-Capas orientada al Dominio con .NET 4.0 (Beta)

Tabla 1.- Estilo Arquitectural Cliente/Servidor

Estilo
Arquitectural
Cliente/Servidor
Descripción
El estilo
cliente/servidor
define una
relación entre dos
aplicaciones en las
cuales una de ellas
(cliente) envía
peticiones a la otra
(servidor fuente de
datos).
Características
 Es un estilo para sistemas distribuidos.
 Divide el sistema en una aplicación cliente, una
aplicación servidora y una red que las conecta.
 Describe una relación entre el cliente y el servidor en
la cual el primero realiza peticiones y el segundo
envía respuestas.
 Puede usar un amplio rango de protocolos y formatos
de datos para comunicar la información.
Principios
Clave
 El cliente realiza una o más peticiones, espera por las
respuestas y las procesa a su llegada.
 El cliente normalmente se conecta solo a uno o a un
número reducido de servidores al mismo tiempo.
 El cliente interactúa directamente con el usuario, por
ejemplo a través de una interfaz gráfica.
Estilos Arquitecturales 11
 El servidor no realiza ninguna petición al cliente.
 El servidor envía los datos en respuesta a las
peticiones realizadas por los clientes conectados.
 El servidor normalmente autentifica y verifica
primero al usuario y después procesa la petición y
envía los resultados.
Beneficios
 Más seguridad ya que los datos se almacenan en el
servidor que generalmente ofrece más control sobre
la seguridad.
 Acceso centralizado a los datos que están
almacenados en el servidor lo que facilita su acceso y
actualización.
 Facilidad de mantenimiento ya que los roles y las
responsabilidades se distribuyen entre los distintos
servidores a través de la red lo que permite que un
cliente no se vea afectado por un error en un servidor
particular.
Cuando usarlo
 La aplicación se basa en un servidor y soportará
múltiples clientes.
 La aplicación está normalmente limitada a un uso
local y área LAN controlada.
 Estás implementando procesos de negocio que se
usarán a lo largo de toda tu organización.
 Quieres centralizar el almacenamiento, backup y
mantenimiento de la aplicación.
 La aplicación debe soportar distintos tipos de clientes
y distintos dispositivos.