WebCast Suges: SharePoint y los dispositivos móviles (WP8, W8, Android e iOS)

Para comenzar el año con fuerza, desde SUGES y LevaPoint os proponemos un nuevo Webcast en el que trataremos un tema que siempre demanda mucho interés: SharePoint y movilidad.

En este WebCast vamos a ver todos los aspectos que vienen incluidos de serie en SharePoint para poder implementar aplicaciones móviles y dotar de movilidad a la plataforma. Veremos un caso real de implementación revisando como se diseñaron y construyeron las distintas aplicaciones móviles que se han implementado en los diferentes dispositivos para la revista digital CompartiMOSS. 

Se abordarán los distintos tipos de Apps posibles: Nativas, Hibridas y HTML5. Ventajas y desventajas de cada tipo.

También veremos diversas herramientas para facilitarnos todos estos procesos: PhoneGap, Frameworks JavaScript (Jquery Mobile, Sencha Touch, Kendo, Angular,..) , Eclipse, Visual Studio,…

Este WebCast lo vamos a impartir Santiago Porras y un servidor, compartir un WebCast con alguien como Santi es un placer y un orgullo si hay alguien que conoce a fondo Windows Phone ese es Santi, premiado entre otras cosas con un Nokia Champion Developer.  

Así que apunta esta fecha 23 de Enero a las 18:00 y registrate en el siguiente link https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032574966&Culture=es-ES&community=0

Allí os esperamos !! 

[Off-Topic] Reflexiones de este año 2013 que termina

Ahora que termina este año es tiempo de echar la vista atrás y de ver si todo nuestros objetivos que nos marcamos al principio de año se han cumplido o no? Y ver que objetivos nos vamos a planificar para el año que viene.

Profesionalmente ha sido un año bastante bueno, un año donde la puesta en marcha en proyectos de SharePoint 2013 ha sido una realidad, hemos implementado diversos tipos de proyectos desde diversas web publicas hasta aplicaciones horizontales. La verdad es que creo que ha sido un año en el que he aprendido bastante y eso es algo que me satisface.

A nivel de Comunidad creo que ha sido un año que ni en mis mejores sueños me lo podía imaginar.  

Por un lado hemos organizado dos pedazos de eventos a nivel de SharePoint:

 

  1. La 1ª Iberian SharePoint Conference cuyo resultado ya os lo he contado con anterioridad y que fue sin duda el momento del año, ver a tanta gente de SharePoint, a los mejores especialistas todos reunidos juntos fue un subidón.
  2. El 1 Hackaton de Apps de SharePoint & Office, que se celebro en tres ciudades españolas: Madrid, Valencia y Barcelona. Con una afluencia más que aceptable y del que surgió el mayor número de Apps en la Office Store, premio que se llevo el antiguo CIIN.

 

En cuanto a WebCast he tenido la fortuna de participar en 3 WebCast: SharePoint como plataforma de Desarrollo, Creando sitios poderosos de públicación con SharePoint y Desarrollando con Yammer, hace un año ni siquiera me planteaba que yo pudiera dar ninguno de estos, no me perdía ninguno de los cracks de SharePoint y como he dicho en más de una ocasión por Twitter yo soy el arbeloa de ellos 🙂

Otro aspecto destacado a sido la creación de la Comunidad de Office 365, siendo esta comunidad uno de los referentes internacionales y creo que somos un poco el ojito derecho de Microsoft 😛 

También la creación de las Apps de CompartiMOSS para  Iphone y Android han sido un proyecto del que me siento relativamente orgullos, dos aplicaciones de distinta tecnología y obteniendo datos de SharePoint derribando un poco el mito de SharePoint y la movilidad es como el agua y el aceite.

El ser ponente en el Ceus XVIII y que un artículo mio hasido seleccionado el mejor de un número de CompartiMOSS también es algo que me dio mucha alegría, pero en ambas cosas yo no tengo mucho que ver 😛  

