Real World Add-in Development for Office365

36
www.expertpointsolutions.com Real World Add-in Development for Office365 & SharePoint 2016 Brian Culver ● #SPSUtah ● February 25, 2017

Transcript of Real World Add-in Development for Office365

Page 1: Real World Add-in Development for Office365

www.expertpointsolutions.com

Real World Add-in Development for Office365 & SharePoint 2016

Brian Culver ● #SPSUtah ● February 25, 2017

Page 2: Real World Add-in Development for Office365

About Brian Culver

SharePoint Solutions Architect for Expert Point Solutions in Houston, Texas.

Microsoft Certified Master (MCM) in SharePoint Brian has worked in the Information Technology industry for

since 1998 and he has been working with SharePoint since 2005. His deep expertise includes Azure, Office365, SharePoint, ASP.Net, SQL Server and Project Server. He has been involved in many large SharePoint implementations including Internet and Intranet sites, Partner Portals, Enterprise Content Management and Governance, and much custom application integration and development.

Author, Speaker and Blogger

Email : brian.culver(at)expertpointsolutions.comTwitter : @spbrianculverLinkedIn : https://www.linkedin.com/in/bculver Blog : http://blog.expertpointsolutions.com

Page 3: Real World Add-in Development for Office365

Session Agenda

Reviewing the Landscape Full Trust vs Add-ins/Apps SharePoint Development Today Create a Hello World SharePoint-Hosted Add-in Adding AngularJS Create a Hello World Provider-Hosted Add-in Azure Web Sites Deployment Lifecycle Other considerations

Page 4: Real World Add-in Development for Office365

Reviewing the Landscape

Things are changing quickly … very quickly

Page 5: Real World Add-in Development for Office365

Reviewing the Landscape

Things are changing quickly … very quickly

Page 6: Real World Add-in Development for Office365

Reviewing the Landscape

Things are changing quickly … very quickly Full Trust Server Side development is practically gone … don’t do it

Page 7: Real World Add-in Development for Office365

Reviewing the Landscape

Things are changing quickly … very quickly Full Trust Server Side development is practically gone … don’t do it

Page 8: Real World Add-in Development for Office365

Reviewing the Landscape

Things are changing quickly … very quickly Full Trust Server Side development is practically gone … don’t do it Client Side development is in

Page 9: Real World Add-in Development for Office365

Reviewing the Landscape

Things are changing quickly … very quickly Full Trust Server Side development is practically gone … don’t do it Client Side development is in It’s a different kind of world … its a hybrid world

Page 10: Real World Add-in Development for Office365

Reviewing the Landscape

Things are changing quickly … very quickly Full Trust Server Side development is practically gone … don’t do it Client Side development is in It’s a different kind of world … its a hybrid world

Page 11: Real World Add-in Development for Office365

Reviewing the Landscape

Full Trust Solutions Only available on premise ~80% of third party products ~80% of Enterprise custom solutions

Image Source: https://blogs.office.com/2016/05/04/the-sharepoint-framework-an-open-and-connected-platform/ Used with permission from Microsoft.

Page 12: Real World Add-in Development for Office365

Reviewing the Landscape

Full Trust Solutions Only available on premise ~80% of third party products ~80% of Enterprise custom solutions

Sandbox Solutions Code-based sandbox solutions were deprecated back in 2014 Code-based sandbox solutions not supported in Office365 as of August 31st, 2016 Code-based sandbox solutions are also deprecated in SharePoint 2013 and in SharePoint 2016 Read this: https://msdn.microsoft.com/en-us/pnp_articles/sandbox-solution-transformation-guidance

Page 13: Real World Add-in Development for Office365

Reviewing the Landscape

Full Trust Solutions Only available on premise ~80% of third party products ~80% of Enterprise custom solutions Sandbox Solutions Code-based sandbox solutions were deprecated back in 2014 Code-based sandbox solutions not supported in Office365 as of August 31st, 2016 Code-based sandbox solutions are also deprecated in SharePoint 2013 and in SharePoint 2016 Read this: https://msdn.microsoft.com/en-us/pnp_articles/sandbox-solution-transformation-guidance Apps and Add-ins SharePoint-Hosted Provider-Hosted SharePoint / Office 365 Dev Patterns & Practices (PnP) http://aka.ms/OfficeDevPnP SharePoint Framework (SPFx)

GA: Feb 23, 2017 SharePoint Framework has been released!!!!!

Image Source: https://blogs.office.com/2016/05/04/the-sharepoint-framework-an-open-and-connected-platform/ Used with permission from Microsoft.

