[Eventos] Mi presentación en la Iberian SharePoint Conference

El pasado 10 de Octubre tuvo lugar la primera Iberian SharePoint Conference en las que tuve la fortuna de poder dar un charla.Mi sesión trato sobre SharePoint como plataforma de desarrollo móvil, muchos son los mitos que dicen que SharePoint y movilidad no se llevan nada bien, mi opinión es que en esta nueva versión se ha dado un paso adelante en este paso.

El principal retraso que llevaba SharePoint creo que es el que lleva la propia Microsoft con los dispositivos móviles que entro relativamente tarde y eso ha propiciado que la competencia ahora mismo tenga ventaja. Lo cual no significa ni resta un ápice a la calidad que hoy por hoy tiene Windows Phone como sistema operativo ni los terminales disponibles, para mi gusto no tiene que envidiar nada al resto de plataformas existentes en el mercado. Ahora en la versión 2013 de SharePoint  se pueden hacer APPS móviles multiplataforma y multidispositivo basadas en SharePoint, para hacer esta afirmación mostré un ejemplo de como hacer una APP para Android y otra para IOS si tenéis curiosidad la podéis descargar :

Estas APP están desarrolladas haciendo uso del FrameWork Sencha Touch 2, haciendo consultas a la API Rest de SharePoint y PhoneGap como herramienta para crear la APP en Android e IOS. En un futuro cercano ya veremos con más detalle como hemos realizado Apps reales y os las podréis descargar.

A la presentación me falto hacer la APP en un Sistema Windows ( Windows Phone/ Windows 8 ) no lo hice por dos motivos: por falta de tiempo y segundo porque ya hemos escrito mucho sobre como hacer Apps de Windows Phone haciendo uso de listas de SharePoint. Puedes mirar CompartiMOSS donde tanto Miguel Tabera, Alberto Díaz como un servidor hemos escrito diversos artículos sobre esta materia.

La presentación la podéis descargar desde este link

 

 Esta charla según las encuestas gusto bastante ya que las mismas me han calificado con un 4.12 sobre 5 lo cual esta que muy bien. 

Mis impresiones sobre este pedazo de evento las podéis ver en el siguiente link Se que desde la organización tenemos que mejorar algunas cosas pero la verdad para ser unos aficionados sin experiencia en la organización de eventos pues la perspectiva es bien diferente no? Por citar un ejemplo, y sin animo de comparación de eventos porque no son comparables: esta semana se llevo a cabo el Codemotion y la gente estuvo bastante irritada con el tema del bocadillo de jamón para los asistentes.

Por último agradecer a todos los asistentes, patrocinadores y gente desinteresada que ha echo posible que nuestro sueño de tener una Iberian SharePoint Conference para la Comunidad SharePoint se hiciera realidad.

SharePoint 2013 – Crear campos de Lookup a una lista de cualquier web con PowerShell

Muchas veces un cliente nos indica que necesita tener un campo de Lookup en un determinado sitio, que su origen sea otra  sitio dentro de esta colección de  SharePoint. Este funcionamiento «out of the box» no es permitido por SharePoint.

Ejemplo: Tengo un sitio http://mySharePoint.test en el que tengo una lista de Departamentos, tambien tengo un subsitio http://mysharePoint.test/Administración que tiene una lista «Presupuestos» donde en cada elemento de esa lista necesita saber el nombre de los departamentos que hay dentro de esta organización. 

Como lo podemos solucionar

 

  1. Haciendo uso de alguna solución de CodePlex como por ejemplo: http://cl.codeplex.com/ El principal inconveniente de emplear una solución de CodePlex, es que no tenemos ninguna garantía de la calidad del código y que no están diseñadas para entornos de producción. Podemos revisar el código y aplicar los cambios que creamos necesarios antes de ponerlo en un entorno de producción.
  2. Haciendo uso de PowerShell. Tal y como vamos a mostrar en este artículo.

