Transcript
Page 1: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

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

Page 2: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

Agenda

• Entity Framework 4.0– Funciones, DataComplex, Herencia– Desarrollo en capas. Clases POCO

• ASP.NET MVC 2– Introducción– Validación– Áreas

Page 3: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

Entity Framework 4.0

Page 4: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010
Page 5: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

CSDL

MSL

SSDL

Entity Framework LayersEntidad

Tabla

Base de datos

Entidades de negocio

Page 6: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

EF 4.0 ¿Donde estás?

• VS2008 SP1: Version EF 1.0• VS2010: in-box EF 4.0

Page 7: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

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}

Page 8: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

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

Page 9: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

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

Page 10: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

EDM: Entity Data Model

– Entidades– Complex Types– Herencia

{DEMO}

Page 11: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

Acceder/Consultar

• Patron Repository– Unit of Work

• No es un 1 a 1 con las entidades• Entidades relacionadas (“Abstraccion”)

Jedi TipoJedi

JediRepository

Page 12: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

Patron Repository

• Abstracción de la persistencia • POO

– Es una clase para consultar nuestras entidades– Trabajas con Objetos, con Colecciones

• {DEMO}

Page 13: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

ASP.NET MVC

Page 14: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

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

Page 15: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

MVC

Model

View Controller

actualiza

consulta

accion

cambio de estado

Page 16: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

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

Page 17: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

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.

Page 18: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

ASP.NET MVC 2

• Demo– Controlador. Acciones de ABM– Vistas

Page 19: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

ASP.NET MVC 2: Validaciones

• DataAnnotations• Validación del modelo

– Servidor• ModelState.IsValid

– Cliente

Page 20: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

ASP.NET MVC 2: Areas

• {DEMO}

Page 21: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

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, …)

Page 22: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

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.

Page 23: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

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.

Page 24: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

(*) 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>

Page 25: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

Enlaces

• MVC Sitio Oficialhttp://www.asp.net/mvc

• Blogs de los responsables del proyecto– http://haacked.com/ – http://weblogs.asp.net/scottgu/

Page 26: Entity Framework 4.0 y ASP.NET MVC 2 con VS2010 - JUTI XI - 2010

¿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