Pero sin lugar a dudas lo mejor que me llevo de todo esto es haber conocido a gente como Alberto Díaz, Alberto Pascual, Santiago Porras, Fabian Imaz, JC Gonzalez, Peter Diaz, Miguel Tabera y Edin Kapic. Gente con la que hablas más que con mucha gente que tienes cercana, pero que no la ves y el poder desvirtualizarlo y hablar con ellos, comentar y aprender es algo que no tiene precio.

¿Y para el 2014?

Para el 2014 también se espera apasionante …. para empezar en Enero ya tenemos un WebCast con Santiago Porras sobre SharePoint y movilidad (en cuanto tengamos los enlaces lo público), tenemos los ITCamps de Office 365 en  Madrid y en Valencia. Pero seguro que la liamos mucho más parda 

Y profesionalmente espero seguir disfrutando de desarrollar Software y aprendiendo cosas nuevas.

Que todos tengáis unas felices fiestas y que lo paséis muy bien 

¿Debemos vender SharePoint al mejor postor?

El otro día a raíz de este comentario que realice en Twitter «¿Por que nos empeñamos en prostituir a SharePoint?» Tuvo un interesante intercambio de opiniones entre varios MVP’s de SharePoint y expertos en la materia (Fabian Imaz, Miguel Tabera, JC Quijano,Juan Antonio Yañez, José Ángel Bolaño). Es cierto que hay muchas empresas que intentan introducir SharePoint cuando esta no es la opción más adecuada, quizás buscan una aplicación transversal que un proyecto MVC pueda ser la solución, otras veces porque como SharePoint esta de moda al departamento de IT le dice a su jefe (que no tiene ni idea de informática) que han implantado un SharePoint para una aplicación de Telefonia y se apuntan una medalla. Seguro que a los que habéis trabajado alguna vez con SharePoint este entorno os resulta familiar.

También hay otras ocasiones en la que las empresas tienen la culpa, hacen el dicho quien vale vale y quien no a SharePoint, y quizás una persona sin ningún conocimiento de SharePoint tiene que llevar un proyecto sin entender ni comprender que es SharePoint y claro intenta que SharePoint sea lo que el sabe y no viceversa, yo se de JavaScript pues JavaScript por todos los lados, yo se de Silverligth pues lo plasmo, yo se de ASP.NET y lo ponog etc..

. Pero vamos a ser un poco críticos y vamos a mirarnos el ombligo y no toda la culpa la tienen el resto, creo que SharePoint tiene una virtud que se puede convertir en un gran inconveniente: la virtud es que se puede personalizar hasta el infinito y más allá. Pero esto puede hacer perder la esencia de la herramienta y toda su productividad. Esto es como los superheroes y los superpoderes un gran poder lleva una gran responsabilidad

¿Porque digo por la herramienta? 

El comentario que hice un Twitter surgió por el siguiente motivo, estamos en medio de un desarrollo donde tenemos una lista, en esta lista en el campo titulo tenemos una serie de Acciones que hemos personalizado cuando pulsas botón derecho (es el funcionamiento estándar de SharePoint). La cuestión es que el cliente ya no quiere que salga la columna Titulo y que estas acciones se puedan hacer en otra columna de la lista. La cuestión es que esta lista se muestra en una Vista por defecto de SharePoint y ahora un simple cambio que no mejora en nada lo ya existente. Ahora bien la pregunta es puedo en una vista por defecto de SharePoint introducir una columna que realice alguna función JavaScript?

Como suponéis claro que se puede como: mirar este link http://sharepoint2020.wordpress.com/2013/02/20/using-javascript-url-in-calculated-columns/

Yo creo que la herramienta no debe de permitir realizar esta acción, si tu quieres hacer algo extra pues ya realizas un desarrollo a medida, le implementas las opciones que se consideren oportunos pero dando la lógica y la calidad que se espera. 

¿Porque no es una buena solución? Primero haces una chapuza para llegar al objetivo, te creas una columna con el valor por defecto. Este valor para cada item y si después llega cualquier usuario y te modifica este valor o mejor aún si te eliminan esta columna. Pues nada que el desarrollo no vale para nada.

Conclusión