PowerShell es una herramienta muy poderosa y que hoy en día es de obligado conocimiento tanto por desarrolladores como por gente de Sistemas.

Motivos: podemos consultar cualquier aspecto de SharePoint desde una consola sin necesidad de realizar ninguna aplicación en .Net compilarla y subirla al entorno, algo que por ejemplo en entornos de producción nos da mucho rapideza. Pero como bien dice el tio de Spiderman un gran poder lleva una gran responsabilidad.

Pues para que podáis comprobar la potencia que tiene PowerShell es que podemos realizar este requerimiento con un script un relativamente simple como el siguiente, puedo conseguir el requerimiento de crear un campo de Lookup a una lista de cualquier web:

if ( (Get-PSSnapin -Name "Microsoft.SharePoint.PowerShell" -ErrorAction SilentlyContinue) -eq $null ) {
        Add-PSSnapin "Microsoft.SharePoint.PowerShell"
}

$parentWeb = Get-SPWeb "http://mysharepoint/"
$parentList = $parentWeb.Lists["Departamentos"]
 
$parentSiteColumnInternalName = $parentWeb.Fields.AddLookup("Departamentos", $parentList.ID, $false);
$parentSiteColumn = $parentWeb.Fields["Departamentos"]

#Add a list field that references the site column.
$childWeb = Get-SPWeb "http://mysharepoint/Administracion"
$childList = $childWeb.Lists["Presupuestos"]
$isRequired = $false;
$newField = $childList.Fields.Add($parentSiteColumn)
Write-Host New list field added.


De esta forma relativamente simple podemos cubrir los requisitos de una forma rápida, elegante y sencilla. PowerShell es una herramienta que cada vez debe estar más presente por muchos motivos el principal es que nos facilita el trabajo y nos permite hacer aspectos en cualquier maquina sin tener que tener instalado Visual Studio ni ningún IDE de desarrollo. En ningún caso PowerShell es un substituto de Visual Studio sino un complemento para conseguir automatizar diversas tareas 🙂

[SharePoint 2013] Error al crear un Web Applicattion

Uno de los grandes problemas en la que nos encontramos a la hora de comenzar con el desarrollo en SharePoint son los requisitos que son necesarios para levantar un entorno en una maquina virtual. La configuración mínima para un entorno de desarrollo «simple» son necesario 8 Gb de RAM. Podéis consultar los requisitos hardware y software en el siguiente link http://technet.microsoft.com/es-es/library/cc262485.aspx#reqOtherCap 

Estaba preparando un entorno para poder llevar a cabo el proyecto en el que estamos involucrados en la actualidad. Una vez instalado y fui a crearme un sitio de desarrollador (aunque el tipo de plantilla da igual) para poder empezar a realizar los desarrollos necesarios. Pero cual fue mi sorpresa que cada vez que intentaba crearme un «Web Application» desde la Administración Central tras un buen rato se mostraba un mensaje » Internet Explorer cannot display the webpage». A continuación cerraba esta pantalla y a simple vista me indicaba que la Web Application estaba creada, comprobaba si había creado la Base de Datos de Contenido y estaba creada. Pero a pesar de todo esto en el IIS no había rastro del Web Applicattion que «supuestamente» acababa de crear.

Tras eliminarla este WebApplication en la Administración Central haciendo uso de PowerShell Remove-SPWebApplicattion porque desde la interfaz gráfica no respondía. Volví a repetir los pasos pensando que era una cuestión puntual, pero el error seguía reproduciéndose.  Tras investigar un poco y verificar que la instalación realizada era correcta, encontré la solución y esa no era otra que dado la tardanza en crear el pool era debido a que se producía un TimeOut y cancelaba la creación del sitio en el IIS. Por lo que para solucionarlo hay que incrementar este TimeOut y para ello seguir estos pasos:

  1. Ir al IIS Seleccionar «Applicattion Pools»
  2. En la parte derecha de la Pantalla «Select Application Pool Defaults…»
  3. Hay que modificar los valores de Ping Maximum Response Time, Shutdown Time Limit y Startup Time Limit su valor por defecto es 90 y lo tenemos que establece en 300.

