Configurando variantes con Managed Navigation en SharePoint 2013 – Parte 1

Uno de los requerimientos más comunes para implementaciones de portales web públicos que son accedidos desde distintas partes el mundo, es el de tener la capacidad de presentar el contenido en distintos idiomas.

SharePoint Server 2013, incorpora esta capacidad mediante la característica de Variantes. Las Variantes en SP2013 permiten que un usuario de acuerdo a la configuración de idioma de su máquina pueda visualizar el contenido de un Portal web en el idioma que corresponda. Es decir, si alguien accede desde un equipo en EEUU cuya configuración por defecto es en idioma Inglés, al acceder al portal, verá el contenido en Ingles, lo mismo con cualquier otro idioma que haya sido definido en la configuración de variantes en SharePoint.

Las variantes en SP2013 funcionan de la siguiente manera:

a. Se dispone de un sitio web conocido como origen, desde donde se crean las páginas y contenidos en el idioma original (Ej. Español).

b. Se crean etiquetas por cada otro idioma al que quiera ser traducido el contenido. Por ejemplo, podríamos crear una etiqueta para el idioma Inglés.

c. Mediante un Timer Job se crear automáticamente un sitio web por cada etiqueta de Idioma. Estos sitios web son los sitios de destino.

d. Cada vez que se publica una página nueva en el sitio web de origen, mediante un timer job que se ejecuta cada 15 minutos, la página se recrea en modo draft en el/los sitio(s) web de destino.

e. El contenido en el sitio web de destino se muestra en modo draft hasta que no sea traducido manualmente y publicado. 

Ese es el proceso básico como funcionan las variantes en SP2013, a este proceso se puede añadir el Machine Traslation Service para realizar traducciones automáticas mediante el traductor de Bing o también incorporar la navegación administrada.

En este primer post, explicaré el procedimiento paso a paso para configurar las variantes de un sitio web de origen en español y un sitio web de destino en Ingles.

 1. Primero debemos disponer de una colección de sitios basada en el Publishing Site Template.

