entity framework 4.0 y asp.net mvc 2 con vs2010 - juti xi - 2010

26
ASP.NET MVC 2 con Entity Framework 4.0 Ing. Cristina Dacunda cdacunda [at] desarrollosnea.com.ar Ing. José A. Fernandez jfernandez [at] desarrollosnea.com.ar JUTI XI | 2010 - Jornadas Universitarias Tecnológicas sobre Informática UTN-FRRE Agosto.2010 Visual Studio 2010

Upload: desarrollos-nea

Post on 24-May-2015

10.460 views

Category:

Technology


1 download

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

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