Una vez realizada estas modificaciones ya puedes crear la WebApplicattion sin ningún tipo de dificultad.

 

[SharePoint 2013] ¿Que es API REST? Ventajas e Inconvenientes

Muchas veces los apasionados a la tecnología nos ponemos a escribir/hablar/discutir sobre temas, saltándonos algunos pequeños detalles que pensamos que son insignificantes. Deducimos cosas que hacen pensar que el resto de personas nos entienden y no es así (estoy hablando de personas de nuestro mismo entorno profesional). Algo de este estilo es lo que me ha ocurrido recientemente con la famosa API REST de SharePoint, (me llaman el REST dentro de la oficina) que me he puesto a hablar de todo lo que podemos hacer, utilizar el servicio de búsqueda, la API Social, etc.  Todo eso escrito está muy bien, pero ¿os habéis planteado el porqué utilizarla? y lo que es más: qué beneficios nos da en nuestros desarrollos en lugar de hacer uso de otra de las APIS que vienen en SharePoint o bien no utilizarla porque sí.

Parte Teórica

¿Que es REST?

  • Técnica de arquitectura (bueno más bien unos principios)
  • Se utiliza para definir una interfaz web simple
  • Punto de acceso independiente de una base de datos
  • Permite la portabilidad entre plataformas y lenguajes (este último punto es una gran ventaja.

Una API representa una interfaz de comunicación entre componentes de software. Se trata del conjunto de llamadas a ciertas bibliotecas que ofrecen determinados servicios. Una API REST implica que una URL es la representación de un objeto o recurso, cuyo contenido se accede por HTTP.

API REST en SharePoint

De sobra hemos comentado que una de las grandes novedades que hay en SharePoint es que tiene una API REST como Dios manda. Y eso ¿qué significado tiene? Pues que desde cualquier dispositivo a traves de una petición HTTP podemos acceder a los recuros que nos ofrece SharePoint. ¿Cuáles son estos recursos? Pues aquí esta el kit de la cuestión y es que podemos acceder practicamente a todos los recursos que nos brinda SharePoint desde las caracteristicas del sitio, pasando por bibliotecas y lista, extendiendo por el servicio de perfiles sin olvidarnos del servicio búsqueda. Prácticamente a casi todos los recursos podemos acceder.

¿Que beneficios nos aporta?

El primer beneficio que nos aporta es que esta API Rest la podemos utilizar independientemente de lo que estemos desarrollando, es decir, si estoy desarrollando una APP para Windows 8 que me hace falta utilizar la información que tengo almacenada en una lista, no tengo problemas. Estoy desarrollando una APP móvil porque quiero que la gente que no esté delante de un portatil y esté al tanto de un determinado proceso de la empresa haciendo uso de la API Rest, se puede hacer. Es decir, independientemente del escenario en el que este desarrollando yo puedo utilizar SharePoint para lo que me proponga (naturalmente siempre que SharePoint sea la plataforma correcta para abarcar nuestro objetivo, ese matiz ya lo abordaré pero creo que este artículo del maestro Edin Kapic puede ser de gran ayuda).

¿Mucha gente lo que me dice si yo lo único que estoy desarrollando son WebParts porqué cambiar si no me aporta ninguna mejora? Bueno, lo primero de este pensamiento es que me indica de quien pregunta es que es algo reacio a cambiar su ámbito con el que se siente cómodo, que no quiere aprender cosas nuevas y me inquieta. Pero fuera de este pensamiento y opinión personal, el principal motivo para saber utilizar la API REST es que cuando tenga ante mí un proyecto nuevo, podré saber las opciones que puedo utilizar, y si no tengo otra opción más que hacer uso de la API Rest, pues no hay problema porque ya es algo que ya tengo aprendido de otros desarrollos. La API REST tiene algunas limitaciones y por ello debemos de saber cuándo utilizarla. Lo bueno es saber cómo funcionan todas y adaptarlas o usarlas según los requisitos del proyecto en cuestión.

Además, el uso de la API REST no es algo que ha surgido nuevo ahora en Microsoft, la realidad es que algunos especialistas y entendidos sobre el desarrollo de API Rest indican que ésta de SharePoint NO es REST pura, es decir, que aceptan pulpo como animal de compañía, pero bueno, eso ya es rizar el rizo. Y el uso de la API REST se aproxima más a los estándares web basándonos en OData, HTML5, JavaScript y CSS3. Lo que provoca que el abanico de posibles desarrolladores de SharePoint pueda incrementarse con otro tipo de perfiles. La desventaja que tienen estos desarrolladores sobre los que ya llevamos un tiempo desarrollando sobre SharePoint, es que conocemos la arquitectura de SharePoint, donde está almacenada la información y cómo la vas a utilizar.

Inconvenientes

Naturalmente como en todo en esta vida no todo es color de rosa, hay determinados aspectos que haciendo uso de la API Rest no nos lo dan de buenas a primeras. Por ejemplo, en una lista tengo una serie de campos “especiales” como pueden ser los campos de tipo “Choice”, “Person”, “Lookup” y que para obtener el dato entero tenemos que realizar diversas peculiaridades en la llamada REST como es incluir un parámetros indicando que nos extienda estos campos. Podéis consultar este link sobre estos aspectos para tenerlos en cuenta en vuestros desarrollos. Pero bueno, tambien es cierto que estos problemas nos ocurrían con otro tipo de API. El diseño de cualquier API Rest es algo complejo y no es la intención de este post.

Conclusión

Espero que con este post tengamos más claro el porqué utilizar la API Rest, cuales son sus beneficios y el porqué utilizarlo en nuestros desarrollos. Naturalmente también cuales son sus limitaciones y en base a ello poder elegir la opción más acorde con nuestros proyectos. En la informática en particular y en la vida en general no hay una única solución para tomar una decisión, pero cuanta más información tengamos menos posibilidades de equivocarnos tendremos.

[Eventos] Iberian SharePoint Conference: Motivos para no perdérsela

El próximo Jueves 10 de Octubre tendrá lugar en las magnificas instalaciones de Tajamar la 1ª Conferencia Ibérica de SharePoint un evento que varios miembros de la Comunidad llevamos preparándola cerca de un año.

Nuestra intención ha sido organizar un evento para que toda clase de públicos puedan asistir y se muestren satisfecho de haber estado allí.

Para las personas de IT tienes muchas sesiones interesantes como:

  •  SharePoint 2013, SQL Server 2012 y las bases de datos impartida por Dani Seara y Eladio Rincon
  • Upgrade to SharePoint 2013: A Methodical Approach by Michael Noel
  • Que hay de nuevo en SharePoint 2013 para IT Pros​ impartida por Ricardo Muñoz
  •  Búsqueda empresarial en detalle con SharePoint 2013 por José Quinto
  • Buenas prácticas en infraestructura en SharePoint 2013 por Miguel Tabera
  • ….

Los Developers (como yo) están de enhorabuena con sesiones que tratarán muchos aspectos importantes como :

  • Construyendo procesos de negocio con el nuevo motor de WorkFlow de SharePoint 2013 impartida por Fabian Imaz
  • OAuth y OData para valientes por Gustavo Velez
  • ALM y SharePoint por David Martos
  • Desarrollando para las empresas de la Office Store con las SharePoint Apps por Alberto Díaz

Sino tenéis nada mejor que hacer, espero que asistáis a mi sesión: trata de SharePoint 2013 como desarrolla de plataforma … móvil, donde veremos todas las posibilidades que nos trae SharePoint para realizar desarrollos móviles y desmontaremos eso de que SharePoint y móvil son dos productos que no casan :-)