2. A continuación vamos a configuración del sitio.

 

 2. Debajo de características de la colección de sitios seleccionamos Configuración de variantes.

 3. En configuración de variantes dejamos todas las opciones por defecto y damos clic en Aceptar.

 4. A continuación debajo de características de la colección de sitios damos clic en Etiquetas de variantes.

 5. Damos clic en Nueva etiqueta.

 6. Vamos a crear nuestra etiqueta de origen para lo cual seleccionamos nuestro idioma de origen que en este caso sería Español, la configuración regional que sería Español (Perú) y el nombre de etiqueta que sería es-pe.

 7. En Nombre para mostrar mantenemos Español (Perú) y en Plantilla de sitio de publicación utilizaremos Sitio de publicación con flujo de trabajo.

 8. Al dar clic aparecerá el mensaje «Sus nuevas variaciones están en camino». Dar clic en Aceptar.

 

 9. Podremos ver que se registro la etiqueta pero en la Jerarquía creada dice No. Esto es porque se ejecuta un Timer Job que es el encargado de crear la Jerarquía.

 

 10. Una vez que se ejecuta el Timer Job, automáticamente Jerarquía creada cambia a Si.

 

 11. A continuación crearemos otra etiqueta, esta será la etiqueta de destino. En Idioma de la plantilla del sitio seleccionaremos Inglés, en Configuración regional seleccionamos Inglés (Estados Unidos) y damos clic en Continuar

 

 12. En Nombre de etiqueta especificamos en-us, Nombre para mostrar Inglés (Estados Unidos) y en Creación de Jerarquía dejamos marcado Sitios de publicación, listas con variantes y todas las páginas.

 13. En Opciones de traducción dejamos las opciones por defecto marcadas, tanto para Crear paquete de traducción como traducción automática. Asumimos que disponemos del servicio de Machine Translation en nuestra infraestructura. En este post no hablaremos de este servicio.

 14. En comportamiento de etiqueta de destino, dejamos la opción por defecto. Mas adelante la podemos cambiar. Damos clic en Continuar.

 15. Se mostrará la configuración final de la etiqueta damos clic en Finalizar.

 16. Podremos observar ahora que se muestra la etiqueta de origen (Español) y la etiqueta de destino (Inglés).

 17. Ahora para generar la creación del sitio web de origen y destino, damos clic en Crear jerarquías, aparecerá el mensaje «Sus nuevas variaciones están en camino«. Clic en Aceptar.

 18. Se ejecutará el timer job, una vez finalizado podremos ver que sobre la colección de sitios se crearon 2 sitios web, Español (Perú) que será el sitio web de origen e Inglés (Estados Unidos), que será el sitio web de destino.

 19. Como queremos que la actualización de las páginas del origen al destino la hagamos manualmente, cambiamos la configuración de la etiqueta y en Comportamiento de actualización de páginas especificamos Actualizaciones manuales.

 20. Ahora entramos al sitio web de origen (http://portal/es-pe).

 21. Para probar la sincronización de páginas, editamos la página principal y Protegemos lo cambios.

22. Protegemos la página. 

23. Publicamos el borrador.

 24. Como en la configuración inicial seleccionamos la plantilla de aprobación de páginas mediante flujo de aprobación, aparecerá el formulario de flujo, damos clic en Iniciar.

25. El Aprobador deberá dar clic en Aprobar. Tener en cuenta que en el sitio web existirá un grupo llamado Aprobadores, solo los usuarios que pertenezcan a este grupo podrán aprobar las páginas para la publicación.

26. Debido a que configuramos la sincronización manual, debemos manualmente indicar que cree la página o que la actualice, en la pestaña Publicar dar clic en Actualizar todos los objetivos si queremos actualizar los cambios o Crear nuevo destino si es que hemos creado una página nueva.

 

27. Como comenté con anterioridad existen distintos Timer Jobs que se ejecutan cada tiempo, a continuación son descritos:

1. Variations Create Hierarchies Job Definition: Se encarga de crear los sitios web de origen y de destino cuando se crear por primera vez la etiqueta.

2. Variations Propagate List Ítems Job Definition: Se encarga de sincronizar los elementos de lista o documentos de bibliotecas entre sitios web origen y destino.

3. Variations Propagate Job Definition: Se encarga de sincronizar las páginas web entre sitios web de origen y destino.

4. Variations Propagate Sites and Lists Timer Job: Se encarga de sincronizar la creación de listas, bibliotecas y/o subsitios en los sitios web de destino.

 28. Para replicar los cambios podemos forzar la ejecución de Variations Propagate Page Job Definition.

 29. Podremos ver que la página se replicó con éxito.

 En el siguiente post, veremos como integrar la capacidad de navegación administrada con las variantes.

Configurando biblioteca de documentos como catálogos – Parte 1

SharePoint 2013 ha incorporado mejoras significativas en cuanto a las capacidades para implementar portal web públicos. Uno de los cambios más grandes ha sido las mejoras en cuanto a su Arquitectura de búsqueda después de haber integrado las capacidades de FAST Search, así como también las técnicas de publicación de contenidos web, presentación y personalización de los mismos en portal web públicos.

La incorporación del modelo de cross-site publishing ha sido uno de los cambios más significativos que ha tenido SharePoint 2013 en cuanto a Web Content Management.

Cross-site publishing permite gestionar contenidos de múltiples site collections y ser expuestos en un único site collection haciendo uso de las capacidades del motor de búsqueda. Es decir, existe una separación lógica entre contenidos y presentación gráfica.

Con XSP aparece el concepto de catálogos. Un catálogo es una lista o biblioteca cuyo contenido puede ser expuesto para ser presentado en otros site collection. Para presentar su contenido este debe previamente ser rastreado y considerado dentro del índice de SharePoint.

A continuación describiré los pasos para configurar una biblioteca de documentos que se encuentra en un site collection como un catálogo y exponer su contenido en otro site collection que representará el portal web de publicación. En esta primera parte también veremos como emplear las columnas de mi biblioteca de documentos como refinadores para generar una interacción más enriquecida con los contenidos.

 1. Primera creamos una biblioteca de documentos, creamos un tipo de contenido con las columnas que deseemos y subimos algunos documentos y ejecutamos un rastreo Full.

 2. Los campos pueden ser de distintos tipos. Como pueden ver tengo algunos campos que son del tipo metadatos administrados.

3. A continuación entramos a la configuración de la biblioteca y seleccionamos Configuración del catálogo (Catalog settings).

4. En Catalog Settings seleccionamos Enable this library as catalog y presionamos el botón de Enable anonymous Access para que los contenidos puedan ser consultados por un usuario anónimo.

 5. A continuación seleccionamos los campos que deseemos que formen parte de la URL. En Este caso podemos seleccionar cualquier campo como referencia pues realmente no generaremos una URL específica para los documentos, la URL se mantendrá del repositorio de documentos la cual deberá ser una URL pública.

 

  6. Ahora nos vamos a nuestro site collection empleado como portal público.

 

7. Vamos a las opciones de configuración del site collection. 

 8. Debajo de Administración de sitios damos clic a Administrar conexiones al catálogo.

 9. Damos clic en conectar a un catálogo.

 10. Aparecerá nuestra biblioteca de documentos y damos clic en Conectar.

 10. Seleccionamos la opción Conectar, pero no integrar el catálogo. Esto debido a que no queremos que forme parte de la navegación como cualquier otro catálogo, solo queremos mostrar los documentos y sus metadatos en un Content by Search WebPart o un Result Search WebPart.

 11. Todas las demás opciones se mantienen por defecto.

 

 12. Ahora creamos una nueva página e insertamos nuestro Search Result WebPart.

 

 13. En la configuración del Search Result WebPart seleccionamos de la lista el catálogo que acabamos de conectar.

 14.  Ahora veremos los documentos de mi biblioteca de documentos en el Result Search WebPart.

 15. Ahora vamos a agregar nuestro WebPart «Panel de refinamiento«, pero para mostrar a las columnas de nuestra biblioteca como refinadores, primero debemos configurar las propiedades administradas asociadas a estas columnas. Para esto nos vamos a nuestro site collection donde está nuestra biblioteca de documentos y vamos a las opciones de configuración del sitio.

 

 16. En Site collection Administration seleccionamos Search Schema.

 

 17. Vemos las propiedades administradas por defecto. Cuando nosotros ejecutamos un full crawl, automáticamente se crean propiedades administradas asociadas a las columnas que hemos rastreado. El problema es que estas propiedades administradas por defecto no están configuradas para ser empleadas como refinables o para ordenar.

 18. SharePoint por defecto ya tiene 20 propiedades administradas por tipo de dato (string, date, integer, decimal, etc.), que ya están configuradas como refinables y con capacidad de ordenamiento. En ese sentido, nosotros podemos reutilizar estas propiedades administradas y únicamente asociar a nuestra columnas rastreadas. Un vez asociadas las columnas, podemos ejecutar un nuevo full crawl.

 

19. Edito la propiedad administrada del tipo de dato que desee y agregado la propiedad rastreada que desee.

 

 20. Ahora vuelvo a mi página y agrega el panel de refinamiento. Por defecto muestra algunos refinamientos nativos.

 

 21. Edito el WebPart de Panel de refinamiento y doy clic en Elegir refinadores…

 22. Elijo los metadatos administrados que desee. En este caso los metadatos RefinableDate#, RefinableString#, etc.

 23. Puedo presionar el botón Vista previa de los refinadores…

 24. Se mostrará una vista previa de como quedarían. 

 25. Y finalmente el resultado esperado.

SharePoint 2013 – Empleando Sinónimos en resultados de búsqueda

SharePoint 2013 ha traído múltiples mejoras al incorporar de manera integrada las funcionalidades soportadas por el producto FAST Search for SharePoint el cual en versiones anteriores se implementaba de manera independiente a SharePoint muchas veces en granjas complejas de acuerdo a las necesidades del negocio. Con la incorporación de estas características, así mismo la topología de búsqueda y componentes que la conforman ha evolucionado.

En este post hablaré de una funcionalidad muy útil cuando queremos mejorar la calidad de los resultados de búsqueda que nos ofrece nuestro buscador.

Típicamente cuando realizamos búsquedas utilizamos palabras que no necesariamente están especificadas en el contenido publicado, pero que si guardan relación y que muchas veces son sinónimos. Por defecto SharePoint no identifica que nos estamos refiriendo a un mismo concepto, por lo cual requiere apoyo por parte de nosotros.

SharePoint 2013 nos ofrece la posibilidad de mantener un listado de sinónimos e importarlos en el motor de búsqueda de tal manera que cuando alguien realice búsquedas no solo se muestren como resultado los contenidos que coincidan con palabras específicas, sino también contenido con sinónimos de la palabra o palabras buscadas.

A continuación explicaré el paso a paso:

1. Para probar esta funcionalidad cree una biblioteca documental y subí documentos de distintos formatos. Como se puede apreciar algunos tienen en el título la palabras SharePoint y otros solo SP o SP2013, etc. El objetivo es que cuando alguien busque SharePoint o SP, se muestren todos los documentos que he cargado en esta biblioteca.

2. Si hago una búsqueda vamos a observar que solo se muestran los documentos que exactamente coinciden con la palabras buscada.

Lo mismo pasa si busco solo «SP«.

 3. A continuación tengo que crear un archivo que tenga como estructura Key,Synonym,Language.

Key: es la palabra que se buscará desde el Search Center.

Synonym: Representa al sinónimo de esta palabra. Es decir si alguien busca SharePoint también se mostrarán los resultados que contengan SP 2013. Si quiero utilizar más sinónimos tengo que agregarlos línea por línea como se ve en la imagen.

Language: Hace referencia al lenguaje al cual esta asociado. Mi SharePoint esta instalado en español y tiene language pack en ingles, para no generar conflictos ese tercer campo no lo completo, pues no es obligatorio.

4. El archivo lo guardo como csv y en Encoding selecciono UTF-8.

5. A continuación guardo el archivo en una carpeta compartida. A la cuenta con privilegios de administrador del Search Service Application le doy privilegios para acceder a este archivo. La cuenta que podríamos emplear para evitar cualquier conflicto de accesos puede ser la cuenta de la granja.

 6. Después ejecuto la consola de PowerShell de SP2013 en modo administrador (Debo estar logueado con el farm account) y digito los siguientes comandos:

$searchApp = Get-SPEnterpriseSearchServiceApplication -Identity «<ID Search Service Application>«. (El Id solo es necesario si tengo mas de un Search Service Application y puedo obtenerlo al digitar el comando Get-SPEnterpriseSearchServiceApplication y ver el Id de mi Search Service Application).

Import-SPEnterpriseSearchThesaurus -SearchApplication $searchApp -FileName «<UNC donde esta el archivo>«. (Es obligatorio utilizar el formato UNC, el formato UNC es: \<SERVER><Folder><file.csv>).

7. Finalmente sin necesidad de hacer un rastreo o un cambio adicional podemos probar buscar la palabra SharePoint o SP y obtendremos los mismos resultados.

 

 Igual en SP!

Espero haya sido de utilidad!

 

Reusable content en Web Content Management Portals con SharePoint 2013

SharePoint 2013 ofrece múltiples capacidades para gestión de contenidos web. Las características soportadas en la última versión están orientadas a dar agilidad en el proceso de publicación de contenidos principalmente para portal web públicos en Internet.

Una de las características ya existentes desde la versión 2007, pero que no es muy difundida, es el uso de los contenidos reutilizables. Un contenido reutilizable puede ser una tabla con un formato en particular, un pie de página o cabecera, o cualquier otra sección que pueda ser comúnmente insertada en los contenidos que deseamos publicar. Combinar esta capacidad con muchas otras mas como el uso de listas, versiones, aprobación y rechazo de contenidos, inserción de contenido multimedia, entre otras características, logramos aprovechar una robusta solución de web content Management.

 A continuación detallo los pasos para habilitar y emplear esta funcionalidad:

1. Primero debemos habilitar la característica «Infraestructura de publicación de SharePoint Server» a nivel de colección de sitios.

 2. A continuación debemos habilitar el Feature «Publicación de SharePoint Server» a nivel de sitio.

3. Luego debemos verificar que se haya creado la lista de Contenido reutilizable. En esta lista podremos crear todos los tipos de contenidos que deseemos reutilizar, pueden ser contenidos de texto como podrían ser contenidos HTML mucho más elaborados.

4. Luego debemos crear una columna en donde insertaremos y almacenaremos contenido reutilizable.

5. La columna debe ser del tipo Contenido HTML completo con formato y restricciones para publicación.

6. Posteriormente debemos agregar la columna de sitio a la lista desde donde almacenaremos el contenido reutilizable.

 

 7. Verificamos que la columna se encuentre asociada a la lista correctamente. 

 8. Al posicionarlo sobre el tipo de columna, veremos que en el ribbon en la pestaña INSERTAR se habilitará el botón de Contenido reutilizable y podremos utilizar los contenidos que hayamos creado.

 

 Y listo!

Empleando Assets Site Collections para nuestro Portal web público

SharePoint 2013 nos ofrece múltiples características orientadas a la implementación de Portales web públicos tales como Cross-Site Publishing, Managed Navigation, Catalogs, Content by Search WebParts, entre otros, que nos permiten implementar soluciones de Web Content Management para Internet, con menos esfuerzo. Todos estos beneficios de la nueva versión de esta plataforma también deben complementarse con las mejores prácticas asociadas a soluciones web en Internet, principalmente considerando los aspectos de optimización de los tiempos de respuesta de nuestros portales.

 Una de las recomendaciones para optimización de los tiempos de respuesta, es emplear descargas paralelas de contenido como imágenes, hojas de estilo o scripts (JavaScript, jquery). Para mayor información puede consultar a http://yuiblog.com/blog/2007/04/11/performance-research-part-4/.

Los navegadores por defecto tienen una cantidad de posibles componentes que pueden ser descargados a la vez por hostname, esto quiere decir que si al descargar una página web, disponemos de hostnames independientes empleados para descargar imágenes, hojas de estilos o scripts, esto permitirá que se puedan hacer descargas en paralelo reduciendo de esta manera los tiempos de respuesta de la página.

 Para lograr las descargas paralelas desde SharePoint, la mejor alternativa es crear un Site Collection independiente para los recursos de imágenes, además de archivos css y js. A continuación describo los pasos:

1. Creamos un host name site Collection nuevo para nuestros assets.

 2. Una vez creado el Site Collection, verificamos que este tenga habilitada las características de publicación y en el Site Collection Images library cargamos nuestras imágenes. Asegurarnos que tengamos habilitada las características de Image Renditions que ya fueron explicadas en un post anterior.

3. Validar que este configurada Image Renditions para nuestras imágenes.

 

 4. Ahora dirigirnos a nuestro Site Collection empleado para nuestro Portal (El SC de cara al cliente). Y vamos hacia Site Settings

5. En Site Collection Features, ubicamos el link Suggested Content Browser Locations, que nos permitirá enlazar a la biblioteca de Assets ubicada en nuestro Site Collection previamente creado.

6 . Se mostrará la biblioteca desde donde podremos agregar enlaces hacia otras ubicaciones.

 7. Agregamos la URL hacia el Asset Library.

8. Se muestra la URL recientemente agregada. 

 9. Si queremos insertar una de las imágenes en una página de nuestro Portal, damos clic en INSERT -> Picture y From SharePoint

10. En la ventana de Select an Asset damos clic sobre Suggested locations y podremos acceder al repositorio de imágenes de nuestro Site Collection para Assets.

 

11. Aquí podemos seleccionar la imagen que deseamos insertar a nuestra página.

 12. Debido a que estamos consultando imágenes de un Site collection remoto, no tendremos la posibilidad de emplear la característica de Image rendition seleccionando las plantillas de visualización directamente, por lo que tendremos que especificar el parámetro RenditionID seguido del ID asociado a la plantilla que deseemos utilizar.

13. Y listo, se habrá insertado nuestra imagen desde el Asset Site Collection.

14. Ahora, si  comparamos el tiempo en que se demoran en descargar las imágenes de una página estando publicadas en la misma página a aquellas que son consultadas desde un Site collection con URL independiente, el resultado es notable:

CON IMÁGENES CONSULTADAS DESDE LA MISMA URL.

 CON IMÁGENES CONSULTADAS DESDE OTRA URL.

Utilizando Image renditions en Portales web de SharePoint 2013

Cuando implementamos un Portal web público, es importante tener en consideración muchos aspectos principalmente relacionados a los tiempos de respuesta del mismo. El tiempo que demore en carga las páginas de nuestro Portal será un punto crítico que podrá influenciar fuertemente en el crecimiento o decrecimiento de usuarios sobre este.

 Existen múltiples consideraciones que pueden ser tomadas en cuenta para lograr que nuestro portal tenga los mejores tiempos de respuesta, desde consideraciones sobre nuestra infraestructura, el desarrollo, el diseño gráfico, entre otros.

SharePoint 2013 ha traído múltiples características que contribuyen en la optimización de nuestros Portal web de Internet. Una de estas características es el Image Rendition, esta característica permite cargar una imagen sobre la biblioteca de imágenes del Site Collection y generar múltiples plantillas de visualización de la misma imagen con distintas dimensiones en pixeles reduciendo a su vez el tamaño de dicha imagen al recortarla automáticamente, lo que reduce la cantidad de KBs descargados, a diferencia de hacer un resize sobre una imagen grande, donde es necesario descargar la imagen completa indistintamente del tamaño en el que sea presentado a través de una página del Portal.

 A continuación mostraré los pasos necesarios para configurar y emplear la funcionalidad de Image Renditions:

1. Primero debemos dirigirnos hacia Site Settings de nuestro site collection.

2. En la página de Site Settings debajo de la categoría Look and Feel dar clic en Image Renditions.

 

3. En la página de Image Renditions se presenta un mensaje de color rojo indicando que la funcionalidad de blob cache no se encuentra habilitado para nuestro Site collection. 

 4. Blob cache, permite almacenar en cache cierto tipos de archivos tales como las imágenes, de tal manera que cada vez que un usuario consulte una página no se tengan que realizar requests innecesarios sobre los mismos archivos. Para habilitar Blob cache ingresamos al IIS y ubicamos nuestro IIS Web Site. Una vez localizado damos clic derecho sobre este y clic en Explore.

5.  A continuación ubicamos nuestro web.config y lo editamos (Este paso se debe repetir en todos los servidores Web de nuestra granja de servidores de SharePoint).

 6. Ubicamos la sección de BlobCache y es la opción de enabled que por defecto esta en false, la cambiamos por true

 7. Para aplicar los cambios hacemos un iisreset.

 8. Y cuando actualizamos la página de Image Renditions, veremos que ya no se muestra el mensaje anterior. Aquí podremos observar que disponemos 4 plantillas de visualización de imágenes por defecto. Si deseamos crear nuevas plantillas debemos dar clic en Add new item.

 9. En el formulario de New Image Rendition debemos especificar el nombre de la plantilla y el ancho así como también el alto para nuestras imágenes.

 10. Se podrá observar la nueva plantilla creada.

 11. Es importante recalcar que la opción de renditions no funcionará en cualquier biblioteca de imágenes. Esto lo podemos observar en la siguiente pantalla.

 12. La funcionalidad de Image renditions la podremos emplear sobre la biblioteca de Site Collection Images. Si queremos ver las plantillas, podemos dar clic sobre Edit Renditions.

 13. En la página Edit Renditions podemos ver que automáticamente se generaron versiones de una misma imagen con dimensiones distintas de acuerdo a las plantillas existentes. Si queremos modificar una de ellas podemos dar clic en Click to change

14. Aquí podemos elegir la sección especifica de la imagen que queremos que sea recortada y empleada según las dimensiones definidas en la plantilla. 

 15. Y los cambios se aplican.

 16. Al insertar nuestra imagen podremos seleccionar la plantilla que deseemos.

 17. Y se muestra la imagen en las dimensiones de la plantilla seleccionada, además la foto esta recortada lo que permite que la imagen pese menos optimizando el tiempo de carga de las páginas de nuestro Portal.

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!

Configurando un Product-Centric Web Site en SharePoint 2013

En este Post explicaré el paso a paso de como implementar un Product-Centric web Site en SharePoint 2013. No entraré en el detalle teórico de como funciona un Product-Centric web site, sin embargo para mayor información pueden consultar el enlace: http://blogs.technet.com/b/tothesharepoint/archive/2013/02/14/how-to-set-up-a-product-centric-web-site-in-sharepoint-2013.aspx

1. Lo primero que tenemos que hacer es crear un nuevo Site Collection para nuestro Catálogo de Productos. Este Site collection deberá estar basado en la plantilla Product Catalog.

2. Así mismo, debemos crear el Site Collection para el Portal público que será la cara de acceso a los usuarios. Este site collection debe estar basado en la plantilla Publishing Portal.

3. A continuación debemos verificar que se creo correctamente el Site Collection de Catálogo de Productos.

4. De la misma manera validamos que se haya creado correctamente el Portal de publicación.

5. En el Site Collection de Catálogo de Productos, podremos observar que existe una lista de Productos, si verificamos los campos asociados a esta lista, podremos notar uno específicamente importante, este es Ítem Category.

6. Si vemos la configuración del Campo Ítem Category podremos observar que este se encuentra asociado a un Term Set Product Hierarchy del site collection de Catálogo de Productos.

7. Lo que debemos hacer a continuación es llenar el Term Set con los términos que permitirá clasificar a los productos o servicios de nuestro Catálogo. Para esto vamos a las opciones de Site Settings de nuestro site collection de Catálogo de Productos.

8. En la categoría Site Administration ubicamos Term Store Management y le damos clic.

9. En el Term Store Management Tool, generaremos la estructura de Terms necesarios para clasificar a nuestros productos o servicios.

10. Una vez listo nuestra Jerarquía de terms, en la lista de Productos podremos empezar a registrar a todos nuestros productos. Es importante completar los campos Ítem Number y Group Number, pues nos servirán para generación de URLs por elemento. También debemos completar el campo Ítem Category que nos permitirá clasificar a todos los productos.

11. Nuestra lista de productos se debería ver como la imagen siguiente:

12. Como se puede apreciar en la imagen anterior, todos los productos se encuentran pendientes de aprobación, así que si queremos que se vean en el Portal de Publicación debemos primero aprobarlos.

13. A continuación debemos convertir la lista en un Catálogo, para esto vamos a List Settings.

14. En la página de Settings damos clic en Catalog Settings.

15. En la página de Catalog Setting marcamos el check Enable this library as Catalog.

16. Posteriormente debemos habilitar el acceso anónimo al contenido del catálogo, para esto damos clic en Enable anonymous Access.

 

 17. En la siguiente ventana damos clic en Make Anonymous.

 18. Después debemos seleccionar los campos que emplearemos para definir las URLs que identificarán a nuestros productos. Aquí debemos seleccionar los campos Ítem Number y Group Number.

19. En Navigation Hierarchy debemos seleccionar la columna Ítem Category que es la que definirá la navegación para acceder a los productos desde el Portal de publicación.

20. Después de haber configurado el catálogo, ahora nos queda ejecutar un rastreo completo del contenido existente.

21. Adicionalmente debemos configurar el rastreo continuo para que se realice automáticamente cada cierto tiempo. Para esto seleccionamos Enable Continuos Crawls.

 

22. Ahora que ya hemos hecho todas las configuraciones necesarias desde el Catálogo de Productos, debemos ingresar a nuestro Portal de publicación. 

23. Debemos ingresar a Site Settings.

 

24. En la categoría Site Administration, damos clic sobre Manage Catalog Connections.

 25. En la página de Manage Catalog Connections damos clic en Connect to a catalog.

26. De la lista de catálogos disponibles, ubicamos a nuestro catálogo de productos y damos clic en Connect.

27. En la página Catalog Source Settings dejemos las opciones marcadas por defecto. En resumen las opciones por defecto permite establecer una conexión con el Catálogo de Productos, define la navegación sobre nuestro Portal basado en el campo Ítem Category, genera las URLs respectivas basadas en los campos previamente definidos y genera automáticamente las páginas que utilizaremos tanto para las Categorías como para los Productos.

 

 

 

 

28. Vemos que ya se estableció la conexión.

 29. A continuación debemos verificar la configuración de la navegación del Portal. Para esto en la categoría Look and Feel de nuestra página de Site Settings damos clic en Navigation.

 

 30. En la página de Navigation, podemos observar que por defecto tanto para Global Navigation como para Current Navigation se encuentre seleccionada la opción Managed Navigation, y se encuentra seleccionada la Jerarquía de navegación que se creo en el site collection Catálogo de Productos y que se ha heredado en nuestro Portal de publicación al momento de realizar la conexión.

31. A continuación podremos navegar sobre las categorías, subcategorías y por cada producto. 

 

 

 

 

 32. Ahora, yo deseo que la navegación del Quick Launch sea empleada para acceder a mis productos, sin embargo la navegación superior quiero que sea distinta y me permita acceder a otras páginas. Para esto primero acceder a la página de Navigation  y dar clic en Term Store Management Tool.

 

 

 33. En el Term Store Management Tool debemos crear los términos para asociar a nuestra navegación superior.

34. Ahora vemos como he creado los términos que emplearé en mi navegación. 

35. En las opciones de navegación de cada término creado recientemente debemos solo dejar marcado Show in Global Navigation Menu y quitar el check de Show in Current Navigation Menu.

36. Para la navegación creada en base a las categorías de Productos debemos quitar el check de Show in Global Navigation Menu y dejar marcada la opción Show in Current Navigation Menu

 

 37. Podemos observar a continuación, el resultado de las configuraciones previas en nuestra navegación.

 38. Como nuestra navegación no se muestra en el orden deseado podemos ordenarlo correctamente, en la pestaña CUSTOM SORT y seleccionamos Use custom sort order.

39. La navegación ahora se verá ordenada correctamente. 

 40. Inclusive podemos hacer que la navegación superior tenga varios subniveles.

 41. Finalmente sobre la navegación superior generada deberemos asociar las correspondientes páginas que mostrarán el contenido.

Así que en la pestaña NAVIGATION seleccionamos Simple Link or Header y clic en Browse…

 42. Ubicamos las páginas que deseamos asociar.

 43. Y este mismo procedimiento lo haremos por cada elemento de la navegación superior.

 44. Probamos que la navegación superior este vinculada correctamente con las páginas.

 45. Para terminar, al inicio vimos con al conectar el Portal de publicación con el Catálogo de Productos, se generaron páginas automáticamente y esta se asociaron a cada categoría, subcategoría y producto. Debido a que según nuestras necesidades podemos requerir utilizar un Page Layout mucho más elaborado, tenemos la posibilidad de desde la pestaña TERM-DRIVEN PAGES por cada categoría y subcategoría especificar nuestro page layout personalizado.

Bueno, con esto terminamos. Ahora a sacarle provecho a esta nueva características en los distintos escenarios que se nos presenten.

Creando Page Layouts en SharePoint 2013

Cuando deseamos personalizar un portal web basado en SharePoint 2013, debemos tener varios aspectos en consideración. En primer lugar, para poder personalizar el diseño de nuestro portal podemos hacer uso de todos nuestros skills de diseño de aplicaciones web (HTML, CSS, JavaScript, JQuery, etc etc.), sin embargo, aplicar nuestro skills de diseño sobre SharePoint, requiere conocer los componentes que conforman a la solución.

Por otro lado, si nos concentramos únicamente en la forma y no en el contenido, podremos identificar que el diseño de nuestro portal estará conformado por 2 componentes, un Master Page el cual define la estructura estándar a ser compartida por todas las páginas de nuestro Portal, y el Page Layout, que es básicamente es la estructura de cada una de nuestras páginas.

En este post, mostraré como crear Page layouts en SharePoint 2013 que puedan ser reutilizados para crear varias páginas.

1. Primero debemos ingresar sobre nuestro portal y en la sección de Configuración, dar clic en Configuración del sitio

2. A continuación, debajo de Administración de la colección de sitios dar clic en Características de la colección de sitios.

3. Debemos verificar que la característica «Infraestructura de publicación de SharePoint server» se encuentre Activa.

4. De la misma manera debajo de Acciones del sitio dar clic a Administrar las características del sitio.

5. Verificar que la característica «Publicación de SharePoint Server» se encuentre Activa.

6. Una vez que tengamos todas la características necesarias activadas, debemos crear nuestro content type para el Page Layout, para esto debajo de Galerías del diseñador web dar clic en Tipos de contenido de sitio.

7. En la siguiente página dar clic en Crear.

8. Especificar el nombre de nuestro content type, y en Tipo de contenido primario seleccionar Tipo de contenido de publicación, Página. Si aún no hemos creado el grupo para nuestro tipos de contenido, entonces crear uno nuevo.

9. Se creará el tipo de contenido, heredando unos campos por defecto.

 

10. Agreguemos los campos que deseemos que representarán secciones dentro del Page Layout. Por ejemplo un campo de Línea de texto.

11. Un campo de Varias líneas de texto.

 

12. O un campo con contenido HTML.

13. Una vez especificados todos nuestro campos deberemos importar el Page Layout, para esto en Configuración dar clic en Administrador de diseños.

14. Se abrirá la página de Administrador de diseños el cual también es usado para para diseñar nuestro Master Page.

15. Dar clic en Editar diseño de página y a continuación dar clic en Crear un diseño de página.

16. En Crear un diseño de página especificar el nombre, el master page que utilizaremos y el Tipo de contenido que emplearemos.

 

 17. Se habrá creado nuestro Page Layout que podremos ahora editar desde SharePoint designer o cualquier otra herramienta de diseño web.

18. Ubicamos nuestro archivo HTML en la sección de Page Layout. Podremos observar que también se autogeneró un archivo .aspx que es el que consumiremos finalmente en nuestras páginas. 

19. Dar clic derecho y Check Out para Proteger.

20. Para editar dar clic en Edit File in Advanced Mode

21. En el HTML podremos personalizar nuestro diseño como lo deseemos.

22. Una vez terminado desprotegemos el HTML dando clic en Check In

23. En la ventana emergente seleccionamos Publish a major versión y clic en OK.

24. Finalmente para utilizar nuestro Page layout, en la biblioteca de Páginas, debemos agregar el tipo de contenido recientemente creado.

25. Podremos observar nuestro nuevo tipo de contenido asociado a la bilbioteca Páginas.

 

26. Finalmente al dar clic en Nuevo documento podremos ver que se encuentra nuestro diseño.

27. Creamos nuestra página basada en el Page Layout.

28. Se crea nuestra página.

29. Al entrar en el modo de edición podremos observar la estructura que definimos y podremos incorporar el contenido que deseemos.