SharePoint 2013. ¿Solución o Aplicación?

La semana pasada en el Gusenet, Adrian y yo dimos una sesión titulada «Por qué todo lo que veo es SharePoint«.

<

 

Nuestra idea principal era presentar los dos modelos de desarrollo de SharePoint y explicar el por qué desarrollar en SharePoint las aplicaciones que los usuarios demandan.

Como plataforma de implementación de Intranet, Extranet y otras cosas más, SharePoint se encuentra con los clientes para mejorar la colaboración en las empresas. El problema es que no todas las empresas son iguales y necesitan de poder realizar personalizaciones que cumplan con sus reglas de negocio.

SharePoint nos permite hacer este tipo de personalizaciones de tres formas:

  • No-Code Solution, ya que es posible personalizar gran parte de las funcionalidades básicas.
  • SharePoint Solution, extendiendo y añadiendo artefactos de SharePoint para cumplir con las reglas de negocio.
  • SharePoint App, un nuevo modelo de desarrollo que nos ofrece la integración con SharePoint para desplegar aplicaciones dentro de este.

¿Con cuál nos quedamos?

Lo primero es elegir entre No-Code o Code, y en la medida de lo posible os recomiendo ir siempre a Code, pero no siempre es lo mejor. Por ejemplo, para poner una Intranet estándar a un cliente y que empiece a ganar cultura de colaboración en SharePoint, no veo necesario la inversión en una solución de código o para implementar la capa de presentación de Business Intelligence.

Cuando ya tenemos claro que vamos a implementar código por cuestiones de desarrollo de lógica de negocio, personalizaciones que necesitan código o ALM, tenemos que decidir entre una SharePoint Solution o una SharePoint App.

La recomendación de Microsoft es siempre implementar una Aplicación y el principal motivo es la compatibilidad con SharePoint Online. En el camino de Microsoft y sus productos hacia la nube no hay plan para soportar las Soluciones de SharePoint, salvo que sean Soluciones de tipo SandBox.

Yo no estoy del todo de acuerdo. El camino hacia la nube es largo y SharePoint hace muchas cosas bien pero necesita de algunos cambios para implementar las reglas empresariales que los usuarios requieren y, de momento, eso sólo se puede hacer con una Solución. El Modelo de Objetos de Cliente nos limita en ciertas funcionalidades que son necesarias y el modelo de desarrollo de Aplicaciones no nos ofrece todas las herramientas para extender la plataforma ya que su entorno de ejecución es, por defecto, aislado de SharePoint, por esto en ENCAMINA hemos rediseñado nuestro propio modelo de Aplicación.

A la hora de elegir entre Solución o Aplicación, yo tendría las siguientes premisas:

  • Si tenemos un SharePoint Online, prácticamente está claro que tenemos que ir al modelo de Aplicación. Aunque se pueden implementar cosas con SandBox Solutions o inyectando JavaScript en SharePoint Online, con las SandBox estaremos muy limitados y con el segundo no tengo claro que sea un buen modelo de desarrollo e implementación.
  • Para una gestión documental que necesita lógica de negocio, para establecer procesos de ECM o soluciones Records Management, esto tiene que ser una Solución. Entre las bondades de SharePoint podemos incluir la gestión documental, los tipos de contenidos, la gestión de registros, lo que se llama ECM. Si elegimos hacer una aplicación podemos perder estas funcionalidades que SharePoint ya hace o tendremos que reinventar cosas en nuestro código.
  • Si necesitamos datos relacionales o grandes cantidades de filas en las listas, no te lo pienses, esto es si o si una Aplicación. SharePoint no es una base de datos relacional, y, aunque lo he visto gestionar millones de filas en una lista, no es lo recomendable.
  • Cuando hablamos de LOB (Line of Business) o de poner soluciones departamentales en la Intranet, en un 90% deberíamos de elegir una Aplicación. El otro 10% lo podemos dejar para pequeños Web Parts con consultas a datos externos o funcionalidades que podemos soluciones implementando Business Conectivity Services.

Con todo esto, hay que tener en cuenta que un desarrollador de SharePoint, además de conocer SharePoint (IT y Desarrollo) tiene que tener la siguiente foto en su curriculum:

¿Con que modelo te quedas? Yo me quedo con los dos porque nos permite garantizar el éxito de los proyectos y la satisfacción de los clientes implementando el más adecuado para cada caso.

 

Saludos a todos…