Desarrolla Add-Ins de Office 365 con Angular 2

36
#spsmad May 7 th , 2016 SharePoint Saturday Madrid Desarrollando Add-In con Angular2 Adrián Díaz Cervera Software Architecht at ENCAMINA

Transcript of Desarrolla Add-Ins de Office 365 con Angular 2

Page 1: Desarrolla Add-Ins de Office 365 con Angular 2

#spsmad

May 7th, 2016SharePoint Saturday Madrid

Desarrollando Add-In con Angular2Adrián Díaz Cervera Software Architecht at ENCAMINA

Page 2: Desarrolla Add-Ins de Office 365 con Angular 2

Gold sponsors

Silver sponsors

Bronze sponsors

Collaborate

Page 3: Desarrolla Add-Ins de Office 365 con Angular 2

RafflePlease, fill your SPS Madrid passport if you want to participate.You must get signature from sponsors and complete the poll.Give us the passport at 6:00 PM in the Auditorium room.You can win one Sphero BB-8 or a mini drone:

Page 4: Desarrolla Add-Ins de Office 365 con Angular 2

#spsmad

Adrián Díaz CerveraMV. Office Servers and Services

http://blogs.encamina.com/desarrollandosobresharepointAdrianDiaz81

Software Architect at

Page 5: Desarrolla Add-Ins de Office 365 con Angular 2

Agenda El futuro del desarrollo en SharePoint

Angular 2 vs Angular 1 Características de Angular 2 Servicios Testing Demo

Page 6: Desarrolla Add-Ins de Office 365 con Angular 2

Todo lo que se va a ver en esta sesión esta en fase experimental

No utilizar sino esta acompañado de frikis igual que yo

No poner en entornos de PRODUCCION bajo ningún concepto

Page 7: Desarrolla Add-Ins de Office 365 con Angular 2

It’s morning again in SharePoint

Page 8: Desarrolla Add-Ins de Office 365 con Angular 2

The SharePoint Framework

Page 9: Desarrolla Add-Ins de Office 365 con Angular 2

The SharePoint Framework

Page 10: Desarrolla Add-Ins de Office 365 con Angular 2

The SharePoint FrameWork: Tooling

NodeJS No necesario IIS ni SharePoint

Code IDE Multiplataforma orientado a Web

NPM Gestor de paquetes de NodeJ

Gulp Automatización de Tareas

Typescript Javascript con SuperPoderes

Page 11: Desarrolla Add-Ins de Office 365 con Angular 2

Angular 2 vs Angular 1

¿Evolución o Revolución?

Page 12: Desarrolla Add-Ins de Office 365 con Angular 2

¿ Que nos proporciona Angular?

Page 13: Desarrolla Add-Ins de Office 365 con Angular 2

Esta basado en una arquitectura MV*

Poca flexibilización para cambiar módulos de Angular (Route, inyección de dependencias)

Mucha magia oculta

Web Components Patrón/moda para el desarrollo Web

Cual era el problema

Page 14: Desarrolla Add-Ins de Office 365 con Angular 2

Angular 2

Page 15: Desarrolla Add-Ins de Office 365 con Angular 2
Page 16: Desarrolla Add-Ins de Office 365 con Angular 2

Características de Angular 2

Page 17: Desarrolla Add-Ins de Office 365 con Angular 2

Formado por 4 elementos:

Custom Elements Elementos PersonalizadosTemplates PlantillasShadow DOM HTML Imports

Web Components

Page 18: Desarrolla Add-Ins de Office 365 con Angular 2

Arquitectura de una App en Angular 2

Page 19: Desarrolla Add-Ins de Office 365 con Angular 2

¿Qué es un Componente?

Page 20: Desarrolla Add-Ins de Office 365 con Angular 2

En que lenguajes puedo desarrollar en Angular 2

Page 21: Desarrolla Add-Ins de Office 365 con Angular 2

Creando una Aplicación Angular 2 1. Crear una carpeta2. Crear un tsconfig.json3. Crear un package.json4. Crear un typings.json5. Instalar las librerías y los

tipos 6. Crear una pagina de Inicio7. Crear un punto de arranque

Page 22: Desarrolla Add-Ins de Office 365 con Angular 2

Demo TIME

Page 23: Desarrolla Add-Ins de Office 365 con Angular 2

Component

Importar Clases

Clase

Metadata y Template

Page 24: Desarrolla Add-Ins de Office 365 con Angular 2

Una función que añade metadatos las clases-> similar a methos

Prefijo con @

@Component()

¿Que son los decoradores?

Page 25: Desarrolla Add-Ins de Office 365 con Angular 2

Definendo los Metadatos@Component({ selector: 'ContactsDetailComponent', viewBindings: [o365Adal], directives: [NgFor], templateUrl: 'app/contacts/contacts-detail.component.html', styleUrls: ['app/contacts/contacts-detail.component.css']})

Decorador

Templates & CSS

Nombre usado en HTML

Otros atributos

Page 26: Desarrolla Add-Ins de Office 365 con Angular 2

Arranque de la AplicaciónIndex.html Main.ts

(bootstrapper)

Page 27: Desarrolla Add-Ins de Office 365 con Angular 2

Definiendo un template en un Componente

Enlace al templateInline Template

Page 28: Desarrolla Add-Ins de Office 365 con Angular 2

Comunica el componente con el template

Bindings

Page 29: Desarrolla Add-Ins de Office 365 con Angular 2

Interpolation

Page 30: Desarrolla Add-Ins de Office 365 con Angular 2

Data Binding

Page 31: Desarrolla Add-Ins de Office 365 con Angular 2

Construyendo un Servicioimport { Http, Headers } from 'angular2/http';import { Injectable } from 'angular2/core';@Injectable()export class o365Adal { private config: any = { tenant: 'adriandiaz.onmicrosoft.com', clientId: '', postLogoutRedirectUri: window.location.origin, endpoints: { officeGraph: 'https://graph.microsoft.com' }, cacheLocation: 'localStorage', };

AdalService.ts

Page 32: Desarrolla Add-Ins de Office 365 con Angular 2

Inyectando el Servicioimport {Component} from 'angular2/core';import {o365Adal} from './../services/o365Adal';import { ROUTER_DIRECTIVES } from 'angular2/router';

export class Contacts extends BaseComponent { contacts: Array<any>; constructor(private adalService: o365Adal) { }}

Contacts.ts

Page 33: Desarrolla Add-Ins de Office 365 con Angular 2

Arquitectura de la Aplicación

Index.html App Component

Adal Service

Welcome Component

Contacts Component

ContactsDetail

Component

Page 34: Desarrolla Add-Ins de Office 365 con Angular 2

Demo TIME

Page 35: Desarrolla Add-Ins de Office 365 con Angular 2

Preguntas !!

Adrián Díaz Cervera• Software Architect Lead at Encamina• MVP Office and Servers http://blogs.encamina.com/[email protected] @AdrianDiaz81

Page 36: Desarrolla Add-Ins de Office 365 con Angular 2

THANKS !!