Blog del CIIN

Blog del Centro de Innovación en Integración de Cantabria

This Blog

Syndication

Search

Tags

Community

Email Notifications

Archives

Enlaces Recomendados

April 2012 - Artículos

SharePoint 2010: Alternativas para personalizar los resultados de las búsquedas (I)!

Una de las características clave de las búsquedas en SharePoint 2010 es el alto grado de personalización que se puede conseguir en las mismas, tanto en la experiencia de usuario (presentación de resultados y realización de búsquedas), como en las posibilidades que brinda la API subyacente para construir auténticos verticales de búsquedas sobre el motor de búsquedas de la plataforma. En este primer post vamos a ver que posibilidades tenemos a la hora de personalizar los resultados de las búsquedas. A nivel de presentación las posibilidades pasan por:

  • Decidir si se utiliza el centro de búsquedas por defecto de SharePoint o no. Lo más adecuado pasa por definir un centro de búsquedas personalizado usando las siguientes opciones:
  • Personalizar las WebParts de búsquedas utilizando para ello transformaciones XSLT que se definan en archivos XSL. En este sentido, se pueden personalizar por ejemplo el panel de refinamiento o la WebPart de resultados de SharePoint 2010.
  • Extender mediante desarrollo las WebParts de búsquedas que en SharePoint 2010 no son selladas, de manera que se pueden crear nuevas WebParts que hereden de las WebParts de búsqueda existentes.

Si nos centramos en las posibilidades de personalización de las WebParts de búsqueda:

WebPart Searchbox

La WebPart de definición de una búsqueda (SearchBox) es extensible de forma que podemos crear nuestras propias WebParts que extiendan la anterior para simplificar por ejemplo la realización de las búsquedas de tipo Wildcard sin obligar a qué el usuario tenga que introducir un carácter *, aplicar una ordenación diferente especificando una clausula OrderBy. Dos ejemplos en esta línea son los siguientes:

Extesión de la WebPart CoreResults

La WebPart CoreResults es extensible, siendo la opción recomendada en escenarios de personalización en los que se requiera por ejemplo aplicar ciertos criterios de ordenación o cambiar la presentación de las búsquedas utilizando un renderizado diferente al propio de CoreResultsWebParts. Ejemplos en esta línea son los siguientes:

Ordenación de los resultados de búsqueda

Los resultados obtenidos a partir de una búsqueda se pueden ordenar en base a unos criterios de búsqueda que se especifiquen. Las posibilidades para aplicar ordenación personalizada pasan por:

Personalización del panel de refinamiento

El panel de refinamiento de resultados de las búsquedas es personalizable mediante dos técnicas diferenciadas:

Personalización de la paginación de los resultados de búsqueda

Dentro de las posibilidades de personalización de la paginación de los resultados de búsqueda tenemos:

Publicado 30/4/2012 11:00 por Juan Carlos González Martín | 1 comment(s)

Archivado en:

SharePoint 2010: Cmdlets PowerShell para el trabajo con soluciones!

Como sabéis, con SharePoint 2010 el trabajo con soluciones .WSP se convierte en la técnica estándar para desplegar cualquier tipo de componente o artefacto que permita extender la funcionalidad por defecto de la plataforma. Para poder desplegar e instalar estas soluciones tenemos varias opciones:

  • La interfaz de usuario, válida para cuando estamos desplegando soluciones de tipo SandBox (cargamos las soluciones en la galería de soluciones disponible en el sitio raíz de cualquier colección de sitios). Esta aproximación en cambio no es válida para el caso soluciones de tipo granja.

image

  • La interfaz de línea de comandos mediante el uso de la herramienta STSADM o mejor el uso de los cmdlets de PowerShell específicos para el trabajo con soluciones. Estos cmdlets como podéis ver en detalle en este enlace son:
    • Add-SPSolution para añadir una solución de tipo granja.
    • Install-SPSolution para instalar una solución de tipo granja.
    • Update-SPSolution para actualizar una solución de tipo granja.
    • Uninstall-SPSolution para desintalar una solución de tipo granja.
    • Remove-SPSolution para eliminar una solución de tipo granja.
    • En el caso de soluciones de tipo SandBox, los comandos son los mismos cambiando SPSolution por SPUSerSolution.
  • El modelo de objetos de SharePoint.

SharePoint2010_thumb

Finalmente, os dejo un excelente post de automatización de despliegue de soluciones mediante PowerShell escrito por Gary Lapointe: http://blog.falchionconsulting.com/index.php/2010/06/deploying-sharepoint-2010-solution-packages-using-powershell

Publicado 29/4/2012 18:46 por Juan Carlos González Martín | 1 comment(s)

Gira Cloud Ready 2012–Burgos: Disponibles los materiales de la charla sobre Office 365!

