[Eventos]: SharePoint Saturday Madrid

Captura de pantalla 2016-03-08 a las 22.23.29.png

Muy buenas,

Pues bueno chicos, como ya sabéis, ya está aquí. Después de varios meses de run run, hace poco más de un mes que se confirmó que el próximo 7 de Mayo se celebrará en Madrid el primer SharePoint Saturday en las oficinas de Microsoft en el parque empresarial de la finca en Pozuelo de Alarcón.

Este evento, organizado por las comunidades de usuarios y de repercusión internacional, como sabéis está centrado en la tecnología de SharePoint y Office 365 y a él asisten los mejores speakers nacionales  y algunos internaciones. Es un evento de comunidad y para la comunidad y os animo a todos a estar atentos y hacer seguimiento al evento y ver la evolución del mismo.

Actualmente, está abierto el Call4speakers y Call4sponsors

Para todos los que queráis tener toda la información completa sobre el evento os dejo el enlace al mismo

http://www.spsevents.org/city/Madrid/Madrid2016/home

No dejéis de seguir de cerca el evento y las noticias sobre el mismo. Y espero que nos podamos ver todos por allí. Yo ya he mandado algunas sesiones, espero que finalmente sean elegidas. Si no, seré asistente si o si. Un evento de estos no te lo puedes perder.

Un saludo a todos

Anuncios

Número #27 de CompartiMOSS y nueva colaboración

Muy buenas a todos,

El pasado lunes se publicó un nuevo número de la revista CompartiMOSS con contenido muy interesante sobre SharePoint, Office 365 y Azure. La revista está haciendo de forma muy natural una transición muy interesante hacia incluir contenido relacionado con Office 365 y Azure además de continuar con la temática de SharePoint.

A continuación os dejo un índice de todos los artículos interesantes que podréis encontrar en el número que acaba de salir:

  • Configurando Azure Directory Services para Office365 por Darwin Castro Marín
  • ENMARCHA: Un Framework Open Source para agilizar el desarrollo en SharePoint por Adrian Diaz Cervera
  • Entrevista Enrique Rhenals Bárcenas por Enrique Rhenals Bárcenas
  • Usando Azure Search en soluciones de búsqueda para Office 365 por José Carlos Rodríguez Avilés
  • ¿Es Project Server / Online realmente multiidioma? por José Rafael García
  • ¿Qué son las PowerApps de Microsoft? – Creando nuestra primera aplicación por Sergio Hernandez Mancebo
  • Conectores para Grupos de Office 365 por Ruben Toribio
  • Conociendo a MinRole de SharePoint 2016 por Miguel Tabera Pacheco
  • Introducción al PnP Program y Provisioning framework por Luis Mañez
  • Particularidades de la instalación de una Granja de varios servidores de SharePoint 2016 por Juan Carlos Gonzalez Martin
  • SharePoint 2013 Client Side Rendering en detalle por José Quinto Zamora
  • StratusForms – ¿Adios InfoPath? por Luis Molina
  • ¿InfoPath se muere? por Gonzalo Marcos Ansoain
  • Integración de Powershell local con Powershell de Azure por Enrique Rhenals Bárcenas

Como podéis ver, de nuevo, la revista me ha dado la oportunidad de colaborar con ellos, en esta ocasión con un artículo relacionado con Azure Search y Office 365 que espero que disfrutéis. Es un tema que me ha resultado muy interesante desde siempre y que he tenido la oportunidad de conocer y quería compartir con todos. De hecho en el blog podréis encontrar artículos recientes sobre este tema.

Os dejo el enlace de la revista para que podáis acceder todos aquellos que os resulte interesante:

http://www.compartimoss.com/Revistas/Numero-27

De nuevo muchas gracias a la revista por permitirme colaborar con ellos y espero que os guste, os animo a leer el contenido de este número, es muy interesante y aprenderéis muchísimo.

Saludos

 

[Evento] Potencia tus desarrollos de SharePoint con Azure

Muy buenas a todos, y antes de nada Feliz Navidad a todos los que habitualmente entran a “El blog del programador”.

Hoy os quiero hablar del próximo evento que se va a celebrar, organizado por la comunidad de usuarios de SharePoint de Madrid, MadPoint, y que tendrá lugar el próximo 15 de Enero en Wayra en la calla Gran Via, 28.