Tampoco me quiero olvidar de que si eres diseñador o te toca hacer algo de branding en tus proyectos pues hay una sesión que no os podéis perder: la mejor diseñadora Web de España, mi compañera Teresa Cebrian junto con un Nokia Champion como es Santiago Porras nos acercarán un poco más al mundo del pinta y colorea :-)

Si no eres de ninguno de estos grupos no pasa nada, también hay sesiones para la gente de Negocio. Interesantes charlas como:

  • Enterprise Social: Social está cambiando la forma de trabajar (Microsoft Yammer) impartida por Oscar Mozo
  • RoadMap Plataforma de Productividad y Colaboración by Ester de Nicolas
  • Modelo de Madurez de SharePoint impartida por el maestro Edin Kapic
  •  Productivity, Gamification, and SharePoint 2013 by Christian Buckley

Pero esto solo es un anticipo. También tenemos muchas sesiones impartidas por MVP’s de Plataformas “amigas” a SharePoint como la de mis amigos Alberto Pascual (Office 365), Peter Diaz (Lync), Luis Ruiz (ASP.NET) o Mario Cortes (Office 365). Y muchas más impartidas por verdaderos especialistas. Podéis ver la agenda completa en este link

Pero lo mejor de todo esto es que el acudir a la Conferencia tiene un precio simbólico de 50 € (con un codigo de descuento sino lo tenéis, pedirmelo via mail o Twitter y os lo facilito). Se trata de un evento de la Comunidad y la intención es que la afluencia de la gente sea masiva. Os podéis registrar desde el siguiente link