Ayer viernes tuve el placer de participar en la sesión de Burgos de la gira Cloud Ready 2012 capitaneada por el crack de David Nudelman por varias ciudades españolas…de la sesión en Burgos me quedo con varias cosas:

  • Lo bien que se come por allí (David, buena elección aunque la próxima gira tiene que pasar por Santander si o sí).
  • La calidad de las sesiones realizadas tanto por David, como por Carlos, Samuel y Paulo…de las mismas, me quedo con la cantidad de novedades que trae Windows Server 2012…simplemente impresionante. Microsoft lo ha vuelto a hacer, y la nueva versión del sistema operativo de servidores va a dar mucho que hablar…a nivel de virtualización simplemente acojonante el que puedas llegar a crear una máquina virtual de 512 GB de RAM o la gran cantidad de procesadores virtuales que se pueden añadir.
  • Con la gran afluencia que tuvimos, más de 90 personas que venían de la propia universidad de Burgos (enhorabuena a los profesores por su alto poder de convocatoria) y de empresas de Burgos…estos últimos con mucho nivel a raíz de las preguntas realizadas.

Podéis descargaros los materiales desde este enlace de SUGES.

IMG_1182 IMG_1185 IMG_1192
IMG_1207 IMG_1213 IMAG2575

Publicado 28/4/2012 11:11 por Juan Carlos González Martín | con no comments

Archivado en:

SharePoint 2010: Migración de Reporting Services nativo a modo integrado con SharePoint!

Como sabéis, cuando trabajamos con SQL Server Reporting Serives (SSRS) tenemos dos modos:

  • El modo nativo, en el que todo informe que creemos y publiquemos en el servidor de SSRS será administrado, gestionado y visualizado desde el portal Report Manager.
  • El modo integrado con SharePoint, en el que la administración, gestión y visualización de informes se realiza desde los sitios de SharePoint en los que vayamos publicando los informes.

Pasar de un modo a otro es sencillo a través de la herramienta de configuración de SSRS, pero ¿Qué pasa cuando queremos migrar artefactos de SSRS publicados en modo nativo a modo integrado? La respuesta la tenemos en este estupendo artículo  en el que se introduce la Reporting Services Migration Tool para facilitar dichas migraciones.

SharePoint2010_thumb

Publicado 28/4/2012 10:56 por Juan Carlos González Martín | 1 comment(s)

SharePoint 2010: Manejadores de eventos para listas de estado!

A raíz de una consulta en los foros de SharePoint en torno a como generar avisos ante cambios en valores de los KPIs en una lista de estado y mi sugerencia de darle una oportunidad a los manejadores de eventos, me decidí a hacer una pequeña prueba al respecto ya que las listas de tipo KPIs son un tanto especiales y no las tenía todas conmigo en relació a mi idea…por suerte ya os adelanto que el resultado de la prueba ha sido el esperado, por lo que manos a la obra:

  • Lo primero es crear una lista de tipo Status List en nuestro sitio de SharePoint 2010 de trabajo.
  • Creamos un indicador en la lista sencillo, es decir, de tipo Fixed Value.
  • En la correspondiente ventana modal añadimos el valor para el mismo.
image image image
  • Si cambiamos de la vista por defecto a la vista de todos los elementos, podremos ver los nombres de las columnas que necesitaremos para poder jugar con las posibilidades que nos da un manejador de eventos asociado a la lista. En concreto, nos fijaremos en la columna “Indicator Value”.
  • Nos vamos a Visual Studio 11 Beta (VS 11 Beta) y creamos un proyecto de tipo SharePoint 2010 Project. Añadimos al proyecto un elemento de tipo “Event Receiver”.
  • En el asistente de configuración especificamos que sea un manejador de tipo List Item Events y escogemos el evento “An item was updated”.
image image image
  • Codificamos el manejador para poder trabajar con la columna “Indicator Value”. Aquí solo tenemos que tener en cuenta que el valor almacenado es de tipo “double”.
   1: public override void ItemUpdated(SPItemEventProperties properties)
   2: {
   3:     base.ItemUpdated(properties);
   4:     SPListItem spiKPIListItem = properties.ListItem;
   5:  
   6:     if ((Double)spiKPIListItem["Indicator Value"] > 800000)
   7:     {
   8:         //Do something here
   9:     }
  10: }
  • Compilamos y pulsamos F5 para poder depurar el manejador y ver que funciona sin problemas. Para ello, actualizamos el valor del KPI.
  • Tras guardar el valor actualizado, veremos que efectivamente se lanza el manejador lo que nos permite hacer acciones extra como por ejemplo enviar un correo electrónico indicando que dicho valor ha cambiado.
image image

Referencias:

Publicado 27/4/2012 22:06 por Juan Carlos González Martín | 1 comment(s)

Archivado en:

SharePoint Online: Configuración y parametrización de las búsquedas (I)!

Hace unas semanas os comentaba que a la hora de configurar los ámbitos de búsqueda en SharePoint Online (SPO) nos encontrábamos con un error que por fortuna Microsoft ya ha solucionado, de ahí que a partir del post sobre como crear un centro de búsquedas personalizado, en esta ocasión pase a comentar que posibilidades de configuración y parametrización a nivel de búsquedas tenemos disponibles en SPO:

  • Lo primero, vamos a ver como es la experiencia de búsquedas por defecto en SPO realizando una búsqueda cualquiera.
  • Seremos redirigidos a la página estándar de resultados de búsqueda de SPO (OSSSResults.aspx, página que está en _LAYOUTS).
  • En esta página tendremos la posibilidad de realizar una búsqueda avanzada o cambiar el ámbito de búsqueda.