En dicho evento, tendremos la oportunidad de profundizar en las oportunidades que nos ofrece Azure para usarla en nuestros desarrollos de SharePoint, tanto OnLine como OnPremise. Os dejo el enlace de la página de madpoint donde encontraréis toda la información sobre el evento

http://www.madpoint.net/2015/12/23/evento-potencia-tus-desarrollos-de-sharepoint-con-azure/

La agenda del evento, en donde tendré la oportunidad de aportar mi granito de arena, es la siguiente:

  • 16.00 – 16.15: Bienvenida e introducción
  • 16.15-16.50: Diseña tu propio Office 365 con Azure IaaS y PaaS
    • En esta sesión teórica, Miguel Tabera (MVP de Office Servers and Services) nos enseñará, desde el punto de vista de arquitectura, cómo es posible utilizar máquinas virtuales y servicios como las web apps, Azure Search, Media Services y Application Insights para diseñar nuestro propio servicio similar a Office 365 en el que proporcionemos SharePoint, Exchange, Office Vídeo, etc.
  • 17.00-17.50: Logic apps o el futuro de los flujos de trabajo
    • ¿Qué son las logic apps? ¿Cómo las podemos utilizar? ¿Se convertirá en el motor para desarrollar nuestras lógicas de negocio y flujos de trabajo en el futuro? En esta sesión, Jose Carlos Rodríguez Avilés, nos enseñará qué podemos hacer con este servicio de Azure y cómo podemos usarlo para implementar lógicas de negocio interconectando entre si la amplia gama de herramientas que usamos hoy en día.
  • 18.00-18.50: Timerjobs y eventos en SharePoint Online usando Hangfire
    • Cristian Ruiz nos mostrará un ejemplo práctico de cómo crear timerjobs y eventos remotos (evitando los límites de tiempo de SharePoint online) utilizando el motor de tareas programadas.

Como podéis ver, las ponencias son muy interesantes, os animo a seguir de cerca la información del evento, y a que participéis en el mismo. Poco a poco, desde MadPoint iréis recibiendo más información, desde twitter, linkedin y la página de web, para todos aquellos que podáis estar interesado.

Un saludo, y por si acaso que tengáis una muy buena entrada del año 2016.

 

Primeros pasos con SharePoint 2016

Muy buenas a todos,

Recientemente se ha anunciado la aparición de la Beta 2 de SharePoint 2016, por lo que la nueva versión de SharePoint sigue su evolución hacia la versión definitiva que saldrá en algún momento del segundo trimestre del próximo año. Por mi parte ya llevaba un tiempo queriendo conocer y testear esta nueva versión  y hoy por fin me he puesto manos a la obra.

En este artículo os quiero contar mi primer encuentro con la versión de SharePoint 2016.

¿Qué es nuevo en SharePoint 2016?

Lo primero que he querido hacer, ha sido saber un poco más sobre las novedades que vienen con SharePoint 2016. Os dejo un recopilatorio de enlaces que he estado consultando y que me parecen muy interesantes para quién quiera saber más sobre qué es nuevo en SharePoint 2016.

Empiezo primero con un enlace muy interesante a una entrada de Bill Baer hablando sobre cambios y novedades de SharePoint 2016:

http://blogs.msdn.com/b/how24/archive/2015/08/27/what-s-new-in-sharepoint-2016.aspx

A continuación, os dejo algunos enlaces en español de algunos de nuestros MVP´s sobre este tema:

http://geeks.ms/blogs/jcgonzalez/archive/2015/05/07/sharepoint-2016-resumen-de-novedades-aparecidas-en-ignite-i.aspx

http://blogs.encamina.com/negocios-sharepoint/2015/09/21/novedades-de-sharepoint-2016-it-preview/

http://www.sinsharepointnohayparaiso.com/Blog/Entrada/190/Lo-que-nos-deja-la-conferencia-Ignite-sobre-SharePoint-2016-y-Office-365

Y para terminar os dejo otros enlaces de interés sobre las novedades de SharePoint 2016

http://en.share-gate.com/blog/whats-new-in-sharepoint-2016

http://blogs.technet.com/b/wbaer/archive/2015/05/12/what-s-new-in-sharepoint-server-2016-installation-and-deployment.aspx

