Upload
desarrollos-nea
View
10.460
Download
1
Embed Size (px)
DESCRIPTION
En la JUTI XI 2010 (Jornadas Universitarias Tecnológicas sobre Informática) dimos un introducción de como trabajar con Entity Framework 4.0, ASP.NET MVC 2.0 con Visual Studio 2010
Citation preview
ASP.NET MVC 2 con Entity Framework 4.0
Ing. Cristina Dacunda cdacunda [at] desarrollosnea.com.ar
Ing. José A. Fernandezjfernandez [at] desarrollosnea.com.ar
JUTI XI | 2010 - Jornadas Universitarias Tecnológicas sobre InformáticaUTN-FRRE
Agosto.2010
Visual Studio 2010
Agenda
• Entity Framework 4.0– Funciones, DataComplex, Herencia– Desarrollo en capas. Clases POCO
• ASP.NET MVC 2– Introducción– Validación– Áreas
Entity Framework 4.0
CSDL
MSL
SSDL
Entity Framework LayersEntidad
Tabla
Base de datos
Entidades de negocio
EF 4.0 ¿Donde estás?
• VS2008 SP1: Version EF 1.0• VS2010: in-box EF 4.0
El Modelo de Entidades
• ¿Cómo empezamos…?– 1) DB Existente– 2) Modelamos la DB– 3) “Code-First”
Empezamos a escribir la app (sin DB)
{Demo}
EF 4.0: Code First
• Trabajar con datos… sin DB, sin XML• Definiendo solamente clases POCO
• Clases POCO (“plain old CLR objects”): Sin métodos para realizar persistencia, no deriva de ninguna clase ni implementa alguna interfaz– Mis entidades que “burbujean” en la app
• Enlaces:Microsoft ADO.NET Entity Framework Feature Community Technology Preview 4
EF 4.0: Capa de Entidades
• Utilizamos una plantilla de VS Gallery • Plantilla: ADO.NET C# POCO Entity Generator
– UtilizaT4, (y unos condimentos..)– Separar nuestras entidades
• Enlacehttp://visualstudiogallery.msdn.microsoft.com/en-us/23df0450-5677-4926-96cc-173d02752313
Entidades Negocio
Acceso a datos/Persistencia
UI/Aplicacion
EDM: Entity Data Model
– Entidades– Complex Types– Herencia
{DEMO}
Acceder/Consultar
• Patron Repository– Unit of Work
• No es un 1 a 1 con las entidades• Entidades relacionadas (“Abstraccion”)
Jedi TipoJedi
JediRepository
…
Patron Repository
• Abstracción de la persistencia • POO
– Es una clase para consultar nuestras entidades– Trabajas con Objetos, con Colecciones
• {DEMO}
ASP.NET MVC
MVC?
El patrón MVC paradigma que divida el sistema en 3 partes:
ModeloEncapsula el estado del sistema
VistaRepresentación visual o no del modelo
ControladorImplementa la lógica de control que mapea acciones a cambios en el modelo
MVC
Model
View Controller
actualiza
consulta
accion
cambio de estado
ASP.NET MVC 2
• Es la implementación de ASP.NETVS2008: es una instalación out-the-boxVS2010: in-box
• Es nuevo en nuestro entorno de desarrollo (Nuevo Proyecto...)– Nos da a elegir
• System.Web
ASP.NET MVC 2
• Soy un desarrollador web. Que habilidades requiero?– Web form: desde el momento “0” (prueba- error)– MVC: un poco mas de «entrenamiento» previo
• Se integra a lo que venimos utilizando funcionalidades de ASP.NET
• Membership, Caching, Session, etc.
ASP.NET MVC 2
• Demo– Controlador. Acciones de ABM– Vistas
ASP.NET MVC 2: Validaciones
• DataAnnotations• Validación del modelo
– Servidor• ModelState.IsValid
– Cliente
ASP.NET MVC 2: Areas
• {DEMO}
ASP.NET MVC vs. WebForms
• WebForms – PRO
• Fue la primer alternativa 2001-2002 para web en .NET• Creación de paginas fácilmente y rápido (drag&drop)• Fácil migración de mundo Winform a ambientes web• Mantiene el estado ! (nos abstrae…)
• Javascript (un poco oculto)
– CONTRAS• Javascript/HTML dificil de controlar (estándares)• Arquitectura de paginas-eventos no estimula el uso de patrones que nos
ayuden• Test (también doloroso),• Javascript es un poco bastante "doloroso« (clientId, registración, …)
ASP.NET MVC vs. WebForms
¿Cuando utilizar?• Cuando WebForms:
– Ya lo utilizo en mi proyecto. Medio Webform y medio MVC no...– Si no tengo practica en MVC. Tener un tiempo practicando antes de utilizarlo.– No te gusta programa javascript– Si estas cómodo con webform.
• Cuando MVC:– Necesito realizar TDD (Test unitarios en la UI)
– Necesito utilizar mucho javascript (…lease jQuery)• Frameworks Javascript. • Un paso mas de Ajax, … «Comet» (Ajax Push)
– Aplicacion mas modular (por obligación)
– Mas control sobre lo que utilizamos. (Motor de Vistas, Controladores personalizados, ActionResult personalizadas)
– Tener control de HTML resultante (estandares, menos código)• Menos código HTML: No tenemos ViewState ni ciclo de vida de las páginas. Menos peso, menos complejidad.
ASP.NET MVC vs. WebForms
¿Cuando utilizar?
• Cuando MVC:– Fácil de mantener en grandes volúmenes de
"paginas"– URL mas "User-Friendly", SEO (también en Webform 4.0)
– Se integra a lo que venimos utilizando funcionalidades de ASP.NET
• Membership, Caching, Session, etc.
(*) Que se viene… MVC 3 (Preview 1)
• “Razor” Nuevo motor de vistas. (Nuevo selector de vista…)– Introducción / Sintaxis (Mas limpia)– Ejemplo:
• Dynamic View / ViewModel• Service Location /Dependency Injection • Clase: JsonValueProviderFactory • Validation Attributes / IValidatableObject • PermanentRedirect / Nuevos ActionREsult (HttpNotFoundResult, HttpStatusCodeResult)
• Enlaces:– ASP.NET MVC 3 Preview 1
Motor ASPX Motor Razor
<ul> <% foreach(var p in Model.Products) { %> <li><%= p.Name %> ($<%= p.Price %>)</li> <% } %> </ul>
<ul> @foreach(var p in Model.Products) { <li>@p.Name ([email protected])</li> } </ul>
Enlaces
• MVC Sitio Oficialhttp://www.asp.net/mvc
• Blogs de los responsables del proyecto– http://haacked.com/ – http://weblogs.asp.net/scottgu/
¿Preguntas?
Ing. Cristina Dacunda cdacunda [at] desarrollosnea.com.ar
blog: http://team.desarrollosnea.com.ar/blogs/cdacunda
Ing. José A. Fernandezjfernandez [at] desarrollosnea.com.ar
blog : http://team.desarrollosnea.com.ar/blogs/jfernandez blog: http://geeks.ms/blogs/fernandezja
JUTI XI | 2010 - Jornadas Universitarias Tecnológicas sobre InformáticaUTN-FRRE
Agosto.2010