image image image
  • Si realizamos una búsqueda desde la página anterior, iremos al centro de búsquedas que se ha provisionado en nuestro tenant de Office 365 y que tiene configuradas las distintas WebParts de búsqueda.
  • Es aquí dónde empezaremos a ver que posibilidades de configuración tenemos con las búsquedas. Si queremos que las configuraciones sean globales, las tendremos que realizar desde la administración de la colección de sitios de búsqueda que se provisionó en el momento de crear el tenant de SPO en Office 365. En cambio, si queremos que las configuraciones sean locales, lo haremos a nivel de cada colección de sitios.
  • En cualquiera de los dos casos, tenemos disponibles bajo las opciones de administración de la colección de sitios los distintos accesos rápidos para configurar las búsquedas.
  • El primer enlace, “Configuración de las búsquedas”  nos permite especificar que página de resultados usar: la que viene por defecto vs una personalizada, como tiene que ser el comportamiento del cuadro desplegable de búsqueda y cuál es la página de resultados de la colección de sitios.
image image image
  • La página de configuración de los ámbitos de búsqueda nos permite ver qué ámbitos hay disponibles y crear nuevos.
  • Finalmente, desde la página de Administración de palabras clave podremos ver las palabras clave para realizar las búsquedas (por defecto no hay) y crear nuevas.
image image

Publicado 26/4/2012 17:08 por Juan Carlos González Martín | 2 comment(s)

Archivado en:

Una de antivirus…disponible la versión 4.0 de Microsoft Security Essentials!

Hace un rato leía que Microsoft acaba de liberar la versión 4.0 de su antivirus gratuito…si, es gratis y todavía me sorprende que mucha gente no lo conozca ya que lleva varios años disponibles y he de de decir que sus prestaciones son muy buenas ya que detecta muy bien posibles amenazas y su funcionamiento es totalmente silencioso. Las novedades de la versión 4.0 de MSE las podéis leer en este post y en cuanto a la descarga del mismo, la podéis realizar desde este enlace (la versión en español aquí). En cuanto a la instalación en sí es muy sencilla:

  • El mismo proceso detecta si tienes instalada una versión previa de MSE y te dice que se tiene que actualizar.
  • Aceptamos los correspondientes términos de licencia y uso.
  • Y a partir de aquí a actualizar se ha dicho. El proceso desactivara temporalmente la versión de MSE instalada (tendremos que arrancarla posteriormente)
image image image
  • La instalación es super rápida (no mucho más de un par de minutos).
  • Y listo, ya estamos protegidos de nuevo.
image image

Publicado 25/4/2012 8:40 por Juan Carlos González Martín | 1 comment(s)

Archivado en:

SharePoint Online: Actualizaciones en cuotas de almacenamiento!

Sin duda, grandes noticias: Microsoft acaba de realizar actualizaciones importantes en lo que a cuotas de almacenamiento se refiere para SharePoint Online en Office 365. En concreto, como se puede leer en el blog del equipo de Office 365, se han introducido las siguientes actualizaciones:

  • Incremento en la cuota de almacenamiento por Tenant que pasa de 5 TB a 25 TB…que decir: impresionante, no creo que nadie se queje de que no tiene almacenamiento suficiente en SharePoint Online.
  • A pesar de todo, si se necesita almacenamiento adicional, Microsoft ha realizado una reducción de precio del 92 % de manera que por cada nuebo GB que compremos se pasará de 2.5 $/mes a 0.20 $/mes.

Os recuerdo que almacenamiento de partida se calcula de la siguiente forma: 10 GB + 500 MB * # Seats (para planes E).

Publicado 24/4/2012 22:01 por Juan Carlos González Martín | 3 comment(s)

SharePoint 2010: Como crear formularios personalizados de lista (IV)!

Siguiendo con la serie de artículos sobre como crear formularios personalizados de lista, en esta ocasión vamos a ver las posibilidades que nos brinda la interfaz de usuario de SharePoint 2010. En concreto veremos que hay dos aproximaciones:

  • Editando los formularios en el navegador, lo que nos permite añadir WebParts que los personalicen.
  • Editando los formularios con InfoPath Designer 2010, lo que nos permite modificar el look & feel de los formularios, añadir reglas de validación, etc. En este caso hay que tener en cuenta que los formularios solo se mostrarán renderizados en el navegador para SharePoint Server Enterprise ya que se necesitan los servicios de formularios InfoPath.

Antes de comenzar con este último artículo de la serie, os recuerdo los artículos previos:

Los pasos para personalizar los formularios por defecto de una lista son los siguientes:

  • En primer lugar, navegaos a la lista en cuestión (en mi caso una lista de tipo Vínculos) y a través de la sección “Lista” de la Ribbon accedemos a la opción de personalización que nos permite modificar cualquiera de los tres formularios de lista disponibles: New, Edit y Display.
  • Si personalizamos el formulario de Nuevo elemento, entramos en el modo de edición del mismo y podremos añadir por ejemplo nuevas WebParts.
  • Por ejemplo, podemos añadir una WebPart de tipo Editor de contenido en la que añadamos contenido estático o incluso código JavaScript.
image image image
  • Tras salir del modo de edición, si añadimos un nuevo elemento a la lista veremos que las personalizaciones se muestran al usuario.
  • La otra posibilidad de que disponemos para personalizar los formularios de una lista de SharePoint es el uso de InfoPath Designer 2010. Para hacer uso de la misma, pulsamos sobre la opción “Personalizar Formulario” disponible en la Ribbon.
  • De esta forma se abre InfoPath Designer 2010 y podemos comenzar a cambiar el look & feel del formulario de lista.
image image image
  • Podemos añadir también nuevos campos al formulario o reglas de validación.
  • Para publicar los cambios, simplemente pulsamos el botón de publicación rápida disponible en InfoPath Designer 2010.
  • Una vez finalizado el proceso de publicación, comprobamos que las personalizaciones están disponibles en los formularios de la lista.
image image image
  • Como vemos, en el formulario de nuevo elemento no aparecen las personalizaciones realizadas a través de la interfaz de usuario. Esto es así porque cuando se personalizan los formularios de lista con InfoPath Designer 2010, lo que está sucediendo realmente es que se crean nuevos formularios para crear, actualizar y visualizar elementos de lista y además de marcan como formularios por defecto.
  • De echo, podríamos personalizar estos nuevos formularios con la interfaz de usuario. Como vemos, los formularios personalizados con InfoPath Designer 2010 son mostrados usando una WebPart de visor de formulario InfoPath.
image image

Publicado 24/4/2012 16:42 por Juan Carlos González Martín | 1 comment(s)

Archivado en:

SharePoint Online: ¿Se pueden copiar flujos de trabajo no reutilizables entre sitios?

Esta pregunta es la que planteaban el otro día por los foros de SharePoint, y aunque intuía la respuesta (“creo que va a ser que no), mejor demostrarlo rápidamente:

  • Creamos un flujo de trabajo con SharePoint Designer 2010 (SPD 2010) en el sitio origen.
  • Abrimos otra instancia de SPD 2010 con el sitio destino y arrastramos el flujo creado desde el sitio origen a la sección de flujos de trabajo del sitio destino (en otra colección de sitios).
  • Comprobamos que el flujo de trabajo “aparentemente” se ha copiado en el sitio destino.
image image image
  • Intentamos editar el flujo copiado en el sitio destino y tras algunos mensajes de error vemos que no es posible editarlo lo que hace que tampoco se pueda usar en el sitio.

image

Publicado 23/4/2012 20:39 por Juan Carlos González Martín | 4 comment(s)

SharePoint Online: Como recuperar un subsitio borrado por error en planes P!

Si por error eliminamos un subsitio bajo nuestro Team Site en un plan P, que no cunda el pánico porque lo podremos recuperar de forma sencilla gracias a la papelera de reciclaje de SharePoint Online que permite recuperar y restaurar subsitios eliminados:

  • Supongamos que bajo nuestro Team Site tenemos un cierto sitio que eliminamos por error.
  • Para recuperarlo nos vamos a la papelera de reciclaje del Team Site.
  • En la papelera de reciclaje, tenemos que acceder a la papelera de reciclaje de la colección de sitios a través del enlace que aparece página de acceso.
image image image
  • En este nivel de papelera, pulsamos sobre la opción del menú “Eliminado de la Papelera de reciclaje del usuario final” de manera que allí veremos el subsitio eliminado. Seleccionamos el subsitio y pulsamos sobre Restaurar selección.
  • Comprobamos que el subsitio se ha restaurado a través de la página “Ver todo el contenido del sitio”.
image image

Publicado 22/4/2012 22:31 por Juan Carlos González Martín | 3 comment(s)

Archivado en:

SharePoint Online: Limitaciones en la creación de flujos de trabajo para planes P!

Cuando vayamos a crear flujos de trabajo en SharePoint Online (SPO) en Office 365 tenemos que tener en cuenta que hay ciertas limitaciones que no permiten que podamos crear los mismos flujos de trabajo en planes P (Pequeñas empresas y profesionales) frente a lo que podemos hacer en planes E (Empresas grandes y medianas) en los que en principio no hay limitaciones conocidas de manera que podemos crear con SharePoint Designer 2010 (SPD 2010) el mismo tipo de flujos que podemos crear en SharePoint 2010 OnPremise. En concreto, el siguiente artículo de la Knowledge Base (KB) de Microsoft describe las limitaciones a la hora de crear flujos de trabajo con SPD 2010 que tenemos en planes P de Office 365 en cuanto a que acciones de flujo de trabajo de las disponibles no se pueden utilizar:

  • Iniciar el proceso de aprobación de conjunto de documentos
  • Capturar una versión de un conjunto de documentos
  • Enviar un conjunto de documentos al repositorio
  • Establecer el estado de aprobación de contenido del conjunto de documentos
  • Iniciar el proceso de aprobación, el proceso de inicio de retroalimentación, el proceso de tarea de inicio personalizada
  • Declarar registro, anular el registro, Administrador de la búsqueda de un usuario
  • Finalizar el proceso de tarea, establecer estado de aprobación de contenido (como el autor)
  • Espere a que el cambio en el elemento de tarea de proceso
  • Establezca el campo de tareas, rescindir la tarea
  • Anexar la tarea, Delegar tarea
  • Reasignar la tarea, tarea hacia delante
  • Insertar tarea
  • Reasignar tareas
  • Solicitar un cambio
  • Enviar correo electrónico de la tarea

