SlideShare una empresa de Scribd logo
Areas en ASP.NET MVC, Manejo de
Estado
Danae Aguilar Guzmán
MCT, MS, MCTS, MCP
danaeaguilar@gmail.com
Areas
Areas
• Si la aplicación se hace grande, es mas
complicado manejar la estructura de
archivos.
• Las Areas nos permiten organizar diferentes
módulos de una aplicación Web basados en
su funcionalidad.
• Permiten tener la estructura de MVC para
cada módulo
Areas
Creando Areas
1. Click derecho en el proyecto Add > Area
2. Ingresar un nombre y aceptar.
3. Se creara una carpeta con la estructura
MVC:
AreaRegistration
Estructura MVC
Areas
Creando Areas
3.1. Se creará un archivo AreaRegistration:
 Define la estrategia de enrutado para el area
public override void
RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Catalogo_default",
"Catalogo/{controller}/{action}/{id}",
new { action = "Index", id =
UrlParameter.Optional }
);
}
Areas
Creando Areas
3.2. Se registran las areas en el archivo
Global.asax, en el método Application_Start:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
Areas
Creando Areas
4. Crear controllers y vistas
5. Agregar el espacio de nombres del controller
principal en el archivo RouteConfig:
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index",
id = UrlParameter.Optional },
namespaces: new[] { "EjemploAreas.Controllers" }
);
Areas
Creando Areas
6. Agregando enlaces a las areas:
<li>@Html.ActionLink("Ver Catalogo",
"Index",
"Home",
new { area="Catalogo"},
null)
</li>
Areas
Creando Areas
6.1. Pasando datos en el enlace:
<li>@Html.ActionLink("Ver Catalogo",
"Index",
"Home",
new { area="Catalogo",
Usurio = "Juanito" },
null)
</li>
Areas
Usando layout en Areas
Necesitamos copiar al web config externo, los
datos del web.config que esta en la carpeta
shared: <configSections>
<sectionGroup name="system.web…….
<section name="host" type="System…….
<section name="pages" type="System.Web…….
</sectionGroup>
<section name="entityFramework" type="System…….
</configSections>
<system.web.webPages.razor>
<host factoryType="System…….
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Optimization"/>
<add namespace="System.Web.Routing" />
</namespaces>
</pages>
</system.web.webPages.razor>
Manejo de estado
 HTTP es un protocolo sin estado
 Cada request implica volver a crear todas las
instancias de nuestra página.
Podemos mantener estado:
1.Del lado del server:
 Application state, Session state
2. Del lado del Cliente:
 Cookie state, Query Strings
3. Entre peticiones:
 Cross-page posting, Items collection
Manejo de Sesiones y aplicación
 Los datos se guardan en el servidor
 Mas seguro
 Evita el envió de datos en cada petición
 Application state permite guardar datos
globales para toda la aplicación
× Consume memoria del servidor
× Puede reducir el performance y escalabilidad
de la aplicación
Manejo de Sesiones y aplicación
Application State
 Estado compartido por todos los usuarios de
la aplicación
 Usar cuando obtener un valor que se
requiere siempre, consume demasiado en
obtenerlo para cada petición.
 Se perderán los datos si en server se
reinicia o detiene.
Manejo de Sesiones y aplicación
Application State
 Se almacena en una instancia de
HttpApplicationState
 Accedemos por la propiedad Application
HttpContext.Current.Application["Nombre"] = "Pepe";
Manejo de Sesiones y aplicación
Application State
 Para actualizar Application debemos poner
un bloqueo
Application.Lock();
Application["clicks"] = ((int)Application["clicks"]) + 1;
Application.UnLock();
Manejo de Sesiones y aplicación
Session State
 Son datos específicos para cada usuario
 Los datos se pierden si la sesión del usuario
termina.
 Se almacena en el servidor, pero puede
configurarse para almacenarse en cookies, en
otro state server o en una Base de Datos
Manejo de Sesiones y aplicación
Session State
 Accedemos mediante la propiedad Session