No me gusta comparar con otros eventos/lugares pero solo podéis mirar cuanto es el precio de las entradas para la European SharePoint Conference y sacar vosotros mismo las conclusiones. :-)

Pero si aun os habéis quedado con ganas de más, el día 11 hay tres Workshops:

  • Workshop Desarrollo Impartido por Gustavo Velez y Fabian Imaz. Si eres desarrollador no te lo puedes perder. Quedán pocas plazas te puedes registrar desdeaqui
  • Workshop IT Impartido por el MVP Ricardo Muñoz Te puedes  registrar desde aqui
  • Workshop de Bussines. Importido por Marco Canales y en la que participará nuestro CEO Hugo de Juan

Espero veros por Madrid los días 10 y 11 de Octubre que seguro que disfrutaremos del evento.

Presentación

Hola, mi nombre es Adrián Díaz soy un miembro bastante activo de la Comunidad de SharePoint en España, trabajo en una consultora informática en Valencia llamada ENCAMINA.

Gracias a la ayuda de dos cracks como Alberto Díaz y Juan Carlos Gonzalez he conseguido tener este blog en geeks.

Para las personas que no me conozcan en este blog publicaré post técnicos sobre desarrollo e IT relativos a Office 365 y SharePoint 2013, así como algún producto vinculado al mismo 🙂 Me apasiona mucho aprender, tener cada vez más conocimientos y poder disfrutar día a dia con la tecnología.

A las personas que me conozcan pues que encantada que también me lean/sufran por aquí 🙂

El objetivo de este blog es continuar lo que realizo en el Blog de Encamina con la finalidad de que el contenido del mismo llegue a más gente posible y entre todos podamos compartir el conocimiento que tenemos y aprender mucho más sobre tecnología y sobre productos Microsoft en particular.

Cualquier cuestión podéis preguntarlo por aquí o bien por Twitter donde también estoy bastante activo con el siguiente usuario @AdrianDiaz81 🙂

Por último también darle las gracias a Rodrigo por facilitarme este blog y solamente espero estar a la altura del resto de personas que tienen un blog en Geeks.

Saludos,