Creando Host Name Site Collections en SharePoint 2013

En versiones anteriores de SharePoint, si queríamos crear múltiples Site Collections asociados a un web Application, debíamos crear managed paths para estructurar las URLs.

Es decir si teníamos site collections por áreas de la empresa, las URLs debían ser del siguiente tipo:

http://intranet.litware.local  -> Sitio raíz de la Intranet

http://intranet.litware.local/areas/marketing -> Site Collection para el área de Marketing.

http://intranet.litware.local/areas/ventas -> Site Collection para el área de Ventas.

Si deseábamos tener URLs independientes por cada Site collection del tipo http://marketing.litware.local o http://ventas.litware.local, debíamos crear Web Applications independientes, lo que iba en contra de las recomendaciones asociadas a la cantidad de Web Apps sobre servidores Web por criterios de performance.

SharePoint 2013 nos ofrece la solución a este problema que tenías en versiones anteriores. La solución que provee esta nueva versión es la creación de Host Name Site Collections, lo que permite usar nombres independientes por Site Collections asociados a las distintas zonas y sin necesidad de especificar el Alternate Access mapping y tampoco depender de los managed Paths. Es más Office 365 utiliza HNSC para los site collections en SharePoint Online.

A continuación detallo los pasos para realizar la configuración de manera correcta:

1.  Primero debemos crear un Web Application en el puerto 80, sin especificar el Host Header.

2. A continuación debemos crear un Site Collection en la raíz, utilizaremos la plantilla sitio de grupo o Team Site. La plantilla seleccionada no afectará en la configuración.

3. Ahora debemos crear nuestro primer registro DNS que emplearemos con Host Name para acceder a nuestro primer Host header Site collection.

4. A continuación utilizamos PowerShell para crear nuestro HNSC con la plantilla apropiada, especificando el Host Header Web Application el cual será el nombre automáticamente generado al momento de crear nuestro Web Application, la url que se genera básicamente está conformada por el nombre del Servidor de SharePoint desde donde se creó el Web Application. 

 5. En la lista de Site Collections podremos observar que se creó satisfactoriamente nuestro primero HNSC.

6. Ahora probamos el acceso. Todo ok hasta el momento.

7. Ahora, agregaremos una nueva Url asociada al HNSC recientemente creado. Para simular el acceso hacia interno, crearé en el hosts file de mi servidor de SharePoint, el nombre de acceso externo.

8. Para agregar la nueva url a la Zona Internet ejecutamos el siguiente comando.

9. Y probamos el acceso. Sin problemas!

10. Si queremos agregar más Urls, lo especificamos con el mismo comando e indicamos la Zona respectiva. 

11. Ahora crearemos nuestro segundo Host header Site collection. Para esto registramos el nombre en el DNS.

 

12. Creamos nuestra base de datos independiente con el siguiente comando. 

13. Creamos nuestro nuevo HNSC con la plantilla apropiada y con nuestra BD recientemente creada.

 

14. Y en la lista de Site collection vemos nuestro nuevo HNSC.

15. Probamos el acceso. Excelente!

16. Ahora nuestro registro en el hosts file.

17. Nuevamente especificamos la Url para acceso externo.

18. Y probamos el acceso. Un éxito.

19. Y lo más interesante. No necesitamos especificar manualmente ningún Binding asociado a nuestro Web App. 

20. Y tampoco ningún Alternate Access Mapping.

Terminamos. Espero haya resultado de utilidad.

 

Personalizando interfaces de SharePoint 2013 con Content by Search WebParts y Display Templates

SharePoint 2013 ha venido con múltiples mejoras asociadas a la gestión del contenido web y presentación de contenidos de manera más eficiente. Entre los cambios más resaltantes se encuentra la incorporación de las características de búsqueda del motor FAST Search como un componente integrado de la plataforma, así como también su optimización.

El uso de los Content by Search WebParts para mostrar contenido previamente indexado de múltiples site collections y otras fuentes es una de las grandes incorporaciones, donde se puede apreciar el gran potencial del motor de búsqueda.

Los Content by Search WebParts provee la flexibilidad de modificar la interfaz gráfica y presentación de resultados con los conocimientos estándares de diseño web (HTML,CSS, JavaScript, JQuery).

Para mayor información pueden consultar el siguiente enlace: http://blogs.technet.com/b/sharepoint_quick_reads/archive/2013/08/01/sharepoint-2013-customize-display-template-for-content-by-search-web-part-cswp-part-1.aspx

 A continuación les mostraré un ejemplo de como mostrar noticias publicadas en un portal mediante el Content by Search WebPart y como realizar personalizaciones gráficas sobre este contenido.

El resultado final será el siguiente:

Al dar clic en Ver + se mostrará el detalle de la noticia registrada en una lista de SharePoint.

Al dar clic en la parte superior sobre Ver más noticias se mostrará la lista de noticias con una vista personalizada.

Empezando con el paso a paso…

1. Lo primero que debemos hacer es crear nuestro Content Type “Noticias” pues será más sencillo poder configurar el Content by Search WebPart.

2. Las columnas creadas para el Content Type antes mencionado son las que se muestran a continuación:

 3. Después debemos crear nuestra lista de Noticias basada en una lista personalizada.

4. A continuación debemos asociar nuestro Content Type de Noticias a la lista de Noticias recientemente creada.

5. Una vez creada nuestra lista, deberemos registrar algunos datos de ejemplo.

6. Para insertar nuestro WebPart primero debemos crear una página para Noticias. 

 7. Ahora debemos insertar nuestro WebPart, este se encuentra en la Categoría Resumen del contenido, y el nombre del WebPart en español es Búsqueda de contenido.

