Vistas Parciales

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 19

Areas en ASP.

NET MVC, Manejo de


Estado

Danae Aguilar Guzmán


MCT, MS, MCTS, MCP

[email protected]
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:

Estructura MVC

AreaRegistration
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:

Response.Cookies.Add(new HttpCookie("userId", userId));

 Acceder a un Cookie:
var id = Request.Cookies["userId"].Value;

 Cuando expira un Cookie:


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

También podría gustarte