sharepoint saturday barcelona. la importancia de javascript en nuestros desarrollos

44
JavaScript y la importancia dentro del desarrollo en SharePoint/Office365/Apps Adrián Díaz Cervera September 26 th , 2015 Barcel ona

Upload: adrian-diaz-cervera

Post on 08-Jan-2017

560 views

Category:

Software


0 download

TRANSCRIPT

Page 1: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

JavaScript y la importancia dentro del desarrollo en SharePoint/Office365/AppsAdrián Díaz CerveraSeptember 26th, 2015

Barcelona

Page 2: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Thanks to our Sponsors

Page 3: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Adrián Díaz Cervera

Email : [email protected] : AdrianDiaz81Blog blogs.encamina.com/desarrollandososharepoint/geeks.ms/blogs/adiazcervera

Es Microsoft Value Profesional de SharePoint Server desde 2014. Miembro de varias comunidades técnicas como SUGES, Office 365 y Valencia NET. Lleva desarrollando con tecnologías Microsoft más de 10 años y desde hace 5 años está centrado en el desarrollo software. Actualmente trabaja en el departamento de desarrollo de ENCAMINA una consultora informática de Valencia que se destaca por realizar soluciones basadas en Tecnología Microsoft, principalmente en SharePoint, SharePoint, Office 365 y Azure.

Page 4: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Agenda Evolución en el desarrollo de SharePoint ¿Por qué JavaScript? JavaScript: El Lenguaje de Programación Como utilizarlo en SharePoint/Office 365 Frameworks: AngularJS Transpiladores: TypeScript Q & A

Page 5: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Evolución en el desarrollo de SharePoint

Introducción

Click to insert photo.

Page 6: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos
Page 8: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

JavaScript cada vez más presente

• SharePoint cada vez se adapta a los estándares Web.

• Mejoras en CSOM.• API REST en casi cualquier artefacto

Page 9: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Factores del auge de JavaScript en SP Arquitectura SOFEA

Escalabilidad. Baja latencia. Interoperabilidad Separación de responsabilidades Prototipos

Page 10: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Factores del auge de JavaScript en SP Es el lenguaje estándar Web Posibilidad de utilizar las últimas herramientas No posible con tecnología .NET:

Razor, vNext WebAPI

Como anillo al dedo con la tendencia al CLOUD

Mayor número de desarrolladores

Page 11: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

¿Por qué JavaScript?

Page 12: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

JavaScript es el demonio o eso parece..

Page 13: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Motivos

Nombre: No tiene nada que ver con JAVA

Lenguaje débilmente tipado

JavaScript como lenguaje de copy-paste

Desconocimiento de JavaScript como POOMuchos Framework y gran cantidad de cambios

Page 14: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Beneficios

Page 15: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Click to insert photo.

JavaScript:El Lenguaje de Programación

Page 16: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

C# A nivel de bloque (for, if..) A nivel de función A nivel de clase

JavaScript A nivel de función

Ámbitos de las variables

http://jsfiddle.net/AdrianDiaz/u2mbnu9o/

Page 17: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• Todos los objetos son Object (pero se pueden saber de que tipo son)

• Undefined == Null en .NET• Null es una variable sin valor • Una variable puede ser integer, boolean y string

según nos interese • Al ser un lenguaje dinámico podemos ir creando

propiedades o variables dependiendo de las necesidades

• Todas las funciones devuelven algo aunque no pongamos un return

Tipos de Variables

Page 18: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• Una línea de nuestro código solo puede acceder a variables que tengan un ámbito mayor o superior al suyo propio.

• Concepto +Importante

Clausure

Page 19: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• Clases como tal no existen hasta ES6 pero …

• Prototipo: Propiedad especial en las funciones constructoras. Contiene métodos y propiedades que van a estar disponibles en

todas las instancias de la “clase”

Clases y prototipos

Page 20: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• Cambio de pensamiento en nuestros desarrollos Esperamos que termine un método para continuar con la lógica No esperamos que se ejecuten varias funciones a la vez

• Provoca código “spaghetti”, poco legible e inmantenible

• Se puede solucionar… PROMISE !!

Asíncrono

Page 21: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• Diferencias respecto a C#

• Porque? Una propiedad en JS es lo mismo que un elemento de un array

Iteración en los bucles

Page 22: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos
Page 23: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Click to insert photo.Mucho JavaScript … Pero estamos en SharePoint

Pero estamos en SharePoint

Page 24: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• En la versión 2010 fue una de las grandes novedades

