1. Unidad 1: Arquitectura de
Diseño
Autor(es):
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Plataformas de Desarrollo 2
Mg. Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
Laguas@uisrael.edu.ec
Aguaszoft@Outlook.es
2. “No puedes derrotar a la persona que
nunca se rinde”
(Anónimo)
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Plataformas de Desarrollo 2
3. Resultado de Aprendizaje
• Desarrollar soluciones informáticas mediante metodologías,
herramientas y estándares que satisfagan los requerimientos
de las organizaciones sobre la base de los principios de la
sociedad de la información.
6. Objetivos
• Adquirir los conceptos básicos relacionados con MVC
• Reconocer las características de MVC
7. ¿Qué es un patrón de
arquitectura de software?
Es una norma de diseño establecida en el
campo de la Ingeniería de Software.
Es un concepto que establece ciertos
elementos importantes de una arquitectura
de software
No es la arquitectura en sí misma
Ejemplos: ETL (servicios de integración
RDBMS) / DataWarehouse/ Modelo Entidad-
Relación, etc.
8. ¿Qué es el patrón de
arquitectura MVC?
MODELO-VISTA-CONTROLADOR
Es un patrón de arquitectura de software.
VISTA: representación visual de la información del
modelo.
MODELO: representa uno o más objetos con un
estado determinado.
CONTROLADOR: es lo que puede alterar el
estado del modelo.
9. MVC – Perspectiva 1
Browser
1.Petición
HTTP
C
CONTROLADOR
2. Parámetros
de ejecución
M
MODELO
3. Colección
datos resultado
V
VISTA
3.Colección
datosresultado
4.Contenidode
interfazusuario
5.Contenido
HTTP
CLIENTE SERVIDOR
Los componentes M,V y C
están del lado servidor.
10. MODELO
2. Parámetros
de ejecución
M
MODELO
3. Colección
datos resultado
Los objeto de modelo
•Implementan la lógica
del dominio de la
aplicación.
•Suelen leer y persistir
estados en una RDBMS.
•En sistemas grandes pueden
tener una capa de acceso a
datos (DAL) separada.
12. 3.Colección
datosresultado
4.Contenidode
interfazusuario
La GUI se construye con elementos propios de la
tecnología que se utilice
Cliente liviano (por lo general, HTML o formularios
XML)
Cliente pesado (dependerá de la plataforma, etc.)
HTML/XML
WinForms .NET
FormulariosJava
Visual FoxPro
Visual Basic
Delphi
PowerBuilder
V
VISTA
VISTA
13. CONTROLADOR
1.Petición
HTTP
C
CONTROLADOR
2. Parámetros
de ejecución
3. Colección
datos resultado5.Contenido
HTTP
Es el componente que
•Maneja la interacción con el usuario y en función de eso..
•..envía mensajes al modelo para modificar su estado (es decir,
cambia el valor de sus miembros, etc.)
•Selecciona en último término el tipo de vista que exhibirá al
cliente en la GUI.
14. Acople fuerte
Dos clases están fuertemente acopladas cuando
Una clase dependiente A tiene un fuerte
“conocimiento”, o hace un uso intensivo, de las
definiciones existentes en otra clase B
A implementa un puntero directo a una clase
concreta que aporta el conocimiento necesario
La dependencia sobre B no se puede cambiarsin
reprogramar la claseA
A
B
Inicio()
Saldo()
Nuevo()
Fin()
15. Acople débil
Dos clases están débilmente acopladas cuando
Una clase dependiente A no tiene conocimiento (o
bien hace poco uso) de las definici0nes existentes en
otra clase B
A implementa un puntero sólo a una interfaz, la cual
puede estar implementada por varias clases concretas
que aportan el conocimiento necesario
La dependencia de A se limita sólo al “contrato” de la
interfaz que expone B.
A
interfaz
B
Inicio()
Saldo()
Nuevo()
Fin()
Empleado
Inicio()
Saldo()
Nuevo()
Fin()
Director
Inicio()
Saldo()
Nuevo()
Fin()
16. MVC es acople débil
Existe acople débil entre los tres
componentes MVC
Permite el enfoque profundo en cada uno de
estos elementos, de a uno por vez
Facilita el testing automático
En ASP.NET WebForms existe una sola clasepara
mostrar salida y manejar la entrada de usuario.
Hay que instanciar toda la cadena de objetos para
probarla.
Con MVC las pruebas se remiten a un solo
componente aislado de la presentación
18. Motor de vista “Razor”
Todo ASP.NET MVC tiene incorporado el
concepto de “motor de vista”
Genera las vistas de acuerdo al tipo de cliente final
(smart client, thin client, etc.)
Si son páginas HTML finales, el motor por
defecto es ASP.NET con masterpages
Con MVC 3 se agrega un nuevo motor de
representación (rendering) de páginas:
RAZOR
20. ¿Y qué es Modernizr?
Es una librería para detectar el uso de HTML5
+ CSS3 y su correspondiente soporte (o no)en
el browser.
Si el browser es compatible, se habilitan los
nuevos estilos y marcaciones