SlideShare a Scribd company logo
SharePoint Framework,Angular & Azure
Functions
The modern SharePoint developer tool belt
Sébastien Levert
Hi! I’m Seb!
@sebastienlevert | http://sebastienlevert.com | Product Evangelist & Partner Manager at
Agenda
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
SPFx + Angular
Angular… But which version ?
• Works well with Angular 1.6
• Works OK with Angular 2
• Works awesome with Angular 4 (Did you just say Angular 4!?)
Is that even possible ?
• Some are thinking it is mission impossible… But it is! And it’s much
more simpler than you think.
• You have the full power of Angular within you own SPFx webparts
• Multiple webparts can exist in a page, including their own routing
configuration
https://github.com/sebastienlevert/spfx-angular-boilerplate
SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions
Dynamic Bootstrapping
protected get rootComponentType(): any {
return AppComponent;
}
protected get appDeclarationTypes(): any {
return [
DialogComponent, SitesComponent, SitesHomeComponent,
SitesFormComponent, SitesViewComponent
];
}
Dynamic Bootstrapping
private _bootStrapModule(): void {
var self = this;
platformBrowserDynamic().bootstrapModule(self._getModule()).then(
ngModuleRef => {
self._component = self._app['_rootComponents'][0]['_component’];
self.updateChanges();
self._zone.run(() => { console.log('Outside Done!'); });
}, err => {
console.log(err);
}
);
}
Dynamic Bootstrapping
const AppModule1 = Reflect.decorate([
NgModule({
imports: [BrowserModule, FormsModule, HttpModule, routes],
declarations: declarations,
bootstrap: [component],
exports: [RouterModule],
providers: providers
}),
Reflect.metadata('design:paramtypes', [ApplicationRef, NgZone])
], AppModule);
Routing
const routes: Routes = [
{ path: '', component: SitesComponent, children: [
{ path: '', component: SitesHomeComponent },
{ path: 'sites', children: [
{ path: 'new', component: SitesFormComponent },
{ path: ':id', component: SitesViewComponent }
]},
]}
];
import { appRoutes } from "./app/app.routes"
protected get routes(): any {
return appRoutes;
}
Global Configurations
import { ConfigurationService } from
"./app/services/ConfigurationService";
ConfigurationService
{ provide: APP_INITIALIZER, useFactory: (configurationService:
ConfigurationService) => () => configurationService.load({
functionUrl: this.properties.functionUrl,
functionKey: this.properties.functionKey,
description: this.properties.description,
styles: styles
}), deps: [ConfigurationService], multi: true }
Mocking Data
if (Environment.type === EnvironmentType.Local) {
return [
{ provide: SitesService, useClass: MockSitesService },
];
} else if (Environment.type == EnvironmentType.SharePoint ||
Environment.type == EnvironmentType.ClassicSharePoint) {
return [
{ provide: SitesService, useClass: SitesService },
];
}
Mocking Data
export class MockSitesService implements ISitesService {
public createSite(siteInformation: ISiteCreationInformation):
Observable<ISiteCreationResponse> {
return Observable.of<ISiteCreationResponse>({
description: `${siteInformation.description} (Mocked)`,
email: `${siteInformation.url}@mocked.onmicrosoft.com`,
id: "00000000-0000-0000-0000-000000000000",
title: `${siteInformation.title} (Mocked)`,
url: `#${siteInformation.url}`
}).delay(2000);
}
}
Azure Functions
Why Azure Functions ?
• Cheap way to host any API in Azure
• You can use your favorite language
• Super cheap to run
• Perfect companion for any Single Page Application or any JavaScript
component
Our scenario
• Using the PnP PowerShell Cmdlets
• Connecting to the Microsoft Graph and to an Azure AD Application
• Creating a ModernTeam Site (in under 15 seconds) based on a set of
parameters
• Boom!
Make it happen
The full scenario
• Build a SharePoint Framework WebPart
• Use Angular as our main Framework
• Include 3 routes (Home, New Site and Site Information)
• Use Azure Function as my backend provisioning API
• Use the Office UI Fabric components
What about the Office UI Fabric ?
• Well…You have 2 choices : Build or Reuse
• My choice ? Reuse !
• But Seb… It’s Angular, I can’t reuse what does not exist…
• Well…The React components exist, just reuse them !
Lessons learned
• Never use any class or ids from the DOM. Always use theViewChild
attribute.
• You can use html templates using the require() approach.Try to do
that, React!
• When you have a strong AngularJS background, it feels just a little bit
weird to move to Angular, but you will get used to it!
Next Steps
Resources
• https://github.com/SharePoint/sp-dev-fx-
webparts/tree/master/samples/angular2-prototype
• https://dev.office.com/sharepoint/docs/spfx/sharepoint-framework-
overview
• http://dev.office.com/fabric#/components
Samples
• https://github.com/sebastienlevert/spfx-angular-poc
• https://github.com/sebastienlevert/spfx-angular-boilerplate
Share your experience
• Use hashtags to share your experience
• #Office365Dev
• #MicrosoftGraph
• #AzureFunctions
• #SPFx
• Log issues & questions to the GitHub Repositories
Thank you!
@sebastienlevert | http://sebastienlevert.com | Product Evangelist & Partner Manager at

More Related Content

What's hot (20)

PDF
Messaging Elixir
Kohei Kimura
 
PDF
Colorado Cloud Foundry Meeting
ncayou
 
PDF
Elixir と Maru で REST API
Kohei Kimura
 
PDF
Intro To Serverless ClojureScript
Jim Lynch
 
PDF
Put a Button on It: Removing Barriers to Going Fast
OSCON Byrum
 
PPTX
Getting Started with ASP.NET 5
Brij Mishra
 
PPTX
10 tips to make your ASP.NET Apps Faster
Brij Mishra
 
PPTX
Building a scalable API with Grails
Tanausu Cerdeña
 
PPTX
Building real time app by using asp.Net Core
Commit Software Sh.p.k.
 
PPTX
React native introduction
InnerFood
 
PDF
Exposing Salesforce REST Services Using Swagger
Salesforce Developers
 
PPTX
SharePoint Saturday New York 2017 - SharePoint Framework, Angular and Azure F...
Sébastien Levert
 
PDF
Rails 5 – most effective features for apps upgradation
Andolasoft Inc
 
PDF
Lambdaless and AWS CDK
MooYeol Lee
 
PDF
Serverless computing con Azure Functions
Hernan Guzman
 
PDF
Going Headless with Craft CMS 3.3
JustinHolt20
 
PDF
Continuous delivery in AWS
Anton Babenko
 
PPTX
ASP.NET Core
Abhimanyu Singhal
 
PDF
Quick Way to work with Models and Alloy in Appcelerator Titanium
Aaron Saunders
 
PDF
Rob Gruhl and Erik Erikson - What We Learned in 18 Serverless Months at Nords...
ServerlessConf
 
Messaging Elixir
Kohei Kimura
 
Colorado Cloud Foundry Meeting
ncayou
 
Elixir と Maru で REST API
Kohei Kimura
 
Intro To Serverless ClojureScript
Jim Lynch
 
Put a Button on It: Removing Barriers to Going Fast
OSCON Byrum
 
Getting Started with ASP.NET 5
Brij Mishra
 
10 tips to make your ASP.NET Apps Faster
Brij Mishra
 
Building a scalable API with Grails
Tanausu Cerdeña
 
Building real time app by using asp.Net Core
Commit Software Sh.p.k.
 
React native introduction
InnerFood
 
Exposing Salesforce REST Services Using Swagger
Salesforce Developers
 
SharePoint Saturday New York 2017 - SharePoint Framework, Angular and Azure F...
Sébastien Levert
 
Rails 5 – most effective features for apps upgradation
Andolasoft Inc
 
Lambdaless and AWS CDK
MooYeol Lee
 
Serverless computing con Azure Functions
Hernan Guzman
 
Going Headless with Craft CMS 3.3
JustinHolt20
 
Continuous delivery in AWS
Anton Babenko
 
ASP.NET Core
Abhimanyu Singhal
 
Quick Way to work with Models and Alloy in Appcelerator Titanium
Aaron Saunders
 
Rob Gruhl and Erik Erikson - What We Learned in 18 Serverless Months at Nords...
ServerlessConf
 

Similar to SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions (20)

PPTX
SharePoint Framework, Angular and Azure Functions
Sébastien Levert
 
PPTX
European Collaboration Summit - SharePoint Framework Angular & Azure Functions
Sébastien Levert
 
PPTX
SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...
Sébastien Levert
 
PPTX
European SharePoint Conference 2017 - SharePoint Framework, Angular & Azure F...
Sébastien Levert
 
PPTX
SharePoint Saturday Twin Cities - SharePoint Framework, Angular & Azure Funct...
Sébastien Levert
 
PPTX
SharePoint Saturday Vancouver - SharePoint Framework, Angular and Azure Funct...
Sébastien Levert
 
PPTX
SharePoint Fest DC - SharePoint Framework, Angular and Azure Functions
Sébastien Levert
 
PPTX
SharePoint Fest Chicago 2017 - SharePoint Framework, Angular & Azure Functions
Sébastien Levert
 
PPTX
North American Collaboration Summit 2018 - SharePoint Framework, Angular and ...
Sébastien Levert
 
PPTX
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...
Sébastien Levert
 
PPTX
SharePoint Saturday Utah 2018 - SharePoint Framework, Angular and Azure Funct...
Sébastien Levert
 
PPTX
Angular vs React: Building modern SharePoint interfaces with SPFx
Dimcho Tsanov
 
PPTX
SharePoint Framework at a glance
Haaron Gonzalez
 
PPTX
React or Angular and SharePoint Framework Development
Darin Dickey
 
PDF
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
Bill Ayers
 
PDF
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
SPS Paris
 
PPTX
SharePoint Saturday Zurich 2017 - SharePoint Framework the new development way
Giuliano De Luca
 
PPTX
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
European Collaboration Summit
 
PPTX
SharePoint Framework tips and tricks
Giuseppe Marchi
 
PPTX
SPFx (SharePoint Framework)
Małgorzata Borzęcka
 
SharePoint Framework, Angular and Azure Functions
Sébastien Levert
 
European Collaboration Summit - SharePoint Framework Angular & Azure Functions
Sébastien Levert
 
SharePoint Saturday Lisbon 2017 - SharePoint Framework, Angular & Azure Funct...
Sébastien Levert
 
European SharePoint Conference 2017 - SharePoint Framework, Angular & Azure F...
Sébastien Levert
 
SharePoint Saturday Twin Cities - SharePoint Framework, Angular & Azure Funct...
Sébastien Levert
 
SharePoint Saturday Vancouver - SharePoint Framework, Angular and Azure Funct...
Sébastien Levert
 
SharePoint Fest DC - SharePoint Framework, Angular and Azure Functions
Sébastien Levert
 
SharePoint Fest Chicago 2017 - SharePoint Framework, Angular & Azure Functions
Sébastien Levert
 
North American Collaboration Summit 2018 - SharePoint Framework, Angular and ...
Sébastien Levert
 
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...
Sébastien Levert
 
SharePoint Saturday Utah 2018 - SharePoint Framework, Angular and Azure Funct...
Sébastien Levert
 
Angular vs React: Building modern SharePoint interfaces with SPFx
Dimcho Tsanov
 
SharePoint Framework at a glance
Haaron Gonzalez
 
React or Angular and SharePoint Framework Development
Darin Dickey
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
Bill Ayers
 
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
SPS Paris
 
SharePoint Saturday Zurich 2017 - SharePoint Framework the new development way
Giuliano De Luca
 
[Patel] SPFx: An ISV Insight into latest Microsoft's customization model
European Collaboration Summit
 
SharePoint Framework tips and tricks
Giuseppe Marchi
 
SPFx (SharePoint Framework)
Małgorzata Borzęcka
 
Ad

More from Sébastien Levert (20)

PPTX
SharePoint Fest Chicago 2019 - Build a Full Intranet in 70 minutes
Sébastien Levert
 
PPTX
SharePoint Fest Chicago 2019 - Building tailored search experiences in Modern...
Sébastien Levert
 
PPTX
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
PPTX
ESPC19 - Supercharge Your Teams Experience with Advanced Development Techniques
Sébastien Levert
 
PPTX
ESPC19 - Build Your First Microsoft Teams App Using SPFx
Sébastien Levert
 
PPTX
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
PPTX
SharePoint Fest Seattle 2019 - Building tailored search experiences in Modern...
Sébastien Levert
 
PPTX
SPC19 - Building tailored search experiences in Modern SharePoint
Sébastien Levert
 
PPTX
SharePoint Fest 2019 - Build an intelligent application by connecting it to t...
Sébastien Levert
 
PPTX
SharePoint Fest DC 2019 - Bot Framework and Microsoft Graph - Join The Revolu...
Sébastien Levert
 
PPTX
SharePoint Fest DC 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
PPTX
Webinar - 2020-03-24 - Build your first Microsoft Teams app using SPFx
Sébastien Levert
 
PPTX
SPTechCon Austin 2019 - Top 10 feature trends to make you fall in love with y...
Sébastien Levert
 
PPTX
SPTechCon Austin 2019 - From SharePoint to Office 365 development
Sébastien Levert
 
PPTX
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
Sébastien Levert
 
PPTX
SharePoint Saturday Vienna 2018 - Top 10 feature trends to make you fall in l...
Sébastien Levert
 
PPTX
SharePoint Saturday Vienna 2018 - Building a modern intranet in 60 minutes
Sébastien Levert
 
PPTX
European SharePoint Conference 2018 - Build an intelligent application by con...
Sébastien Levert
 
PPTX
SharePoint Saturday Belgium 2018 - APIs, APIs everywhere!
Sébastien Levert
 
PPTX
Nashville SharePoint User Group 2018 - Building a modern intranet in 60 minutes
Sébastien Levert
 
SharePoint Fest Chicago 2019 - Build a Full Intranet in 70 minutes
Sébastien Levert
 
SharePoint Fest Chicago 2019 - Building tailored search experiences in Modern...
Sébastien Levert
 
SharePoint Fest Chicago 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
ESPC19 - Supercharge Your Teams Experience with Advanced Development Techniques
Sébastien Levert
 
ESPC19 - Build Your First Microsoft Teams App Using SPFx
Sébastien Levert
 
SharePoint Fest Seattle 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
SharePoint Fest Seattle 2019 - Building tailored search experiences in Modern...
Sébastien Levert
 
SPC19 - Building tailored search experiences in Modern SharePoint
Sébastien Levert
 
SharePoint Fest 2019 - Build an intelligent application by connecting it to t...
Sébastien Levert
 
SharePoint Fest DC 2019 - Bot Framework and Microsoft Graph - Join The Revolu...
Sébastien Levert
 
SharePoint Fest DC 2019 - From SharePoint to Office 365 Development
Sébastien Levert
 
Webinar - 2020-03-24 - Build your first Microsoft Teams app using SPFx
Sébastien Levert
 
SPTechCon Austin 2019 - Top 10 feature trends to make you fall in love with y...
Sébastien Levert
 
SPTechCon Austin 2019 - From SharePoint to Office 365 development
Sébastien Levert
 
SharePoint Fest Chicago 2018 - From SharePoint to Office 365 development
Sébastien Levert
 
SharePoint Saturday Vienna 2018 - Top 10 feature trends to make you fall in l...
Sébastien Levert
 
SharePoint Saturday Vienna 2018 - Building a modern intranet in 60 minutes
Sébastien Levert
 
European SharePoint Conference 2018 - Build an intelligent application by con...
Sébastien Levert
 
SharePoint Saturday Belgium 2018 - APIs, APIs everywhere!
Sébastien Levert
 
Nashville SharePoint User Group 2018 - Building a modern intranet in 60 minutes
Sébastien Levert
 
Ad

Recently uploaded (20)

PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
PDF
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
POV_ Why Enterprises Need to Find Value in ZERO.pdf
darshakparmar
 
Transcript: Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
The 2025 InfraRed Report - Redpoint Ventures
Razin Mustafiz
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 

SharePoint Fest Seattle - SharePoint Framework, Angular & Azure Functions