SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
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

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-DesarrolloLuis Fernando Aguas Bucheli
 
Programacion web java
Programacion web javaProgramacion web java
Programacion web javaCésar Ocampo
 
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
 
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 PostgreSQLJosé 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
 
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
 
Workshop 7: Single Page Applications
Workshop 7: Single Page ApplicationsWorkshop 7: Single Page Applications
Workshop 7: Single Page ApplicationsVisual Engineering
 
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 WebEmilio Aviles Avila
 

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
 
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 NubeJim Saenz
 
Nestor Nieto BaseDatos_Tarea01
Nestor Nieto BaseDatos_Tarea01Nestor Nieto BaseDatos_Tarea01
Nestor Nieto BaseDatos_Tarea01NestorNieto
 
Arquitectura3 capas
Arquitectura3 capasArquitectura3 capas
Arquitectura3 capasIsrael Rey
 
CloudStorage - Almacenamiento en la Nube
CloudStorage - Almacenamiento en la NubeCloudStorage - Almacenamiento en la Nube
CloudStorage - Almacenamiento en la NubeArsys
 
Tarea1Cesar Ortiz
Tarea1Cesar OrtizTarea1Cesar Ortiz
Tarea1Cesar Ortizorlandito33
 
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 MarathonJuan Vergara
 
Tarea1 base de datos
Tarea1 base de datosTarea1 base de datos
Tarea1 base de datosIsrael
 
Tarea1 base de datos raquel jaramillo
Tarea1 base de datos raquel jaramilloTarea1 base de datos raquel jaramillo
Tarea1 base de datos raquel jaramilloRaquelitajaramillo
 
Windows Azure, Lo mejor del PDC
Windows Azure, Lo mejor del PDCWindows Azure, Lo mejor del PDC
Windows Azure, Lo mejor del PDCJuan 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 MVCParadigma 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 webDAVAnder 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
Tarea1 base de datosTarea1 base de datos
Tarea1 base de datos
 
Tarea1 base de datos raquel jaramillo
Tarea1 base de datos raquel jaramilloTarea1 base de datos raquel jaramillo
Tarea1 base de datos raquel jaramillo
 
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

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 paralelaDanae 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 datosDanae 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 multimediaDanae 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 usuarioDanae 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 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 usuarioDanae 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 minificationDanae 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 localizacionDanae 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 softwareDanae 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 adaptablesDanae 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étodosDanae 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 JQueryDanae 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

Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionarmando_cardenas
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3AlexysCaytanoMelndez1
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfmasogeis
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...ITeC Instituto Tecnología Construcción
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOSelenaCoronadoHuaman
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Opentix
 

Último (7)

Unidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacionUnidad_3_T1_AutomatasFinitos presentacion
Unidad_3_T1_AutomatasFinitos presentacion
 
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3Segmentacion Segmantica_Modelos UNET and DEEPLABV3
Segmentacion Segmantica_Modelos UNET and DEEPLABV3
 
Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
Manual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdfManual de Usuario APPs_AppInventor-2023.pdf
Manual de Usuario APPs_AppInventor-2023.pdf
 
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
BREEAM ES Urbanismo como herramienta para un planeamiento sostenible - Miguel...
 
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLOPARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
PARTES DEL TECLADO Y SUS FUNCIONES - EJEMPLO
 
Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200Caso de éxito de Hervian con el ERP Sage 200
Caso de éxito de Hervian con el ERP Sage 200
 

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"];