Últimamente las APPS es la palabra de moda, desde que se las APPS se pusieron de moda en los teléfonos móviles todo es una APP. Pero antes de nada hay que definir que es una APP en SharePoint y una APP no es más que una aplicación web que esta dotada de una cierta funcionalidad, y en el caso de SharePoint se utiliza para extender las capacidades base de SharePoint y la posibilidad de nutrir a la plataforma de otras tecnologías que no tienen por que ser Microsoft.
La siguiente pregunta que nos hacemos es cuando tenemos que hacer una APP y cuando tenemos que hacer un WebPart. Aquí la respuesta también es clara, una APP contiene muchas pequeñas aplicaciones, es decir si por ejemplo nosotros queremos mostrar una aplicación para consultar el OWA pues para eso utilizamos un WebPart como hasta ahora. Ahora bien si lo que queremos hacer es integrar Yammer con el sistema de perfiles de usuario que viene en SharePoint pues naturalmente tenemos que elegir la opción de una APP. Esta es la diferencia en cuanto a concepto, en la practica cuando nosotros desarrollamos un WebPart pues nos basamos en ASP.NET y hay le otorgamos la funcionalidad que creemos oportuna, en una APP podemos utilizar cualquier tecnología (según el tipo de alojamiento de la misma) por lo que alguien ajeno al mundo Microsoft puede desarrollar una APP.
Ahora bien esta es la definición y ahora abramos nuestro Visual Studio y veamos los tipos de alojamiento que tenemos en las APPS que podemos hacer: SharePointHosted, AutoHosted y ProviderHosted.
APPS de tipo SharePointHosted,
Este tipo de APPS se alojan dentro del propio SharePoint dentro del sitio para las APPS, pero sin interferir con el resto de elementos de SharePoint es decir si la APP se estropea no altera nada en nuestra administración Central. Este tipo de APP solo admiten el lenguaje JavaScript, se comunica con SharePoint mediante la API Rest y la autentificación ya va integrada. Se puede hacer usos de elementos propios de SharePoint como listas, y pueden acceder a listas de aplicativos web alojados en esta Granja.
Ventajas
- Es la más sencilla de alojar, ya se almacena en la misma Granja pero cada APP queda como un sub-sitio de modo aislado.
- Autentificación incluida en las llamadas API-Rest
Inconvenientes
- Solo se puede utilizar JavaScript (pero si lo miras fríamente si quieres hacer cualquier cosa que no sea en JavaScript ya lo puedes desarrollar como en versiones anteriores utilizando los WebParts)
Este tipo de Apps solo se recomienda utilizar cuando no es necesario acceder a ningún servicio alojado fuera de la granja de SharePoint y la única opción interesante es que extienda una capacidad base de SharePoint y esta capacidad se pueda utilizar en todos los aplicativos que tengo dentro de la Granja. Un claro ejemplo puede ser el uso de Yammer y para ello como es algo común para toda la compañia pues creo la APP y así cada persona puede beneficiarse de esta APP y no la tiene integrada en una determinada aplicación, es decir, aprovechamos más el recurso y aislamos de posibles problemas.
APPS de tipo AutoHosted
Este tipo de apps de alojamiento se alojan sobre Windows Azure Web Sites, tienen una serie de ventajas principalemente que para desarrollarlas tenemos más abierto el abanico para desarrollar. Podemos utilizar desarrollos ASP NET MVC como desarrollos usando en HTML5/JavaScript, este tipo de escenario es el ideal para publicar en el Store de Office ya que instalas la aplicación y no tienes que encargarte de su alojamiento, ni de la seguridad de la misma. Ahora bien ahora mismo este tipo de aplicaciones tienen diversas limitaciones la principal es que tu no puedes indicar el tamaño de los componentes que subes a Azure, me explico tienes que redimiensionar la APP tal y como piensas que va a ser, y no cumple de momento con la filosofía por la que te decantes a usar Azure que no es más que tu solo pagas por lo que utilizas. Ahora mismo aun no se pueden publicar apps de este tipo en el Store Microsoft esta viendo las posibilidades que hay, por que no es el algo lógico que tu no puedas indicar el tamaño de la base de datos y otros aspectos esenciales. Este tipo de APPS creo que son las que se van a imponer pero en la actualidad falta que se establezca la ruta de las mismas.
Ventajas
- Se pueden desarrollar en .NET/JavaScript en lo que el desarrollador se sienta más cómodo
- No nos tenemos que encargar del sitio de alojamiento
- Tipo de Apps ideal para alojar en la Office Store
Desventajas
- Imposibilidad de dimensionar tu aplicación
- Falta de definición por MS
Este tipo de APPS son las ideales para alojar en la Office Store, al ser reciente la introducción de este tipo de APPS existen muchas dudas por parte de los desarrolladores, pero desde Microsoft se esta buscando todas las formulas y están intentando aclarar y perfeccionar este tipo de APPS ya que como he comentado son las ideales para estar albergadas en la Office Store.
APPS de tipo Provider Hosted
Este tipo de Apps son las que más libertad dan al desarrollador, le permiten desarrollar en cualquier plataforma PHP, ASP Net, Cobol, SilverLight, JavaScript, …. pero es el propio desarrollador quien tiene que encargarse de que el servicio este levantado, lo cual para tener una APP en el Office Store es un verdadero inconveniente. Son los que más libertad tenemos pero también los que más responsabilidad tenemos. Se llaman provider Hosted porque es el proveedor el que pone el sitio donde esta almacenada, este almacenamiento puede ser Azure y en este tipo de almacenamiento si que podemos redimiensionar nuestro SQL, nuestro espacio que tenemos almacenado, es decir podemos interferir más en las necesidades de nuestra APP que desde las AutoHosted (algo que no tiene sentido).
Ventajas
- Libertad para seleccionar el lenguaje de programación (podemos seleccionar cualquiera)
- Escogemos el alojamiento que deseamos (para bien o para mal)
Desventajas
- Encargar de tener el sitio de almacenaje y sus correspondientes copias de seguridad, mayor responsabilidad en el mantenimiento.
- Mayor costes (costes de mantenimiento del servidor, tiene que estar operativo siempre,…)
Conclusiones
Hemos visto los dos tipos de alojamiento que tenemos que son almacenados en nuestras propias instalaciones (provider y SharePoint hosted) o tenerlos almacenados en la nube (AutoHosted). La elección de un tipo de almacenamiento dependerá del tipo de proyecto en el que estemos metidos, si queremos publicar en el Office Store no nos quedará otra que decantarnos por un alojamiento en la nube, en cambio si estamos desarrollando un proyecto para unificar varios Sites de SharePoint la opción autohosted y SharePoint Hosted es una opción muy valida. En los proximos post mostraremos más técnicamente como podemos desarrollar este tipo de APPS desde nuestro querido Visual Studio.