SharePoint 2010: Definiciones de sitios (III)!

Para finalizar la serie de posts sobre creación de definiciones de sitios para SharePoint 2010, vamos a ver como crear una definición mediante Visual Studio 2010 (VS 2010). Pero antes, os recuerdo los posts previos de la serie:

Para crear una definición con VS 2010:

  • Elegimos como tipo de proyecto a crear el de “Site Definition”.
  • En la primera pantalla del asistente de configuración, fijaros como directamente sólo podremos empaquetar la definición como una solución de tipo granja.
  • Concluido el asistente, se muestra en VS 2010 la estructura de proyecto de definición de sitio que consta de un SharePoint Project Item (SPI) con tres archivos: onet.xml, webtemp_<NombreProyecto>.xml y la página por defecto para la definición a crear.
image image image
  • Editamos el archivo webtemp_NombreProyecto.xml que se ha creado y realizamos los siguientes cambios:
    • Como ID especificamos la 10002 para la definición.
    • Añadimos un título y descripción significativas en la configuración.
   1: <?xml version="1.0" encoding="utf-8"?>

   2: <Templates xmlns:ows="Microsoft SharePoint">

   3:   <Template Name="SPCustomSiteDefinition" ID="10002">

   4:     <Configuration ID="0" Title="SharePoint Custom Site Definition" Hidden="FALSE" ImageUrl="/_layouts/images/CPVW.gif" Description="SharePoint Custom Site Definition created in VS 2010" DisplayCategory="SharePoint Customizations">

   5:     </Configuration>

   6:   </Template>

   7: </Templates>

  • En este caso, el contenido del archivo onet.xml está muy simplificado:
   1: <?xml version="1.0" encoding="utf-8"?>

   2: <Project Title="SPCustomSiteDefinition" Revision="2" ListDir="" xmlns:ows="Microsoft SharePoint" xmlns="http://schemas.microsoft.com/sharepoint/">

   3:   <NavBars>

   4:   </NavBars>

   5:   <Configurations>

   6:     <Configuration ID="0" Name="SPCustomSiteDefinition">

   7:       <Lists/>

   8:       <SiteFeatures>

   9:       </SiteFeatures>

  10:       <WebFeatures>

  11:       </WebFeatures>

  12:       <Modules>

  13:         <Module Name="DefaultBlank" />

  14:       </Modules>

  15:     </Configuration>

  16:   </Configurations>

  17:   <Modules>

  18:     <Module Name="DefaultBlank" Url="" Path="">

  19:       <File Url="default.aspx">

  20:       </File>

  21:     </Module>

  22:   </Modules>

  23: </Project>

  • Editamos la página default.aspx que se incluye como parte del proyecto y la modificamos para que por defecto cuente con una zona de WebParts central:
   1:  

   2: <asp:Content ID="Content1" ContentPlaceHolderId="PlaceHolderMain" runat="server">

   3:     <h1>

   4:     Bienvenido al sitio creado a partir de una definición de sitio modealda en VS 2010

   5:     </h1>

   6:     <table id="MSO_ContentTable" MsoPnlId="layout" cellpadding="4" cellspacing="0" border="0" width="100%">

   7:     <tr>

   8:         <td>

   9:             <table cellpadding="0" cellspacing="0" style="width:100%;padding:5px 10px 10px 10px;">

  10:                 <tr>

  11:                     <td valign="top">

  12:                         <WebPartPages:WebPartZone runat="server" FrameType="TitleBarOnly" ID="CentralZone" Title="loc:CentralZone" AllowPersonalization="false" />

  13:                     </td>

  14:                 </tr>

  15:             </table>

  16:         </td>

  17:     </tr>

  18:     </table>

  19: </asp:Content>

  • Desplegamos la definición y comprobamos que tenemos disponible un nuevo tipo de plantilla para la creación de sitios.
  • Creamos un sitio con la plantilla y comprobamos que la página principal tiene la modificación que hemos realizado.
image image

Y hasta aquí llega el último post de la serie sobre creación de definiciones de sitios para SharePoint 2010.