if (Session["ultimaVisita"] != null)
{
Label1.Text =
((DateTime)Session["ultimaVisita"]).ToString();
}
else
{
Label1.Text = "Ultima visita es desconocida";
}
Session["ultimaVisita"] = DateTime.Now;
Cookies
 Se almacenan en el cliente
 Se pueden mantener en archivos disponibles
en el tiempo en distintas peticiones desde la
misma máquina.
 No se mantiene si el usuario se conecta desde
otra máquina o dispositivo
 Los usuarios pueden eliminar los cookies en
cualquier momento
Cookies
 Crear un Cookie:
 Acceder a un Cookie:
 Cuando expira un Cookie:
Response.Cookies.Add(new HttpCookie("userId", userId));
var id = Request.Cookies["userId"].Value;
Response.Cookies["lastVisit"].Expires =
DateTime.Now.AddDays(1);
QueryString
 Se pasan en el url:
http://www.miSitio.com/test.aspx?nombre=ju
anito&edad=21
 Acceder al valor:
Label1.Text = Request["nombre"];

Más contenido relacionado

La actualidad más candente

Java Web Lección 02 - JSP
Java Web Lección 02 - JSPJava Web Lección 02 - JSP
Java Web Lección 02 - JSP
Eric Gustavo Coronel Castillo
 
Trabajo de jdbc
Trabajo de jdbcTrabajo de jdbc
Curso Java Avanzado 2 Servlets
Curso Java Avanzado   2 ServletsCurso Java Avanzado   2 Servlets
Curso Java Avanzado 2 Servlets
Emilio Aviles Avila
 
7-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Desarrollo
7-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Desarrollo7-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Desarrollo
7-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Desarrollo
Luis Fernando Aguas Bucheli
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web javaCésar Ocampo
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
Sonia Ramos Fernandez
 
la mejor forma de Conectar c# con mysql con archivos de configuracion
 la mejor forma de Conectar c# con mysql con archivos de configuracion  la mejor forma de Conectar c# con mysql con archivos de configuracion
la mejor forma de Conectar c# con mysql con archivos de configuracion
juandavid1118
 
Java web Lección 04 - JSTL
Java web Lección 04 - JSTLJava web Lección 04 - JSTL
Java web Lección 04 - JSTL
Eric Gustavo Coronel Castillo
 
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLDesarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
José Alfredo Ramírez
 
Servlets y jsp
Servlets y jspServlets y jsp
Servlets y jspdtbadboy0
 
Introducción a AngularJS
Introducción a AngularJS Introducción a AngularJS
Introducción a AngularJS
Marcos Reynoso
 
Connection
ConnectionConnection
Arquitectura en aplicaciones Angular y buenas practicas.
Arquitectura en aplicaciones Angular y buenas practicas.Arquitectura en aplicaciones Angular y buenas practicas.
Arquitectura en aplicaciones Angular y buenas practicas.
Germán Küber
 
Java web 01 - servlets
Java web 01 - servletsJava web 01 - servlets
Java web 01 - servlets
Eric Gustavo Coronel Castillo
 
Workshop 7: Single Page Applications
Workshop 7: Single Page ApplicationsWorkshop 7: Single Page Applications
Workshop 7: Single Page Applications
Visual Engineering
 
JDBC (Java Database Connectivity)
JDBC (Java Database Connectivity)JDBC (Java Database Connectivity)
JDBC (Java Database Connectivity)
Yanella Correa Berru
 
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado   1 IntroduccióN Al Desarrollo WebCurso Java Avanzado   1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Emilio Aviles Avila
 
JDBC
JDBCJDBC

La actualidad más candente (20)

Java Web Lección 02 - JSP
Java Web Lección 02 - JSPJava Web Lección 02 - JSP
Java Web Lección 02 - JSP
 
Trabajo de jdbc
Trabajo de jdbcTrabajo de jdbc
Trabajo de jdbc
 
Curso Java Avanzado 2 Servlets
Curso Java Avanzado   2 ServletsCurso Java Avanzado   2 Servlets
Curso Java Avanzado 2 Servlets
 
7-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Desarrollo
7-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Desarrollo7-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Desarrollo
7-Unidad 2: Diseño de Vista-2.3 Introducción Web Services-Desarrollo
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web java
 
Java con base de datos
Java con base de datosJava con base de datos
Java con base de datos
 
la mejor forma de Conectar c# con mysql con archivos de configuracion
 la mejor forma de Conectar c# con mysql con archivos de configuracion  la mejor forma de Conectar c# con mysql con archivos de configuracion
la mejor forma de Conectar c# con mysql con archivos de configuracion
 
Java web Lección 04 - JSTL
Java web Lección 04 - JSTLJava web Lección 04 - JSTL
Java web Lección 04 - JSTL
 
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQLDesarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
Desarrollo de Aplicaciones con Ruby on Rails y PostgreSQL
 
Servlets y jsp
Servlets y jspServlets y jsp
Servlets y jsp
 
Introducción a AngularJS
Introducción a AngularJS Introducción a AngularJS
Introducción a AngularJS
 
Connection
ConnectionConnection
Connection
 
Java servlets
Java servletsJava servlets
Java servlets
 
Arquitectura en aplicaciones Angular y buenas practicas.
Arquitectura en aplicaciones Angular y buenas practicas.Arquitectura en aplicaciones Angular y buenas practicas.
Arquitectura en aplicaciones Angular y buenas practicas.
 
Java web 01 - servlets
Java web 01 - servletsJava web 01 - servlets
Java web 01 - servlets
 
Workshop 7: Single Page Applications
Workshop 7: Single Page ApplicationsWorkshop 7: Single Page Applications
Workshop 7: Single Page Applications
 
Jdbc
JdbcJdbc
Jdbc
 
JDBC (Java Database Connectivity)
JDBC (Java Database Connectivity)JDBC (Java Database Connectivity)
JDBC (Java Database Connectivity)
 
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado   1 IntroduccióN Al Desarrollo WebCurso Java Avanzado   1 IntroduccióN Al Desarrollo Web
Curso Java Avanzado 1 IntroduccióN Al Desarrollo Web
 
JDBC
JDBCJDBC
JDBC
 

Similar a ASP.NET MVC - areas, manejo de estado

Aplicaciones web offline ITParral Prieto y Nassi
Aplicaciones web offline ITParral Prieto y NassiAplicaciones web offline ITParral Prieto y Nassi
Aplicaciones web offline ITParral Prieto y NassiGuillermo Nassi
 
12. Administracion Del Estado
12.  Administracion Del Estado12.  Administracion Del Estado
12. Administracion Del Estadoguest3cf6ff
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
Axel De La Fuente
 
Patrones para el diseño de aplicaciones en la Nube
Patrones para el diseño de aplicaciones en la NubePatrones para el diseño de aplicaciones en la Nube
Patrones para el diseño de aplicaciones en la Nube
Jim Saenz
 
Nestor Nieto BaseDatos_Tarea01
Nestor Nieto BaseDatos_Tarea01Nestor Nieto BaseDatos_Tarea01
Nestor Nieto BaseDatos_Tarea01
NestorNieto
 
Arquitectura3 capas
Arquitectura3 capasArquitectura3 capas
Arquitectura3 capas
Israel Rey
 
Cloud computing
Cloud computingCloud computing
Cloud computing
Checha Macario Ixcot
 
CloudStorage - Almacenamiento en la Nube
CloudStorage - Almacenamiento en la NubeCloudStorage - Almacenamiento en la Nube
CloudStorage - Almacenamiento en la Nube
Arsys
 
04. Implementando APIs HTML5
04. Implementando APIs HTML5 04. Implementando APIs HTML5
04. Implementando APIs HTML5
Danae Aguilar Guzmán
 
Tarea1Cesar Ortiz
Tarea1Cesar OrtizTarea1Cesar Ortiz
Tarea1Cesar Ortiz
orlandito33
 
10.desarrollowebconjava
10.desarrollowebconjava10.desarrollowebconjava
10.desarrollowebconjava
Jose Luis Carrasco Comonfort
 
Despliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon
Despliegue aplicaciones #SpringCloud en Cluster #Mesos MarathonDespliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon
Despliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon
Juan Vergara
 
Tarea1 base de datos raquel jaramillo
Tarea1 base de datos raquel jaramilloTarea1 base de datos raquel jaramillo
Tarea1 base de datos raquel jaramilloRaquelitajaramillo
 
Tarea1 base de datos
Tarea1 base de datosTarea1 base de datos
Tarea1 base de datos
Israel
 
Windows Azure, Lo mejor del PDC
Windows Azure, Lo mejor del PDCWindows Azure, Lo mejor del PDC
Windows Azure, Lo mejor del PDC
Juan Pablo
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
Paradigma Digital
 
Servicios de datos en la nube
Servicios de datos en la nubeServicios de datos en la nube
Servicios de datos en la nubeJuan Pablo
 
UDA-Anexo uso de webDAV
UDA-Anexo uso de webDAVUDA-Anexo uso de webDAV
UDA-Anexo uso de webDAV
Ander Martinez
 
Application and multi instances
Application and multi instancesApplication and multi instances
Application and multi instancesLuis Vázquez
 

Similar a ASP.NET MVC - areas, manejo de estado (20)

Monit optim iis6_2
Monit optim iis6_2Monit optim iis6_2
Monit optim iis6_2
 
Aplicaciones web offline ITParral Prieto y Nassi
Aplicaciones web offline ITParral Prieto y NassiAplicaciones web offline ITParral Prieto y Nassi
Aplicaciones web offline ITParral Prieto y Nassi
 
12. Administracion Del Estado
12.  Administracion Del Estado12.  Administracion Del Estado
12. Administracion Del Estado
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Patrones para el diseño de aplicaciones en la Nube
Patrones para el diseño de aplicaciones en la NubePatrones para el diseño de aplicaciones en la Nube
Patrones para el diseño de aplicaciones en la Nube
 
Nestor Nieto BaseDatos_Tarea01
Nestor Nieto BaseDatos_Tarea01Nestor Nieto BaseDatos_Tarea01
Nestor Nieto BaseDatos_Tarea01
 
Arquitectura3 capas
Arquitectura3 capasArquitectura3 capas
Arquitectura3 capas
 
Cloud computing
Cloud computingCloud computing
Cloud computing
 
CloudStorage - Almacenamiento en la Nube
CloudStorage - Almacenamiento en la NubeCloudStorage - Almacenamiento en la Nube
CloudStorage - Almacenamiento en la Nube
 
04. Implementando APIs HTML5
04. Implementando APIs HTML5 04. Implementando APIs HTML5
04. Implementando APIs HTML5
 
Tarea1Cesar Ortiz
Tarea1Cesar OrtizTarea1Cesar Ortiz
Tarea1Cesar Ortiz
 
10.desarrollowebconjava
10.desarrollowebconjava10.desarrollowebconjava
10.desarrollowebconjava
 
Despliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon
Despliegue aplicaciones #SpringCloud en Cluster #Mesos MarathonDespliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon
Despliegue aplicaciones #SpringCloud en Cluster #Mesos Marathon
 
Tarea1 base de datos raquel jaramillo
Tarea1 base de datos raquel jaramilloTarea1 base de datos raquel jaramillo
Tarea1 base de datos raquel jaramillo
 
Tarea1 base de datos
Tarea1 base de datosTarea1 base de datos
Tarea1 base de datos
 
Windows Azure, Lo mejor del PDC
Windows Azure, Lo mejor del PDCWindows Azure, Lo mejor del PDC
Windows Azure, Lo mejor del PDC
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
 
Servicios de datos en la nube
Servicios de datos en la nubeServicios de datos en la nube
Servicios de datos en la nube
 
UDA-Anexo uso de webDAV
UDA-Anexo uso de webDAVUDA-Anexo uso de webDAV
UDA-Anexo uso de webDAV
 
Application and multi instances
Application and multi instancesApplication and multi instances
Application and multi instances
 

Más de Danae Aguilar Guzmán

