entity framework 4.0 y asp.net mvc 2 con vs2010 - juti xi - 2010
Post on 24-May-2015
10.460 Views
Preview:
DESCRIPTION
TRANSCRIPT
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 ($@p.Price)</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
top related