{"id":8696,"date":"2018-03-12T00:00:00","date_gmt":"2018-03-12T00:00:00","guid":{"rendered":"http:\/\/officedevblogs.wpengine.com\/?p=74"},"modified":"2018-03-12T00:00:00","modified_gmt":"2018-03-12T00:00:00","slug":"pnp-march-2018-update","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/pnp-march-2018-update\/","title":{"rendered":"SharePoint Patterns &amp; Practices \u2013 March 2018 update"},"content":{"rendered":"<div id=\"body-content\">\n<p>SharePoint Dev Ecosystem \/ SharePoint Patterns and Practices (PnP)\u00a0March 2018 update is out with a summary of the latest guidance, samples, and solutions from SharePoint engineering or from the community for the community. This article is a summary around all the different areas and topics around SharePoint Dev ecosystem during the past month.<\/p>\n<h2>What is SharePoint Patterns &amp;\u00a0Practices (PnP)?<\/h2>\n<p><img decoding=\"async\" style=\"float: right\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/sppnp.png\" alt=\"SharePoint \/ Office Dev Patterns and Practices\" \/><\/p>\n<p>SharePoint PnP is a nick-name for SharePoint Dev Ecosystem activities coordinated by SharePoint engineering. SharePoint PnP is community driven open source initiative where Microsoft and external community members are sharing their learning&#8217;s around implementation practices for SharePoint and Office 365. Active development and contributions happen in GitHub by providing contributions on the samples, reusable components, and documentation.<\/p>\n<p>PnP is owned and coordinated by SharePoint engineering, but this is work done by the community for the community. The initiative is currently facilitated by Microsoft, but already at this point, we have multiple community members as part of the PnP Core team and we are looking to extend the Core team with more community members.<\/p>\n<p>Notice that since this is open source community initiative, there\u2019s no SLAs for the support for the samples provided through GitHub. Obviously, all officially released components and libraries are under official support from Microsoft. You can use <a href=\"http:\/\/aka.ms\/sppnp-community\">SharePoint Developer group<\/a>\u00a0in the Microsoft Tech Community for providing input and to ask any questions about the existing materials.<\/p>\n<p style=\"margin-bottom: 12.0pt\">Some key statistics around\u00a0SharePoint Dev topics from\u00a0February 2018<\/p>\n<ul>\n<li>GitHub repository forks\u00a0at most popular repositories in SharePoint GitHub organization\n<ul>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-docs\">SP\u00a0Dev Docs<\/a>\u00a0&#8211;\u00a0304<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-webparts\">SP Dev FX Web Parts<\/a>\u00a0&#8211;\u00a0476<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-extensions\">SP Dev Fx Extensions<\/a>\u00a0&#8211;\u00a076<\/li>\n<li><a href=\"https:\/\/github.com\/OfficeDev\/PnP\">PnP<\/a>\u00a0&#8211;\u00a02693<\/li>\n<li><a href=\"https:\/\/github.com\/OfficeDev\/PnP-Sites-Core\">PnP Sites Core<\/a> &#8211;\u00a0455<\/li>\n<li><a href=\"https:\/\/github.com\/OfficeDev\/PnP-PowerShell\">PnP PowerShell<\/a> &#8211;\u00a0425<\/li>\n<\/ul>\n<\/li>\n<li>Unique visitors during past 2 weeks in <a href=\"http:\/\/github.com\/sharepoint\">SharePoint organization<\/a>\u00a0repositories &#8211;\u00a035,427<\/li>\n<li>Merged pull requests across SharePoint repositories (cumulative) &#8211;\u00a04,573<\/li>\n<li>Closed issues and enhancements ideas cross SharePoint repositories (cumulative) &#8211;\u00a03,006<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.SharePointOnline.CSOM\/\">SharePoint Online CSOM<\/a>\u00a0NuGet package downloads (cumulative) &#8211; 411,619<\/li>\n<li><a href=\"https:\/\/github.com\/OfficeDev\/PnP\/tree\/master\/OfficeDevPnP.Core\">PnP Core component<\/a> NuGet package downloads (cumulative) &#8211;\u00a0166,719<\/li>\n<li>Page views in <a href=\"http:\/\/aka.ms\/spdev-docs\">SharePoint Dev<\/a>\u00a0pages at\u00a0docs.microsoft.com &#8211; 781,567<\/li>\n<li>Unique tenants using PnP components &#8211; 9,765<\/li>\n<li>Http requests towards SharePoint Online from PnP components (CSOM Core, PowerShell, PnP JS Core) &#8211; 8,834,249,239<\/li>\n<li><a href=\"http:\/\/aka.ms\/sppnp-videos\">SharePoint Dev YouTube channel<\/a>\u00a0had 25,326 views with 155,062 minutes watch time<\/li>\n<\/ul>\n<p>Main resources around SharePoint PnP\u00a0and SharePoint development<\/p>\n<ul>\n<li>SharePoint development portal &#8211;\u00a0<a href=\"https:\/\/developer.microsoft.com\/en-us\/sharepoint\">https:\/\/developer.microsoft.com\/en-us\/sharepoint<\/a><\/li>\n<li>SharePoint Dev Documentation &#8211;\u00a0<a href=\"http:\/\/docs.microsoft.com\/sharepoint\/dev\">http:\/\/docs.microsoft.com\/sharepoint\/dev<\/a><\/li>\n<li>PnP under dev.office.com \u2013 <a href=\"http:\/\/aka.ms\/SPPnP\">http:\/\/aka.ms\/SPPnP<\/a>\u00a0&#8211; One location for all the resources and news around PnP<\/li>\n<li>PnP GitHub &#8211; <a href=\"http:\/\/aka.ms\/sppnp-github\">http:\/\/aka.ms\/SPPnP-GitHub<\/a>\u00a0&#8211; main repository<\/li>\n<li>PnP Community Discussions\u00a0&#8211; <a href=\"http:\/\/aka.ms\/SPPnP-Community\">http:\/\/aka.ms\/SPPnP-Community<\/a><\/li>\n<li>SharePoint Dev Videos on YouTube\u00a0&#8211; <a href=\"http:\/\/aka.ms\/SPPnP-Videos\">http:\/\/aka.ms\/SPDev-Videos<\/a><\/li>\n<li>Presentations at <a href=\"https:\/\/www.slideshare.net\/sharepointpnp\">SlideShare<\/a><\/li>\n<\/ul>\n<h2>March 2018 monthly community call<\/h2>\n<p>Agenda for the Tuesday 13th of\u00a0March 2018 SharePoint Dev Ecosystem \/ Patterns and Practices\u00a0<a href=\"http:\/\/aka.ms\/sppnp-call\">community call<\/a> at\u00a09 AM PST \/ 5 PM CEST (notice time change for PT due daylight savings):<\/p>\n<ul>\n<li>Monthly summary of SharePoint Development topics &#8211; Engineering update and community news &#8211; <a href=\"https:\/\/twitter.com\/vesajuvonen\">Vesa Juvonen<\/a>\u00a0(Microsoft) ~15 min<\/li>\n<li>Modern Team Sites Navigation Application Customizer &#8211;\u00a0<a href=\"https:\/\/twitter.com\/alexaterentiev\">Alex\u00a0Terentiev<\/a> (<a href=\"http:\/\/www.sharepointalist.com\/\">SharePointalist<\/a>) ~ 10-15 min<\/li>\n<li>Applications Customizer Groups external links &#8211;\u00a0<a href=\"https:\/\/twitter.com\/luismanez\">Luis\u00a0M\u00e1\u00f1ez<\/a> (<a href=\"http:\/\/www.clearpeople.com\/\">ClearPeople<\/a>) ~10-15 min<\/li>\n<li>Bulk Groupify &#8211; Getting ready for upcoming Groupify capability &#8211;\u00a0<a href=\"https:\/\/twitter.com\/o365bert\">Bert Jansen<\/a> (Microsoft) ~10-15 min<\/li>\n<li>Q&amp;A<\/li>\n<\/ul>\n<p>Monthly community call will get recorded and release to <a href=\"http:\/\/aka.ms\/sppnp-videos\">PnP YouTube channel<\/a>\u00a0typically within 24 hours after the recording is ended. If you have any questions, comments or feedback, please participate in our discussions in the\u00a0<a href=\"https:\/\/github.com\/OfficeDev\/PnP\/wiki\/techcommunity.microsoft.com\">Microsoft Tech Community<\/a> under <a href=\"https:\/\/techcommunity.microsoft.com\/t5\/SharePoint-Developer\/bd-p\/SharePointDev\">SharePoint developer group<\/a>.<\/p>\n<h2>SharePoint Dev Blog posts<\/h2>\n<p>Here are the latest blog posts and announcements around SharePoint development topics from <a href=\"https:\/\/officedevblogs.wpengine.com\">officedevblogs.wpengine.com<\/a>.<\/p>\n<ul>\n<li>28th of\u00a0February &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/extending-sharepoint-pnp-team-with-new-mvp-community-members\">Extending SharePoint Patterns and Practices team with new MVP community members<\/a><\/li>\n<li>23rd of February &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/new-sharepoint-csom-version-released-for-Office-365-february-2018\">New SharePoint CSOM version released for SharePoint Online &#8211; February 2018<\/a><\/li>\n<li><a href=\"https:\/\/officedevblogs.wpengine.com\/new-version-of-office-365-cli-040\">1<\/a>5th of February &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/now-releasing-enhanced-preview-support-for-microsoft-graph-api-calls-from-sharepoint-framework\">Now releasing &#8211; Enhanced preview support for Microsoft Graph API calls from SharePoint Framework<\/a><\/li>\n<li>14th of February &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/office-365-developer-newsletter\">Office 365 Developer Newsletter<\/a><\/li>\n<\/ul>\n<h2>PnP Webcasts<\/h2>\n<p>We started new PnP Webcasts are typically 15-30 min long conversational webcasts around a specific topic. This series was started in October 2015 and have continued releasing new videos since. All new webcasts are released on <a href=\"http:\/\/aka.ms\/SPPnP-Videos\">PnP YouTube Channel<\/a>. Here are the new webcasts released after the last monthly release. We are looking into continuing the releases of the webcast in the future using weekly or bi-weekly schedule depending on the topics to be covered.<\/p>\n<ul>\n<li>12th of March &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/consuming-sharepoint-online-via-the-microsoft-graph\">Consuming SharePoint Online view the Microsoft Graph<\/a><\/li>\n<li>5th of March &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/using-msgraphclient-within-sharepoint-framework\">Using MSGraphClient within SharePoint Framework<\/a><\/li>\n<li>26th of February &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/introduction-to-office-365-cli\">Introduction to Office 365 CLI<\/a><\/li>\n<li>19th of February &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/upgrading-packages-in-sharepoint-framework-solutions\">Upgrading Packages in SharePoint Framework Solutions<\/a><\/li>\n<li>5th of February &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/webcast-sharepoint-framework-dialog-framework\">SharePoint Framework Dialog Framework\n<p><\/a><\/li>\n<\/ul>\n<h2>General Dev, CSOM, PnP Core, PnP PowerShell SIG Bi-Weekly Call Special Interest Group (SIG)<\/h2>\n<p>General SP Dev, CSOM PnP Sites Core, PowerShell and Provisioning Special Interest Group (SIG) have bi-weekly meetings to cover the general SharePoint topics, CSOM and latest in the PnP CSOM core component, PnP PowerShell and in the PnP remote provisioning engine. These calls have also free Q&amp;A section if you have any questions about SharePoint development in on-premises or in the cloud. Need to get a recommendation for your design or having a hard time with some APIs? &#8211; Drop by, ask a question and we&#8217;ll help you.<\/p>\n<p>You can download invite for the bi-weekly meeting from the following location.<\/p>\n<ul>\n<li>Invite to bi-weekly call &#8211;\u00a0<a href=\"https:\/\/aka.ms\/sppnp-core-sig-call\">https:\/\/aka.ms\/sppnp-core-sig-call<\/a><\/li>\n<\/ul>\n<p>All SIG meetings are being recorded and are available for view from <a href=\"https:\/\/www.youtube-nocookie.com\/playlist?list=PLR9nK3mnD-OURfm5Ypu-wK52cxBv_gXCA\">PnP YouTube Channel<\/a>. Here are the latest recordings of the SIG calls.<\/p>\n<ul>\n<li><a href=\"https:\/\/techcommunity.microsoft.com\/t5\/SharePoint-Developer\/SharePoint-Patterns-amp-Practices-General-SP-Dev-SIG-recording\/m-p\/169883\">8th of March<\/a>\u00a0&#8211;\u00a0SP Dev news with engineering update. Modern team site creation with a bot, flow and Azure Function. Preview on PnP PowerShell Core &#8211; update on CSOM Core plans.<\/li>\n<li><a href=\"https:\/\/techcommunity.microsoft.com\/t5\/SharePoint-Developer\/SharePoint-Patterns-amp-Practices-General-SP-Dev-SIG-recording\/m-p\/163574\">22nd of February<\/a>\u00a0&#8211;\u00a0SP Dev news with engineering update. Full end-to-end demo on hub sites. Usage, administration and API support.<\/li>\n<li><a href=\"https:\/\/techcommunity.microsoft.com\/t5\/SharePoint-Developer\/SharePoint-Patterns-amp-Practices-General-SP-Dev-SIG-recording\/m-p\/154541\">8th of February<\/a>\u00a0&#8211; SP Dev news with engineering update. Demo on Async option with ExecuteQueryAsync. Demo on cross-platform PowerShell Core. SharePoint through Graph.<\/li>\n<\/ul>\n<p>Interested in doing a community demo in these community calls? &#8211; Please let us know!<\/p>\n<h2>SharePoint Framework (SPFX) and JavaScript Special Interest Group (SIG)<\/h2>\n<p>SharePoint Framework and JavaScript Special Interest Group (SIG) has bi-weekly meetings to cover latest changes in the SharePoint Framework side, from the engineering perspective and to cover also latest development related to the <a href=\"https:\/\/github.com\/OfficeDev\/PnP-js-core\">PnP JS Core library<\/a>. These calls are designed to have 50%\/50% of content and demos and there has been already great community demos on the new SharePoint Framework Client-side web parts. If you&#8217;re interested in showing your code, just let us know.<\/p>\n<ul>\n<li>Invite to bi-weekly call &#8211; <a href=\"https:\/\/aka.ms\/sppnp-js-sig-call\">https:\/\/aka.ms\/sppnp-js-sig-call<\/a><\/li>\n<li>Gitter (Around the PnP JS Core) &#8211; <a href=\"https:\/\/gitter.im\/OfficeDev\/PnP-JS-Core\">https:\/\/gitter.im\/OfficeDev\/PnP-JS-Core<\/a><\/li>\n<\/ul>\n<p>All SharePoint Framework and JS SIG meetings are recorded, so that you can check the demos and discussions if you can&#8217;t make the actual call. You can find the latest recordings from the <a href=\"https:\/\/www.youtube-nocookie.com\/playlist?list=PLR9nK3mnD-OXdcwfcHGsGr78nHWLRsv1x\">PnP YouTube Channel<\/a>. Here are the latest recordings.<\/p>\n<ul>\n<li><a href=\"https:\/\/techcommunity.microsoft.com\/t5\/SharePoint-Developer\/SharePoint-Patterns-amp-Practices-SharePoint-Framework-Community\/m-p\/167113\">1st of March<\/a> &#8211; SharePoint Framework engineering update, PnP JS Core update, Office 365 CLI update, SPFx controls update &#8211; Live demos on React File Upload, Q&amp;A Chatbot with SPFx application customizer and Offline First React<\/li>\n<li><a href=\"https:\/\/techcommunity.microsoft.com\/t5\/SharePoint-Developer\/SharePoint-Patterns-amp-Practices-JavaScript-Special-Interest\/m-p\/159990\">15th of February<\/a>\u00a0&#8211;\u00a0SharePoint Framework engineering update, PnP JS Core update, Office 365 CLI update, SPFx controls update &#8211; Live demos on modern page management with PnPJs and building react Slide Swiper Sample<\/li>\n<\/ul>\n<p>Interested in doing a community demo in these community calls? &#8211; Please let us know!<\/p>\n<h2>SharePoint Dev Ecosystem in GitHub<\/h2>\n<p>There are quite a few different GitHub repositories under the SharePoint brand since we wanted to ensure that you can easily find and reuse what&#8217;s relevant to you. We do also combine multiple solutions to one repository so that you can more easily sync and get latest changes of our released guidance and samples.<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-docs\">sp-dev-docs<\/a> &#8211; Source for new SharePoint dev center documentation exposed from\u00a0<a href=\"http:\/\/dev.office.com\/sharepoint\">http:\/\/dev.office.com\/sharepoint<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-webparts\">sp-dev-fx-webparts<\/a> &#8211; Client-side web part samples from community and engineering<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-samples\">sp-dev-samples<\/a> &#8211; Samples for add-ins, webhooks, and other API<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-extensions\">sp-dev-fx-extensions<\/a>\u00a0&#8211; Samples and tutorial code around SharePoint Framework Extensions<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-vs-extension\">sp-dev-fx-vs-extension<\/a>\u00a0&#8211; Open source Visual Studio IDE extension for creating SharePoint Framework solutions\u00a0in the Visual Studio 2015 or 2017<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-build-extensions\">sp-dev-build-extensions<\/a>\u00a0&#8211;\u00a0Different build extensions like gulp tasks and gulp plugins from the community and engineering around SharePoint development<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-gdpr-activity-hub\">sp-dev-gdpr-activity-hub<\/a>\u00a0&#8211; Reference solution on the GDPR business case showing SPFx implementation with PowerBI and modern site customization<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-solutions\">sp-dev-solutions<\/a>\u00a0&#8211; Repository for more polished and fine-tuned reusable solutions build with SharePoint Framework<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-controls-react\">sp-dev-fx-controls-react<\/a>\u00a0&#8211;\u00a0Reusable content controls for SharePoint Framework solutions build with React<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-property-controls\">sp-dev-fx-property-controls<\/a>\u00a0&#8211; Reusable property pane controls to be used in web parts<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-column-formatting\">sp-dev-column-formatting<\/a>\u00a0&#8211; New open-source community driven repository for column formatting JSON definitions<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-site-scripts\">sp-dev-site-scripts<\/a>\u00a0&#8211;\u00a0New open-source community driven repository for community Site Designs and Site Scripts<\/li>\n<\/ul>\n<ul>\n<li><a href=\"https:\/\/github.com\/sharepoint\/pnp\" target=\"_blank\" rel=\"noopener\">PnP<\/a> &#8211; Main repository for SP add-in, Microsoft Graph\u00a0etc. samples<\/li>\n<li><a href=\"https:\/\/github.com\/sharepoint\/PnP-Guidance\" target=\"_blank\" rel=\"noopener\">PnP-Guidance<\/a> &#8211; Guidance, presentations, and articles which are partly synced to MSDN<\/li>\n<li><a href=\"https:\/\/github.com\/sharepoint\/PnP-Sites-Core\" target=\"_blank\" rel=\"noopener\">PnP-Sites-Core<\/a> &#8211; Office Dev PnP Core component<\/li>\n<li><a href=\"https:\/\/github.com\/sharepoint\/PnP-JS-Core\">PnP-JS-Core<\/a>\u00a0&#8211; Office Dev PnP Core component for JavaScript<\/li>\n<li><a href=\"https:\/\/github.com\/sharepoint\/PnP-PowerShell\" target=\"_blank\" rel=\"noopener\">PnP-PowerShell<\/a> &#8211; Office Dev PnP PowerShell Cmdlets<\/li>\n<li><a href=\"https:\/\/github.com\/sharepoint\/PnP-Tools\" target=\"_blank\" rel=\"noopener\">PnP-Tools<\/a> &#8211; Tools and scripts targeted more for IT Pro&#8217;s and for on-premises for SP2013 and SP2016<\/li>\n<li><a href=\"https:\/\/github.com\/sharepoint\/PnP-Partner-Pack\" target=\"_blank\" rel=\"noopener\">PnP-Partner-Pack<\/a> &#8211; Packaged guidance with detailed instructions on setting things up in Office 365 and in Azure.<\/li>\n<li><a href=\"https:\/\/github.com\/sharepoint\/PnP-Transformation\" target=\"_blank\" rel=\"noopener\">PnP-Transformation<\/a> &#8211; Material specifically for the transformation process. Currently, includes samples around InfoPath replacement and transformation tooling from farm solutions to add-in model.<\/li>\n<li><a href=\"https:\/\/github.com\/sharepoint\/pnp-provisioning-templates\">PnP-Provisioning-Templates<\/a>\u00a0&#8211;\u00a0Source for templates available from PnP Template Gallery at\u00a0<a href=\"http:\/\/templates-gallery.sharepointpnp.com\">http:\/\/templates-gallery.sharepointpnp.com<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/sharepoint\/PnP-provisioning-schema\" target=\"_blank\" rel=\"noopener\">PnP-Provisioning-Schema<\/a> &#8211; PnP Provisioning engine schema repository<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/PnP-IdentityModel\">PnP-IdentityModel<\/a>\u00a0&#8211; Open source replacement of\u00a0Microsoft.IdentityModel.Extensions.dll<\/li>\n<\/ul>\n<h2>What&#8217;s supportability story around PnP material?<\/h2>\n<p>Following statements apply across all of the PnP samples and solutions, including samples, core component(s) and solutions, like PnP Partner Pack.<\/p>\n<ul>\n<li>PnP guidance and samples are created by Microsoft &amp; by the Community<\/li>\n<li>PnP guidance and samples are maintained by Microsoft &amp; community<\/li>\n<li>PnP uses supported and recommended techniques<\/li>\n<li>PnP implementations are reviewed and approved by Microsoft engineering<\/li>\n<li>PnP is open source initiative\u00a0by the community \u2013 people who work on the initiative for the benefit of others, have their normal day job as well<\/li>\n<li>PnP is NOT a product and therefore it\u2019s not supported by Premier Support or other official support channels<\/li>\n<li>PnP is supported in similar ways as other open source projects done by Microsoft with support from the community by the community<\/li>\n<li>There are numerous partners that utilize PnP within their solutions for customers. Support for this is provided by the Partner. When PnP material is used in deployments, we recommend being clear with your customer\/deployment owner on the support model<\/li>\n<\/ul>\n<h1 id=\"latest-changes\">Latest changes<\/h2>\n<h3>SharePoint Framework samples<\/h3>\n<p>These are samples which are available from the SharePoint client-side web part sample repository at\u00a0<a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-webparts\">https:\/\/github.com\/SharePoint\/sp-dev-fx-webparts<\/a>\u00a0or from the SharePoint Framework Extensions repository at <a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-extensions\">https:\/\/github.com\/SharePoint\/sp-dev-fx-extensions<\/a>.<\/p>\n<ul>\n<li>Updates on the\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-solutions\/tree\/master\/solutions\/ColumnFormatter\">ColumnFormatter<\/a><\/strong> solution, which provides a web part to design column formatting definitions<\/li>\n<li>New tutorial\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-webparts\/tree\/master\/tutorials\/api-scopes\">api-scopes<\/a><\/strong> which is a result of the AAD and Graph tutorial available from\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/use-aad-tutorial\">SharePoint dev docs<\/a><\/li>\n<li>New sample\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-webparts\/tree\/master\/samples\/react-slide-swiper\">react-slide-swiper<\/a><\/strong> demonstrates mobile touch slide swiper<\/li>\n<li>New sample\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-webparts\/tree\/master\/samples\/react-offline-first\">react-offline-first<\/a><\/strong> showing how to store and use offline data first when web part is shown to avoid wait times for server round trips<\/li>\n<li>New sample <strong><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-webparts\/tree\/master\/samples\/react-tinymce\">react-tinymce<\/a><\/strong>\u00a0showing how to integrate TineMCE with SPFx<\/li>\n<li>Updates to\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-webparts\/tree\/master\/samples\/pnp-controls\">pnp-controls<\/a><\/strong> web part which demonstrates usage of generic SPFx controls<\/li>\n<li>Multiple web parts updated to use latest SharePoint 1.4.1 version and cleaning existing\u00a0<a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-webparts\/tree\/master\/samples\">SharePoint Framework client-side web part samples<\/a><\/li>\n<li>New application customizer\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-extensions\/tree\/master\/samples\/react-application-qna-chat\">react-application-qna-chat<\/a><\/strong> showing how to build a QnA chatbot using SPFx application customizer as the deployment model<\/li>\n<li>New application customizer\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-extensions\/tree\/master\/samples\/react-application-grouplinks\">react-application-grouplinks<\/a><\/strong> showing how to render a header navbar with some external links related to the Group on the site<\/li>\n<li>New application customizer\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-extensions\/tree\/master\/samples\/react-application-office-groups-nav\">react-application-office-groups-nav<\/a><\/strong> showing how to\u00a0use AadHttpClient to request Groups information from Microsoft Graph<\/li>\n<li>New list view command set\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-extensions\/tree\/master\/samples\/js-command-selecteditems-export\">js-command-selecteditems-export<\/a><\/strong> showing how to add a button to enable export of items in a list to excel<\/li>\n<li>Multiple extensions\u00a0updated to use latest SharePoint Framework 1.4 version and cleaning in existing\u00a0<a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-extensions\/tree\/master\/samples\">SharePoint Framework extension samples<\/a><\/li>\n<\/ul>\n<h3>Reusable open source controls for SharePoint Framework<\/h3>\n<p>New reusable controls initiative was announced in Ignite 2017 during September. There are two new npm packages and source code repositories for the reusable\u00a0controls which you can use in your\u00a0SharePoint Framework solutions. We do welcome community contributions to these initiatives as well. There are two different repositories:\u00a0<a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-property-controls\">sp-dev-fx-property-controls<\/a> and <a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-controls-react\">sp-dev-fx-controls-react<\/a>. Here are the changes on these repositories.<\/p>\n<p>New controls<\/p>\n<ul>\n<li><code>PropertyFieldMultiSelect<\/code>\u00a0got added<\/li>\n<li><code>PropertyFieldNumber<\/code>\u00a0got added<\/li>\n<\/ul>\n<p>Enhancements<\/p>\n<ul>\n<li>Optimized telemetry so that it only pushes control data<\/li>\n<li><code>PropertyFieldTermPicker<\/code>\u00a0newly introduced property to specify to show or hide the term store name:\u00a0<code>hideTermStoreName<\/code>.<\/li>\n<li><code>PropertyFieldTermPicker<\/code>\u00a0an updated process when terms were unselected based on ID instead of the path.<\/li>\n<\/ul>\n<p>Fixes<\/p>\n<ul>\n<li>Fixes for label rendering issue\u00a0<a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-property-controls\/issues\/30\">#30<\/a><\/li>\n<li>Fix for people picker validation issue\u00a0<a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-property-controls\/issues\/33\">#33\n<p><\/a><\/li>\n<\/ul>\n<h3>Community column formatting definitions<\/h3>\n<p>SharePoint Columns Formatting capability was released for First Release customers during October 2017. As\u00a0part of\u00a0the availability, we also announced the availability of\u00a0<a href=\"https:\/\/github.com\/SharePoint\/sp-dev-column-formatting\">open source repository<\/a> for sharing different column formatting definitions.\u00a0Following lists the changes in the column formatting area.<\/p>\n<ul>\n<li>No new column formatting samples during February<\/li>\n<\/ul>\n<h3>Office 365 CLI<\/h3>\n<p>Office 365 CLI was\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/announcing-office-365-cli-for-managing-your-office-365-tenant-on-any-platform\">released<\/a> in November 2017. This is an open source tool which enables you to controls tenant level properties in SharePoint Online or in Office 365 without the need of using PowerShell. SharePoint Online Management Shell is only available for Windows operating system.<\/p>\n<p>v1.0.0\u00a0<a href=\"https:\/\/sharepoint.github.io\/office365-cli\/about\/release-notes\/\">release<\/a> available with following changes<\/p>\n<ul>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/spo\/file\/file-list.md\">spo file list<\/a>\u00a0&#8211; lists all available files in the specified folder and site\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/281\">#281<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/spo\/list\/list-add.md\">spo list add<\/a>\u00a0&#8211; creates a list in the specified site\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/204\">#204<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/spo\/list\/list-remove.md\">spo list remove<\/a>\u00a0&#8211; removes the specified list\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/206\">#206<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/spo\/list\/list-set.md\">spo list set<\/a>\u00a0&#8211; updates the settings of the specified list\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/205\">#205<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/spo\/customaction\/customaction-clear.md\">spo customaction clear<\/a>\u00a0&#8211; deletes all custom actions in the collection\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/231\">#231<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/spo\/propertybag\/propertybag-get.md\">spo propertybag get<\/a>\u00a0&#8211; gets the value of the specified property from the property bag\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/289\">#289<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/spo\/propertybag\/propertybag-list.md\">spo propertybag list<\/a>\u00a0&#8211; gets property bag values\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/288\">#288<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/spo\/site\/site-set.md\">spo site set<\/a>\u00a0&#8211; updates properties of the specified site\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/121\">#121<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/spo\/site\/site-classic-add.md\">spo site classic add<\/a>\u00a0&#8211; creates new classic site\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/123\">#123<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/spo\/site\/site-classic-set.md\">spo site classic set<\/a>\u00a0&#8211; change classic site settings\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/124\">#124<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/spo\/sitedesign\/sitedesign-set.md\">spo sitedesign set<\/a>\u00a0&#8211; updates a site design with new values\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/251\">#251<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/spo\/tenant\/tenant-appcatalogurl-get.md\">spo tenant appcatalogurl get<\/a>\u00a0&#8211; gets the URL of the tenant app catalog\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/315\">#315<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/spo\/web\/web-add.md\">spo web add<\/a>\u00a0&#8211; create new subsite\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/189\">#189<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/spo\/web\/web-list.md\">spo web list<\/a>\u00a0&#8211; lists subsites of the specified site\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/187\">#187<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/spo\/web\/web-remove.md\">spo web remove<\/a>\u00a0&#8211; delete specified subsite\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/192\">#192<\/a><\/li>\n<\/ul>\n<ul>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/graph\/connect.md\">graph connect<\/a>\u00a0&#8211; connects to the Microsoft Graph\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/10\">#10<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/graph\/disconnect.md\">graph disconnect<\/a>\u00a0&#8211; disconnects from the Microsoft Graph\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/10\">#10<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/graph\/status.md\">graph status<\/a>\u00a0&#8211; shows Microsoft Graph connection status\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/10\">#10<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/graph\/o365group\/o365group-add.md\">graph o365group add<\/a>\u00a0&#8211; creates Office 365 Group\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/308\">#308<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/graph\/o365group\/o365group-get.md\">graph o365group get<\/a>\u00a0&#8211; gets information about the specified Office 365 Group\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/306\">#306<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/graph\/o365group\/o365group-list.md\">graph o365group list<\/a>\u00a0&#8211; lists Office 365 Groups in the current tenant\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/305\">#305<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/graph\/o365group\/o365group-set.md\">graph o365group set<\/a>\u00a0&#8211; updates Office 365 Group properties\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/307\">#307<\/a><\/li>\n<\/ul>\n<p>changes<\/p>\n<ul>\n<li>fixed bug in logging dates\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/317\">#317<\/a><\/li>\n<li>fixed typo in the example of the\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/blob\/dev\/docs\/manual\/docs\/cmd\/spo\/cdn\/cdn-origin-add.md\">spo cdn origin add<\/a>\u00a0command\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/338\">#338<\/a><\/li>\n<\/ul>\n<h3 id=\"provisioning-engine\">PnP CSOM Core and Provisioning Engine<\/h3>\n<p><a href=\"https:\/\/github.com\/OfficeDev\/PnP-sites-core\">PnP CSOM Core component<\/a>\u00a0is a wrapper on top of native SharePoint CSOM and REST API, which simplifies complex scenarios with remote APIs, one of the example is the PnP Provisioning Engine for remote templates. The first version of the <a href=\"http:\/\/channel9.msdn.com\/\/OfficeDevPnP\/Introduction-to-PnP-site-remote-provisioning-engine\">PnP remote provisioning engine<\/a> was released with the May 2015 release. This list contains the main updates in this release:<\/p>\n<p>Added<\/p>\n<ul>\n<li>Added ExecuteQueryRetryAsync method [baywet and SharePointRadi]<\/li>\n<li>Added EnsureLabel extension method to the taxonomy extensions [paulpascha]<\/li>\n<li>Added SetDefaultContentType extension methods on List objects. Notice that this method behaves differently from the deprecated SetDefaultContentTypeToList method. See the Deprecated section.<\/li>\n<li>Added AliasExistsAsync extension method to verify if an Office 365 Group alias is available for use<\/li>\n<li>Added support for taxonomy fields in DataRows at the provisioning engine level. [jensotto]<\/li>\n<li>Added support for updating owners and members of an Office 365 Group.<\/li>\n<li>Added support for TermStore DefaultLanguage when retrieving or adding a term. [stevebeauge]<\/li>\n<li>Added support for getting apps by title [gautamdsheth]<\/li>\n<li>Added .NET 2.0 Standard project to allow cross-platform use of the PnP Sites Core library<\/li>\n<\/ul>\n<p>Changed<\/p>\n<ul>\n<li>Improved test reliability by scoping out tests that should not execute during app-only test runs<\/li>\n<li>Correctly set the lookup list for fields of type User [pschaeflein]<\/li>\n<li>Don&#8217;t tokenize ~sitecollection in web parts XML [paulpascha]<\/li>\n<li>Updated base templates for March 2018 release<\/li>\n<li>Fix #1585 &#8211; Correctly handle Overwrite=false with the new pre-create of pages<\/li>\n<li>TimerJob framework reliability improvements (avoid breaking when client context could not be obtained)<\/li>\n<li>Fix #1595 &#8211; Fixed provisioning issue when the AppCatalog is missing. [gautamdsheth]<\/li>\n<li>Updated DataRow handler in provisioning engine to not update read-only fields, and to allow for emptying fields by leaving the element value empty of a DataValue element.<\/li>\n<li>Support extraction of &#8220;empty&#8221; client-side pages when using an extensibility provider that extracts more than the default home page<\/li>\n<li>Improved detection of illegal characters in folder and file names [aslanovsergey]<\/li>\n<li>Fix #1509 &#8211; Role inheritance can be broken when site security is specified with BreakRoleInheritance set to true without additional RoleAssignments specified [paulpascha]<\/li>\n<li>Commenting can be enabled\/disabled on home page via the ClientSidePages object handler<\/li>\n<li>RoleDefinitions are now parsed in the SiteSecurity object handler<\/li>\n<li>WebHook provisioning errors will not stop the provisioning process<\/li>\n<li>Improved list content type handling [jensotto]<\/li>\n<li>Exclude ComposedLook handler processing for NoScript sites<\/li>\n<li>Improved detection of App-Only to support web login based use<\/li>\n<li>SiteName and SiteTitle token updates [jensotto]<\/li>\n<li>Fix #1059 &#8211; SharePoint 2013 on-premises issues with ApplyProvisioningTemplate when publishing activated<\/li>\n<li>Switched to CSOM version 7414.1200<\/li>\n<li>Groupify method supports the &#8220;keep existing homepage&#8221; scenario<\/li>\n<li>Fixed behavior while adding\/updating data rows with the Provisioning Engine [craig-blowfield]<\/li>\n<\/ul>\n<p>Deprecated<\/p>\n<ul>\n<li>Marked SetDefaultContentTypeToList extensions methods on List and Web objects as deprecated. This method has some flaws. It was possible to use the ID of a content type at site level to set as a default content type in the list, IF a content type in that list was inheriting from the parent content type. The new method requires you to specify the actual content type that is associated with the list. It will not work to specify a parent content type id.<\/li>\n<\/ul>\n<p>See also <a href=\"https:\/\/testautomation.sharepointpnp.com\/\">https:\/\/testautomation.sharepointpnp.com<\/a>\u00a0for day-to-day results and executed tests.<\/p>\n<h3 id=\"pnp-library\">PnP JavaScript Core Library<\/h3>\n<p>Latest update is version 1.0.3 on the <a href=\"https:\/\/pnp.github.io\/pnp\/\">PnPJs library<\/a>. Here&#8217;s are the latest changes since the previous monthly release.<\/p>\n<p>Added<\/p>\n<ul>\n<li>@pnp\/sp: Support for backward navigation in item paging skip method [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/16\">PR<\/a>]<\/li>\n<li>@pnp\/sp: Support for % and # character in files and folders with the ResourcePath API [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/16\">PR<\/a>]<\/li>\n<li>@pnp\/sp: Support for social follow API (_api\/social.following) [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/16\">PR<\/a>] [<a href=\"https:\/\/github.com\/pnp\/pnp\/blob\/dev\/packages\/sp\/docs\/social.md\">Docs<\/a>]<\/li>\n<li>@pnp\/sp: commentsDisabled property to ClientSidePage class [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/18\">PR<\/a>] [<a href=\"https:\/\/github.com\/pnp\/pnp\/blob\/dev\/packages\/sp\/docs\/client-side-pages.md#control-comments\">Docs<\/a>]<\/li>\n<li>@pnp\/sp: Support for finding controls to ClientSidePage class [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/19\">PR<\/a>] [<a href=\"https:\/\/github.com\/pnp\/pnp\/blob\/dev\/packages\/sp\/docs\/client-side-pages.md#find-controls\">Docs<\/a>]<\/li>\n<li>@pnp\/sp: Export ContentTypes and RegionalSettings related classes (<a href=\"https:\/\/github.com\/allanhvam\">@allanhvam<\/a>) [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/24\">PR<\/a>]<\/li>\n<li>@pnp\/sp: Support for managing client-side pages [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/7\">PR<\/a>]<\/li>\n<li>@pnp\/sp: getAll method on Items collection [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/4\">PR<\/a>]<\/li>\n<li>@pnp\/sp: addUser, addLookup, addChoice, addMultiChoice, and addBoolean on Fields collection [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/4\">PR<\/a>]<\/li>\n<li>@pnp\/sp: getClientSideWebParts method on Web [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/7\">PR<\/a>]<\/li>\n<li>tooling: updates to test gulp task to support &#8211;s and &#8211;site parameters [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/7\">PR<\/a>]<\/li>\n<\/ul>\n<p>Changed\/Fixed<\/p>\n<ul>\n<li>@pnp\/sp: Issue with File.setContentChunked and Files.addChunked in odata=verbose mode [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/16\">PR<\/a>]<\/li>\n<li>@pnp\/sp: Issue with clone and configure [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/16\">PR<\/a>]<\/li>\n<li>@pnp\/graph: Issue clone and configure [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/16\">PR<\/a>]<\/li>\n<li>@pnp\/sp: Issue with adding client-side webparts with ids with {} chars [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/16\">PR<\/a>]<\/li>\n<li>@pnp\/sp: Issue with adding client-side webparts and setting order values [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/17\">PR<\/a>]<\/li>\n<li>Removed gulp-util in favor of individual libraries per guidance [<a href=\"https:\/\/github.com\/pnp\/pnp\/pull\/7\">PR<\/a>]<\/li>\n<\/ul>\n<p>This is a similar effort as what PnP initiative previously has done with the <a href=\"https:\/\/github.com\/OfficeDev\/PnP-sites-core\">PnP\u00a0CSOM Core Component<\/a>\u00a0together with the community.<\/p>\n<h3 id=\"pnp-library\">PnP PowerShell<\/h3>\n<p><a href=\"http:\/\/aka.ms\/sppnp-powershell\">PnP PowerShell<\/a>\u00a0providers more than three hundred additional PowerShell cmdlets, which can be used to manipulate content\u00a0in SharePoint Online and in on-premises (SP2013, SP2016). These cmdlets are additive for SharePoint Online management shell, which concentrate more on the administrative tasks with SharePoint Online.<\/p>\n<p>Here are the latest changes in the\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/sharepoint\/sharepoint-pnp\/sharepoint-pnp-cmdlets?view=sharepoint-ps\">PnP PowerShell<\/a><\/p>\n<p>Added<\/p>\n<ul>\n<li>Added Get-PnPTenant cmdlet<\/li>\n<li>Added Set-PnPTenant cmdlet<\/li>\n<li>Added Set-PnPWebTheme cmdlet<\/li>\n<li>Added Invoke-PnPSiteDesign cmdlet<\/li>\n<li>Added Read-PnPProvisioningTemplate cmdlet [Rename: see deprecated section]<\/li>\n<li>Added Invoke-PnPQuery cmdlet [Rename: see deprecated section]<\/li>\n<li>Added Resolve-PnPFolder cmdlet [Rename: see deprecated section]<\/li>\n<li>Added New-PnPAzureCertificate cmdlet<\/li>\n<li>Added Get-PnPAzureCertificate cmdlet<\/li>\n<li>Added Test-PnPOffice365GroupAliasIsUsed cmdlet<\/li>\n<li>Added Remove-PnPStoredCredential<\/li>\n<li>Added Add-PnPStoredCredential<\/li>\n<li>Added Get-PnPHubSite cmdlet<\/li>\n<li>Added Set-PnPHubSite cmdlet<\/li>\n<li>Added Grant-PnPHubSiteRights cmdlet<\/li>\n<li>Added Register-PnPHubSite cmdlet<\/li>\n<li>Added Unregister-PnPHubSite cmdlet<\/li>\n<li>Added Connect-PnPHubSite cmdlet<\/li>\n<li>Added Disconnect-PnPHubSite cmdlet<\/li>\n<li>Added Add-PnPTenantTheme cmdlet<\/li>\n<li>Added Get-PnPTenantTheme cmdlet<\/li>\n<li>Added Remove-PnPTenantTheme cmdlet<\/li>\n<li>Added Set-PnPTenantCdnEnabled cmdlet<\/li>\n<li>Added Get-PnPTenantCdnEnabled cmdlet<\/li>\n<li>Added Get-PnPTenantCdnOrigin cmdlet<\/li>\n<li>Added Add-PnPTenantCdnOrigin cmdlet<\/li>\n<li>Added Remove-PnPTenantCdnOrigin cmdlet<\/li>\n<li>Added Get-PnPTenantCdnPolicies cmdlet<\/li>\n<li>Added Set-PnPTenantCdnPolicy cmdlet<\/li>\n<li>Added Add-PnPSiteCollectionAppCatalog cmdlet<\/li>\n<li>Added Remove-PnPSiteCollectionAppCatalog cmdlet<\/li>\n<li>Added Get-PnPNavigationNode cmdlet<\/li>\n<li>Added Get-PnPRoleDefinition cmdlet<\/li>\n<li>Added Add-PnPRoleDefinition cmdlet<\/li>\n<li>Added Remove-PnPRoleDefinition cmdlet<\/li>\n<li>Implemented .NET 2.0 Standard project to allow for cross-platform use with PowerShell 6.0<\/li>\n<\/ul>\n<p>Changed<\/p>\n<ul>\n<li>Added &#8220;Formula&#8221; dynamic parameter to Add-PnPField to allow creating calculated fields.<\/li>\n<li>Updated Set-PnPClientSidePage to support setting the page title<\/li>\n<li>Added -Graph [and -LaunchBrowser] option to authenticate with Connect-PnPOnline to the Graph using the PnP O365 Management Shell Azure AD Application<\/li>\n<li>Updated the UnifiedGroup cmdlets to also take an Alias of a group as a value for the -Identity parameter<\/li>\n<li>Minor documentation updates [thechriskent]<\/li>\n<li>Updated Connect-PnPOnline to support connecting using PEM encoded certificate strings<\/li>\n<li>Updated Connect-PnPOnline for On-Premises to allow for additional HighTrustCertificate parameters [fowl2]<\/li>\n<li>Added -EnableAttachment parameter for Set-PnPList [Laskewitz]<\/li>\n<li>Added -Approve parameter for Set-PnPFileCheckedIn [Aproxmiation]<\/li>\n<li>Added -EnableModeration for Set-PnPList [Apromixation]<\/li>\n<li>Fixed issue where it was not possible to use New-PnPSite when using Connect-PnPOnline with the -UseWebLogin parameter<\/li>\n<li>Fixed issue with Copy-PnPFile when copying to a location within the current web where metadata was not being retained<\/li>\n<li>Fixed issue with Add-PnPFile when a new file was uploaded and using the cmdlet also field values where set, the version would increase to 2.0 instead of the expected 1.0<\/li>\n<li>Fixed issues with Set-PnPTheme cmdlet not accepting site relative urls<\/li>\n<li>Move-PnPFolder now returns the folder that has been moved<\/li>\n<li>Updated Get-PnPStoredCredentials to support .NET Standard<\/li>\n<li>Updated\/fixed documentation on various cmdlets<\/li>\n<li>Fixed issue with Get-PnPTenantSite not returning all sites in large tenants<\/li>\n<li>Added -PnPO365ManagementShell [and -LaunchBrowser] login option to Connect-PnPOnline<\/li>\n<li>Changed changelog format<\/li>\n<li>Updated Remove-PnPNavigationNode cmdlet to support removal by Id<\/li>\n<li>Updated Remove-PnPNavigationNode cmdlet to support the -All parameter<\/li>\n<li>Updated Set-PnPList cmdlet to change moderation setting<\/li>\n<li>Updated Set-PnPFileCheckedIn to approve the file<\/li>\n<\/ul>\n<p>Deprecated<\/p>\n<ul>\n<li>[SharePoint Online Only] Deprecated Get-PnPAppInstance, Import-PnPAppPackage, Uninstall-PnPAppPackage. Use Add-PnPApp, Install-PnPApp, Publish-PnPApp, Uninstall-PnPApp, Remove-PnPApp instead where applicable.<\/li>\n<li>Deprecated Load-PnPProvisioningTemplate, renaming it to Read-PnPProvisioningTemplate which follows the PowerShell approved verb standard. Load-PnPProvisioningTemplate has been added as an alias for Read-PnPProvisioningTemplate.<\/li>\n<li>Deprecated Execute-PnPQuery, renaming it to Invoke-PnPQuery which follows the PowerShell approved verb standard. Execute-PnPQuery has been added as an alias for Invoke-PnPQuery.<\/li>\n<li>Deprecated Ensure-PnPFolder, moving functionality to Resolve-PnPFolder which follows the PowerShell approved verb standard. Ensure-PnPFolder has been added as an alias for Resolve-PnPFolder.<\/li>\n<li>Documentation\/Markdown generation has been removed from the build, now points to\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/sharepoint\/sharepoint-pnp\/sharepoint-pnp-cmdlets?view=sharepoint-ps\" rel=\"nofollow\">https:\/\/docs.microsoft.com\/en-us\/powershell\/sharepoint\/sharepoint-pnp\/sharepoint-pnp-cmdlets?view=sharepoint-ps<\/a><\/li>\n<li>Deprecated Remove-PnPNavigationNode -Title and -Header parameters. Use the Identity parameter instead.<\/li>\n<li>Marked -WebTemplate parameter on Get-PnPTenantSite as obsolete. Use -Template instead.<\/li>\n<li>Deprecated Get-PnPAzureADManifestKeyCredentials. Use Get-PnPAzureCertificate instead.<\/li>\n<\/ul>\n<p>Other<\/p>\n<ul>\n<li>Updated automatically generated PnP PowerShell cmdlet documentation at\u00a0<a href=\"https:\/\/docs.microsoft.com\/en-us\/powershell\/sharepoint\/sharepoint-pnp\/sharepoint-pnp-cmdlets?view=sharepoint-ps\">docs.microsoft.com\n<p><\/a><\/li>\n<\/ul>\n<h3 id=\"pnp-library\">PnP sample library<\/h3>\n<p>Here are updates across the PnP code sample library by the community on the code and documentation, which is a great way to contribute as well.<\/p>\n<ul>\n<li><b>New<\/b>\u00a0sample\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/PnP\/tree\/master\/Solutions\/O365.Modern.Provisioning\">O365.Modern.Provisioning<\/a><\/strong>\u00a0demonstrating how to integrate a typical enterprise scenario where the user can submit a creation&#8217;s request for a new SharePoint team site, communication site or a Microsoft team<\/li>\n<li><b>New\u00a0<\/b>sample\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/PnP\/tree\/master\/Samples\/MultiGeo.TenantInformationCollectionCSOM\">MultiGeo.TenantInformationCollectionCSOM<\/a><\/strong>\u00a0showing how to use CSOM to get geolocation details for a multi-geo tenant<\/li>\n<li><strong>New<\/strong> sample\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/PnP\/tree\/master\/Samples\/Provisioning.Extensibility.Pages\">Provisioning.Extensibility.Pages<\/a><\/strong> which is an\u00a0extensibility handler that exports all client-side pages of a site<\/li>\n<li><strong>Updates <\/strong>to\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/PnP\/tree\/master\/Solutions\/Business.StarterIntranet\">Business.StarterIntranet<\/a><\/strong> solution sample, which\u00a0is a generic, enterprise intranet publishing solution, compatible with SharePoint 2013, 2016 and SharePoint Online.<\/li>\n<\/ul>\n<h3 id=\"pnp-guidance-articles\">SharePoint Dev articles<\/h3>\n<p>SharePoint Dev articles are surfaced currently in\u00a0<a href=\"http:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\">docs.microsoft.com\/en-us\/sharepoint\/dev<\/a>. \u00b4Since the last release, we have now merged also SharePoint PnP Solution guidance to docs.microsoft.com platform, so you&#8217;ll only have one location to follow all relevant SharePoint Dev documentation and guidance. You can provide contributions to these documents by submitting documentation improvements using GitHub tooling. All of the SharePoint Dev docs are stored and surfaced from the <a href=\"https:\/\/github.com\/SharePoint\/sp-dev-docs\">sp-dev-docs repository<\/a>.<\/p>\n<p>Here are new\/updated articles on the SharePoint Development.<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/use-aadhttpclient\">Connect to Azure AD secured APIs in SharePoint Framework solutions<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/use-msgraph\">Use the MSGraphClient to connect to Microsoft Graph<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/use-aad-tutorial\">Tutorial &#8211; Consuming APIs secured with the Azure AD within the SharePoint Framework<\/a><\/li>\n<li>Updates on the Site Design and Site Script documentation\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/declarative-customization\/site-design-overview\">SharePoint Site Design and Site Script Overview<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/declarative-customization\/get-started-create-site-design\">Get started creating site designs and site scripts<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/declarative-customization\/site-design-scoping\">Scoping access to site designs<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/declarative-customization\/customize-default-site-design\">Customize a default site design<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/declarative-customization\/site-design-json-schema\">Site design JSON schema<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/declarative-customization\/site-design-powershell\">PowerShell cmdlets for SharePoint site designs and site scripts<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/declarative-customization\/site-design-rest-api\">Site design and site script REST API<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/declarative-customization\/site-design-pnp-provisioning\">Calling the PnP Provisioning Engine from a Site Script<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Updates on\u00a0numerous other articles on ensuring that the guidance is up to date where possible<\/li>\n<\/ul>\n<h3 id=\"pnp-guidance-videos\">PnP Guidance videos<\/h3>\n<p>You can find all\u00a0SharePoint Dev videos on our YouTube Channel at <a href=\"http:\/\/aka.ms\/sppnp-vidoes\">http:\/\/aka.ms\/sppnp-videos<\/a>. This location contains already a significant amount of detailed training material, demo videos, and community call recordings.<\/p>\n<ul>\n<li><a href=\"https:\/\/www.youtube-nocookie.com\/watch?v=-VLGj-kV0Pw\">Getting up and running with PnP PowerShell<\/a><\/li>\n<li>Updated\u00a0<a href=\"https:\/\/www.youtube-nocookie.com\/watch?v=-tXf8gxjmOI\">SharePoint Framework Tutorial &#8211; Setting up your development environment<\/a> &#8211; to match latest versions of the used tools<\/li>\n<\/ul>\n<h1 id=\"key-contributors-for-the-september-2015-release\">Key contributors to the March 2018 update<\/h2>\n<p>Here\u2019s the list of active contributors (in alphabetical order) since last release details in SharePoint Dev repositories or community channels. PnP is really about building tooling and knowledge together with the community for the community, so your contributions are highly valued across the Office 365 customers, partners and obviously also at Microsoft.<\/p>\n<p><strong>Thank you for your assistance and contributions on the behalf of the community. You are making a difference!<\/strong><\/p>\n<ul>\n<li>Alex Lknr &#8211;\u00a0<a href=\"https:\/\/github.com\/lkrn\">lkrn<\/a><\/li>\n<li>Alex Terentiev (SharePointalist) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/alexaterentiev\">@alexaterentiev<\/a><\/li>\n<li>Allan Hvam &#8211;\u00a0<a href=\"https:\/\/github.com\/allanhvam\">allanhvam<\/a><\/li>\n<li>Andrew Connell (Voitanos) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/andrewconnell\">@andrewconnell<\/a><\/li>\n<li>Andrew Koltyakov (ARVO Systems) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/andrewkoltyakov\">@andrewkoltyakov<\/a><\/li>\n<li>Antoine Griffard &#8211;\u00a0<a href=\"https:\/\/github.com\/agriffard\">agriffard<\/a><\/li>\n<li>Austin Breslin &#8211;\u00a0<a href=\"https:\/\/github.com\/AustinBreslinDev\">AustinBreslinDev<\/a><\/li>\n<li>Balamurugan Kailasam &#8211;\u00a0<a href=\"https:\/\/github.com\/kshsbala\">kshsbala<\/a><\/li>\n<li>Ben Stegink &#8211;\u00a0<a href=\"https:\/\/twitter.com\/benstegink\">@benstegink<\/a><\/li>\n<li>Charles Simard-Lecours &#8211;\u00a0<a href=\"https:\/\/github.com\/cslecours\">cslecours<\/a><\/li>\n<li>Chris Kent (DMI) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/theChrisKent\">@theChrisKent<\/a><\/li>\n<li>Craig Blowfield &#8211;\u00a0<a href=\"https:\/\/github.com\/craig-blowfield\">craig-blowfield<\/a><\/li>\n<li>Daniel Laskewitz (Sogeti) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/laskewitz\">@laskewitz<\/a><\/li>\n<li>Dennis\u00a0Goedegebuure (Winvisio) &#8211;\u00a0<a href=\"https:\/\/github.com\/expiscornovus\">expiscornovus<\/a><\/li>\n<li>Elio Struyf &#8211;\u00a0<a href=\"https:\/\/twitter.com\/eliostruyf\">@eliostruyf<\/a><\/li>\n<li>Erwin van Hunen (Rencore) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/erwinvanhunen\">@erwinvanhunen<\/a><\/li>\n<li>Eric Shupps &#8211;\u00a0<a href=\"https:\/\/twitter.com\/eshupps\">@eshupps<\/a><\/li>\n<li>Franck Cornu (aequos) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/FranckCornu\">@FranckCornu<\/a><\/li>\n<li>Gautam Sheth (Rapid Circle) &#8211;\u00a0<a href=\"https:\/\/github.com\/gautamdsheth\">gautamdsheth<\/a><\/li>\n<li>Giuliano De Luca &#8211;\u00a0<a href=\"https:\/\/twitter.com\/giuleon\">@giuleon<\/a><\/li>\n<li>Jeff Jones &#8211;\u00a0<a href=\"https:\/\/github.com\/spjeff\">spjeff<\/a><\/li>\n<li>Jens Otto Hatlevold (Bouvet AS) &#8211;\u00a0<a href=\"https:\/\/github.com\/jensotto\">jensotto<\/a><\/li>\n<li>James May &#8211;\u00a0<a href=\"https:\/\/github.com\/fowl2\">fowl2<\/a><\/li>\n<li>Joel Rodrigues (CPS) &#8211;\u00a0<a href=\"https:\/\/github.com\/joelfmrodrigues\">joelfmrodrigues<\/a><\/li>\n<li>John Badgett &#8211;\u00a0<a href=\"https:\/\/github.com\/jonthenerd\">jonthenerd<\/a><\/li>\n<li>Luis Ma\u00f1ez (ClearPeople) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/luismanez\">@luismanez<\/a><\/li>\n<li>Mikael Svenson (Puzzlepart) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/mikaelsvenson\">@mikaelsvenson<\/a><\/li>\n<li>Paolo Pialorsi (PiaSys.com) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/PaoloPia\">@PaoloPia<\/a><\/li>\n<li>Paul Schaeflein &#8211;\u00a0<a href=\"https:\/\/twitter.com\/paulschaeflein\">@paulschaeflein<\/a><\/li>\n<li>Paul Keijzers (Wortell) &#8211;\u00a0<a href=\"https:\/\/github.com\/KbWorks\">KbWorks<\/a><\/li>\n<li>Paul Pascha (Wortell) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/paulpascha\">@paulpascha<\/a><\/li>\n<li>Pawe\u0142 Hawrylak (Sii Poland) &#8211;\u00a0<a href=\"https:\/\/github.com\/phawrylak\">phawrylak<\/a><\/li>\n<li>Radi Atanassov (OneBit Software) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/RadiAtanassov\">@RadiAtanassov<\/a><\/li>\n<li>Rajesh Sitaraman &#8211;\u00a0<a href=\"https:\/\/twitter.com\/rjesh\">@rjesh<\/a><\/li>\n<li>Ramin Ahmadi &#8211;\u00a0<a href=\"https:\/\/github.com\/raminahmadi1986\">raminahmadi1986<\/a><\/li>\n<li>Rodrigo Silva (Storm Technology) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/RodResendeSilva\">@RodResendeSilva<\/a><\/li>\n<li>Robert Schouten (Wortell) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/rfjschouten\">@rfjschouten<\/a><\/li>\n<li>Sergei Sergeev &#8211;\u00a0<a href=\"https:\/\/twitter.com\/sergeev_srg\">@sergeev_srg<\/a><\/li>\n<li>SachMSFT &#8211;\u00a0<a href=\"https:\/\/github.com\/SachMSFT\">SachMSFT<\/a><\/li>\n<li>Sahil Malik (Winsmarts) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/sahilmalik\">@sahilmalik<\/a><\/li>\n<li>Samuel Levesque &#8211;\u00a0<a href=\"https:\/\/github.com\/levesquesamuel\">levesquesamuel<\/a><\/li>\n<li>Scott Hoag &#8211;\u00a0<a href=\"https:\/\/twitter.com\/ciphertxt?lang=en\">@ciphertxt<\/a><\/li>\n<li>Simon-Pierre Plante (SPP Technologies) &#8211;\u00a0<a href=\"https:\/\/github.com\/spplante\">spplante<\/a><\/li>\n<li>Spencer Harbar &#8211;\u00a0<a href=\"https:\/\/twitter.com\/harbars\">@harbars<\/a><\/li>\n<li>Stefan Bauer (n8d) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/StfBauer\">@StfBauer<\/a><\/li>\n<li>Steve Beaug\u00e9 (Solutions pour SharePoint) &#8211;\u00a0<a href=\"https:\/\/github.com\/stevebeauge\">stevebeauge<\/a><\/li>\n<li>Tomas Hallberg &#8211;\u00a0<a href=\"https:\/\/github.com\/thlbrg\">thlbrg<\/a><\/li>\n<li>Tony Phillips (Cloud Design Box Ltd) &#8211;\u00a0<a href=\"https:\/\/github.com\/CloudDesignBox\">CloudDesignBox<\/a><\/li>\n<li>Vardhaman Deshpande (Content and Code) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/vrdmn\">@vrdmn<\/a><\/li>\n<li>Velin Georgiev &#8211;\u00a0<a href=\"https:\/\/twitter.com\/velingeorgiev\">@velingeorgiev<\/a><\/li>\n<li>Vincent Biret (2toLead) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/baywet\">@baywet<\/a><\/li>\n<li>Waldek Mastykarz (Rencore) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/waldekm\">@waldekm\n<\/a><\/li>\n<li>Wictor Wilen (Avanade) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/wictor\">@wictor<\/a><\/li>\n<li>YaroslavYakymenko &#8211;\u00a0<a href=\"https:\/\/github.com\/YaroslavYakymenko\">YaroslavYakymenko\n<p><\/a><\/li>\n<\/ul>\n<p><strong>Companies:<\/strong> Here&#8217;s the companies, which provided support for PnP initiative for this month by allowing their employees working for the benefit of others in the PnP initiative. There were also people who contributed from other companies during last month, but we did not get their logos and approval to show them in time for these communications. If you still want your logo for this month&#8217;s release, please let us know and share the logo with us. Thx.<\/p>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\"><a href=\"http:\/\/www.2tolead.com\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"2toLead\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/uwYexrE.png\" alt=\"2toLead\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\"><a href=\"https:\/\/www.aequos.ca\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"aequos\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/Psw0EKr.png\" alt=\"aequos\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\"><a href=\"https:\/\/www.arvosys.com\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"Arvo Systems\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/2riMm9M.png\" alt=\"Arvo Systems\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\"><a href=\"http:\/\/www.clearpeople.com\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"ClearPeople\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/0K23t8W.png\" alt=\"ClearPeople\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\"><a href=\"https:\/\/www.contentandcode.com\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"Content and Code\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/OlBLuQp.png\" alt=\"Content and Code\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\"><a href=\"http:\/\/www.cps.co.uk\" target=\"_blank\" rel=\"noopener\" aria-label=\"CPS\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/XxcBm6e.jpg\" alt=\"CPS\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\"><a href=\"https:\/\/dminc.com\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"DMI\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/sWdKsxQ.png\" alt=\"DMI\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\"><a href=\"http:\/\/www.piasys.com\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"piasys\"><img decoding=\"async\" src=\"https:\/\/camo.githubusercontent.com\/e47d2b2207d4184bbccc22d93b61ef4cb49fa7c2\/687474703a2f2f692e696d6775722e636f6d2f634539336631642e706e67\" alt=\"piasys\" data-canonical-src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/cE93f1d.png\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\">\u00a0<a href=\"https:\/\/www.puzzlepart.com\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"Puzzlepart\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/8e9SBSH.png\" alt=\"Puzzlepart\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\">\u00a0<a href=\"http:\/\/www.onebitsoftware.net\" target=\"_blank\" rel=\"noopener\" aria-label=\"onebit software\"><img decoding=\"async\" src=\"https:\/\/camo.githubusercontent.com\/8640fbafb7d7fcf7870ab7b3c05143ab303c9304\/687474703a2f2f692e696d6775722e636f6d2f4d4d335a61684d2e706e67\" alt=\"onebit software\" data-canonical-src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/MM3ZahM.png\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\">\u00a0<a href=\"http:\/\/www.rapidcircle.com\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"Rapid Circle\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/lG1kjkT.png\" alt=\"Rapid Circle\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\">\u00a0<a href=\"http:\/\/www.rencore.com\" target=\"_blank\" rel=\"noopener\" aria-label=\"rencore\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/9R9boNe.png\" alt=\"rencore\" data-canonical-src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/g4lHv43.png\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\">\u00a0<a href=\"http:\/\/www.sharepointalist.com\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"SharePointalist\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/m2fzocK.jpg\" alt=\"SharePointalist\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\">\u00a0<a href=\"https:\/\/sii.pl\/en\" target=\"_blank\" rel=\"noopener\" aria-label=\"Sii Technologies\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/AGY2EtX.png\" alt=\"Sii Technologies\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\">\u00a0<a href=\"https:\/\/www.sogeti.com\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"Sogeti\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/d8oI59z.png\" alt=\"Sogeti\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\">\u00a0<a href=\"http:\/\/www.sosp.fr\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"SoSP\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/PUJM4g4.png\" alt=\"SoSP\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\">\u00a0<a href=\"https:\/\/n8d.at\/\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"Stefan Bauer\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/hm04lFe.png\" alt=\"Stefan Bauer\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\">\u00a0<a href=\"http:\/\/www.storm.ie\/\" target=\"_blank\" rel=\"noopener\" aria-label=\"Storm Technology\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/0nFfXM5.png\" alt=\"Storm Technology\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\">\u00a0<a href=\"https:\/\/www.voitanos.io\/?dst=sharepointpnp&amp;utm_source=sharepointpnp&amp;utm_medium=blog\" target=\"_blank\" rel=\"noopener\" aria-label=\"Voitanos\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/xvdxvbj.png\" alt=\"Voitanos\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\"><a href=\"https:\/\/www.wortell.nl\/en\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/o5tLpC6.jpg\" alt=\"Wortell\" \/><\/a><\/div>\n<div style=\"margin: 10px;vertical-align: middle;height: 100%\"><\/div>\n<div style=\"vertical-align: middle;width: 100%\">\n<p><strong>\nMicrosoft people:<\/strong> Here\u2019s the list of Microsoft people who have been closely involved with the PnP work during last month.<\/p>\n<ul>\n<li>Aaron Miao &#8211;\u00a0<a href=\"https:\/\/github.com\/aaronmi\">aaronmi<\/a><\/li>\n<li>Antons Mislevics &#8211; <a href=\"https:\/\/github.com\/antonsmislevics\">antonsmislevics<\/a><\/li>\n<li>Bert Jansen &#8211; <a href=\"https:\/\/twitter.com\/O365Bert\">@O365Bert<\/a><\/li>\n<li>Brian Michely &#8211; <a href=\"https:\/\/twitter.com\/brianmichely\">@brianmichely<\/a><\/li>\n<li>Chakkaradeep (Chaks) Chinnakonda Chandran &#8211; <a href=\"https:\/\/twitter.com\/chakkaradeep\">@chakkaradeep<\/a><\/li>\n<li>Chris Hackman<\/li>\n<li>David Chesnut<\/li>\n<li>Frank Marasco &#8211; <a href=\"https:\/\/twitter.com\/frank_marasco\">@frank_marasco<\/a><\/li>\n<li>Josh Goldberg &#8211;\u00a0<a href=\"https:\/\/github.com\/JoshuaKGoldberg\">JoshuaKGoldberg<\/a><\/li>\n<li>Koen Zomers &#8211;\u00a0<a href=\"https:\/\/twitter.com\/koenzomers\">@koenzomers<\/a><\/li>\n<li>Laura Graham &#8211; <a href=\"https:\/\/github.com\/Lauragra\">Lauragra<\/a><\/li>\n<li>Linda Lu Cannon &#8211;\u00a0<a href=\"https:\/\/github.com\/lindalu-MSFT\">lindalu-MSFT<\/a><\/li>\n<li>Lincoln DeMaris<\/li>\n<li>Luca Bandinelli &#8211;\u00a0<a href=\"https:\/\/github.com\/lucaband\">lucaband<\/a><\/li>\n<li>Mike Ammerlaan &#8211;\u00a0<a href=\"https:\/\/twitter.com\/mikeamm\">@mikeamm<\/a><\/li>\n<li>Neil Hodgkinson &#8211;\u00a0<a href=\"https:\/\/twitter.com\/Nellymo\">@Nellymo<\/a><\/li>\n<li>Nicholas Pape &#8211;\u00a0<a href=\"https:\/\/github.com\/nickpape-msft\">nickpape-msft<\/a><\/li>\n<li>Pat Miller &#8211;\u00a0<a href=\"https:\/\/twitter.com\/PatMill_MSFT\">@PatMill_MSFT<\/a><\/li>\n<li>Patrick Rodgers &#8211; <a href=\"https:\/\/twitter.com\/mediocrebowler\">@mediocrebowler<\/a><\/li>\n<li>Piotrek Krakowiak &#8211;\u00a0<a href=\"https:\/\/github.com\/PiotrekKrakowiak\">PiotrekKrakowiak<\/a><\/li>\n<li>Sean Squires &#8211;\u00a0<a href=\"https:\/\/twitter.com\/iamseansquires\">@iamseansquires<\/a><\/li>\n<li>Tom Resing &#8211;\u00a0<a href=\"https:\/\/twitter.com\/resing\">@resing<\/a><\/li>\n<li>Vesa Juvonen &#8211; <a href=\"https:\/\/twitter.com\/vesajuvonen\">@vesajuvonen\n<p><\/a><\/li>\n<\/ul>\n<h2>Next steps<\/h2>\n<ul>\n<li>March 2018 monthly community call is on Tuesday 13th of February at 8\u00a0AM PT \/ 5 PM CEST \/ 4 PM GMT for latest release details with demos &#8211; Download recurrent invite to monthly community call with a detailed schedule for your time zone from <a href=\"http:\/\/aka.ms\/sppnp-call\">http:\/\/aka.ms\/sppnp-call<\/a>.<\/li>\n<\/ul>\n<p><img decoding=\"async\" class=\"img-responsive\" src=\"https:\/\/officedevblogs.wpengine.com\/wp-content\/uploads\/2018\/05\/pnp-resources-list.png\" alt=\"PnP Resources in one picture - numerous links mentioned in this blog post\" \/><\/p>\n<p><span style=\"font-size: large\"><em>\u201cSharing is caring\u201d<\/em><\/span><\/p>\n<hr \/>\n<p><i><a href=\"https:\/\/twitter.com\/vesajuvonen\">Vesa Juvonen<\/a>, Senior Program Manager, SharePoint, Microsoft &#8211; 12th of\u00a0March 2018<\/i><\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>SharePoint Dev Ecosystem \/ SharePoint Patterns and Practices (PnP)\u00a0March 2018 update is out with a summary of the latest guidance, samples, and solutions from SharePoint engineering or from the community for the community. <\/p>\n","protected":false},"author":69217,"featured_media":52,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-8696","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-microsoft-365-developer"],"acf":[],"blog_post_summary":"<p>SharePoint Dev Ecosystem \/ SharePoint Patterns and Practices (PnP)\u00a0March 2018 update is out with a summary of the latest guidance, samples, and solutions from SharePoint engineering or from the community for the community. <\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/8696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/users\/69217"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/comments?post=8696"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/8696\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media\/52"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/media?parent=8696"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=8696"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=8696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}