Date post: | 11-Feb-2017 |
Category: |
Technology |
Upload: | spc-adriatics |
View: | 147 times |
Download: | 0 times |
An Introduction to the Office 365 Patterns and Practices ProjectVESA JUVONEN
ERWIN VAN HUNENMICROSOFT / RENCORE
SPONSORS
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?
http://dev.office.com/
Office Dev PnP in general1
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?
http://dev.office.com/
Anything in PnP initiate is free for reuse in anyway you want
http://dev.office.com/
How to find PnP samples or guidance?dev.office.com > Resources > PnP > Sample / Guidance
http://dev.office.com/
Demo - Finding what’s relevant for you in PnPVesa Juvonen
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
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
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
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
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
http://dev.office.com/
Reusable components and solutions2
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
http://dev.office.com/
• PnP Core Component
• PnP PowerShell• PnP Partner Pack• PnP JavaScript
Core• Other components
and solutions
http://dev.office.com/
Demo – Core componentSimplify CSOM operations with community tooling
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
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"
http://dev.office.com/
Demo – PnP PowerShellScript yourself out
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
http://dev.office.com/
How to contribute back?3
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
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
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
http://dev.office.com/
PnP vNext – What’s coming4
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
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>
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
thank youquestions?
live ratingsBLOG URLTWITTER HANDLE
spca.biz/6JTY