Page 14: Real World Add-in Development for Office365

aka.ms/SharePointPnP

https://github.com/SharePoint/sp-dev-docshttps://github.com/SharePoint/sp-dev-fx-webpartsMore to come…

https://aka.ms/sppnp-videos

• SharePoint Framework tutorials• Preparing for SharePoint Framework

what should I learn• Converting existing JS apps to SP Fx• Integrating Angular 1.x to SP Fx• Building simple SP Fx Web Part• Building Angular SP FX web parts

@OfficeDevPnP

http://aka.ms/sppnp-callhttp://aka.ms/sppnp-jssig

https://aka.ms/sppnp-communityMicrosoft TechCommunity

• PnP is developer community for SharePoint• Target is to embrace sharing and help

community to adapt new technologies• Community driven with community

contributions

“Sharing is caring!”

Slide from Vesa Juvonen and Waldek Mastykarz

Page 15: Real World Add-in Development for Office365

SharePoint Development Today

Image Source: https://blogs.office.com/2016/05/04/the-sharepoint-framework-an-open-and-connected-platform/ Used with permission from Microsoft.

Page 16: Real World Add-in Development for Office365

SharePoint Development Today

Page 17: Real World Add-in Development for Office365

SharePoint Development Today

Why? Isolated and Safer Using a different domain name for apps helps prevent cross-site scripting between apps and SharePoint sites. Each apps has its own unique subdomain which isolates it from SharePoint and other apps. Multi-tenant Works with subscription service which allows it to run on separate tenants. Multiple development possibilities (even non-MS stack) Open Source, jQuery, TypeScrypt, AngularJS, BootStrap, etc. Easier to deploy Easier to maintain and upgrade (Best lifecycle and versioning to date) Manageable (Office Store and Corporate Catalog) Cloud ready! Works in Office 365, SharePoint 2013 and SharePoint 2016. Integrates with just about any Cloud service and technology.

Page 18: Real World Add-in Development for Office365

SharePoint Development Today

Develop an add-in whenever you can always The most important guidance we can give you is to develop a SharePoint Add-in instead of a farm solution or no-code

(declarative) sandboxed solutions whenever you can. SharePoint Add-ins have the following advantages over classic solutions:

Provide users with the easiest discovery, purchase, and installation process. Give administrators the safest SharePoint extensions. Provide you with the simplest marketing and sales system based on a Microsoft online add-in store. Maximize your flexibility in developing future upgrades. Maximize your ability to take advantage of your existing non-SharePoint programming skills. Integrate cloud-based resources in smoother and more flexible ways. Enable your extension to have permissions that are distinct from the permissions of the user who is running the add-in. Enable you to use cross-platform standards, including HTML, REST, OData, JavaScript, and OAuth. Enable you to take advantage of the SharePoint cross-domain JavaScript library to access SharePoint data.

Alternatively, you can use a Microsoft-provided secure token service that is OAuth-compatible or use digital certificates to get authorization to SharePoint data.

Source: https://msdn.microsoft.com/en-us/library/office/jj163114.aspx

Page 19: Real World Add-in Development for Office365

SharePoint Development Today

Apps and Add-ins SharePoint-Hosted Provider-Hosted SharePoint / Office 365 Dev Patterns & Practices (PnP) http://aka.ms/OfficeDevPnP SharePoint Framework (SPFx)

GA: Feb 23, 2017 SharePoint Framework has been released!!!!!

Page 20: Real World Add-in Development for Office365

SharePoint Framework (SPFx)

SharePoint framework

LOB Systems and Cloud ServicesMicrosoft Graph

Modern client-side development

Lightweight web and mobile

Powers our own experiences

Backward compatible

Supports open source tools and JavaScript web frameworks

Slides from Chakkaradeep (Chaks) Chandran Program Manager, Microsoft

Page 21: Real World Add-in Development for Office365

SharePoint Framework Tooling

SharePoint framework

LOB Systems and Cloud ServicesMicrosoft Graph

Page 22: Real World Add-in Development for Office365

Visual Studio Code

Atom

Sublime

and more … your choice!

Code Editors

React

Angular

Knockout

and more … your choice!

JavaScript Frameworks

Yeoman TemplatesGulp-based Build ProcessNodeJS/NPMSystemJSWebpackSASSTypeScript

Build Process & Tooling

Open source tooling

Slides from Chakkaradeep (Chaks) Chandran Program Manager, Microsoft

Page 23: Real World Add-in Development for Office365

