SlideShare ist ein Scribd-Unternehmen logo
1 von 37
An Insight company
Bob German
Principal Architect - BlueMetal
Introduction to the
SharePoint Framework
Thank You
EVENT Sponsors
We appreciated you supporting the
New York SharePoint Community!
• Diamond, Platinum, Gold, & Silver have
tables scattered throughout
• Please visit them and inquire about their
products & services
• To be eligible for prizes make sure to get your
bingo card stamped by ALL sponsors
• Raffle at the end of the day and you must be
present to win!
Bob German
Bob is a Principal Architect at BlueMetal, where he
leads Office 365 and SharePoint development for
enterprise customers.
Cloud & Services
Content & Collaboration
Data & Analytics
Devices & Mobility
Strategy & Design
An Insight company
@Bob1German
Agenda
• A Geological View of SharePoint
• Developing “from scratch” for the SharePoint Framework
• Client-Side Solutions
• Web Parts
• Single Page Apps
• List Apps
• Action Plan and Resources
@Bob1German
A Geological View of SharePoint
ASP.NET WebForms
ASP.NET AJAX, Scripting On Demand
SharePoint Page Models
XSLT
Custom Actions (JavaScript)
JSLink, Display Templates
Add-in Model
SharePoint Framework: A Clean Slate
SharePoint Framework: A Clean Slate
• A completely new SharePoint UI for Office 365 and SharePoint 2016
• New client-side page model
• Modern and responsive – allows “mobile first” development for
SharePoint
• Mix classic and client-side pages in a SharePoint site
• Client-side web parts work on both classic and client-side pages
• It’s still early! Open questions:
• What OOB web parts will be available for the new pages?
• How will branding work?
• How flexible will the page layout be?’
• How will it integrate with the add-in model?
demo
Authoring Canvas in Office 365 Blogs
Farm and
Sandboxed
Solutions
Add-in
Model
SharePoint
Developer
Microsoft moved the cheese… again!
JavaScript and
TypeScript
Widgets
SharePoint
Framework
Comparing the Models
Add-in Models SP Framework
Mobile-ready
Direct access to page (e.g. Connected Web Parts)
Ease of Data Access
Ease of Upgrade (of your solution)
Protection from Untrusted Code
Storefront Distribution
@Bob1German
Open Source Tools
Trad New
Templating Visual Studio Yeoman http://bit.ly/SPF-Yeoman
Language C#, JavaScript Typescript http://bit.ly/SPF-TypeScript
Runtime Env’t .NET, JS Any JS Framework http://bit.ly/SPF-JSFrameworks
Code Editor Visual Studio Visual Studio Code
(or your choice)
http://bit.ly/SPF-VSCode
Packages nuget npm http://bit.ly/SPF-npm
Task Runner Visual Studio Gulp http://bit.ly/SPF-Gulp
Compiler Visual Studio tsc http://bit.ly/SPF-TypeScript
Bundling Visual Studio WebPack http://bit.ly/SPF-WebPack
Links are case
sensitive!
@Bob1German
Project Folder
/dest
/sharepoint
SP Framework Development Process
Project Folder
/src
JavaScript
Bundles
.spapp
Local
workbench
workbench.aspx
in SharePoint
Content Delivery
Network
SharePoint
Client-side “App”
Deplyed in
SharePoint
1
2
3
@Bob1German
Don’t Panic!
Microsoft is being more
open than ever before;
the software you are
about to see isn’t even in
preview yet.
The tools and user
experience will get a lot
better before it ships!
demo
yo sharepoint
Part 1:
• Creating a project
• Using the SharePoint Workbench
demo
yo sharepoint
Part 2:
• Packaging and Uploading to SharePoint
• Viewing on a Classic Page
demo
yo sharepoint
Part 3:
• Deploying to a CDN
Now … where is the web part?
Splitting and Bundling
• Freely split your code into multiple files
• Each is translated to JavaScript and placed in a module based on the
filename
• TypeScript is compiled to JavaScript
• Less is compiled to CSS in a JavaScript string
• HTML becomes a JavaScript string
• JavaScript is just placed in the module
• Use exports and require to expose and consume across modules
• Advantages
• Ease of development / modularity
• Efficient download and caching
• Synchronous access (never wait for a script to load!)
Splitting and Bundling
.ts
.ts
.js
.html
.less
Webpack
0: javascript
Compilers
(.ts  .js,
.less  .css)
Gulp task runner
1: javascript
2: javascript
(html in string)
3: javascript
4: javascript
(css in string)
Javascript bundleSource Files
An Insight company
A Brief Introduction to
TypeScript
What is Typescript?
Typescript is a subset of JavaScript, and is “transpiled” into
regular JavaScript.
• Static type checking catches errors earlier
• Intellisense
• Use ES6 features in ES3, ES5 (or at least get compatibility checking)
• Class structure familiar to .NET programmers
let x = 5;
for (let x=1; x<10; x++) {
console.log (‘x is ‘ + x.toString());
}
console.log (‘In the end, x is ‘ +
x.toString());
var x = -1;
for (var x_1 = 1; x_1 < 10; x_1++) {
console.log("x is " + x_1.toString());
}
console.log("In the end, x is " +
x.toString()); // -1
(1) Type Annotations
var myString: string = '<u>Results</u><br />';
var myNum : number = 123;
var myAny : any = "Hello";
myString = <number>myAny;
var myDate: Date = new Date;
var myElement: HTMLElement = document.getElementsByTagName('body')[0];
var myFunc : (x:number) => number =
function(x:number) : number { return x+1; }
var myPeople: {firstName: string, lastName: string}[] =
[
{ firstName: “Alice", lastName: “Grapes" },
{ firstName: “Bob", lastName: “German" }
]
Intrinsics
Any and
Casting
Built-in
objects
Functions
Complex
Types
(2) ES6 Compatibility
var myFunc : (nx:number) => number =
(n:number) => {
return n+1;
}
let x:number = 1;
if (true) { let x:number = 100; }
if (x === 1) { alert ('It worked!') }
var target: string = ‘world';
var greeting: string = `Hello, ${target}’;
“Fat Arrow”
function
syntax
Block
scoped
variables
Template
strings
(3) Classes and Interfaces
interface IPerson {
getName(): string;
}
class Person implements IPerson {
private firstName: string;
private lastName: string;
constructor (firstName: string, lastName:string) {
this.firstName = firstName;
this.lastName = lastName;
}
getName() { return this.firstName + " " + this.lastName; }
}
var me: IPerson = new Person("Bob", "German");
var result = me.getName();
Interface
Class
Usage
(4) Typescript Definitions
var oldStuff = oldStuff || {};
oldStuff.getMessage = function() {
var time = (new Date()).getHours();
var message = "Good Day"
if (time < 12) {
message = "Good Morning"
} else if (time <18) {
message = "Good Afternoon"
} else {
message = "Good Evening"
}
return message;
};
interface IMessageGiver {
getMessage: () => string
}
declare var oldStuff: IMessageGiver;
var result:string = oldStuff.getMessage();
document.getElementById('output').innerHTML = result;
myCode.ts
(TypeScript code wants to call legacy JavaScript)
oldStuff.js
(legacy JavaScript)
oldStuff.d.ts
(TypeScript Definition)
An Insight company
Developing Client-Side
Projects
with SharePoint Framework
Client-Side Projects
1 Client-Side Web
Parts
Run on classic and client-side pages
2 Client-Side Apps
(single page)
Your Single-Page application hosted in
SharePoint
3 Client-Side Apps (list)
A SharePoint list with forms (AllItems, Display,
Edit, New)
demo
Weather Web Part
demo
Client-Side Page Application
demo
Client-Side List Application
So now what?
WTF! Is Microsoft serious?
When will it ship?
Where do I get it?
How do I get started?
Yes – Microsoft is serious about modernizing
SharePoint!
Prediction: Over the next few years, Microsoft will change
the entire SharePoint user experience to meet the needs of
a modern, mobile workforce.
It’s like upgrading a car, one part at a time – while you’re
driving it cross country!
Web Parts
O365 – mid 2016
New Pages
O365 – late 2016
SP2016 Feature Pack
early 2017
Web Era Cloud and Device Era
Yes – Microsoft is serious about modernizing
SharePoint!
The SharePoint Framework is additive!
• Classic SharePoint pages can run the new web parts
• Classic SharePoint sites can include the new full-page
solutions
It should be possible to transition our sites gradually to the
new model
Web Era Cloud and Device Era
Tooling Up
TypeScript TypeScript Site
• http://bit.ly/SPF-TypeScript
TypeScript Playground
• http://bit.ly/TSPlayground
Bob’s TS “Cheat Sheets”
• http://bit.ly/LearnTypeScript
WebPack WebPack Site
• http://bit.ly/SPF-WebPack
REST API’s SharePoint REST API reference
• http://bit.ly/SP-REST
Gulp Gulp task runner
• http://bit.ly/SPF-Gulp
VS Code Visual Studio Code
• http://bit.ly/SPF-VSCode
Join me Thursday at 3:45 for:
Future-Proof Development for SharePoint and
SharePoint Online
Conference Materials
• Slides / Demo will be posted on Lanyrd.com
• http://lanyrd.com/2016/spsnyc
• Photos posted to our Facebook page
• https://www.facebook.com/sharepointsaturdaynyc
• Tweet Us - @SPSNYC or #SPSNYC
• Sign Up for our NO SPAM mailing list for all
conference news & announcements
• http://goo.gl/7WzmPW
• Problems / Questions / Complaints / Suggestions
• Info@SPSNYMetro.com
• Visit ExtaCloud’s booth for wrist bands!
Scallywag's Irish Pub
508 9th Ave, between 38th & 39th.
[6 minutes walk]
Scallywags also serves food.
http://www.scallywagsnyc.com/
An Insight company
Thank you.

Weitere ähnliche Inhalte

Was ist angesagt?

SharePoint - Creating Beautiful Yet Powerful Dashboards Using jQuery
SharePoint - Creating Beautiful Yet Powerful Dashboards Using jQuerySharePoint - Creating Beautiful Yet Powerful Dashboards Using jQuery
SharePoint - Creating Beautiful Yet Powerful Dashboards Using jQuery
Ken Kuzdas
 
Dynamic no-code mashups in SharePoint 2010 and 2013
Dynamic no-code mashups in SharePoint 2010 and 2013Dynamic no-code mashups in SharePoint 2010 and 2013
Dynamic no-code mashups in SharePoint 2010 and 2013
C/D/H Technology Consultants
 
SPUnite17 Migrating your Customizations from On-prem to SharePoint Online
SPUnite17 Migrating your Customizations from On-prem to SharePoint OnlineSPUnite17 Migrating your Customizations from On-prem to SharePoint Online
SPUnite17 Migrating your Customizations from On-prem to SharePoint Online
NCCOMMS
 

Was ist angesagt? (20)

Keeping up to date
Keeping up to dateKeeping up to date
Keeping up to date
 
SharePoint Fest Chicago - Introduction to AngularJS with the Microsoft Graph
SharePoint Fest Chicago - Introduction to AngularJS with the Microsoft GraphSharePoint Fest Chicago - Introduction to AngularJS with the Microsoft Graph
SharePoint Fest Chicago - Introduction to AngularJS with the Microsoft Graph
 
SharePoint - Creating Beautiful Yet Powerful Dashboards Using jQuery
SharePoint - Creating Beautiful Yet Powerful Dashboards Using jQuerySharePoint - Creating Beautiful Yet Powerful Dashboards Using jQuery
SharePoint - Creating Beautiful Yet Powerful Dashboards Using jQuery
 
SharePoint Fest Chicago - From SharePoint to Office 365 Development
SharePoint Fest Chicago - From SharePoint to Office 365 DevelopmentSharePoint Fest Chicago - From SharePoint to Office 365 Development
SharePoint Fest Chicago - From SharePoint to Office 365 Development
 
Teams - There's no place like home
Teams - There's no place like homeTeams - There's no place like home
Teams - There's no place like home
 
SPSNL17 - Implementing SharePoint hybrid search, start to finish - Thomas Voc...
SPSNL17 - Implementing SharePoint hybrid search, start to finish - Thomas Voc...SPSNL17 - Implementing SharePoint hybrid search, start to finish - Thomas Voc...
SPSNL17 - Implementing SharePoint hybrid search, start to finish - Thomas Voc...
 
Microsoft Flow advanced: tips, pitfalls, problems and warnings to be known be...
Microsoft Flow advanced: tips, pitfalls, problems and warnings to be known be...Microsoft Flow advanced: tips, pitfalls, problems and warnings to be known be...
Microsoft Flow advanced: tips, pitfalls, problems and warnings to be known be...
 
Dynamic no-code mashups in SharePoint 2010 and 2013
Dynamic no-code mashups in SharePoint 2010 and 2013Dynamic no-code mashups in SharePoint 2010 and 2013
Dynamic no-code mashups in SharePoint 2010 and 2013
 
Office apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thingOffice apps in Office 365 - Napa the next big thing
Office apps in Office 365 - Napa the next big thing
 
O365Con18 - Bridge Over O365 Gaps and Enhance User Satisfaction - Nimrod Geva
O365Con18 - Bridge Over O365 Gaps and Enhance User Satisfaction - Nimrod GevaO365Con18 - Bridge Over O365 Gaps and Enhance User Satisfaction - Nimrod Geva
O365Con18 - Bridge Over O365 Gaps and Enhance User Satisfaction - Nimrod Geva
 
Don't simply deploy, transform! Build your digital workplace in Office 365
Don't simply deploy, transform! Build your digital workplace in Office 365Don't simply deploy, transform! Build your digital workplace in Office 365
Don't simply deploy, transform! Build your digital workplace in Office 365
 
O365Con18 - Microsoft Graph, a Walk-through - Adis Jugo
O365Con18 - Microsoft Graph, a Walk-through - Adis JugoO365Con18 - Microsoft Graph, a Walk-through - Adis Jugo
O365Con18 - Microsoft Graph, a Walk-through - Adis Jugo
 
ECS19 - Gokan Ozcifci - PowerApps and SharePoint: Better together.
ECS19 - Gokan Ozcifci - PowerApps and SharePoint: Better together.ECS19 - Gokan Ozcifci - PowerApps and SharePoint: Better together.
ECS19 - Gokan Ozcifci - PowerApps and SharePoint: Better together.
 
Mastering Office 365 Development - Toni Pohl, atwork
Mastering Office 365 Development - Toni Pohl, atworkMastering Office 365 Development - Toni Pohl, atwork
Mastering Office 365 Development - Toni Pohl, atwork
 
An Introduction to the Office 365 Patterns and Practices Project
An Introduction to the Office 365 Patterns and Practices ProjectAn Introduction to the Office 365 Patterns and Practices Project
An Introduction to the Office 365 Patterns and Practices Project
 
Intro to the Office UI Fabric
Intro to the Office UI FabricIntro to the Office UI Fabric
Intro to the Office UI Fabric
 
Improving Productivity and Changing Your Stars Using SharePoint
Improving Productivity and Changing Your Stars Using SharePointImproving Productivity and Changing Your Stars Using SharePoint
Improving Productivity and Changing Your Stars Using SharePoint
 
Global o365 developer bootcamp nj - slides
Global o365 developer bootcamp   nj - slidesGlobal o365 developer bootcamp   nj - slides
Global o365 developer bootcamp nj - slides
 
SPUnite17 Migrating your Customizations from On-prem to SharePoint Online
SPUnite17 Migrating your Customizations from On-prem to SharePoint OnlineSPUnite17 Migrating your Customizations from On-prem to SharePoint Online
SPUnite17 Migrating your Customizations from On-prem to SharePoint Online
 
Branding Office 365 w/ Front End Tools + SharePoint PnP
Branding Office 365 w/ Front End Tools + SharePoint PnPBranding Office 365 w/ Front End Tools + SharePoint PnP
Branding Office 365 w/ Front End Tools + SharePoint PnP
 

Andere mochten auch

Force Majeure in France Poten Partners/CR weber Capitallinkweek21
Force Majeure in France Poten Partners/CR weber Capitallinkweek21Force Majeure in France Poten Partners/CR weber Capitallinkweek21
Force Majeure in France Poten Partners/CR weber Capitallinkweek21
GE 94
 

Andere mochten auch (20)

Sharepoint
SharepointSharepoint
Sharepoint
 
SharePoint Frameworks Webinar-Part 1 from SPANG Technologies
SharePoint Frameworks Webinar-Part 1 from SPANG TechnologiesSharePoint Frameworks Webinar-Part 1 from SPANG Technologies
SharePoint Frameworks Webinar-Part 1 from SPANG Technologies
 
Intro to the SharePoint Framework Philly Code Camp Oct 2016
Intro to the SharePoint Framework Philly Code  Camp Oct 2016Intro to the SharePoint Framework Philly Code  Camp Oct 2016
Intro to the SharePoint Framework Philly Code Camp Oct 2016
 
TypeScript and SharePoint Framework
TypeScript and SharePoint FrameworkTypeScript and SharePoint Framework
TypeScript and SharePoint Framework
 
Using Client Side Technologies to create a dynamic org chart in SharePoint 20...
Using Client Side Technologies to create a dynamic org chart in SharePoint 20...Using Client Side Technologies to create a dynamic org chart in SharePoint 20...
Using Client Side Technologies to create a dynamic org chart in SharePoint 20...
 
Is your brand powered by people?
Is your brand powered by people?Is your brand powered by people?
Is your brand powered by people?
 
Force Majeure in France Poten Partners/CR weber Capitallinkweek21
Force Majeure in France Poten Partners/CR weber Capitallinkweek21Force Majeure in France Poten Partners/CR weber Capitallinkweek21
Force Majeure in France Poten Partners/CR weber Capitallinkweek21
 
GRAVITY
GRAVITYGRAVITY
GRAVITY
 
Fabio Forcolin Thesis
Fabio Forcolin ThesisFabio Forcolin Thesis
Fabio Forcolin Thesis
 
Narrative theories
Narrative theoriesNarrative theories
Narrative theories
 
Humanizing your brand with marketing technology
Humanizing your brand with marketing technologyHumanizing your brand with marketing technology
Humanizing your brand with marketing technology
 
Sandhya's portfolio
Sandhya's portfolioSandhya's portfolio
Sandhya's portfolio
 
Introduccion a sharepoint framework
Introduccion a sharepoint frameworkIntroduccion a sharepoint framework
Introduccion a sharepoint framework
 
How Swiss commodity traders flood Africa with toxic Fuels
How Swiss commodity traders flood Africa with toxic FuelsHow Swiss commodity traders flood Africa with toxic Fuels
How Swiss commodity traders flood Africa with toxic Fuels
 
Diagrama de flujo
Diagrama de flujoDiagrama de flujo
Diagrama de flujo
 
Metabolism of ammonia
Metabolism of ammoniaMetabolism of ammonia
Metabolism of ammonia
 
New media
New mediaNew media
New media
 
lipid transport,lipoprotein metabolism, by dr.Tasnim
lipid transport,lipoprotein metabolism, by dr.Tasnimlipid transport,lipoprotein metabolism, by dr.Tasnim
lipid transport,lipoprotein metabolism, by dr.Tasnim
 
Obesity ,complication,metabolic syndrome by dr.Tasnim
Obesity ,complication,metabolic syndrome by dr.TasnimObesity ,complication,metabolic syndrome by dr.Tasnim
Obesity ,complication,metabolic syndrome by dr.Tasnim
 
IFEA 2016 - BYOD: Grow Event Revenue with Online Marketing - Part I
IFEA 2016 - BYOD: Grow Event Revenue with Online Marketing - Part IIFEA 2016 - BYOD: Grow Event Revenue with Online Marketing - Part I
IFEA 2016 - BYOD: Grow Event Revenue with Online Marketing - Part I
 

Ähnlich wie German introduction to sp framework

MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
Thomas Conté
 

Ähnlich wie German introduction to sp framework (20)

Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure Services
 
M365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx VersionM365 global developer bootcamp 2019 Intro to SPFx Version
M365 global developer bootcamp 2019 Intro to SPFx Version
 
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
MS Day EPITA 2010: Visual Studio 2010 et Framework .NET 4.0
 
Introducción al SharePoint Framework SPFx
Introducción al SharePoint Framework SPFxIntroducción al SharePoint Framework SPFx
Introducción al SharePoint Framework SPFx
 
Real World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure ServicesReal World SharePoint Framework and Azure Services
Real World SharePoint Framework and Azure Services
 
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
How to convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
M365 global developer bootcamp 2019
M365 global developer bootcamp 2019M365 global developer bootcamp 2019
M365 global developer bootcamp 2019
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
Convert your Full Trust Solutions to the SharePoint Framework (SPFx)
 
M365 global developer bootcamp 2019 PA
M365 global developer bootcamp 2019  PAM365 global developer bootcamp 2019  PA
M365 global developer bootcamp 2019 PA
 
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hourConvert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
Convert your Full Trust Solutions to the SharePoint Framework (SPFx) in 1 hour
 
Prepararsi a spostare le proprie applicazioni share point su office 365
Prepararsi a spostare le proprie applicazioni share point su office 365Prepararsi a spostare le proprie applicazioni share point su office 365
Prepararsi a spostare le proprie applicazioni share point su office 365
 
CCI 2017 - Introduzione a SharePoint Framework (SPFx) - Fabio Franzini
CCI 2017 - Introduzione a SharePoint Framework (SPFx) - Fabio FranziniCCI 2017 - Introduzione a SharePoint Framework (SPFx) - Fabio Franzini
CCI 2017 - Introduzione a SharePoint Framework (SPFx) - Fabio Franzini
 
Going open source with small teams
Going open source with small teamsGoing open source with small teams
Going open source with small teams
 
A Beginner's Guide to Client Side Development with Javascript
A Beginner's Guide to Client Side Development with JavascriptA Beginner's Guide to Client Side Development with Javascript
A Beginner's Guide to Client Side Development with Javascript
 
An Introduction to Web Components
An Introduction to Web ComponentsAn Introduction to Web Components
An Introduction to Web Components
 
SPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 developmentSPTechCon Austin 2019 - From SharePoint to Office 365 development
SPTechCon Austin 2019 - From SharePoint to Office 365 development
 
Angular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - LinagoraAngular (v2 and up) - Morning to understand - Linagora
Angular (v2 and up) - Morning to understand - Linagora
 
[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?[Pinto] Is my SharePoint Development team properly enlighted?
[Pinto] Is my SharePoint Development team properly enlighted?
 
SharePoint Fest DC 2019 - From SharePoint to Office 365 Development
SharePoint Fest DC 2019 - From SharePoint to Office 365 DevelopmentSharePoint Fest DC 2019 - From SharePoint to Office 365 Development
SharePoint Fest DC 2019 - From SharePoint to Office 365 Development
 

Mehr von Bob German

Mehr von Bob German (20)

Introduction to the Microsoft Bot Framework v4
Introduction to the Microsoft Bot Framework v4Introduction to the Microsoft Bot Framework v4
Introduction to the Microsoft Bot Framework v4
 
Adaptive cards 101
Adaptive cards 101Adaptive cards 101
Adaptive cards 101
 
Introduction to Teams Development - North American Collaboration Summit
Introduction to Teams Development - North American Collaboration SummitIntroduction to Teams Development - North American Collaboration Summit
Introduction to Teams Development - North American Collaboration Summit
 
Future-proof Development for Classic SharePoint
Future-proof Development for Classic SharePointFuture-proof Development for Classic SharePoint
Future-proof Development for Classic SharePoint
 
Azure for SharePoint Developers - Workshop - Part 4: Bots
Azure for SharePoint Developers - Workshop - Part 4: BotsAzure for SharePoint Developers - Workshop - Part 4: Bots
Azure for SharePoint Developers - Workshop - Part 4: Bots
 
Azure for SharePoint Developers - Workshop - Part 3: Web Services
Azure for SharePoint Developers - Workshop - Part 3: Web ServicesAzure for SharePoint Developers - Workshop - Part 3: Web Services
Azure for SharePoint Developers - Workshop - Part 3: Web Services
 
Azure for SharePoint Developers - Workshop - Part 2: Azure Functions
Azure for SharePoint Developers - Workshop - Part 2: Azure FunctionsAzure for SharePoint Developers - Workshop - Part 2: Azure Functions
Azure for SharePoint Developers - Workshop - Part 2: Azure Functions
 
Azure for SharePoint Developers - Workshop - Part 1: Azure AD
Azure for SharePoint Developers - Workshop - Part 1: Azure ADAzure for SharePoint Developers - Workshop - Part 1: Azure AD
Azure for SharePoint Developers - Workshop - Part 1: Azure AD
 
Azure for SharePoint Developers - Workshop - Part 5: Logic Apps
Azure for SharePoint Developers - Workshop - Part 5: Logic AppsAzure for SharePoint Developers - Workshop - Part 5: Logic Apps
Azure for SharePoint Developers - Workshop - Part 5: Logic Apps
 
Azure AD for browser-based application developers
Azure AD for browser-based application developersAzure AD for browser-based application developers
Azure AD for browser-based application developers
 
Mastering Azure Functions
Mastering Azure FunctionsMastering Azure Functions
Mastering Azure Functions
 
Going with the Flow: Rationalizing the workflow options in SharePoint Online
Going with the Flow: Rationalizing the workflow options in SharePoint OnlineGoing with the Flow: Rationalizing the workflow options in SharePoint Online
Going with the Flow: Rationalizing the workflow options in SharePoint Online
 
Modern SharePoint, the Good, the Bad, and the Ugly
Modern SharePoint, the Good, the Bad, and the UglyModern SharePoint, the Good, the Bad, and the Ugly
Modern SharePoint, the Good, the Bad, and the Ugly
 
Developing JavaScript Widgets
Developing JavaScript WidgetsDeveloping JavaScript Widgets
Developing JavaScript Widgets
 
Introduction to TypeScript
Introduction to TypeScriptIntroduction to TypeScript
Introduction to TypeScript
 
Developing JavaScript Widgets
Developing JavaScript WidgetsDeveloping JavaScript Widgets
Developing JavaScript Widgets
 
Typescript 102 angular and type script
Typescript 102   angular and type scriptTypescript 102   angular and type script
Typescript 102 angular and type script
 
Typescript 101 introduction
Typescript 101   introductionTypescript 101   introduction
Typescript 101 introduction
 
Search First Migration - Using SharePoint 2013 Search for SharePoint 2010
Search First Migration - Using SharePoint 2013 Search for SharePoint 2010Search First Migration - Using SharePoint 2013 Search for SharePoint 2010
Search First Migration - Using SharePoint 2013 Search for SharePoint 2010
 
Enterprise Content Management + SharePoint 2013 - SPSNH
Enterprise Content Management + SharePoint 2013 - SPSNHEnterprise Content Management + SharePoint 2013 - SPSNH
Enterprise Content Management + SharePoint 2013 - SPSNH
 

Kürzlich hochgeladen

+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Kürzlich hochgeladen (20)

ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptxBUS PASS MANGEMENT SYSTEM USING PHP.pptx
BUS PASS MANGEMENT SYSTEM USING PHP.pptx
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 

German introduction to sp framework

  • 1. An Insight company Bob German Principal Architect - BlueMetal Introduction to the SharePoint Framework
  • 2. Thank You EVENT Sponsors We appreciated you supporting the New York SharePoint Community! • Diamond, Platinum, Gold, & Silver have tables scattered throughout • Please visit them and inquire about their products & services • To be eligible for prizes make sure to get your bingo card stamped by ALL sponsors • Raffle at the end of the day and you must be present to win!
  • 3. Bob German Bob is a Principal Architect at BlueMetal, where he leads Office 365 and SharePoint development for enterprise customers. Cloud & Services Content & Collaboration Data & Analytics Devices & Mobility Strategy & Design An Insight company @Bob1German
  • 4. Agenda • A Geological View of SharePoint • Developing “from scratch” for the SharePoint Framework • Client-Side Solutions • Web Parts • Single Page Apps • List Apps • Action Plan and Resources @Bob1German
  • 5. A Geological View of SharePoint ASP.NET WebForms ASP.NET AJAX, Scripting On Demand SharePoint Page Models XSLT Custom Actions (JavaScript) JSLink, Display Templates Add-in Model
  • 7. SharePoint Framework: A Clean Slate • A completely new SharePoint UI for Office 365 and SharePoint 2016 • New client-side page model • Modern and responsive – allows “mobile first” development for SharePoint • Mix classic and client-side pages in a SharePoint site • Client-side web parts work on both classic and client-side pages • It’s still early! Open questions: • What OOB web parts will be available for the new pages? • How will branding work? • How flexible will the page layout be?’ • How will it integrate with the add-in model?
  • 8. demo Authoring Canvas in Office 365 Blogs
  • 9. Farm and Sandboxed Solutions Add-in Model SharePoint Developer Microsoft moved the cheese… again! JavaScript and TypeScript Widgets SharePoint Framework
  • 10. Comparing the Models Add-in Models SP Framework Mobile-ready Direct access to page (e.g. Connected Web Parts) Ease of Data Access Ease of Upgrade (of your solution) Protection from Untrusted Code Storefront Distribution @Bob1German
  • 11. Open Source Tools Trad New Templating Visual Studio Yeoman http://bit.ly/SPF-Yeoman Language C#, JavaScript Typescript http://bit.ly/SPF-TypeScript Runtime Env’t .NET, JS Any JS Framework http://bit.ly/SPF-JSFrameworks Code Editor Visual Studio Visual Studio Code (or your choice) http://bit.ly/SPF-VSCode Packages nuget npm http://bit.ly/SPF-npm Task Runner Visual Studio Gulp http://bit.ly/SPF-Gulp Compiler Visual Studio tsc http://bit.ly/SPF-TypeScript Bundling Visual Studio WebPack http://bit.ly/SPF-WebPack Links are case sensitive! @Bob1German
  • 12. Project Folder /dest /sharepoint SP Framework Development Process Project Folder /src JavaScript Bundles .spapp Local workbench workbench.aspx in SharePoint Content Delivery Network SharePoint Client-side “App” Deplyed in SharePoint 1 2 3 @Bob1German
  • 13. Don’t Panic! Microsoft is being more open than ever before; the software you are about to see isn’t even in preview yet. The tools and user experience will get a lot better before it ships!
  • 14. demo yo sharepoint Part 1: • Creating a project • Using the SharePoint Workbench
  • 15. demo yo sharepoint Part 2: • Packaging and Uploading to SharePoint • Viewing on a Classic Page
  • 16. demo yo sharepoint Part 3: • Deploying to a CDN
  • 17. Now … where is the web part?
  • 18. Splitting and Bundling • Freely split your code into multiple files • Each is translated to JavaScript and placed in a module based on the filename • TypeScript is compiled to JavaScript • Less is compiled to CSS in a JavaScript string • HTML becomes a JavaScript string • JavaScript is just placed in the module • Use exports and require to expose and consume across modules • Advantages • Ease of development / modularity • Efficient download and caching • Synchronous access (never wait for a script to load!)
  • 19. Splitting and Bundling .ts .ts .js .html .less Webpack 0: javascript Compilers (.ts  .js, .less  .css) Gulp task runner 1: javascript 2: javascript (html in string) 3: javascript 4: javascript (css in string) Javascript bundleSource Files
  • 20. An Insight company A Brief Introduction to TypeScript
  • 21. What is Typescript? Typescript is a subset of JavaScript, and is “transpiled” into regular JavaScript. • Static type checking catches errors earlier • Intellisense • Use ES6 features in ES3, ES5 (or at least get compatibility checking) • Class structure familiar to .NET programmers let x = 5; for (let x=1; x<10; x++) { console.log (‘x is ‘ + x.toString()); } console.log (‘In the end, x is ‘ + x.toString()); var x = -1; for (var x_1 = 1; x_1 < 10; x_1++) { console.log("x is " + x_1.toString()); } console.log("In the end, x is " + x.toString()); // -1
  • 22. (1) Type Annotations var myString: string = '<u>Results</u><br />'; var myNum : number = 123; var myAny : any = "Hello"; myString = <number>myAny; var myDate: Date = new Date; var myElement: HTMLElement = document.getElementsByTagName('body')[0]; var myFunc : (x:number) => number = function(x:number) : number { return x+1; } var myPeople: {firstName: string, lastName: string}[] = [ { firstName: “Alice", lastName: “Grapes" }, { firstName: “Bob", lastName: “German" } ] Intrinsics Any and Casting Built-in objects Functions Complex Types
  • 23. (2) ES6 Compatibility var myFunc : (nx:number) => number = (n:number) => { return n+1; } let x:number = 1; if (true) { let x:number = 100; } if (x === 1) { alert ('It worked!') } var target: string = ‘world'; var greeting: string = `Hello, ${target}’; “Fat Arrow” function syntax Block scoped variables Template strings
  • 24. (3) Classes and Interfaces interface IPerson { getName(): string; } class Person implements IPerson { private firstName: string; private lastName: string; constructor (firstName: string, lastName:string) { this.firstName = firstName; this.lastName = lastName; } getName() { return this.firstName + " " + this.lastName; } } var me: IPerson = new Person("Bob", "German"); var result = me.getName(); Interface Class Usage
  • 25. (4) Typescript Definitions var oldStuff = oldStuff || {}; oldStuff.getMessage = function() { var time = (new Date()).getHours(); var message = "Good Day" if (time < 12) { message = "Good Morning" } else if (time <18) { message = "Good Afternoon" } else { message = "Good Evening" } return message; }; interface IMessageGiver { getMessage: () => string } declare var oldStuff: IMessageGiver; var result:string = oldStuff.getMessage(); document.getElementById('output').innerHTML = result; myCode.ts (TypeScript code wants to call legacy JavaScript) oldStuff.js (legacy JavaScript) oldStuff.d.ts (TypeScript Definition)
  • 26. An Insight company Developing Client-Side Projects with SharePoint Framework
  • 27. Client-Side Projects 1 Client-Side Web Parts Run on classic and client-side pages 2 Client-Side Apps (single page) Your Single-Page application hosted in SharePoint 3 Client-Side Apps (list) A SharePoint list with forms (AllItems, Display, Edit, New)
  • 31. So now what? WTF! Is Microsoft serious? When will it ship? Where do I get it? How do I get started?
  • 32. Yes – Microsoft is serious about modernizing SharePoint! Prediction: Over the next few years, Microsoft will change the entire SharePoint user experience to meet the needs of a modern, mobile workforce. It’s like upgrading a car, one part at a time – while you’re driving it cross country! Web Parts O365 – mid 2016 New Pages O365 – late 2016 SP2016 Feature Pack early 2017 Web Era Cloud and Device Era
  • 33. Yes – Microsoft is serious about modernizing SharePoint! The SharePoint Framework is additive! • Classic SharePoint pages can run the new web parts • Classic SharePoint sites can include the new full-page solutions It should be possible to transition our sites gradually to the new model Web Era Cloud and Device Era
  • 34. Tooling Up TypeScript TypeScript Site • http://bit.ly/SPF-TypeScript TypeScript Playground • http://bit.ly/TSPlayground Bob’s TS “Cheat Sheets” • http://bit.ly/LearnTypeScript WebPack WebPack Site • http://bit.ly/SPF-WebPack REST API’s SharePoint REST API reference • http://bit.ly/SP-REST Gulp Gulp task runner • http://bit.ly/SPF-Gulp VS Code Visual Studio Code • http://bit.ly/SPF-VSCode Join me Thursday at 3:45 for: Future-Proof Development for SharePoint and SharePoint Online
  • 35. Conference Materials • Slides / Demo will be posted on Lanyrd.com • http://lanyrd.com/2016/spsnyc • Photos posted to our Facebook page • https://www.facebook.com/sharepointsaturdaynyc • Tweet Us - @SPSNYC or #SPSNYC • Sign Up for our NO SPAM mailing list for all conference news & announcements • http://goo.gl/7WzmPW • Problems / Questions / Complaints / Suggestions • Info@SPSNYMetro.com
  • 36. • Visit ExtaCloud’s booth for wrist bands! Scallywag's Irish Pub 508 9th Ave, between 38th & 39th. [6 minutes walk] Scallywags also serves food. http://www.scallywagsnyc.com/

Hinweis der Redaktion

  1. At the May 4th “Future of SharePoint” event, Microsoft announced a new page and web part model called the SharePoint Framework. This modern, responsive framework runs entirely on the client side, and is markedly different from previous SharePoint development models.  In this session, you’ll get an early peek at the development process for client-side web parts and full-page applications using SharePoint Framework. You’ll learn about the architecture and tools, and what to start learning now so you can hit the ground running when the Framework ships later this year. Don’t miss this opportunity to get a head start on this exciting new development model! Level: Overview Audience: Developer Essentials, Architecture Essentials