Publicado 21/4/2012 18:45 por Juan Carlos González Martín | 3 comment(s)

SharePoint 2010: ¿Cuándo usar RBS?

Como sabéis, SharePoint 2010 incorpora, gracias al soporte que da SQL Server, la posibilidad de almacenar contenido en el sistema de archivos a través del Remote Blog Storage (RBS) pensado para permitir escenarios en los que se necesita cargar ficheros de un tamaño relativamente grande (se suele hablar de más allá de 3 MB) de una forma intensiva en escenarios de colaboración lo que llevaría a un rápido crecimiento de las BD’s de contenidos y a un empeoramiento del rendimiento percibido por los usuarios que trabajan con SharePoint. RBS trata precisamente de cubrir este tipo de escenarios permitiendo por una parte que las BD’s de contenidos no crezcan de forma desmesurada y que el rendimiento de SharePoint no se vea penalizado y todo ello de forma transparente para el usuario que no es consciente que los archivos con los que trabaja están almacenados en el sistema de archivos. Evidentemente, y como podéis leer en una de las referencias que os dejo, no todos son ventajas ya que por ejemplo el uso de RBS complica la realización de copias de seguridad, se necesita capacidad adicional para monitorizar todo lo que se almacene en el sistema de archivos, HW adicional para ese almacenamiento, entre otras necesidades. Por lo tanto, cuando hagamos el planning de una solución de SharePoint es importante prever como va a ser el crecimiento de nuestras BD’s a partir de estimar el tamaño medio de los archivos para decidir si optar o no por una arquitectura de SharePoint que incorpore RBS.

Finalmente os dejo algunas referencias útiles respecto a RBS y SharePoint 2010:

Publicado 21/4/2012 10:40 por Juan Carlos González Martín | 2 comment(s)

Eventos: Materiales del WebCast de desarrollo en SharePoint Online!

Ya tenéis disponible para descarga los materiales del WebCast de desarrollo en SharePoint Online en Office 365 que realizamos ayer desde el CIIN. Aprovecho, para agradecer a todos los asistentes al WebCast su participación en el mismo. Podéis descargaros los siguientes materiales del WebCast desde este enlace en la web de SUGES:

  • Grabación del WebCast.
  • Presentación que utilicé en el WebCast.
  • Algunas demos realizadas.

image

Aprovecho también para copiaros las Urls de artículos del blog en el que se cubren algunas de las cosas y demos que comenté durante el WebCast:

Publicado 20/4/2012 8:35 por Juan Carlos González Martín | con no comments

Archivado en:

Visual Studio 11 y SharePoint 2010: Novedades en desarrollo para SharePoint (VI)!

Siguiendo con la serie de artículos sobre novedades a nivel de desarrollo que tenemos en Visual Studio 11 Beta para SharePoint 2010, en esta nueva entrega vamos a ver otra de las plantillas disponibles para facilitar la creación de artefactos para SharePoint 2010. Pero antes, os recuerdo los posts previos de la serie:

