+ All Categories
Home > Technology > An Introduction to the Office 365 Patterns and Practices Project

An Introduction to the Office 365 Patterns and Practices Project

Date post: 11-Feb-2017
Category:
Upload: spc-adriatics
View: 147 times
Download: 0 times
Share this document with a friend
30
An Introduction to the Office 365 Patterns and Practices Project VESA JUVONEN ERWIN VAN HUNEN MICROSOFT / RENCORE
Transcript
Page 1: An Introduction to the Office 365 Patterns and Practices Project

An Introduction to the Office 365 Patterns and Practices ProjectVESA JUVONEN

ERWIN VAN HUNENMICROSOFT / RENCORE

Page 2: An Introduction to the Office 365 Patterns and Practices Project

SPONSORS

Page 3: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

AgendaOffice Developer PnP program in general – resources and materialsReusable components and solutionsPnP Core ComponentPnP Powerhell PnP Partner Pack

Roadmap and planned topicsHow to contribute to PnP?

Page 4: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

Office Dev PnP in general1

Page 5: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

Sharing is caring!• Why do we keep on inventing the wheel

again?• What if we would share our learnings

between each other and build on top of the community knowledge?

• What if we would work together by sharing learnings and practices between each other?

Page 6: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

Anything in PnP initiate is free for reuse in anyway you want

Page 7: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

How to find PnP samples or guidance?dev.office.com > Resources > PnP > Sample / Guidance

Page 8: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

Demo - Finding what’s relevant for you in PnPVesa Juvonen

Page 9: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

PnP Web Castsaka.ms/OfficeDevPnPVideos• Blog post at dev.office.com• Key topics to considerer in

your customizations• Topics vary from Office 365 to

on-premises• Setting up on-premises add-in model

infrastructure• Remote provisioning vs feature framework

usage• JavaScript performance considerations with

SharePoint• Provisioning engine and reference solution

with AngularJS• SharePoint Nuget Packages and PnP Core

component• SharePoint Framework introduction and

getting prepared

Page 10: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

Documents…docs.com/OfficeDevPnP• Contains significant amount

of presentations• Web cast presentations• Community call presentations• Seminar presentations• Reusable graphics

• PnP Graphics presentation contains close to hundred different slides and drawings for reuse

Page 11: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

Add-in model transformation training package… aka.ms/OfficeDevPnPTraining• Videos, presentations, demos and

hands-on-labs for reuse• 10 modules on specific topics

1. Introduction to transformation2. Site settings and JS embed3. Branding with add-in model4. Building UX components with add-in

model5. Remote event receivers and timer jobs6. Site and site collection provisioning7. User personalization and OneDrive for

Business8. ECM with add-in model9. Search with add-in model10. Transformation guidance from FTC to

add-ins

Page 12: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

How to follow up on what’s happening?

Yammer – http://aka.ms/OfficeDevPnPYammerBi-weekly office hours – http://aka.ms/OfficeDevPnPOfficeHoursMonthly community calls – http://aka.ms/OfficeDevPnPCall

http://aka.ms/OfficeDevPnPResources

Page 13: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

• PnP guidance and samples are created by Microsoft & by the Community

• PnP guidance and samples are maintained by Microsoft• PnP uses supported and recommended techniques• PnP implementations are reviewed and approved by

engineering• PnP is open source program• PnP is NOT a product and therefore it’s not supported through

Premier Support or other official support channels• PnP is supported in similar ways as other open source projects

done by Microsoft with support from the community by the community• We are looking for alternatives for this one

Supportability for PnP

Page 14: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

Reusable components and solutions2

Page 15: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

One of the main objectives of the PnP is to simplify and easy up development PnP initiative provides reusable

components and solutions for the community to use as a baseline or as a starting point

Page 16: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

• PnP Core Component

• PnP PowerShell• PnP Partner Pack• PnP JavaScript

Core• Other components

and solutions

Page 17: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

Demo – Core componentSimplify CSOM operations with community tooling

Page 18: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

Add-Type -Path 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll'Add-Type -Path 'C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll'

$url = "https://erwinmcm.sharepoint.com/sites/demo1"$creds = Get-Credential -Message "Enter Online Credential"

$O365Credential = new-object Microsoft.SharePoint.Client.SharePointOnlineCredentials($creds.UserName,$creds.Password)

$ctx = new-object Microsoft.SharePoint.Client.ClientContext($url)$ctx.Credentials = $O365Credential