SharePoint debería de limitar algunas personalizaciones y no dejar que todo se pueda hacer, pero si SharePoint como producto no lo permite nosotros como profesionales no deberíamos de permitirlo. Es decir que el fin no justifica los medios. Si SharePoint no es la herramienta mejor decirlo que ir haciendo de SharePoint una cosa que no es, es como decía tu tienes una novia/mujer y la quieres tal y como es y no vas buscando que sea Angelina Jolie  la tienes que aceptar tal y como es y sino te gusta pues sabes la solución 😉 , pues SharePoint es igual y es algo que todos los que estamos en este mundillo deberíamos de saberlo

[Office 365] Tip para refrescar referencias a fichero JavaScript

En estas últimas semanas hemos estado algo atareados en la implementación de una Intranet en Office 365, y debido a que en algunos aspectos estamos bastantes acostumbrados a trabajar Onpremise pasamos por alto diversas utilidades que nos hacen mucho más rápido nuestro trabajo (bueno más bien que no nos hacen perder tiempo). 

Problema

Añadimos unas referencias JavaScript a una página haciendo uso del WebPart de Inserción de HTML y la primera vez que lo llamamos funciona perfectamente. Ahora bien hacemos cualquier modificación en el fichero «JS» y ese cambio no se veía reflejado. Incluso eliminando el fichero el aplicativo seguía funcionando.

¿Qué?