http://blogs.technet.com/b/wbaer/archive/2015/11/25/sharepoint-server-2016-beta-2-hybrid-scenarios.aspx

http://blogs.technet.com/b/wbaer/archive/2015/09/22/durable-links-in-sharepoint-server-2016-it-preview.aspx

http://www.brightstarr.com/sharepoint-technology-and-application-insights/whats-new-in-sharepoint-2016

A continuación, aquí os dejo también un pequeño extracto de las principales novedades extraídas de estos artículos que os he enlazado:

  • Roles de servidor (MinRole): que nos permite configurar y optimizar un servidor que se va  a añadir a la granja para una funcionalidad concreta. Los roles disponibles son:
    • Front-end
    • Application
    • Distributed Cache
    • Search
    • Custom
    • Single Server Farm
  • App Launcher: heredado de la experiencia en Office 365 y que nos permite navegar entre SharePoint, One Drive y Newsfeed.
  • Mejoras en las opciones disponibles para documentos
  • Mejoras en los límites de SharePoint
    • Aumento del tamaño de las bases de datos de contenidos, aumentando de GB a TB.
    • Aumento del número de colecciones de sitios por base de datos de contenidos hasta las 100000.
    • Aumenta el umbral de listas a más de 5000 elementos por vista o consulta.
    • Aumenta el tamaño máximo de un archivo a 10GB
    • Aumento del número de elementos indexados para la búsqueda a 500 millones.
  • Nuevas plantillas de colecciones de sitio: “Compliance Policy Center” y “In-Place Hold Policy Center”
  • Nueva creación rápida de colecciones de sitios
  • Añadidos 115 nuevos comandos de PowerShell para la administración de SharePoint.
  • Añadida la integración de escenarios híbridos de Office 365 y SharePoint OnPremises a través de la Administración Central.
  • Durable Links: para asegurar que el link que se envía a un usuario funciona correctamente a pesar de los cambios que pueda sufrir el documento.
  • 0 downtime en la aplicación de parches de actualización.
  • Mejora de la experiencia para móviles.

 

Instalando la versión Preview de SharePoint 2016

La preview de SharePoint 2016 la he instalado en dos máquinas virtuales que he creado en mi subscripción de Azure. Para quién lo puedo necesitar, os dejo un enlace con un “step by step” muy completo para instalar SharePoint en Azure.

http://www.learningsharepoint.com/2015/08/27/step-by-step-create-sharepoint-2016-farm-with-azure-virtual-machines/

Por si aún no lo sabéis, a través de Azure, hay disponible una plantilla de máquina virtual con SharePoint 2016 ya instalado y que os recomiendo utilizar para agilizar todo el proceso de instalación.

Captura de pantalla 2015-11-28 a las 16.25.29.png

http://blogs.technet.com/b/wbaer/archive/2015/08/27/sharepoint-server-2016-it-preview-image-in-windows-azure-platform-gallery.aspx

Solo ha habido un aspecto que en el tutorial no he visto y que hay que tener en cuenta a la hora de montar los servidores en Azure, y es  configurar correctamente el firewall del servidor SQL para que sea accesible desde el servidor con SharePoint. Por lo demás, el tutorial que os he enlazado es muy completo y sencillo de seguir.

Una vez preparadas y configuradas correctamente las máquinas virtuales, si hemos usado la plantilla de SharePoint 2016, solo tendremos que ejecutar el “SharePoint 2016 Product Configuration Wizard”

Captura de pantalla 2015-11-28 a las 16.34.09.png

Esto inicia el habitual proceso de configuración a través de varios pasos.

Aquí, veremos que como novedad, ya no tenemos disponible la opción de instalación “Standalone”.  Además, otra de las novedades que veremos durante el proceso de configuración del producto, es la opción de indicar el role que queremos que adopte el servidor que estamos configurando en nuestra granja. Este role se encargará básicamente de habilitar los servicios necesarios para que el servidor pueda trabajar con la función que se ha asignado para él en la granja. Los roles se pueden cambiar una vez configurado el servidor desde la administración central.

Captura de pantalla 2015-11-25 a las 0.10.36.png

Cuando todo el proceso haya finalizado correctamente, veréis un resumen de la configuración como el siguiente:

Captura de pantalla 2015-11-28 a las 13.52.32

Y ya podremos empezar a usar SharePoint 2016!!!

