SharePoint 2013: ¿Cuando tengo que desarrollar Aplicaciones y cuando Soluciones?

Como sabéis, SharePoint 2013 (al igual que las versiones previas) es una plataforma completamente extensible mediante desarrollo y a través de un espectro de posibilidades de desarrollo. Además, en la nueva versión del producto se incorpora un nuevo modelo de desarrollo: el modelo de creación de aplicaciones. En este posts repasaremos las opciones de despliegue que tenemos en SharePoint 2013, las posibilidades de desarrollo que tenemos y por último cuando utilizar cada modelo de desarrollo.

Opciones de despliegue

Las posibilidades son:

  • On-Premise, es decir, disponemos de SharePoint instalado en un entorno corporativo lo que proporciona un nivel máximo de flexibilidad en cuanto a posibilidades de desarrollo y herramientas.
  • SharePoint Online, lo que implica que no podemos crear y desplegar soluciones de tipo granja ya que Microsoft no lo permite.
  • Instalación “hospedada”, lo que implica que un tercero ha instalado SharePoint 2013 y ofrece su uso en modo hosting. Esta opción es muy similar al desarrollo para SharePoint Online en cuanto a qué las posibilidades de desarrollo pueden ser similares.

Opciones de desarrollo

Como opciones de desarrollo tenemos las siguientes posibilidades:

  • Soluciones de tipo granja, opción que apareció con SharePoint 2007 y qué solo está permitida para escenarios On-Premise.
  • Soluciones de tipo sandbox, opción que apareció con SharePoint 2010 y qué está permitida para los tres tipos de opciones de despliegue comentados.
  • Aplicaciones hospedadas en SharePoint, opción que aparece con SharePoint 2013 y que está disponible para todos los tipos de despliegue. Implica que las aplicaciones se desplieguen en una colección de sitios aislada (que actúa como hoster) y toda su lógica se ejecuta en cliente (en el navegador). Una aplicación de este tipo no puede interactuar con otras aplicaciones.
  • Aplicaciones hospedadas por un proveedor (un tercero), opción que también aparece con SharePoint 2013 y que también está disponible para todos los tipos de de despliegue. Las aplicaciones se despliegan en sitios de SharePoint y su lógica se ejecuta normalmente en código de servidor externo a SharePoint como puede ser en otro servidor o en la nube. Este tipo de aplicaciones tampoco puede interactuar con otras aplicaciones.
  • Aplicaciones hospedadas en Azure, opción que también aparece con SharePoint 2013 y qué solo está disponible para SharePoint Online en Office 365. Este tipo de aplicaciones es similar al anterior en cuanto a qué están formadas por componentes externos. Estos componentes se restringen a sitios web y opcionalmente a BDs SQL Azure que se incluyan. En este caso, cuando la aplicación se instala SharePoint automáticamente provisiona y despliega estos componentes a Windows Azure. De nuevo, una aplicación de este tipo no puede interactuar con otras.

Herramientas de desarrollo

Se disponen de diferentes herramientas de desarrollo que pueden ser utilizadas para cada una de las opciones de desarrollo comentadas:

  • El navegador web, y en concreto para SharePoint Online tenemos la herramienta NAPA que permite crear aplicaciones a desarrolladores que no disponen de Visual Studio.
  • SharePoint Designer para creación rápida de soluciones y elementos como flujos de trabajo o tipos de contenido externo. Está disponible para los tres tipos de despliegue.
  • Visual Studio, nos permite crear todos los tipos de aplicaciones comentados.
  • Otros como Eclipse, LAMP ya que SharePoint 2013 habilita el uso de aplicaciones que residen fuera de SharePoint por lo que cualquier tecnología, lenguaje de programación y plataforma es posible. Esta opción sólo es posible para Aplicaciones de tipo “Developer-Hosted”.

Vale, y ahora la pregunta del millón: ¿Qué tipo de aplicación debería crear? La recomendación de Microsoft es crear aplicaciones de acuerdo al nuevo modelo de aplicaciones que aporta ventajas como:

  • Mayor flexibilidad en cuanto a la elección de tecnologías de desarrollo, capacidades e infraestructura.
  • El aislamiento a nivel de proceso, datos y usuario es mayor.

Si pensamos en soluciones de tipo granja, las usaremos en situaciones en las que se necesite un alto grado de personalización como:

  • Provisionar páginas maestras, diseños de página, elementos de biseño.
  • Desplegar elementos de administración avanzados como pueden ser páginas de administración, Timer Jobs, etc.

Entonces, a la hora de escoger entre Aplicaciones y Soluciones (Granja o Sandbox) podemos hacernos preguntas como:

  • ¿Se necesita código personalizado que utilice el modelo de objetos en servidor de SharePoint? Entonces, tendremos que recurrir a soluciones de tipo granja o Sandbox teniendo en cuenta que en estas últimas no se puede utilizar el modelo de objetos completo.
  • ¿Tiene la extensión qué desplegar componentes con un ámbito más amplio que sitio (SPWeb) o tiene que acceso a componentes de SharePoint fuera del sitio dónde se ha desplegado? Una aplicación de SharePoint puede acceder y otras fuentes que no están hospedadas en SharePoint, pero si se trata de aplicaciones de tipo “SharePoint hosted”, sólo pueden acceder a componentes dentro del sitio dónde se han instalado. Sin embargo, una aplicación externa a SharePoint si puede acceder a ese contenido externo siempre y cuando se garanticen los correspondientes servicios cuando se instala.
  • ¿Se necesitan desplegar componentes que no pueden ser incluidos en Soluciones de tipo Sandbox (páginas de aplicación, definiciones de sitio)? Entonces, iremos de nuevo por soluciones de tipo granja ya que en las Aplicaciones tampoco es posible desplegar este tipo de componentes.
  • ¿Quién es el usuario objetivo? Tendremos que distinguir entre usuarios administradores de la granja, usuarios administradores de colecciones de sitios y usuarios administradores de sitios para determinar si necesitan funcionalidad desplegada en la forma de soluciones o aplicaciones.
  • ¿Existe algún tipo de acoplamiento con otras extensiones de SharePoint existentes? Hay que tener en cuenta que esto no es posible en Aplicaciones de SharePoint ya que un requerimiento de las mismas es que se tienen que instalar y desinstalar de forma limpia sin dejar ningún tipo de rastro en el sistema.
  • ¿Cómo de grande es la extensión? Las aplicaciones de SharePoint no debería ser en ningún caso una aplicación completa, como Word, Excel, Access o Visio.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *