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

Post on 24-May-2015

10.460 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

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

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