$listCi = new-object Microsoft.SharePoint.Client.ListCreationInformation;$listCi.Title = "Demo List";$listCi.TemplateType = [Microsoft.SharePoint.Client.ListTemplateType]::GenericList;$listCi.Url = "lists/demo";$list = $ctx.Web.lists.Add($listCi);

# Add the field$fieldXml = "<Field Type=""Choice"" Name=""SPSLocation"" DisplayName=""Location"" ID=""{ba27f512-27bc-4d07-bdd4-2ee61bc5bcb4}"" Group=""Demo Group"" Required=""TRUE""><CHOICES><CHOICE>Stockholm</CHOICE><CHOICE>Helsinki</CHOICE><CHOICE>Oslo</CHOICE></CHOICES></Field>"

$field = $list.Fields.AddFieldAsXml($fieldXml, $true, [Microsoft.SharePoint.Client.AddFieldOptions]::AddFieldToDefaultView);

$ctx.Load($list);$ctx.ExecuteQuery();

‘Old School’ PowerShell Code

Page 19: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

‘New School’ PowerShell Code

Connect-SPOnline -Url https://vesaj.sharepoint.com/sites/team

New-SPOList -Title "Demo list" -Template GenericList -Url lists/demoAdd-SPOField -List "Demo list" ` -DisplayName "Location" ` -InternalName "SPSLocation" ` -Type Choice ` -Group "Demo Group" ` -AddToDefaultView ` -Choices "Stockholm","Helsinki",“Erding"

Page 20: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

Demo – PnP PowerShellScript yourself out

Page 21: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

>140 available cmdletsAdd-SPOContentTypeAdd-SPOContentTypeToDocumentSetAdd-SPOContentTypeToListAdd-SPOCustomActionAdd-SPOEventReceiverAdd-SPOFieldAdd-SPOFieldFromXmlAdd-SPOFieldToContentTypeAdd-SPOFileAdd-SPOFolderAdd-SPOHtmlPublishingPageLayoutAdd-SPOIndexedPropertyAdd-SPOJavaScriptBlockAdd-SPOJavaScriptLinkAdd-SPOListItemAdd-SPOMasterPageAdd-SPONavigationNodeAdd-SPOPublishingPageAdd-SPOPublishingPageLayoutAdd-SPOTaxonomyFieldAdd-SPOUserToGroupAdd-SPOViewAdd-SPOWebPartToWebPartPageAdd-SPOWebPartToWikiPageAdd-SPOWikiPageAdd-SPOWorkflowDefinitionAdd-SPOWorkflowSubscriptionApply-SPOProvisioningTemplateConnect-SPOnlineDisable-SPOFeatureDisconnect-SPOnlineEnable-SPOFeatureExecute-SPOQueryExport-SPOTaxonomyExport-SPOTermGroupToXmlFind-SPOFile

Get-SPOAppInstanceGet-SPOAuthenticationRealmGet-SPOAzureADManifestKeyCredentialsGet-SPOContentTypeGet-SPOContextGet-SPOCustomActionGet-SPODocumentSetTemplateGet-SPOEventReceiverGet-SPOFeatureGet-SPOFieldGet-SPOFileGet-SPOGroupGet-SPOHealthScoreGet-SPOHomePageGet-SPOIndexedPropertyKeysGet-SPOJavaScriptLinkGet-SPOListGet-SPOListItemGet-SPOMasterPageGet-SPOPropertyGet-SPOPropertyBagGet-SPOProvisioningTemplateGet-SPOSearchConfigurationGet-SPOSiteGet-SPOSitePolicyGet-SPOStoredCredentialGet-SPOSubWebsGet-SPOTaxonomyItemGet-SPOTaxonomySessionGet-SPOTenantSiteGet-SPOTermGroupGet-SPOTimeZoneIdGet-SPOUserProfilePropertyGet-SPOViewGet-SPOWebGet-SPOWebPart

Get-SPOWebPartPropertyGet-SPOWebPartXmlGet-SPOWebTemplatesGet-SPOWikiPageContentGet-SPOWorkflowDefinitionGet-SPOWorkflowSubscriptionImport-SPOAppPackageImport-SPOTaxonomyImport-SPOTermGroupFromXmlImport-SPOTermSetInstall-SPOSolutionNew-SPOGroupNew-SPOListNew-SPOPersonalSiteNew-SPOProvisioningTemplateFromFolderNew-SPOTenantSiteNew-SPOTermGroupNew-SPOUserNew-SPOWebRemove-SPOContentTypeRemove-SPOContentTypeFromDocumentSetRemove-SPOContentTypeFromListRemove-SPOCustomActionRemove-SPOEventReceiverRemove-SPOFieldRemove-SPOFileRemove-SPOGroupRemove-SPOIndexedPropertyRemove-SPOJavaScriptLinkRemove-SPOListRemove-SPONavigationNodeRemove-SPOPropertyBagValueRemove-SPOTenantSiteRemove-SPOUserFromGroupRemove-SPOViewRemove-SPOWeb