8. Por defecto al insertar el WebPart ya se muestra cierto contenido.

9. Para mostrar el contenido de nuestra lista de Noticias debemos ejecutar un rastreo incremental desde el Service Application de búsqueda. 

10. Una vez que hayamos rastreado el contenido que nos interesa, debemos editar el CBSWP y en las propiedades dar clic en Cambiar consulta.

11. En la ventana de Cree su consulta, por defecto esta seleccionado Recently changed ítems (Sistema), por lo que ya se muestra contenido desde un inicio.

12. En Seleccione una consulta debemos seleccionar Items matching a content type (Sistema), para poder seleccionar los elementos asociados a nuestro Content type de Noticias.

13. En Restringir por tipo de contenido seleccionar –Mostrar todos los tipos de contenido– y en Restringir por tipo de contenido seleccionar nuestro content type de Noticias.

14. Al hacer los cambios en la Vista Previa se mostrará la información que necesitamos.

15. El resultado será el siguiente:

16. Ahora que ya mostramos cierto contenido en nuestro WebPart, debemos empezar a personalizar la presentación del mismo mostrando los campos de nuestro interés.

17. Vamos a la página de configuración del Sitio y debajo de la categoría Administración de la colección de sitios damos clic sobre Esquema de búsqueda.

18. Nos aparecerá una página donde podremos buscar las Propiedades administradas que automáticamente se generan después del rastreo incremental y son asociadas a las Propiedades rastreadas.

Aquí debemos buscar las columnas de nuestro content type de noticias, pues se genera un nombre de propiedad como el que podemos apreciar en la siguiente imagen:

 

19. Ahora si modificamos la configuración de nuestro WebPart. Las opciones por defecto se muestran a continuación.

 

20. Dejemos las plantillas para mostrar de Control y Elemento, por defecto.

21. Marquemos el check Cambiar la asignación de propiedades administradas de los campos de las plantillas para mostrar elementos.

22. Por cada propiedad disponible, seleccionar los campos que realmente vayamos a utilizar.

23. El resultado será el siguiente:

Mas personalizaciones!!!

Necesitamos llegar al siguiente grado de personalización, para esto seguir los pasos a continuación descritos:

1. Primero debemos trabajar en nuestro HTML y CSS pensando en como deseamos que se vean las noticias al final.

 El HTML debería quedar como este:

2. A continuación se puede ver la estructura del HTML que es sencillo. Podrán notar que hay una clara separación entre la cabecera y el contenido.

3. También podemos apreciar los estilos creados. Algo bastante sencillo.

 

4. Ahora, para adaptarlo a SharePoint. Primero entremos desde SP Designer y ubicar la carpeta Content Web Parts en la siguiente ruta: /All Files/_catalogs/masterpage/Display Templates/Content Web Parts

5. Observaremos que hay varios archivos HTML con su correspondiente JS. Los HTML son modificables y los JS son creados automáticamente por SharePoint. Los que comienzan con Control representan el Marco o Contenedor de nuestro diseño y los que comienzan con Ítem representan como se presentarán cada elemento.

6. Copiemos los archivos Control_List.html y Ítem_Pictures3Lines.html pues serán nuestra base para crear nuestros propios diseños.

7. Comencemos con la edición de la plantilla de Control a la que la hemos llamado Control_News.html.

8. En la sección script se puede apreciar como incluir nuestra hoja de estilos que previamente hemos subido a nuestra biblioteca de estilos de nuestro Site Collection.

9. A continuación podemos apreciar un DIV cuyo id es el nombre de nuestro archivo HTML.

10. La sección entre <!–#_ y _#–> muestra todo el JavaScript que nos permitirá controlar el DOM.

11. A continuación insertamos el contenido HTML previamente creado respectivo al contenedor.

12. Podemos apreciar que se ha incorporado _#= ctx.RenderGroups(ctx) =#_, esto indica que ahí se mostrará el contenido de los elementos de nuestra lista.

13. Ahora, debemos editar nuestra plantilla de ITEM a la que hemos llamado Ítem_News.

14. Un punto clave es la sección superior entre los tags <mso:ManagedPropertyMapping> y </mso:ManagedPropertyMapping>. Aquí se muestra todas las propiedades administradas a referenciar en nuestro Display Template.

La sintaxis debe ser ‘Nombre propiedad'{Nombre para mostrar propiedad}:Propiedad(es) administrada(s). Donde Nombre Propiedad es el nombre empleado o referenciado desde nuestro JavaScript, Nombre para mostrar propiedad será el Nombre o Etiqueta a mostrar desde el WebPart y Propiedad(es) administrada(s) serán los nombre de las propiedades administradas autogeneradas que antes vimos.

15. Incluimos nuestra hoja de estilos como ya lo vimos antes.

16. Debajo del DIV con el nombre de nuestra plantilla se incorpora el script para capturar los valores de nuestras propiedades administradas.

Para capturar los valores de las propiedades la sintaxis es la siguiente: var mivariable = $getItemValue(ctx, “Nombre de propiedad”);

17. Para mostrar los valores de las propiedades deberemos referenciar a las variables de nuestro script, aquí la sintaxis es _#= nombre variable =#_

18. Sobre las Plantillas para mostrar ahora si podremos seleccionar nuestras plantillas tanto para Control como para Elemento

19. Seleccionamos el check Cambiar la asignación de propiedades administradas de los campos de la plantilla para mostrar elementos y especificamos manualmente los valores de las propiedades administradas a ser empleadas.

20. Y Por fin, el resultado esperado!