• Casi mismas operaciones SSOM = + Acciones http://msdn.microsoft.com/es-es/library/office/jj193034(v=office.15).aspx

Social Taxonomy Search Flujos de Trabajo Datos empresariales

• No mucha documentación

• PRINCIPAL FALLO: Asegurar que están las librerías JS cargadas Versión 2010 :

Version 2013

Javascript Object Model SharePoint

ExecuteOrDelayUntilScriptLoaded(myInitMethod, "sp.js"); 

SP.SOD.executeFunc('sp.js', 'SP.ClientContext', sharePointReady);

http://msdn.microsoft.com/en-us/library/office/jj245759.aspx

Page 25: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Javascript Object Model SharePoint (Example)

Page 26: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• Importante: Accesible desde cualquier plataforma (Android, IOS, W8/W10) => EveryWhere

• Casi cualquier endpoint tiene un acceso Rest Search Social List Web

• Algunos aspectos “curiosos” Acceso a datos persona, taxonomía No tiene todos los tipos de campos

• En Office 365 mejoras Tamaño del JSON dependiendo de necesidades

API Rest

Page 27: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• Pero no estábamos hablando de JavaScript?

Casi todos los FrameWorks JS están diseñados para tener una capa de Servicios

API Rest

Page 28: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• Una “nueva” propiedad que permite inyectar JS en los formularios de listas

• Beneficios: Personalización más simple de Formularios

Adaptar la interfaz a los estándares web

• Contras: Dificil unir dos listas => Problemas de rendimiento => SP no

Relacional Legibilidad del código

JSLINK

Page 29: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• Aprovechar al máximo las capacidades de búsqueda

• Templates similar al JavaScript

Display Templates

Page 30: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Ventanas Modales

Page 31: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Frameworks JavaScript

Page 32: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos
Page 33: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• Hay multitud de FrameWorks/ librerías de diferentes proveedores

• ¿Qué debemos de mirar en el FrameWork? Nuestras necesidades

¿Vamos a utilizar todo lo que nos proporciona?

Bindings Mapeo de los datos que se muestran en la Vista contra nuestros

modelo de datos

Templates Tener plantilla para poder renderizar nuestros datos

Route En Aplicaciones SPA indicar que pagina/contenido se va a mostrar SharePoint es una SPA (Minimal Download Strategy)

Unit Testing Mocha, Jasmine, etc…

Frameworks

Page 34: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• Librería + Popular• Abstracción del DOM• Se puede utilizar en la gran mayoría de casos• OJO!! Cuidado el Acceso al DOM

Ralentizar tu Aplicación Cuelgue del Navegador Bugs

• Principales problemas UI depende del código Código Espagueti + Boloñesa Aplicaciones sin Estructura Poca Escalabilidad

Page 35: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• Solo sirve para generar plantillas

• Casi un estándar => muchos frameworks lo utilizan

• Funcionamiento muy simple Separa lógica de aplicación de UI Reutilizable

• DisplayTemplates ?

Page 36: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• ¿Por qué es el FrameWork de Moda? Renderizado más rápido

Clara separación entre las partes MVC

Extendiendo el HTML => Incluso de forma intrusa

Inconveniente Amplio conocimiento sobre el Frameworks Desarrollado por Google

Page 37: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Hay Multitud….

Page 38: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Click to insert photo.

DEMO TIME

Page 39: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Transpiladores:

TypeScriptCoffeScript

WebSharper

Page 40: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• es un tipo de compilador que toma el código fuente de un programa escrito en un lenguaje de programación como entrada y produce el código fuente equivalente en otro lenguaje de programación

¿Qué es un Transpilador?

Page 41: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• Pretende ayudar a los equipos de programación a definir interfaces entre componentes de software

• Reducir los conflictos de nomenclatura mediante la organización del código en módulos que se pueden cargar de forma dinámica

• TypeScript es un proyecto Open Source http://typescript.codeplex.com/ Creado por Anders Hejlsberg, Turbo Pascal, C# y Delphi

• Genera JavaScript• Beneficios:

- Código más homogéneo y mantenible- Comprobación estática de tipos- Interfaces- Módulos

Page 42: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

DEMO TIME

Page 43: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

• JavaScript es un lenguaje de programación

• Los tiempos evoluciona

• Microsoft más alineado con estándar

• Futuro en la nube

Conclusión

Page 44: SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Q & A

MUCHAS GRACIAS

@AdrianDiaz81

https://github.com/AdrianDiaz81/SharePointSaturdayBarcelona