Está en la página 1de 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 Tecnolgicas sobre Informtica
UTN-FRRE
Agosto.2010
Visual Studio 2010
Agenda
Entity Framework 4.0
Funciones, DataComplex, Herencia
Desarrollo en capas. Clases POCO
ASP.NET MVC 2
Introduccin
Validacin
reas


Entity Framework 4.0
CSDL
MSL
SSDL
Entity Framework Layers
Entidad
Tabla
Base de datos
Entidades de negocio
EF 4.0 Donde ests?
VS2008 SP1: Version EF 1.0
VS2010: in-box EF 4.0
El Modelo de Entidades
Cmo 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 mtodos
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





Enlace
http://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
Abstraccin de la persistencia
POO
Es una clase para consultar nuestras entidades
Trabajas con Objetos, con Colecciones


{DEMO}


ASP.NET MVC
MVC?
El patrn MVC paradigma que divida el sistema
en 3 partes:
Modelo
Encapsula el estado del sistema
Vista
Representacin visual o no del modelo
Controlador
Implementa la lgica 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 implementacin de ASP.NET
VS2008: es una instalacin out-the-box
VS2010: 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
Validacin 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
Creacin de paginas fcilmente y rpido (drag&drop)
Fcil migracin de mundo Winform a ambientes web
Mantiene el estado ! (nos abstrae)
Javascript (un poco oculto)

CONTRAS
Javascript/HTML dificil de controlar (estndares)
Arquitectura de paginas-eventos no estimula el uso de patrones que
nos ayuden
Test (tambin doloroso),
Javascript es un poco bastante "doloroso (clientId, registracin, )
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 cmodo 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 obligacin)
Mas control sobre lo que utilizamos. (Motor de Vistas, Controladores personalizados,
ActionResult personalizadas)
Tener control de HTML resultante (estandares, menos cdigo)
Menos cdigo HTML: No tenemos ViewState ni ciclo de vida de las pginas. Menos peso, menos complejidad.
ASP.NET MVC vs. WebForms
Cuando utilizar?

Cuando MVC:
Fcil de mantener en grandes volmenes de
"paginas"
URL mas "User-Friendly", SEO (tambin 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)
Introduccin / 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 Oficial
http://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. Fernandez
jfernandez [at] desarrollosnea.com.ar
blog : http://team.desarrollosnea.com.ar/blogs/jfernandez
blog: http://geeks.ms/blogs/fernandezja

JUTI XI | 2010 - Jornadas Universitarias Tecnolgicas sobre Informtica
UTN-FRRE
Agosto.2010