Mostrando entradas con la etiqueta Programacion. Mostrar todas las entradas
Mostrando entradas con la etiqueta Programacion. Mostrar todas las entradas

miércoles, 17 de septiembre de 2014

El archivo _viewstart en MVC Razor

Actualmente tenemos varias opciones para establecer layouts en nuestras páginas MVZ Razor. La forma más fácil es especificar en cada archivo de vista el layout que queremos utilizar de la siguiente manera:
@model Razor.Models.Product 
@{ 
ViewBag.Title = "Product Name"; 
Layout = "~/Views/_BasicLayout.cshtml"; 
} 
Product Name: @Model.Name 

En este caso establecemos la propiedad Layout de la vista para establecer la ruta al archivo de plantilla. Usar layouts tiene muchos beneficios. Nos permite simplificar las vistas, creando código HTML común y aplicarlo a múltiples vistas. De esta manera el mantenimiento de nuestras páginas será más sencillo.

Sin embargo con el planteamiento anterior tenemos un pequeño inconveniente y es que si cambiamos el nombre del archivo de layout, deberemos también cambiar el nombre en todas las vistas donde se utilice. Establecer esto en las aplicaciones puede ser algo redundante, lo que va en contra del principio DRY (Don't Repeat Yourself).

Para resolver este problema Razor pone a nuestra disposición el archivo _viewstart. Podemos añadir un archivo llamado _ViewStart.cshtml (o _ViewStart.vbhtml para VB ) en el directorio View de nuestro proyecto. Cuando se renderiza una vista, MVC buscará este archivo de manera automática y el contenido de este archivo será tratado como si estuviera incluido en la vista. De esta manera podremos omitir de nuestro código anterior la línea que establece la propiedad Layout y MVC usará el archivo _viewstart que hemos creado, para establecer el layout de nuestra vista.


@model Razor.Models.Product 
@{ 
ViewBag.Title = "Product Name"; 
} 
Product Name: @Model.Name 

Dos cosas a tener en cuenta a la hora de usar el archivo _viewstart:
  1. El contenido de este archivo, se usará en todas las vistas de la aplicación, que no tengan establecida la propiedad Layout. Si queremos que en una de las vistas se use otro layout distinto al del archivo _viewstart, deberemos establecerlo explicitamente. La propiedad layout de la vista tiene precedencia respecto al archivo _viewstart.
  2. Hay una diferencia entre omitir la propiedad layout y establecerla a null. Si la vista es autocontenida y no queremos usar un layout, entonces estableceremos la propiedad layout a nulo, lo que provocará que no se use el archivo _viewstart. Si omitimos este valor entonces MVC usará el archivo _viewstart.

viernes, 27 de mayo de 2011

Errores al eliminar objetos programando en SharePoint 2010

La eliminación es la tarea de liberar los recursos que consumen los objetos. Esta tarea es esencial en el código no administrado, como C + +. Sin embargo, la mayoría de las veces cuando estás construyendo soluciones NET, no tienes que preocuparte de la recolección de basura. Un excelente recolector de basura integrado se hará cargo de eso por ti.

Eso no es así en todos los casos con SharePoint. Algunos objetos en SharePoint están fuera de la comodidad del código administrado de .NET. Es necesario eliminar estos objetos manualmente... bueno, al menos la mayoría de las veces... y bajo ciertas condiciones.

Los dos objetos de este tipo más comunes son SPWeb y SPSite. Desafortunadamente, estos son también objetos de uso común. De hecho detrás de muchos escenarios, puede haber más objetos SPWeb de lo que uno  cree.

La noticia todavía peor es que en algunos casos, cuando eliminar los objetos puede causar fallos en otras partes de SharePoint que son completamente ajenos a todo lo que está haciendo.

No obstante, no hay que preocuparse demasiado por ello. Por suerte, Microsoft ha publicado una buena guía de orientación acerca de este tema y una herramienta que hace más llevadera la pesadilla de eliminar objetos manualmente.

SPDisposeCheck es una herramienta que ayuda a los desarrolladores y administradores a comprobar que las soluciones SharePoint personalizadas, que usan el modelo de objetos de SharePoint, cumplen con las buenas prácticas en la tarea de recolección manual de basura.

Os dejo también un enlace a la guía, en inglés.
Guía: Best Practices: Using Disposable Windows SharePoint Services Objects