Crear una Master Page en SharePoint 2010 utilizando Visual Studio y C#

Introducción


En este breve artículo veremos cómo trabajar con páginas maestras de SharePoint 2010 utilizando Visual Studio. En este caso no le daremos participación a SharePoint Designer, ya que se trata de un proyecto desarrollado completamente en Visual Studio y desplegado mediante paquetes WSP.
Nota: para una opción con SharePoint Designer, consultar este link http://surpoint.blogspot.com.ar/2013/08/diseno-grafico-en-sharepoint-foundation.html

Paso 1 – Página maestra base

El primer paso será tomar una página maestra base. Podemos trabajar por ejemplo con la minimal.master de catálogo de páginas maestras u optar por una opción de codeplex en: http://startermasterpages.codeplex.com/
En este caso usaremos la v4.aster. Vamos a la galería y la descargamos.


Paso 2 – Creación del módulo

Dentro de Visual Studio agregamos un nuevo ítem al proyecto, en este caso un módulo:
Luego eliminamos sample.txt
Y subimos nuestra página maestra (la del paso 1)
Elements.xml quedará así:
Modificamos Elements.xml como muestra la imagen para aseguramos que quedé en el cache.
Código final:
<?xml version=»1.0″ encoding=»utf-8″?>
  <Module Name=»ModuleMasterPageSitioProyecto» List=»116″ Url=»_catalogs/masterpage»>
  <File Path=»ModuleMasterPageSitioProyecto\PaginaMaestraSitioProyecto.master» Url=»PaginaMaestraSitioProyecto.master» Type=»GhostableInLibrary»/>
</Module>
</Elements>

Paso 3 – Feature
En el tercer paso creamos una feature se Scope Web y le incorporamos el módulo creado en el paso anterior.
Veremos que se incorporará automáticamente a nuestro paquete de despliegue:
Paso 4 – Evento de la feature

Agregamos el evento para activar y desactivar la feature y de esta forma asignar la página maestra:
Así queda el código:
namespace EMP_Procesos.Features.EMP_Pagina_Maestra_Sitio_Proyecto
{

    [Guid(«blabla»)]

    public class EMP_Pagina_Maestra_Sitio_ProyectoEventReceiver : SPFeatureReceiver
    {

        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            SPWeb currentWeb = (SPWeb)properties.Feature.Parent;
            currentWeb.MasterUrl = «/_catalogs/masterpage/PaginaMaestraSitioProyecto.master»;
            currentWeb.CustomMasterUrl = «/_catalogs/masterpage/PaginaMaestraSitioProyecto.master»;
            currentWeb.Update();
        }

        public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        {
            SPWeb currentWeb = (SPWeb)properties.Feature.Parent;
            currentWeb.MasterUrl = «/_catalogs/masterpage/v4.master»;
            currentWeb.CustomMasterUrl = «/_catalogs/masterpage/v4.master»;
            currentWeb.Update();
        }
    }
}
Paso 5 – Verificación de despliegue

En el catálogo de páginas maestras, debe aparecer:
También debe aparecer la característica:

Para este ejemplo, hicimos un cambio menor en la página maestra para verificar el funcionamiento:
<SharePoint:DeveloperDashboard runat=»server» />
            <div id=»sitio_footer»>Pie de ejemplo</div>
</div>
El resultado es:
Bibliografía

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *