SlideShare una empresa de Scribd logo
1 de 44
JavaScript y la importancia dentro del
desarrollo en SharePoint/Office365/Apps
Adrián Díaz Cervera
September 26th, 2015
Barcelona
Thanks to our Sponsors
Adrián Díaz Cervera
Email : addiacer@gmail.com
Twitter : AdrianDiaz81
Blog
blogs.encamina.com/desarrollandosos
harepoint/
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.
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
Introducción
Más de una década de evolución
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
Factores del auge de JavaScript en SP
 Arquitectura SOFEA
 Escalabilidad.
 Baja latencia.
 Interoperabilidad
 Separación de responsabilidades
 Prototipos
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
JavaScript es el demonio o eso parece..
Motivos
Nombre: No tiene nada que ver con JAVA
Lenguaje débilmente tipado
Desconocimiento de JavaScript como POO
Muchos Framework y gran cantidad de
cambios
Beneficios
 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/
• 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
• 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
• 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
• 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
• Diferencias respecto a C#
Iteración en los bucles
• 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
Javascript Object Model SharePoint
(Example)
• 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
• Pero no estábamos hablando de JavaScript?
 Casi todos los FrameWorks JS están diseñados para tener una capa de Servicios
API Rest
• 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
• Aprovechar al máximo las capacidades de búsqueda
• Templates similar al JavaScript
Display Templates
Ventanas Modales
• 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
• 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
• 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 ?
• ¿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
Hay Multitud….
• 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?
• 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
• JavaScript es un lenguaje de programación
• Los tiempos evoluciona
• Microsoft más alineado con estándar
• Futuro en la nube
Conclusión
https://github.com/AdrianDiaz81/SharePointSaturdayBarcelona

Más contenido relacionado

La actualidad más candente

2. introduccion a vs .net
2.  introduccion a vs .net2.  introduccion a vs .net
2. introduccion a vs .net
mhormech
 
10 razones para elegir WPF
10 razones para elegir WPF10 razones para elegir WPF
10 razones para elegir WPF
bialguos
 
ventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticos
Irving Muñoz
 
Mvc + html5 + css3
Mvc + html5 + css3Mvc + html5 + css3
Mvc + html5 + css3
Marc Rubiño
 
Desarrollo de aplicaciones sobre plataformas flash
Desarrollo de aplicaciones sobre plataformas flashDesarrollo de aplicaciones sobre plataformas flash
Desarrollo de aplicaciones sobre plataformas flash
Futura Networks
 

La actualidad más candente (20)

Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5Desarrollo de Aplicaciones Web con ASP.NET MVC5
Desarrollo de Aplicaciones Web con ASP.NET MVC5
 
2. introduccion a vs .net
2.  introduccion a vs .net2.  introduccion a vs .net
2. introduccion a vs .net
 
10 razones para elegir WPF
10 razones para elegir WPF10 razones para elegir WPF
10 razones para elegir WPF
 
Javascript vuela en primera clase con Firefox OS
Javascript vuela en primera clase con Firefox OSJavascript vuela en primera clase con Firefox OS
Javascript vuela en primera clase con Firefox OS
 
NetBeans - El único IDE que necesitas
NetBeans - El único IDE que necesitasNetBeans - El único IDE que necesitas
NetBeans - El único IDE que necesitas
 
Apps web vs apps nativas
Apps web vs apps nativasApps web vs apps nativas
Apps web vs apps nativas
 
Construye un bot para Microsoft Teams sin saber programar
Construye un bot para Microsoft Teams sin saber programarConstruye un bot para Microsoft Teams sin saber programar
Construye un bot para Microsoft Teams sin saber programar
 
Herramientas Tecnologicas Virtuales
Herramientas Tecnologicas VirtualesHerramientas Tecnologicas Virtuales
Herramientas Tecnologicas Virtuales
 
ventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticosventajas y desventajas de programas informaticos
ventajas y desventajas de programas informaticos
 
Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013Proyectos de Base de Datos con Visual Studio 2013
Proyectos de Base de Datos con Visual Studio 2013
 
Integración Continua con Apps Xamarin
Integración Continua con Apps XamarinIntegración Continua con Apps Xamarin
Integración Continua con Apps Xamarin
 
Stack mean
Stack meanStack mean
Stack mean
 
Tabla comparativa
Tabla comparativaTabla comparativa
Tabla comparativa
 
Mvc + html5 + css3
Mvc + html5 + css3Mvc + html5 + css3
Mvc + html5 + css3
 
Tres tecnologías Microsoft que no se dan en la carrera
Tres tecnologías Microsoft que no se dan en la carreraTres tecnologías Microsoft que no se dan en la carrera
Tres tecnologías Microsoft que no se dan en la carrera
 
Desarrollo Plataforma Flash
Desarrollo Plataforma FlashDesarrollo Plataforma Flash
Desarrollo Plataforma Flash
 
4 Sessions Junio 2015: Aplicaciones multiplataforma - Office 365 + Cordova
4 Sessions Junio 2015: Aplicaciones multiplataforma - Office 365 + Cordova4 Sessions Junio 2015: Aplicaciones multiplataforma - Office 365 + Cordova
4 Sessions Junio 2015: Aplicaciones multiplataforma - Office 365 + Cordova
 
Introducción al Desarrollo para SharePoint con Visual Studio 2008
Introducción al Desarrollo para SharePoint con Visual Studio 2008Introducción al Desarrollo para SharePoint con Visual Studio 2008
Introducción al Desarrollo para SharePoint con Visual Studio 2008
 
TERASOFT Preparandote para la vida profesional.pptx
TERASOFT Preparandote para la vida profesional.pptxTERASOFT Preparandote para la vida profesional.pptx
TERASOFT Preparandote para la vida profesional.pptx
 
Desarrollo de aplicaciones sobre plataformas flash
Desarrollo de aplicaciones sobre plataformas flashDesarrollo de aplicaciones sobre plataformas flash
Desarrollo de aplicaciones sobre plataformas flash
 

Destacado

Bhaskara_OTM Techno-functional Consultant
Bhaskara_OTM Techno-functional ConsultantBhaskara_OTM Techno-functional Consultant
Bhaskara_OTM Techno-functional Consultant
Bhaskara Rao Guntuku
 
Investing0back0e0Caribbean0diaspora
Investing0back0e0Caribbean0diasporaInvesting0back0e0Caribbean0diaspora
Investing0back0e0Caribbean0diaspora
Sam Schneider
 

Destacado (13)

2015-06-12 yOS day n°2 Montpellier - Hybrid time
2015-06-12 yOS day n°2 Montpellier - Hybrid time2015-06-12 yOS day n°2 Montpellier - Hybrid time
2015-06-12 yOS day n°2 Montpellier - Hybrid time
 
PEC CORPORATE 2015 - Marcello Albergoni
PEC CORPORATE 2015 - Marcello AlbergoniPEC CORPORATE 2015 - Marcello Albergoni
PEC CORPORATE 2015 - Marcello Albergoni
 
Curriculum vitae anfas prof
Curriculum vitae  anfas profCurriculum vitae  anfas prof
Curriculum vitae anfas prof
 
Bhaskara_OTM Techno-functional Consultant
Bhaskara_OTM Techno-functional ConsultantBhaskara_OTM Techno-functional Consultant
Bhaskara_OTM Techno-functional Consultant
 
Resume
ResumeResume
Resume
 
Investing0back0e0Caribbean0diaspora
Investing0back0e0Caribbean0diasporaInvesting0back0e0Caribbean0diaspora
Investing0back0e0Caribbean0diaspora
 
PEC Corporate 2016 | Finalisti "The Procurement Award"
PEC Corporate 2016 | Finalisti "The Procurement Award"PEC Corporate 2016 | Finalisti "The Procurement Award"
PEC Corporate 2016 | Finalisti "The Procurement Award"
 
Metalogix roadshow 2016 Paris - Keynote SharePoint et Office 365
Metalogix roadshow 2016 Paris - Keynote SharePoint et Office 365Metalogix roadshow 2016 Paris - Keynote SharePoint et Office 365
Metalogix roadshow 2016 Paris - Keynote SharePoint et Office 365
 
Ems
EmsEms
Ems
 
Rencontre des epn de wallonie 2016
Rencontre des epn de wallonie 2016Rencontre des epn de wallonie 2016
Rencontre des epn de wallonie 2016
 
Java script para desarrolladores SharePoint
Java script para desarrolladores SharePointJava script para desarrolladores SharePoint
Java script para desarrolladores SharePoint
 
Cv of tahir hussain with Master Degree & Experience
Cv of tahir hussain with Master Degree & ExperienceCv of tahir hussain with Master Degree & Experience
Cv of tahir hussain with Master Degree & Experience
 
BLSTK Replay n°155 - la revue luxe et digitale 17.03 au 23.03.16
BLSTK Replay n°155 - la revue luxe et digitale 17.03 au 23.03.16BLSTK Replay n°155 - la revue luxe et digitale 17.03 au 23.03.16
BLSTK Replay n°155 - la revue luxe et digitale 17.03 au 23.03.16
 

Similar a SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
glfloresgilberto
 

Similar a SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos (20)

JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
 
Introducción al desarrollo web moderno
Introducción al desarrollo web modernoIntroducción al desarrollo web moderno
Introducción al desarrollo web moderno
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .net
 
Desarrollo de aplicaciones .net
Desarrollo de aplicaciones .netDesarrollo de aplicaciones .net
Desarrollo de aplicaciones .net
 
Software en la actualidad
Software en la actualidadSoftware en la actualidad
Software en la actualidad
 
Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)
 
NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017
 
Presentacion cw2012
Presentacion cw2012Presentacion cw2012
Presentacion cw2012
 
.Net framework
.Net framework.Net framework
.Net framework
 
Web services1
Web services1Web services1
Web services1
 
IDEs y Frameworks mas utilizados
IDEs y Frameworks mas utilizadosIDEs y Frameworks mas utilizados
IDEs y Frameworks mas utilizados
 
Lenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo webLenguajes y frameworks para desarrollo web
Lenguajes y frameworks para desarrollo web
 
Características de 10 lenguajes de programación
Características de 10 lenguajes de programaciónCaracterísticas de 10 lenguajes de programación
Características de 10 lenguajes de programación
 
LenguajeJavaSpringBootDesarrolloweb.pptx
LenguajeJavaSpringBootDesarrolloweb.pptxLenguajeJavaSpringBootDesarrolloweb.pptx
LenguajeJavaSpringBootDesarrolloweb.pptx
 
Share point y los dispositivos moviles
Share point y los dispositivos movilesShare point y los dispositivos moviles
Share point y los dispositivos moviles
 
Frameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web GrailsFrameworks de Desarrollo Web Grails
Frameworks de Desarrollo Web Grails
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones web
 
Novedades visual studio 2015
Novedades visual studio 2015Novedades visual studio 2015
Novedades visual studio 2015
 
Salesforce Lightning Components
Salesforce Lightning ComponentsSalesforce Lightning Components
Salesforce Lightning Components
 

Más de Adrian Diaz Cervera

Soluciones de movilidad para nuevos entornos empresariales
Soluciones de movilidad para nuevos entornos empresarialesSoluciones de movilidad para nuevos entornos empresariales
Soluciones de movilidad para nuevos entornos empresariales
Adrian Diaz Cervera
 
Webcast Office365 Introducción a desarrollar con Yammer
Webcast Office365 Introducción a desarrollar con YammerWebcast Office365 Introducción a desarrollar con Yammer
Webcast Office365 Introducción a desarrollar con Yammer
Adrian Diaz Cervera
 

Más de Adrian Diaz Cervera (20)

gRPC vs Rest La batalla final
gRPC vs Rest La batalla finalgRPC vs Rest La batalla final
gRPC vs Rest La batalla final
 
Autenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un AvengerAutenticar y securizar API en .NET Core como un Avenger
Autenticar y securizar API en .NET Core como un Avenger
 
Como desarrollar una api en .NET Core como un autentico Avenger
Como desarrollar una api en .NET Core como un autentico AvengerComo desarrollar una api en .NET Core como un autentico Avenger
Como desarrollar una api en .NET Core como un autentico Avenger
 
React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?React Hooks ¿Por donde empezar?
React Hooks ¿Por donde empezar?
 
Netcore Galica Como crear Apps multitenant en Azure
Netcore Galica Como crear Apps multitenant en AzureNetcore Galica Como crear Apps multitenant en Azure
Netcore Galica Como crear Apps multitenant en Azure
 
Global Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGameGlobal Azure Devops Bootcamp 2019 => Avengers EndGame
Global Azure Devops Bootcamp 2019 => Avengers EndGame
 
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar AzureAzure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
Azure Bootcamp Como montar una arquitectura Serverless y aprovechar Azure
 
Dockeriza tu SQL Server
Dockeriza tu SQL ServerDockeriza tu SQL Server
Dockeriza tu SQL Server
 