Microsoft HoloLens
Microsoft HoloLensMicrosoft HoloLens
Microsoft HoloLens
Danae Aguilar Guzmán
 
WPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralelaWPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralela
Danae Aguilar Guzmán
 
WPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datosWPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datos
Danae Aguilar Guzmán
 
WPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimediaWPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimedia
Danae Aguilar Guzmán
 
WPF 06 - personalizando los controles de interfaz de usuario
WPF 06 -  personalizando los controles de interfaz de usuarioWPF 06 -  personalizando los controles de interfaz de usuario
WPF 06 - personalizando los controles de interfaz de usuario
Danae Aguilar Guzmán
 
WPF 05 - triggers y eventos
WPF 05 - triggers y eventosWPF 05 - triggers y eventos
WPF 05 - triggers y eventos
Danae Aguilar Guzmán
 
WPF 04 - reutilizando recursos y estilos en una aplicación WPF
WPF 04 -  reutilizando recursos y estilos en una aplicación WPF WPF 04 -  reutilizando recursos y estilos en una aplicación WPF
WPF 04 - reutilizando recursos y estilos en una aplicación WPF
Danae Aguilar Guzmán
 
WPF 03 - controles WPF
WPF 03 - controles WPF WPF 03 - controles WPF
WPF 03 - controles WPF
Danae Aguilar Guzmán
 
WPF 02 - construyendo una interfaz de usuario
WPF 02  - construyendo una interfaz de usuarioWPF 02  - construyendo una interfaz de usuario
WPF 02 - construyendo una interfaz de usuario
Danae Aguilar Guzmán
 
WPF 01 - introducción
WPF 01 -  introducciónWPF 01 -  introducción
WPF 01 - introducción
Danae Aguilar Guzmán
 
ASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minificationASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minification
Danae Aguilar Guzmán
 
ASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacionASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacion
Danae Aguilar Guzmán
 
Crecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de softwareCrecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de software
Danae Aguilar Guzmán
 
10. consumiendo datos
10. consumiendo datos10. consumiendo datos
10. consumiendo datos
Danae Aguilar Guzmán
 
09. Creando interfaces de usuario animadas y adaptables
09. Creando interfaces de usuario animadas y adaptables09. Creando interfaces de usuario animadas y adaptables
09. Creando interfaces de usuario animadas y adaptables
Danae Aguilar Guzmán
 
08. Propiedades de estilo HTML box
08. Propiedades de estilo HTML box08. Propiedades de estilo HTML box
08. Propiedades de estilo HTML box
Danae Aguilar Guzmán
 
07. Usando CSS3
07. Usando CSS307. Usando CSS3
07. Usando CSS3
Danae Aguilar Guzmán
 
06. Creando un proceso web worker
06. Creando un proceso web worker 06. Creando un proceso web worker
06. Creando un proceso web worker
Danae Aguilar Guzmán
 
05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos
Danae Aguilar Guzmán
 
03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery
Danae Aguilar Guzmán
 

Más de Danae Aguilar Guzmán (20)

Microsoft HoloLens
Microsoft HoloLensMicrosoft HoloLens
Microsoft HoloLens
 
WPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralelaWPF 09. procesos asíncronos y programación paralela
WPF 09. procesos asíncronos y programación paralela
 
WPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datosWPF 08 - manejo y vinculación de datos
WPF 08 - manejo y vinculación de datos
 
WPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimediaWPF 07 - gráficos, animación y multimedia
WPF 07 - gráficos, animación y multimedia
 
WPF 06 - personalizando los controles de interfaz de usuario
WPF 06 -  personalizando los controles de interfaz de usuarioWPF 06 -  personalizando los controles de interfaz de usuario
WPF 06 - personalizando los controles de interfaz de usuario
 
WPF 05 - triggers y eventos
WPF 05 - triggers y eventosWPF 05 - triggers y eventos
WPF 05 - triggers y eventos
 
