Desde anteriores versiones de SharePoint, un problema muy recurrente ha sido introducir dentro de SharePoint todo tipo de aplicaciones, sin mirar si este tipo de aplicaciones tienen que estar en la plataforma o no. Esto provoca fallos, mal funcionamiento de la granja de SharePoint, mala gobernabilidad, descontento de los usuarios y abandono de la plataforma.
Microsoft, escuchando todos estos feedbacks por parte de los usuarios, introdujo en su versión 2010 las soluciones llamadas “SANDBOX”. La idea era que se pudiera desarrollar aplicaciones dentro del contexto de soluciones pero un una “caja” separada a SharePoint y cuyo funcionamiento no provocará fallos en la granja. Esto era la teoría, porque en la práctica las soluciones Sandbox eran muy limitadas, no eran escalables y provocaban fallos en la granja. Todo ello, lo que provoco es que no se usaran y que en la siguiente versión de SharePoint se declarasen obsoletas por Microsoft.
La alternativa a este primer intento, fue el Modelo de desarrollo de Apps. Este modelo intenta imitar el éxito de las aplicaciones en los dispositivos móviles y que las empresas consumieran apps de la misma forma que un usuario lo hace a nivel particular. Ahora bien, este modelo nació con muchas lagunas que han provocado la no adopción por parte de la gran mayoría de empresas. Desde mi punto de vista, el principal motivo ha sido que es necesario que tengas tu propia infraestructura (bien en la nube o en tu propia infraestructura), lo que supone un coste muy difícil de asumir sin saber cuánto va a ser el retorno. Sin embargo, este modelo de desarrollo unifica el poder utilizar el lenguaje de programación, el alojamiento que se quiera, lo que puede provocar que el número de desarrolladores de SharePoint se incremente de forma considerable.
De la misma forma en la que Microsoft ha ido introduciendo el modelo de desarrollo en SharePoint, ha ido potenciando y mejorando su plataforma IAS y PASS (Microsoft Azure y Office 365). El escenario dónde antes SharePoint era la pieza clave, pasa a verse un poco eclipsado por el Cloud. De la misma forma que se había planteado el modelo de desarrollo para Office 365 fuera necesario hacer uso de SharePoint Online, Microsoft da la posibilidad de consumir los servicios disponibles en su plataforma de productividad haciendo uso de Autenticación contra un directorio Activo en Azure y consumiendo servicios Rest.
Partiendo de esta situación, ahora mismo disponemos de dos opciones para extender Office365:
- SharePoint/Office Apps
- Azure Apps
SharePoint/Office Apps
Dependiendo de la forma en la que se alojan pueden ser de dos tipos: SharePoint Hosted o Provider Hosted.
Las SharePoint Hosted son más limitadas ya que no pueden tener código servidor y solamente pueden tener HTML5, CSS y JavaScript. Su principal utilidad es en forma de Widget, para mostrar información de otros sistemas/aplicaciones.
Las Provider Hosted: son aplicaciones más completas y se caracterizan porque el cliente pone su infraestructura donde se va a ejecutar. Esta infraestructura puede ser estar en sus propias instalaciones o en la nube.
Los beneficios de este tipo de aplicaciones son dos:
- Aislamiento sobre SharePoint
- Libertad de desarrollo
Azure Apps
Cada vez más el Cloud está más presente en nuestro día a día. Las empresas ven el cloud como un aliado en el que pueden obtener sus requerimientos ahorrando en costes e infraestructura. Partiendo de esta premisa, Office 365 tiene como principal objetivo que todos sus servicios se consuman desde cualquier plataforma y dispositivo:
Aunque pueda parecer el mismo modelo de desarrollo, tiene un matiz que lo caracteriza: en las Office Apps el punto de entrada a las mismas es SharePoint y se utilizan para extender la plataforma. Las Azure Apps el punto de entrada es la propia aplicación que utiliza los servicios en la nube (Office 365, Azure…). La finalidad no es extender SharePoint sino crear aplicaciones que consuman servicios.
¿Cuándo elijo cada una de ellas?
Desde mi punto de vista, ambos modelos son totalmente compatibles y necesarios. Dependiendo del desarrollo y del entorno podemos hacer uso de ellos. Si queremos hacer un desarrollo basado en SharePoint, está claro que tenemos que utilizar el primer tipo de aplicaciones. Si queremos realizar una aplicación móvil haciendo uso de información que tengo almacenada en OneDrive, pues obviamente utilizaremos las Apps de Azure.
Los principales puntos comunes:
- Posibilidad de desarrollo en cualquier plataforma
- Posibilidad de estar alojado en cualquier proveedor
Las principales diferencias son:
- Forma de Registrar la aplicación. Autenticación en el Directorio Activo de Azure o bien registrar la App en SharePoint
- Forma de Acceder: a través de una colección de sitio o bien a través de una lanzadera
- Forma de Autenticar: Usuario/Password o con Token de contexto