Remove-SPOWebPartRemove-SPOWikiPageRemove-SPOWorkflowDefinitionRemove-SPOWorkflowSubscriptionRequest-SPOReIndexListRequest-SPOReIndexWebResume-SPOWorkflowInstanceSend-SPOMailSet-SPOAppSideLoadingSet-SPODefaultColumnValuesSet-SPODefaultContentTypeToListSet-SPODocumentSetFieldSet-SPOFileCheckedInSet-SPOFileCheckedOutSet-SPOGroupSet-SPOHomePageSet-SPOIndexedPropertiesSet-SPOListSet-SPOListPermissionSet-SPOMasterPageSet-SPOMinimalDownloadStrategySet-SPOPropertyBagValueSet-SPOSearchConfigurationSet-SPOSitePolicySet-SPOTaxonomyFieldValueSet-SPOTenantSiteSet-SPOThemeSet-SPOTraceLogSet-SPOUserProfilePropertySet-SPOWebSet-SPOWebPartPropertySet-SPOWikiPageContentStop-SPOWorkflowInstanceUninstall-SPOAppInstanceUninstall-SPOSolution

Page 22: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

How to contribute back?3

Page 23: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

Why and how to contribute to PnP initiative?• Get visibility in the internal and external community• Help others on their journey to recommended

patterns• Find peers who work on similar topics and engage

with customers and partners also using this channel• Participate on the discussion• Help others with your

questions and answers• aka.ms/OfficeDevPnPYammer

• Follow monthly releases and discussion around latest topics

• aka.ms/OfficeDevPnPCall

• Report and fix issues• Contribute with new

samples, guidance and documentation

• Participate on the discussion around needed capabilities

• aka.ms/OfficeDevPnPGitHub

Page 24: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

• PnP Yammer Grouphttp://aka.ms/OfficeDevPnPYammer

• Special Interest Groups (SIGs) Piloted with SharePoint Client Side development

• Bi-weekly office hourshttp://aka.ms/OfficeDevPnPOfficeHours

• Monthly community callshttp://aka.ms/OfficeDevPnPCall

Core TeamSpecial Interest Groups (SIGs)

Community

Page 25: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

Why to contribute?• Get acknowledged as

contributors in the communications• dev.office.com blog posts• Monthly community calls• MSDN pages

• Help others by sharing your learnings around Office 365 and SharePoint development

Page 26: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

PnP vNext – What’s coming4

Page 27: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

Roadmap - Office 365 Dev & SharePoint PnP• Ownership moved to SharePoint

Engineering (Jeff Teper) • Primary channel for landing new

SharePoint vNext development experience for community

• New GitHub repositories for the SharePoint Framework related areas

Page 28: An Introduction to the Office 365 Patterns and Practices Project

http://dev.office.com/

• Starting from late May, we have direct connection from PnP guidance at MSDN to GitHub md files

Open publishing to MSDN <#><Section title goes here>

Page 29: An Introduction to the Office 365 Patterns and Practices Project

aka.ms/OfficeDevPnP

https://github.com/OfficeDev/PnPhttps://github.com/OfficeDev/PnP-Sites-Corehttps://github.com/OfficeDev/PnP-PowerShellhttps://github.com/OfficeDev/PnP-Toolshttps://github.com/OfficeDev/PnP-Guidancehttps://github.com/OfficeDev/PnP-Transformationhttps://github.com/OfficeDev/PnP-OfficeAddInshttps://github.com/OfficeDev/PnP-Provisioning-Schema

https://aka.ms/OfficeDevPnPVideos

https://aka.ms/OfficeDevPnPMSDN

https://aka.ms/OfficeDevPnPYammer

https://aka.ms/OfficeDevPnPPartnerPack

@OfficeDevPnP

https://aka.ms/OfficeDevPnPCall

https://docs.com/OfficeDevPnP

Page 30: An Introduction to the Office 365 Patterns and Practices Project

thank youquestions?

live ratingsBLOG URLTWITTER HANDLE

spca.biz/6JTY


Recommended