WPF 04 - reutilizando recursos y estilos en una aplicación WPF
WPF 04 -  reutilizando recursos y estilos en una aplicación WPF WPF 04 -  reutilizando recursos y estilos en una aplicación WPF
WPF 04 - reutilizando recursos y estilos en una aplicación WPF
 
WPF 03 - controles WPF
WPF 03 - controles WPF WPF 03 - controles WPF
WPF 03 - controles WPF
 
WPF 02 - construyendo una interfaz de usuario
WPF 02  - construyendo una interfaz de usuarioWPF 02  - construyendo una interfaz de usuario
WPF 02 - construyendo una interfaz de usuario
 
WPF 01 - introducción
WPF 01 -  introducciónWPF 01 -  introducción
WPF 01 - introducción
 
ASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minificationASP.NET MVC - bundling y minification
ASP.NET MVC - bundling y minification
 
ASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacionASP.NET MVC - implementando globalizacion and localizacion
ASP.NET MVC - implementando globalizacion and localizacion
 
Crecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de softwareCrecimiento profesional como desarrollador de software
Crecimiento profesional como desarrollador de software
 
10. consumiendo datos
10. consumiendo datos10. consumiendo datos
10. consumiendo datos
 
09. Creando interfaces de usuario animadas y adaptables
09. Creando interfaces de usuario animadas y adaptables09. Creando interfaces de usuario animadas y adaptables
09. Creando interfaces de usuario animadas y adaptables
 
08. Propiedades de estilo HTML box
08. Propiedades de estilo HTML box08. Propiedades de estilo HTML box
08. Propiedades de estilo HTML box
 
07. Usando CSS3
07. Usando CSS307. Usando CSS3
07. Usando CSS3
 
06. Creando un proceso web worker
06. Creando un proceso web worker 06. Creando un proceso web worker
06. Creando un proceso web worker
 
05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos05. Creando e implementando objetos y métodos
05. Creando e implementando objetos y métodos
 
03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery03. Introduccion a JavaScript y JQuery
03. Introduccion a JavaScript y JQuery
 

Último

Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
nicromante2000
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
AbbieDominguezGirond
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
Ecaresoft Inc.
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
SamuelGampley
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
juanorejuela499
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
juanjosebarreiro704
 

Último (6)

Escaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipoEscaneo y eliminación de malware en el equipo
Escaneo y eliminación de malware en el equipo
 
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdfIntroducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
Introducción_a_las_APIs_y_Desarrollo_Back-end-Abbie Dominguez Girondo.pdf
 
Caso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La SalleCaso de exito Cirrus - Hospital La Salle
Caso de exito Cirrus - Hospital La Salle
 
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJECONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
CONCEPTOS DE PROGRAMACION CUALQUIER LENGUAJE
 
PitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitalesPitchCollabART uniendo talentos, creando maravillas digitales
PitchCollabART uniendo talentos, creando maravillas digitales
 
Maquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdfMaquina de Dibujo y Escritura Automática.pdf
Maquina de Dibujo y Escritura Automática.pdf
 