La plantilla que vamos a revisar en este artículo es la relativa a la creación de listas de SharePoint 2010:

  • En VS 11 Beta creamos un proyecto de tipo SharePoint 210 Project.
  • Añadimos un elemento de tipo List al proyecto (Nota: Posiblemente haya que cambiar la Url de http://<Nombre_Maquina> a http://localhost en las propiedades del proyecto para que deje crear un elemento de tipo lista.
  • Una vez creado el proyecto, le añadimos un elemento de tipo List.
image image image
  • Seleccionamos el tipo de lista en qué nos queremos basar. Ente caso una lista de tipo Links.
  • A continuación se muestra el diseñador de listas que nos permite por ejemplo configurar las columnas de la misma.
  • También podremos configurar las vistas por defecto y añadir nuevas vistas.
image image image
  • En el explorador de soluciones podemos ver los elementos que forman parte del proyecto y configurarlos de forma adecuada. Por ejemplo, podemos configurar la característica correspondiente.
  • Si volvemos al diseñador de la lista, podremos personalizar el título de la misma, la Url relativa para mostrar y su descripción.
  • Una vez que hayamos realizado todas las personalizaciones, podemos desplegar el correspondiente .WSP y activar la característica que hará que la lista estçe disponible en nuestro sitio de trabajo.
image image image

 

  • Comprobamos que la lista está operativa como se esperaba.

image

Publicado 19/4/2012 12:40 por Juan Carlos González Martín | 7 comment(s)

Office 365: Publicada Wiki para estar al día con las actualizaciones en los servicios!

Microsoft acaba de publicar una nueva Wiki como parte del soporte a Office 365 en el qué podremos encontrar el listado de actualizaciones que se han ido aplicando para los distintos servicios que forman parte de la suite de productividad de Microsoft. Podéis acceder a la Wiki en este enlace y a las actualizaciones particulares para planes E y P en los siguientes enlaces:

Publicado 18/4/2012 23:03 por Juan Carlos González Martín | 3 comment(s)

Archivado en:

Lync Online: Características del cliente web!

Como sabéis, uno de los servicios que forma parte de Office 365 es el de Lync Online pensado para dotar a organizaciones de cualquier tamaño de capacidades de comunicaciones unificadas. Una pregunta muy habitual es la relativa a que se necesita para poder mantener sesiones de Lync con usuarios externos a Office 365 o nuestra organización si estamos usando Lync OnPremise. Tendremos tres posibilidades:

  • Usar el cliente de Lync bien porque estos usuarios externos estén usando Lync Online o Lync OnPremise. En cualquiera de los dos casos, será necesario habilitar la federación de dominios de Lync.
  • Usar el cliente Lync Attendant que evita tener que tener cuentas de Lync Online u OnPremise.
  • Usar el cliente web de Lync, que nos evita tener que instalar nada en nuestro equipo y que además es multi-plataforma ya que se puede usar en plataformas Windows y no Windows (Mac).

El cliente web de Lync Web ofrece bastantes características del cliente Lync convencional, aunque está limitado como es de esperar. Entre las características disponibles tenemos: mensajería instantánea (MI), audio basado en teléfono (lo qué implica disponer de un servicio de conferencia de tereceros), distribución de archivos, visualización de presentaciones de Microsoft PowerPoint y visualización de la pantalla que comparte el moderador, pizarra, control de acceso por parte del moderador. En cuanto a los navegadores soportados os recomiendo ver este enlace Supported Platforms for Lync Web App. Os dejo la referencia completa de Lync Web App: http://office.microsoft.com/en-us/communicator-help/CL101855691.aspx

ZA102079744[1] ZA102076555[1] ZA102076683[1]

Otras referencias:

Publicado 18/4/2012 14:31 por Juan Carlos González Martín | 4 comment(s)

Archivado en:

SharePoint 2010: ¿Se puede acceder a datos externos de forma anónima?

Esta cuestión surgió en el ambiente cuando en un proyecto reciente en el que he colaborado se trató el tema de acceder a datos externos en SharePoint mediante Business Connectivity Services (BCS) por parte de usuarios anónimos (lógicamente se trata de visualizar los datos). La respuesta es qué técnicamente es posible, pero tenemos que tener en cuenta que podemos estar comprometiendo la seguridad de nuestros datos. Esto se debe a qué para poder acceder a los datos de un sistema externo, tenemos qué:

  • O bien habilitar el acceso anónimo al sistema externo de manera que se pueda utilizar el autenticación de tipo Pass Thorugh evitando el clásico problema de “doble salto” cuando se solicite acceder a los datos desde los frontales web de SharePoint y evita r de esta forma que aparezca el error you cannot map “anonymous” to a service account in Secure Store ya que no se puede configurar el SSS para acceso anónimo (siempre se necesita una cuenta para autenticarse contra el sistema externo).
  • O bien configuramos el tipo de contenido externo que modelemos para poder usar la identidad del BCS (BDC Identity, http://blogs.msdn.com/b/bcs/archive/2010/03/12/authenticating-to-your-external-system.aspx) para poder permitir que los datos externos se puedan acceder de forma anónima. El problema de esta aproximación es que se está usando la identidad del Application Pool de la aplicación web para obtener la información del sistema externo, lo cuál puede comprometer la seguridad en el acceso a la información si tenemos en cuenta que esta identidad del Application Pool tiene ciertos privilegios.

Referencias:

Publicado 17/4/2012 20:04 por Juan Carlos González Martín | 1 comment(s)

SharePoint 2010: Configuración y uso de Property Bags (I)!

SharePoint dispone del concepto de Property Bags como mecanismo para almacenar configuraciones que puedan necesitar las soluciones que se desplieguen. Una Property Bag es una Hash Table en la que se puede almacenar cualquier metadato en la forma clave-valor: strings de conexión, nombres de servidor, rutas de archivos, etc. Las Property Bags se definen de acuerdo a la misma jerarquía de la propia arquitectura de SharePoint de forma que tenemos los siguientes niveles:

  • Granja (Clase SPFarm).
  • Aplicación Web (Clase SPWebApplication).
  • Coleción de sitios (Clase SPSite).
  • Sitio (Clase SPWeb).
  • Lista (Clase SPList).

Para trabajar ver como configurar y usar Property Bags en estos niveles:

  • En Visual Studio 2010 creamos un proyecto de tipo aplicación de consola (Nota: La versión de .NET Framework del proyecto tiene que ser la 3.5).
  • A través del Configuration Manaer de Visual Studio 2010 cambiamos la plataforma de x86 a x64.
  • Codificamos la clase Program.cs de la siguiente forma:
    • Como vemos, se han añadido directivas using a Microsoft.SharePoint, Microsoft.SharePoint.Administration, System.Collections.
    • Para trabajar con las Property Bags a nivel de granjas necesitamos un objeto de tipo SPFarm y luego acceder a la colección de Property Bags disponibles en la propiedad Properties.
    • A partir de aquí, simplemente se trata de seguir la definición de Property Bag comentada al inicio.
   1: using System;
   2: using System.Collections.Generic;
   3: using System.Linq;
   4: using System.Text;
   5:  
   6: //Espacios de nombres necesarios
   7: using System.Collections;
   8: using Microsoft.SharePoint;
   9: using Microsoft.SharePoint.Administration;
  10:  
  11: namespace SPPropertyBagsConfigurator
  12: {
  13:     class Program
  14:     {
  15:         static void Main(string[] args)
  16:         {
  17:             Console.WriteLine("Introduzca el tipo de operación:");
  18:             Console.WriteLine("1 .- Visualizar las Property Bags");
  19:             Console.WriteLine("2 .- Crear una nueva Property Bag");
  20:             Console.WriteLine("3 .- Actualizar una Property Bag");
  21:             Console.WriteLine("4 .- Eliminar una Property Bag");
  22:  
  23:             string sOpcion = Console.ReadLine();
  24:             ManageFarmPropertyBags(sOpcion);
  25:             Console.ReadLine();
  26:         }
  27:         /// <summary>
  28:         /// Permite manegar las Property Bags a nivel de granja
  29:         /// </summary>
  30:         /// <param name="sOpcion">Operación a realizar</param>
  31:         static void ManageFarmPropertyBags(string sOpcion)
  32:         {
  33:             try
  34:             {
  35:                 SPFarm spfGranja = SPFarm.Local;
  36:                 switch (sOpcion)
  37:                 {
  38:                         //Visualizar Property Bags
  39:                     case "1":
  40:                         if (spfGranja.Properties!=null 
  41:                             && spfGranja.Properties.Count>0)
  42:                         {
  43:                             Console.WriteLine(
  44:                                 "-----------------------------------");                                
  45:                             Console.WriteLine(
  46:                                 "Property Bags disponibles");
  47:                             Console.WriteLine(
  48:                                 "-----------------------------------");    
  49:                             foreach (DictionaryEntry deEntry in spfGranja.Properties)
  50:                             {
  51:                                 Console.WriteLine(
  52:                                     "Propiedad: {0} - Valor: {1}",
  53:                                     deEntry.Key,deEntry.Value);
  54:                             }
  55:                         }
  56:                         else
  57:                         {
  58:                             Console.WriteLine(
  59:                                 "-----------------------------------");  
  60:                             Console.WriteLine(
  61:                                 "No hay Property Bags definidas a nivel de granja");
  62:                             Console.WriteLine(
  63:                                 "-----------------------------------");  
  64:                         }
  65:  
  66:                         break;
  67:                         //Añadir una Property Bag
  68:                     case "2":
  69:                         spfGranja.Properties.Add("SPFarmKey", "SPFarmValue");
  70:                         spfGranja.Update();
  71:                         Console.WriteLine(
  72:                             "-----------------------------------");  
  73:                         Console.WriteLine(
  74:                             "Property Bag añadida");
  75:                         Console.WriteLine(
  76:                             "-----------------------------------");  
  77:                         break;
  78:                         //Actualizar una Property Bag
  79:                     case "3":
  80:                         spfGranja.Properties["SPFarmKey"]="SPFarmValueUpdate";
  81:                         spfGranja.Update();
  82:                         Console.WriteLine(
  83:                             "-----------------------------------");  
  84:                         Console.WriteLine(
  85:                             "Property Bag Actualizada");
  86:                         Console.WriteLine(
  87:                             "-----------------------------------");  
  88:                         break;
  89:                         //Borrar una Property Bag
  90:                     case "4":
  91:                         spfGranja.Properties["SPFarmKey"] = null;
  92:                         spfGranja.Properties.Remove(
  93:                             "SPFarmKey");
  94:                         spfGranja.Update();
  95:                         Console.WriteLine(
  96:                             "-----------------------------------");  
  97:                         Console.WriteLine(
  98:                             "Property Bag eliminada");
  99:                         Console.WriteLine(
 100:                             "-----------------------------------");  
 101:                         break;
 102:                     default:
 103:                         Console.WriteLine(
 104:                             "-----------------------------------");  
 105:                         Console.WriteLine(
 106:                             "Opción seleccionada no valida");
 107:                         Console.WriteLine(
 108:                             "-----------------------------------");  
 109:                         break;
 110:                 }
 111:                 Console.WriteLine();
 112:                 Main(null);
 113:             }
 114:             catch (Exception ex)
 115:             {
 116:                 Console.WriteLine("Error: {0}",
 117:                     ex.Message);
 118:             }
 119:         }
 120:     }
 121: }
  • Compilamos el proyecto y lo probamos, en primer lugar añadimos una primer Property Bag.
  • Comprobamos que la Property Bag se ha añadido y la mostramos por pantalla.
image image image

 

Referencias:

Publicado 16/4/2012 23:05 por Juan Carlos González Martín | 2 comment(s)

SharePoint 2010: Técnicas para minimizar los tiempos de carga!

Cuando se crean soluciones, WCM o no, en SharePoint 2010, uno de los factores a mirar en detalle es el rendimiento de carga de las páginas de publicación y/o otras páginas que pudiesen formar parte de la solución. Para asegurar un buen rendimiento de carga de las páginas hay varias técnicas que se pueden aplicar como por ejemplo:

  • A nivel de configuración de los servidores que forman parte de la granja:
    • Usar la compresión de IIS para optimizar el uso del ancho de banda disponible de forma que no se penalice el acceso a través de dispositivos móviles a nuestros sitios, haya unos buenos tiempos de respuesta, etc. IIS proporciona compresión para archivos estáticos, respuestas dinámicas de aplicación o ambos.
  • A nivel de instalación de la plataforma, configurarla para que los directorios de trabajo de SharePoint se ubiquen en discos dedicados de manera que se evite que SharePoint tenga que “luchar” con el sistema operativo a la hora de escribir en disco.
  • A nivel de configuración de la granja:
    • Centralizar en una ubicación la generación de los logs de IIS relativa a sitios de SharePoint.
    • Habilitar cacheado en distintos niveles:
    • Frontales Web (cacheado en cliente).
    • Servidores de base de datos (reducir el número de round trips al servidor).
    • Cache de salida (Output cache), propia de sitios de publishing y que se configura a nivel de colección de sitios.
    • Cacheado en disco usando BLOB cache.
    • Cacheado de objetos.
  • A la hora de configurar los distintos niveles de caché comentados:
    • Blob cache que se habilita a nivel de Web.Config de manera que se aplica a todas las colecciones de sitios y sitios definidos en la Web Application cuyo Web.Config hemos configurado. Esta caché se almacena directamente en los discos de los frontales web, de manera que la primera vez que se hace una petición a una página los archivos de caché se copian desde la BD a los discos de manera que a partir de ese momento las nuevas peticiones de la página van contra la caché. Por defecto está caché está deshabilitada.
    • Page Output cache que se puede configurar a través de la interfaz de usuario como se ha comentado para sitios de publishing. Esta cache almacena el renderizado de una página y las diferentes versiones de la página cacheada en base a los permisos e los usuarios que solicitan en la página. Esta cache se puede configurar en los siguientes niveles: colección de sitios, sitio y layou de página. De nuevo, por defecto está deshabilitada.
    • Object cache que reduce la cantidad de tráfico entre frontales web y servidores de BD almacenando objetos como listas, bibliotecas, y otros en memoria (memoria de los frontales web). Esta caché se puede configurar a nivel de aplicación web o de colección de sitios
  • A nivel de configuración de servicios y aplicaciones web, tener en cuenta la documentación de SW boundaries limits de SharePoint 2010 en cuanto a:
    • Minimizar el número de Application Pools necesarias.
    • Crear Applications Pools dedicados para personalizaciones.
    • Realizar un planning y dimensionado adecuado del crecimiento de la BD de contenidos de una cierta aplicación web para prever la creación de nuevas BDs de contenido si es necesario.
  • Comprimir los archivos JavaScript que se utilicen. Para ello, podemos utilizar cualquier compresor que tenemos en línea y que elimina espacios en blanco y retornos de carro de manera que dichos archivos pesen lo menos posible. Un ejemplo de compresor en línea es el siguiente: http://javascriptcompressor.com/.
  • De la misma forma, comprimir todos aquellos archivos que se puedan comprimir como páginas HTML u hojas de estilo.
  • Combinar archivos JavaScript o CSSs en pocos archivos (a más archivos, más se penaliza el rendimiento). La siguiente figura muestra una serie de guías para garantizar que este tipo de elementos no afecten a la carga de página:

image

  • Otras posibilidades relacionadas con la carga de archivos son las siguientes:
    • Usar CDN para la carga de ciertas librerías JavaScript como puede ser la de jQuery.
    • Eliminar comentarios en archivos JavaScript y CSS que ocupan espacio innecesario.
    • Deshabilitar el ViewState de nuestros controles siempre que sea posible.
    • Usar técnicas de Lazy Loading de contentidos.
    • Eliminar la carga de ciertos archivos JavaScript para usuarios anónimos. Por ejemplo, los usuarios anónimos no van a usar la Ribbon de SharePoint 2010 por lo que no sería necesaria la carga de SP.Ribbon.js.
  • A nivel de desarrollo, seguir buenas prácticas para evitar que todo ensamblado que despleguemos en SharePoint tenga zonas de código muerto o fugas de memoria. Para el primer caso, necesitaremos emplear técnicas de “Code Analysis” que nos permitan detectar dichas zonas de código muerto. Para el segundo caso, usaremos herramientas conocidas como SPDisposeCheck que se integra con Visual Studio y nos permite utilizar buenas prácticas en desarrollo para SharePoint 2010.

Por supuesto, aparte de todas las opciones anteriores que implican un trabajo más o menos manual para asegurar un buen rendimiento de nuestros de nuestros despliegues y solucione SharePoint, tenemos la posibilidad de usar productos de terceros que por ejemplo se encarguen de comprimir los archivos JavaScript, HTML o CSS que forman parte de nuestra solución. Finalmente os dejo una serie de referencias de interés sobre estos temas:

Técnicas para reducir la carga de páginas de SharePoint:

Técnicas a nivel de desarrollo para asegurar un buen rendimiento:

Publicado 15/4/2012 19:34 por Juan Carlos González Martín | 2 comment(s)

Más artículos Página siguiente >