Las primeras veces, pensamos que el entorno en la nube se había rallado o funcionaba mal, y nuestro primer pensamiento es cierro y abro el navegador y problema resuelto. Algunas veces esto funcionaba pero la gran mayoría no. Entonces claro siempre esta la gracia/broma de turno vamos a hacer un IIS jejej Si espera que vamos al DataCenter este que esta en la vuelta de la esquina y lo reiniciamos jejje Partiendo de esta base nos vamos a un entorno OnPremise e intentamos repetir el mismo procedimiento. y observamos que su funcionamiento es el mismo que el que esta ocurriendo en Office 365. Claro aquí reiniciamos el IIS y acto seguido funciona (pero si sumamos el tiempo de que se levante SharePoint, tengamos otra vez listo el entorno y continuemos el hilo por donde lo habiamos dejado pues se nos puede ir 15 minutos fácilmente, si le sumamos que estamos desarrollando en JavaScript y que cuando subimos el JavaScript al no ser un lenguaje que el editor nos lo valide al instante como en .Net es más que posible que tengamos algún fallo tonto. Con lo cual es un infierno 

¿Porque este funcionamiento?

Lo que esta ocurriendo, como habeís podido deducir es que estamos teniendo un problema con la cache (pero no la cache del navegador) sino la cache del propio SharePoint y que si tu me has pedido un fichero y este fichero lo tengo en mi cache pues no hace falta que lo vuelva a consultar a la Base de Datos y te lo envió yo directamente. Este funcionamiento es lo normal por mucho que a nosotros ahora nos este molestando.

¿Como solucionarlo?

Como todo problema o casi todo problema tiene solución, y cual es su solución pues con dos letras se soluciona este problema si a la referencia JavaScript le añadimos el número de versión a nuestra petición y este número lo incrementamos cada vez que realizamos una petición. Lo que estamos haciendo a que como no coincide la versión con la que tiene cacheada el IIS pues la vuelve a  consultar y nos vuelve a enviar el fichero con los cambios realizados. Para ello basta con añadir la siguiente referencia:

<script type=»text/javascript» src=»../Documents/js/job.js?v=84″></script>

Desde aquí darle las gracias a mi compañero Miguel Alberto que dado su perfeccionamiento y buen hacer encontró la solución a este «problema». y nos hizo la vida un poco más sencilla en este proyecto.

Os adjunto una pantalla de la solución que hemos implementado, mucho HTML5, consumo de la API Rest y una interfaz gráfica espectacular, en la que funciona el drag and drop, y conseguimos subir elementos a una biblioteca de SharePoint de una manera muy sencilla (tal y como explique en este post

 


[SharePoint 2013] Asignar Permisos mediante flujos de Trabajo

Introducción

Uno de los grandes potenciales que trae consigo SharePoint «out-of-the-box» son los flujos de trabajo. De una forma que en anteriores versiones hacer cualquier flujo con cierta complejidad requería bien una herramienta de terceros como pueda ser Nintex ahora mismo tanto la interfaz gráfica como las acciones que vienen por defecto son prácticamente iguales. (En la versión Online de Nintex han añadido unas mejoras en el apartado social impresionantes con la posibilidad de comunicación con las principales redes sociales). 

A la hora de implementar flujos de trabajo tenemos dos opciones:

 

  1. SharePoint Designer, para flujos relativamente simples y sin mucha complejidad. No por el motivo de que no esten soportados sino más bien porque Designer es una herramienta cuya finalidad es Diseñar no implementar y por lo tanto su comportamiento es un tanto impredecible además de que no es reutilizable.
  2. Visual Studio 2012/2013 Ahora tiene un aspecto visual mucho más sencillo y simple y eso hace que plantearse realizar un flujo no sea una obra del escorial o algo que sólo lo más elegidos pueden hacer. Tiene una interfaz gráfica muy sencilla y muy simple.

 

Manos a la obra

Una vez somos conscientes de las opciones que hay, vayamos a un caso de uso básico:

– Una vez el usuario introduce un elemento en esta lista, queremos que otro usuario/grupo se le asigne esa tarea. Por decirlo en cristiano tenemos una lista de tareas que contiene descripción de la tarea y departamento que va a realizar esta tarea, lo que queremos es que cuando se asigne una tarea solamente los miembros de este departamento puedan ver la tarea. Aclaración partimos de la base de que cada departamento que se muestra en la lista es un grupo de SharePoint. 

Dado esta petición tenemos varias opciones de hacerlo :

 

  1. Mediante un EventReceiver: que cada vez que se añada un elemento que se modifique los permisos.
  2. Mediante un Flujo de Trabajo

 

La ventaja de hacerlo con un EventReceiver es que si en un futuro se piden más requisitos tiene un grado mayor de personalización, sin embargo su implementación es bastante más costosa. 

¿Como hacerlo fácilmente?

1.- Abrir SharePoint Designer

2.- Crear un flujo de trabajo en la lista en cuestión

3.- Hacer un Paso de Suplantación

4.- Quitar los permisos que tiene por defecto

5.- Asignar los permisos al departamento en cuestión

6.- Guardar y Publicar

Conclusión

Muchas veces SharePoint nos complica la vida, o bueno quizás somos nosotros que elegimos la opción más difícil. Pero antes de plantearnos una solución faraonica conviene mirar lo que viene de serie y en caso de que no llegue (que serán en muchas ocasiones) pues entonces extendemos su comportamiento.

 

 

Material WebCast Comunidad Office 365 Desarrollando con Yammer

El pasado Jueves 14 tuve el placer de impartir un WebCast dentro de la serie de WebCast de la Comuidad de Office 365  sobre Desarrollo con Yammer.  Aquí os dejo la presentación:

 

Y desde el siguiente link os podéis descargar las diferentes demos que realice:

1.- Uso del SDK de Yammer

2.- Creación de una APP en la Office Store haciendo uso de Yammer

3.- Creación de una APP de Windows Phone 8 usando Yammer

4.- Creación de una APP en Modo Consola para obtener datos de Yammer

A todos los asistentes MUCHÍSIMAS GRACIAS por haber asistido y si alguien no pudo asistir y lo quiere visualizar lo puede hacer registrándose en este link y descargándose la grabación.

Saludos,

WebCast Comunidad Office365: Introducción al desarrollo con Yammer

Dentro de la serie de WebCast impartidos por la Comunidad de Office 365, a llegado mi turno y  tengo el placer de dar un WebCast tiulado Desarrollo sobre Yammer

Los contenidos del mismo serán los siguientes:

  • ¿Que es una APP de Yammer?
  • Como Autentificarnos contra Yammer
  • Uso del SDK de Yammer
  • API Rest
  • API Rest de Yammer vs API Social de SharePoint
  • SDK Windows Phone
  • Demos

 

Queréis acompañarme?  Pues apuntar esta fecha jueves 14 a las 18:00  e inscribiros en el siguiente enlace https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032562827&Culture=es-ES&community=0

 

SharePoint 2013: Modificar la Fecha de un elemento mediante el modelo de objeto de JavaScript

Si no me he vuelto loco, algo tan sencillo como añadir/modificar un valor de un campo de tipo fecha en una lista personalizada puede convertirse en una odisea utilizando el modelo de objetos de JavaScript.

En primer lugar intente introducir una fecha introduciéndole el mismo formato que en el modelo de objetos de servidor es decir con el formato ISO8601 es decir yyyy-mm-ddThh:mm:ssZ tras un primer intento me da el error que el formato de fechas no es correcto.

El segundo intento voy a probar a crearme un objeto new Date() de JavaScript e intentar asignarlo directamente al campo que quiero modificar de la siguiente forma:

var year=2013;

var month= 09;

var day= 10;

var fecha= new Date(year, month, day);

Este caso es todavía mucho más curioso porque funciona en algunos navegadores por ejemplo en Google Chrome funciona perfectamente y en Internet Explorer y Mozilla no funciona. Intento depurar un poco y ver si el problema lo tengo en que la variable Date me da un valor diferente según el navegador. Tras comprobar el valor devuelve la función Date y comprobar que es el mismo en los tres navegador. Tengo todavía muchas curiosidad del porque. 

Bueno pues tras mirar mucho lo que esta ocurriendo es que SharePoint 2013 esta esperando la fecha en formato UTC y sino esta en este formato pues falla. Para solucionarlo en un primer lugar tenemos que crearnos la fecha tal y como hemos creado en el anterior caso y convertimos este valor obtenido en formato UTC de la siguiente forma:

function addBrowserUtcOffset(date) {
    var utcOffsetMinutes = date.getTimezoneOffset();
    var newDate = new Date(date.getTime());
    newDate.setTime(newDate.getTime() - (utcOffsetMinutes*60*1000));

    return newDate;
}

La verdad es que no se porque motivos SharePoint en esta versión se comporta de forma diferente dependiendo del modelo de objetos que se utiliza, es algo que no lo entiendo y que puede causar un tanto de confusión en los programadores. Que conste que me parece bien que se adapte, pero que se adapte para lo bueno tambien. Por ejemplo en la API Rest es algo tedioso que nos devuelvan campos que no vamos a utilizar nunca, que se haga una API más para el uso de los desarrolladores.

Pero bueno sabiendo la solución se puede poner remedio 🙂

Configurando los WebParts de Búsqueda de SharePoint 2013

Una de las grandes mejoras que trae la versión 2013 de SharePoint, es la integración total de Fast como un elemento de la plataforma. De esta integración surge una modificación en los WebParts de búsqueda y es que ahora la potencia que tienen estos son mucho mayores ya que ahora tienes muchas más posibilidades de configuración. 

Una mala configuración (más bien no hace ninguna configuración) hace que se muestren en el resultado elementos internos de SharePoint que no se deberían mostrar a un usuario final. Para ello deberemos quitar:

  1. Quitar el acceso a los links de tipo de contenido externo (BCS)
  2. Quitar las carpetas de los resultados 
  3. Quitar el resultado de todos los items (AllItems.aspx)
  4. Quitas los enlaces a los elementos de la lista
  5. Quitas los links de la lista
  6. Quitar la vista «explorer»

Para ello una vez añadimos el WebPart tenemos que pulsar sobre el botón «Change Query»

:

 

Quitar el acceso a los links de tipo de contenido externo (BCS): 

Carpetas


Alltems.aspx

Enlaces a los Items de la Lista

Enlaces a las Listas

Vista Explorador

 

Conclusión

El buscador introducido en esta versión de SharePoint es una de las grandes mejoras introducidas y como todo poder lleva implicita una gran responsabilidad. El servicio de búsqueda hay que saber configurar lo, optimizarlo y aprovecharlo en nuestros desarrollos. Una mala configuración del servicio de búsqueda pueda hacer que nuestro SharePoint se ralentice en exceso. El no configurar lo como toca también hace que se puedan consultar datos que no correspondan. Este configuración del búscador es solo un aperitivo de todo lo que se puede realizar con las Búsquedas en SharePoint 2013.

 

[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.