Desarrolla Add-Ins de Office 365 con Angular 2
Desarrolla Add-Ins de Office 365 con Angular 2Desarrolla Add-Ins de Office 365 con Angular 2
Desarrolla Add-Ins de Office 365 con Angular 2
 
Docker para desarrolladores .NET
Docker para desarrolladores .NETDocker para desarrolladores .NET
Docker para desarrolladores .NET
 
Helo10 Da inteligencia a tus Apps con el proyecto Oxford
Helo10 Da inteligencia a tus Apps con el proyecto OxfordHelo10 Da inteligencia a tus Apps con el proyecto Oxford
Helo10 Da inteligencia a tus Apps con el proyecto Oxford
 
Asp vNext Is Comming
Asp vNext Is CommingAsp vNext Is Comming
Asp vNext Is Comming
 
Gapand 2015 machine learning
Gapand 2015 machine learningGapand 2015 machine learning
Gapand 2015 machine learning
 
ALM y Office 365
ALM y Office 365 ALM y Office 365
ALM y Office 365
 
Machine learning utilizacion en redes sociales
Machine learning utilizacion en redes socialesMachine learning utilizacion en redes sociales
Machine learning utilizacion en redes sociales
 
Adrian diaz desarrollo multiplataforma en office 365
Adrian diaz desarrollo multiplataforma en office 365Adrian diaz desarrollo multiplataforma en office 365
Adrian diaz desarrollo multiplataforma en office 365
 
Extender office365
Extender office365 Extender office365
Extender office365
 
Soluciones de movilidad para nuevos entornos empresariales
Soluciones de movilidad para nuevos entornos empresarialesSoluciones de movilidad para nuevos entornos empresariales
Soluciones de movilidad para nuevos entornos empresariales
 
IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014IT Camps Apps Office 365 Valencia 2014
IT Camps Apps Office 365 Valencia 2014
 
Webcast Office365 Introducción a desarrollar con Yammer
Webcast Office365 Introducción a desarrollar con YammerWebcast Office365 Introducción a desarrollar con Yammer
Webcast Office365 Introducción a desarrollar con Yammer
 

SharePoint Saturday Barcelona. La importancia de JavaScript en nuestros desarrollos

  • 1. JavaScript y la importancia dentro del desarrollo en SharePoint/Office365/Apps Adrián Díaz Cervera September 26th, 2015 Barcelona
  • 2. Thanks to our Sponsors
  • 3. Adrián Díaz Cervera Email : addiacer@gmail.com Twitter : AdrianDiaz81 Blog blogs.encamina.com/desarrollandosos harepoint/ 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.
  • 4. 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
  • 6.
  • 7. Más de una década de evolución
  • 8. 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
  • 9. Factores del auge de JavaScript en SP  Arquitectura SOFEA  Escalabilidad.  Baja latencia.  Interoperabilidad  Separación de responsabilidades  Prototipos
  • 10. 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
  • 11.
  • 12. JavaScript es el demonio o eso parece..
  • 13. Motivos Nombre: No tiene nada que ver con JAVA Lenguaje débilmente tipado Desconocimiento de JavaScript como POO Muchos Framework y gran cantidad de cambios
  • 15.
  • 16.  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/
  • 17. • 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
  • 18. • 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
  • 19. • 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
  • 20. • 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
  • 21. • Diferencias respecto a C# Iteración en los bucles
  • 22.
  • 23.
  • 24. • 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
  • 25. Javascript Object Model SharePoint (Example)
  • 26. • 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
  • 27. • Pero no estábamos hablando de JavaScript?  Casi todos los FrameWorks JS están diseñados para tener una capa de Servicios API Rest
  • 28. • 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
  • 29. • Aprovechar al máximo las capacidades de búsqueda • Templates similar al JavaScript Display Templates
  • 31.
  • 32.
  • 33. • 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
  • 34. • 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
  • 35. • 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 ?
  • 36. • ¿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
  • 38.
  • 39.
  • 40. • 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?
  • 41. • 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
  • 42.
  • 43. • JavaScript es un lenguaje de programación • Los tiempos evoluciona • Microsoft más alineado con estándar • Futuro en la nube Conclusión

Notas del editor

  1. Template may not be modified Twitter hashtag: #spsbe for all sessions
  2. Use this as the first slide in your slide deck