ASP.NET MVC - areas, manejo de estado

  • 1. Areas en ASP.NET MVC, Manejo de Estado Danae Aguilar Guzmán MCT, MS, MCTS, MCP danaeaguilar@gmail.com
  • 2. Areas Areas • Si la aplicación se hace grande, es mas complicado manejar la estructura de archivos. • Las Areas nos permiten organizar diferentes módulos de una aplicación Web basados en su funcionalidad. • Permiten tener la estructura de MVC para cada módulo
  • 3. Areas Creando Areas 1. Click derecho en el proyecto Add > Area 2. Ingresar un nombre y aceptar. 3. Se creara una carpeta con la estructura MVC: AreaRegistration Estructura MVC
  • 4. Areas Creando Areas 3.1. Se creará un archivo AreaRegistration:  Define la estrategia de enrutado para el area public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "Catalogo_default", "Catalogo/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional } ); }
  • 5. Areas Creando Areas 3.2. Se registran las areas en el archivo Global.asax, en el método Application_Start: protected void Application_Start() { AreaRegistration.RegisterAllAreas();
  • 6. Areas Creando Areas 4. Crear controllers y vistas 5. Agregar el espacio de nombres del controller principal en el archivo RouteConfig: routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, namespaces: new[] { "EjemploAreas.Controllers" } );
  • 7. Areas Creando Areas 6. Agregando enlaces a las areas: <li>@Html.ActionLink("Ver Catalogo", "Index", "Home", new { area="Catalogo"}, null) </li>
  • 8. Areas Creando Areas 6.1. Pasando datos en el enlace: <li>@Html.ActionLink("Ver Catalogo", "Index", "Home", new { area="Catalogo", Usurio = "Juanito" }, null) </li>
  • 9. Areas Usando layout en Areas Necesitamos copiar al web config externo, los datos del web.config que esta en la carpeta shared: <configSections> <sectionGroup name="system.web……. <section name="host" type="System……. <section name="pages" type="System.Web……. </sectionGroup> <section name="entityFramework" type="System……. </configSections> <system.web.webPages.razor> <host factoryType="System……. <pages pageBaseType="System.Web.Mvc.WebViewPage"> <namespaces> <add namespace="System.Web.Mvc" /> <add namespace="System.Web.Mvc.Ajax" /> <add namespace="System.Web.Mvc.Html" /> <add namespace="System.Web.Optimization"/> <add namespace="System.Web.Routing" /> </namespaces> </pages> </system.web.webPages.razor>
  • 10. Manejo de estado  HTTP es un protocolo sin estado  Cada request implica volver a crear todas las instancias de nuestra página. Podemos mantener estado: 1.Del lado del server:  Application state, Session state 2. Del lado del Cliente:  Cookie state, Query Strings 3. Entre peticiones:  Cross-page posting, Items collection
  • 11. Manejo de Sesiones y aplicación  Los datos se guardan en el servidor  Mas seguro  Evita el envió de datos en cada petición  Application state permite guardar datos globales para toda la aplicación × Consume memoria del servidor × Puede reducir el performance y escalabilidad de la aplicación
  • 12. Manejo de Sesiones y aplicación Application State  Estado compartido por todos los usuarios de la aplicación  Usar cuando obtener un valor que se requiere siempre, consume demasiado en obtenerlo para cada petición.  Se perderán los datos si en server se reinicia o detiene.
  • 13. Manejo de Sesiones y aplicación Application State  Se almacena en una instancia de HttpApplicationState  Accedemos por la propiedad Application HttpContext.Current.Application["Nombre"] = "Pepe";
  • 14. Manejo de Sesiones y aplicación Application State  Para actualizar Application debemos poner un bloqueo Application.Lock(); Application["clicks"] = ((int)Application["clicks"]) + 1; Application.UnLock();
  • 15. Manejo de Sesiones y aplicación Session State  Son datos específicos para cada usuario  Los datos se pierden si la sesión del usuario termina.  Se almacena en el servidor, pero puede configurarse para almacenarse en cookies, en otro state server o en una Base de Datos
  • 16. Manejo de Sesiones y aplicación Session State  Accedemos mediante la propiedad Session if (Session["ultimaVisita"] != null) { Label1.Text = ((DateTime)Session["ultimaVisita"]).ToString(); } else { Label1.Text = "Ultima visita es desconocida"; } Session["ultimaVisita"] = DateTime.Now;
  • 17. Cookies  Se almacenan en el cliente  Se pueden mantener en archivos disponibles en el tiempo en distintas peticiones desde la misma máquina.  No se mantiene si el usuario se conecta desde otra máquina o dispositivo  Los usuarios pueden eliminar los cookies en cualquier momento
  • 18. Cookies  Crear un Cookie:  Acceder a un Cookie:  Cuando expira un Cookie: Response.Cookies.Add(new HttpCookie("userId", userId)); var id = Request.Cookies["userId"].Value; Response.Cookies["lastVisit"].Expires = DateTime.Now.AddDays(1);
  • 19. QueryString  Se pasan en el url: http://www.miSitio.com/test.aspx?nombre=ju anito&edad=21  Acceder al valor: Label1.Text = Request["nombre"];