IIS Express

Project TemplatesC#

Server side tool comparison

MSBuild

Slides from Chakkaradeep (Chaks) Chandran Program Manager, Microsoft

Page 24: Real World Add-in Development for Office365

Office UI Fabric

Front end experiences for SharePoint

Powers our own experiences

Available out of the box

Design web part seamlessly

Office UI Fabric React for rich set of reusable controls

Fonts, icons Colors

Components

Slides from Chakkaradeep (Chaks) Chandran Program Manager, Microsoft

Page 25: Real World Add-in Development for Office365

Fabric and its sub-projects

All depending on the Core, all open source

Fabric CoreCore elements of the design language including icons, colors, type, and the grid

Fabric ReactRobust, up-to-date components built with the React framework.

Fabric JSSimple, visuals-focused components that you can extend, rework, and build on.

ngFabricCommunity-driven project to build components for Angular-based apps.

Fabric iOSNative Swift colors, type ramp, and components for building iOS apps.

Community built

Page 26: Real World Add-in Development for Office365

Client-side Web Part Build Flow

Install SharePoint Generator

Scaffold SharePoint Web Part Project

Build Web Part Code

Test

Local

UAT / Pre-production

Package/Deploy

Available on Classic and Client-Side Pages

Package/Deploy

npm install generator-sharepoint -g

yo sharepoint

Code

gulp serve

workbench

gulp package-solution

gulp upload-cdn

Ship?

Release using app catalog*

manual upload of the app

Slide from Vesa Juvonen and Waldek Mastykarz

Page 27: Real World Add-in Development for Office365

SharePoint-Hosted SolutionOffice365 and SharePoint 2016

Demo

Page 28: Real World Add-in Development for Office365

Provider-Hosted SolutionAzure Web Site with Office 365

Demo

Page 29: Real World Add-in Development for Office365

SharePoint-Hosted SolutionSharePoint / Office 365 Dev Patterns

& Practices

Demo

Page 30: Real World Add-in Development for Office365

SharePoint-Hosted SolutionSharePoint Framework (SPFx)

Demo

Page 31: Real World Add-in Development for Office365

Closing Comments

**** Develop add-ins from here on out ****. Always strive to leverage the latest frameworks (#SPFx). Maximize your ability to take advantage of your existing non-

SharePoint programming skills. Be flexible and integrate cloud-based resources in smoother and more

flexible ways. Use cross-platform standards, including HTML, REST, OData,

JavaScript, and OAuth. Embrace Change … its already happened, and change will continue. Pay close attention to the Office Dev Patterns and Practices group. Oh yeah … don’t forget PowerShell. You won’t get far without it.

Page 32: Real World Add-in Development for Office365

Other Sessions to See

Dev Kitchen Peek: SharePoint Framework Client-side extension Divya Darshan Jannu, IT Manager, ITC Infotech

Who Needs a Developer for Automated SharePoint Provisioning Eric Overfield (MVP), PixelMill

Everything you need to know about the Microsoft Graph as a SharePoint Developer

Sebastien Levert (MVP), Valo Intranet

Page 33: Real World Add-in Development for Office365

Questions

??

?

?

Page 34: Real World Add-in Development for Office365

Constructive Feedback Is Appreciated

Great information, but would like to have learned more about [Insert Topic]Brian – Your

presentation was …

Good Demos!

Thanks!

Page 35: Real World Add-in Development for Office365

Thank you!

Brian Culver, MCMTwitter: @spbrianculver

E-mail:brian.culver(at)expertpointsolutions.com

Blog:http://blog.expertpointsolutions.com/

Slides:http://www.slideshare.net/bculver

Page 36: Real World Add-in Development for Office365

Resources

Office 365 Roadmap http://fasttrack.microsoft.com/roadmap SharePoint / Office 365 Dev Patterns & Practices (PnP) http://dev.office.com/patterns-and-practices The SharePoint Framework—an open and connected platform https://blogs.office.com/2016/05/04/the-sharepoint-framework-an-open-and-connected-platform/ Overview of the SharePoint Framework http://dev.office.com/sharepoint/docs/spfx/sharepoint-framework-overview SharePoint Framework Developer Preview Release https://dev.office.com/blogs/sharepoint-framework-developer-preview-release 5 differences between SharePoint Framework debug and release builds https://www.spcaf.com/blog/5-differences-sharepoint-framework-debug-release-builds/ Sandbox solution transformation guidance https://msdn.microsoft.com/en-us/pnp_articles/sandbox-solution-transformation-guidance