Una de las tareas que más flojas de SharePoint son los formularios de entrada de datos a Listas, cuando tenemos un formulario con muchos campos, algunos de estos compos dependen del valor de algun campo previo, incluso que algunos roles de la organización no tienen que ver estos campos dependiendo del rol que tengan, es decir que no son la clásica lista de Contactos donde tengamos Nombre, Apellidos y Fecha de Nacimientos, son Listas que nos vemos en nuestro día a día trabajando con nuestro servidor preferido.
SharePoint no cuida mucho la interfaz de usuario y en esta parte es donde entra nuestra labor: la de personalizar estos formularios para darle el funcionamiento requerido al usuario. Aunque en un principio parezca que no tenemos muchas herramientas, como he comentado en anteriores ocasiones, SharePoint es una plataforma que admite mucha personalización (naturalmente siempre sabiendo que es lo que se tiene y hasta donde lo podemos llevar a cabo).
Para plantearnos estas personalización tenemos por lo menos 4 herramientas para hacer estas opciones: SharePoint Designer, InfoPath, Visual Studio y hacer un desarrollo en JavaScript (por ejemplo haciendo uso de ExtJS).
La elección de alguna de las opciones pues depende de los conocimientos de cada uno y del nivel de personalización que se quiera llevar, a continuación voy a indicar ventajas e inconvenientes de cada opción.
SharePoint Designer
Ventajas
- Es gratuito y todo el mundo puede acceder a él
Inconvenientes
- Funcionamiento un tanto irregular, es decir, no sabemos en que momento se va a reiniciar.
- Inseguridad al usarlo, por que no se reflejen los cambios.
- Añade HTML extra a tu desarrollo
Cuando utilizarla
SharePoint Designer es una «herramienta» que debemos de evitar en la medida de lo posible y salvo contadas excepciones como puede ser si solamente se quiere modificar una combo o bien para mostrar/ocultar campos es una opción válida. Una vez nos decidimos por él y si posteriormente se solicitan más cambios sobre este formulario seguro que lamentamos esta elección, aunque esta claro que a toro pasado todos sabemos torear.
Info Path
Ventajas
- Permite la interacción con otros sistemas de una forma relativamente simple
Inconvenientes
- Sistema cerrado
- No se puede reautilizar en otros entornos.
Cuando utilizarla
Personalmente no soy muy amigo de utilizarlo NUNCA, motivos no veo beneficios en aprender una herramienta que solamente me va a valer estas personalizaciones dentro de este entorno, y en el momento en el que necesito alguna personalización el coste implementarlo es el mismo que realizar un desarrollo personalizado bien haciendo uso de WebParts o desarrollos en JavaScript. Además otro motivo por los que no se utiliza es por el tema de licenciamiento ya que adquirir una licencia extra para hacer uso de esta herramienta me parece que no compensa la inversión realizada por el tiempo que se gana haciendo uso de la misma.
WebParts a Medida
Ventajas
- Tiempo de desarrollo más rápido, haciendo uso de C# (bien modelo de objetos clientes y servidor)
Cuando utilizarla
En el momento es el que queremos realizar una personalización excesiva. Por ejemplo dependiendo del estado en que se encuentre un determinado valor o bien que dependiendo del rol que tengas que visualices unos campos u otros: en estos casos un desarrollo personalizado es una muy buena opción.
Desarrollos haciendo uso de algún framework JavaScript
Ventajas
- Nos adaptamos a la nueva forma de desarrollo, más acorde con los estándares web
- No hace falta desplegar nada en el servidor
- Herramientas gratis para hacer el desarrollo, con lo que todo el mundo puede acceder a ellas.
Desventajas
- Aun muchos desarrolladores de SharePoint no estan adaptados a desarrollar con Javascript, ya que su curva de aprendizaje es más costosa
Cuando utilizarla
Se puede usar en los mismos casos que en los desarrollos en .Net, cuya principal ventaja es el hacer uso de frameworks que nos pueden ayudar a realizar el trabajo más rápido. Tal y como hablo el viernes nuestro CEO Hugo de Juan en Encamina utilizamos Sencha para casos en los que los complementamos con otras herramientas de flujos de trabajo como Nintex. Aunque Sencha aporta unos valores muy importantes, no es el único FrameWork que se puede utilizar, por ejemplo ya comente alguna de las bondades de Kendo UI en la revista CompartiMOSS y como poder utilizarlo en nuestros desarrollos.
Conclusión
SharePoint es una herramienta muy versátil, muy escalabre y que se puede personalizar algunas veces por encima de lo aconsejable. Dado esta diversidad en la que se pueden realizar las cosas es una de sus grandes ventajas, ya que dependiendo del equipo/proyecto/requisitos que necesitemos podemos optar por una solución optima. Lo cual a mi personalmente como desarrollador es uno de los puntos fuertes que tiene.