El primer sitio en SharePoint 2016

Una vez que ya hemos creado la primera colección de sitios y accedido a la misma, la UI del sitio de SharePoint (muy similar a la de SharePoint 2013) es como la que se ve a continuación:

Captura de pantalla 2015-11-28 a las 16.54.10.png

En esta captura ya podéis ver una de las novedades de SharePoint 2016 y es la incorporación del App Launcher, lo que nos resultará muy familiar si estamos acostumbrados a usar Office 365.

Más adelante, a medida que vaya profundizando en ellas, os iré mostrando algunas de las novedades que incluye esta versión de SharePoint 2016, y sobre todo en lo relacionado con los escenarios híbridos, un tema muy interesante y a tener muy en cuenta.

Un saludo a todos

 

 

 

Paginando en SharePoint 2013 con API REST

Muy buenas a todos,

Hoy quería contaros un tema con el que me he estado peleando hoy en mi proyecto con el que estoy haciendo un uso bastante intensivo de la API REST de SharePoint con AngularJS. Una experiencia que os debo decir, me está encantando.

El tema ha venido a la hora de “paginar” una consulta en SharePoint que estaba haciendo vía API REST. Según pensaba, usando las opciones $top y $skip se podría hacer la paginación sin problemas. Para ello pensaba usar el endpoint que habitualmente uso para trabajar con las listas de SharePoint

http://<misitio>/_api/web/lists/getbytitle(‘lista&#8217;)/items

Mi sorpresa ha sido darme cuenta que con este endpoint la opción $skip no funciona. Indagando un poco he descubierto que efectivamente, esta opción no funciona para lista de elementos, solo funciona para colecciones de datos como colecciones de listas.

http://sharepoint.stackexchange.com/questions/45719/paging-using-rest-odata-with-sp-2013

https://msdn.microsoft.com/en-us/library/office/fp142385.aspx

Para hacer la paginación via API REST podemos usar el antiguo endpoint OData V2 listdata.svc. Con esta versión si funciona la opción $skip correctamente:

http://<misitio>/_vti_bin/ListData.svc/<lista&gt;

Ejemplo: http://<misitio>/_vti_bin/ListData.svc/<lista&gt;?$top=2&$skip=2

Salvando este inconveniente sobre el endpoint que debemos usar, usando estas dos opciones $top y $skip, podremos paginar nuestras consultas de una forma muy sencilla.

Y esto es todo por hoy, espero que os resulte útil, como siempre, y que si os habéis encontrado con esta problemática, tardéis menos tiempo en resolverlo.

Saludos.

[OffTopic]

No suelo acostumbrar a hacer nada de esto. Pero hoy ha nacido mi sobrino, del que tendré la oportunidad además de ser su padrino. Así que esta entrada de hoy va dedicada a él y a sus padres. Aunque no lo podré conocer hasta dentro de 15 días porque me ha salido “conejero” y está en Lanzarote, que ilusión más grande.

Resolviendo el error 403 cuando añadimos elementos por medio de API REST en SharePoint 2013

Hola a todos,

Hoy os quiero mostrar en una breve entrada cómo resolver el error 403 que surge cuando hacemos una petición POST para añadir elementos en una lista a través de la API REST de SharePoint 2013.

En mi caso, estoy trabajando en un proyecto en el que utilizo SharePoint y AngularJS, por eso, los ejemplos de las peticiones que os voy a mostrar, son usando el módulo $http de AngularJS.

Cuando hacemos una petición como esta:

$http({
            url: urlBase,
            method: "POST",
            data: JSON.stringify(likeJSON),
            headers: {
                "accept": "application/json;odata=verbose",
                "content-type": "application/json;odata=verbose",
            }
        });

El resultado que nos devuelve es un error como éste:

“The security validation for this page is invalid and might be corrupted. Please use your web browser’s Back button to try your operation again.”

Para solucionarlo, debemos añadir en la cabecera de la petición el parámetro X-RequestDigest como sigue:

$http({
            url: urlBase,
            method: "POST",
            data: JSON.stringify(likeJSON),
            headers: {
                "accept": "application/json;odata=verbose",
                "content-type": "application/json;odata=verbose",
                "X-RequestDigest": requestDigest,
            }
        });

Esta cabecera contiene información conocida como form digest. Ésta es un objeto que se inserta en una página por SharePoint y es usado para validar las peticiones de cliente

La pregunta ahora es: ¿Cómo conseguimos ese valor?. Pues lo podemos obtener por medio de la siguiente petición:

$http({
        url: "/_api/contextinfo",
        method: "POST",
        headers: {
            "accept": "application/json;odata=verbose",
            "content-type": "application/json;odata=verbose"
        }
    }).then(function (response) {
        requestDigest = response.data.d.GetContextWebInformation.FormDigestValue;
    },
    function () {

    });

Por medio de una petición POST al servicio REST con el EndPoint en la url /_api/contextinfo

De esta forma conseguimos resolver el error 403 que nos devuelven las peticiones POST al servicio REST en SharePoint.

Os dejo un enlace que me ha servido de guía, y en el que me he basado.

http://blogs.msdn.com/b/nadeemis/archive/2012/10/23/tip-handling-http-403-forbidden-when-querying-the-search-rest-service-using-the-postquery-method.aspx

Espero que os haya resultado interesante.

Un saludo

Métodos de extensión en C#. Usándolos en desarrollo para SharePoint

Muy buenas a todos,

Hoy lo que os traigo es más una recopilación de información que una entrada de mi cosecha propiamente, aunque creo que es muy interesante. No pasan días sin que aprendas cosas nuevas. Todo viene de una entrada en el blog de desarrollo de Encamina, el cual os recomiendo que sigáis porque se suelen hacer entradas muy interesantes. En esta semana se ha estado haciendo un recorrido por buenas prácticas a la hora de desarrollar sobre SharePoint y entonces es cuando me topé con los “Métodos de extensión en C#”. Os dejo la entrada en cuestión.

http://blogs.encamina.com/desarrollandosobresharepoint/2015/05/05/como-aprovechar-la-potencia-de-c-en-nuestros-desarrollos/

Me ha llamado la atención el uso de los métodos de extensión de C#. Yo venía desde hace un tiempo usando algunas clases para facilitar determinadas acciones cuando desarrollo sobre SharePoint. Pero me ha resultado muy interesante ver que podemos, por medio de los métodos de extensión, asociarlos al objeto que afectan, de manera que el intellisense de VS lo detecta y además los puedes llamar como si fueran métodos del objeto propiamente dicho, sin tener que crear una clase derivada, ni heredar ni hacer nada con el objeto original. Os pongo un ejemplo de código con algo sencillo:

public static class Helper
{
   public static string MetodoExtensionEjemplo(this string s, string ejemplo)
   {
      //To do something
   }
}

Este método lo podríamos usar ahora de la siguiente forma

string s = "Hello Extension Methods";
s = s.MetodoExtensionEjemplo("hola");

La verdad es que resulta muy cómodo usarlo de esta forma. Como véis la sintaxis para definir este tipo de métodos es muy sencilla y lo vemos en el primer código.

  • La clase a la que pertenezca el método tiene que ser estática, así como el método propiamente dicho
  • El primer parámetro del método es del tipo al que queremos asociarle el método y lleva delante la palabra reservada this.

En mi caso usar esta opción que nos brinda C#, me da como resultado un código más limpio e intuitivo, así que por mi parte, merece la pena tenerlo en cuenta.

Y bueno, como me gusta compartir con la comunidad todo lo que puedo o creo que puede ser interesante, he subido a GitHub las dos clases que estoy usando como Helpers y en las que estoy usando los métodos de extensión. Por si os interesa, veréis que he creado dos clases, una que tiene las acciones “atómicas” (la clase Helpers) y otra que tiene acciones necesarias pero que son un poco “más complejas” (la clase Utility).

https://github.com/jcroav/SPHelpers

Sentíos libres de cogerlas, modificarlas, mejorarlas, proponer cambios, todo lo que suponga mejorar bienvenido sea. Por otro lado, si conocéis otros trabajos similares que se puedan utilizar y estén en fases más avanzadas, estaré encantado de saberlo. Yo de momento he creado los métodos que necesito para mi último proyecto y a medida que vaya necesitando modificar los mismos para añadir funcionalidad o mejoras o añadir nuevos los iré publicando en el repositorio.

Os dejo también el enlace de la MSDN sobre el tema de los métodos de extensión:

https://msdn.microsoft.com/es-es/library/bb383977.aspx