{"id":8680,"date":"2018-01-08T00:00:00","date_gmt":"2018-01-08T00:00:00","guid":{"rendered":"http:\/\/officedevblogs.wpengine.com\/?p=139"},"modified":"2018-01-08T00:00:00","modified_gmt":"2018-01-08T00:00:00","slug":"pnp-january-2018-update","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/pnp-january-2018-update\/","title":{"rendered":"SharePoint Patterns &amp; Practices \u2013 January 2018 update"},"content":{"rendered":"<div id=\"body-content\">\n<p>SharePoint Dev Ecosystem \/ SharePoint Patterns and Practices (PnP)\u00a0January 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 post contains all the details related to what was included with the release and what else has been happening in the 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\u00a0December 2017<\/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;\u00a0288<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-webparts\">SP Dev FX Web Parts<\/a>\u00a0&#8211; 422<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-extensions\">SP Dev Fx Extensions<\/a>\u00a0&#8211; 60<\/li>\n<li><a href=\"https:\/\/github.com\/OfficeDev\/PnP\">PnP<\/a>\u00a0&#8211;\u00a02607<\/li>\n<li><a href=\"https:\/\/github.com\/OfficeDev\/PnP-Sites-Core\">PnP Sites Core<\/a> &#8211;\u00a0435<\/li>\n<li><a href=\"https:\/\/github.com\/OfficeDev\/PnP-PowerShell\">PnP PowerShell<\/a> &#8211; 401<\/li>\n<li><a href=\"https:\/\/github.com\/OfficeDev\/PnP-js-core\">PnP JS Core<\/a>\u00a0&#8211;\u00a0185<\/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;\u00a031,550<\/li>\n<li>Merged pull requests across SharePoint repositories (cumulative) &#8211;\u00a04,348<\/li>\n<li>Closed issues and enhancements ideas cross SharePoint repositories (cumulative) &#8211;\u00a02,682<\/li>\n<li><a href=\"https:\/\/www.nuget.org\/packages\/Microsoft.SharePointOnline.CSOM\/\">SharePoint Online CSOM<\/a>\u00a0NuGet package downloads (cumulative) &#8211;\u00a0339,911<\/li>\n<li><a href=\"https:\/\/github.com\/OfficeDev\/PnP\/tree\/master\/OfficeDevPnP.Core\">PnP Core component<\/a> NuGet package downloads (cumulative) &#8211;\u00a0132,909<\/li>\n<li>Page views in <a href=\"http:\/\/aka.ms\/spdev-docs\">SharePoint Dev<\/a>\u00a0pages at\u00a0docs.microsoft.com during\u00a0December 2017 &#8211;\u00a0582,739<\/li>\n<li>Unique tenants using PnP components during\u00a0December 2017 &#8211;\u00a07,943<\/li>\n<li>Http requests towards SharePoint Online from PnP components during\u00a0December 2017 &#8211;\u00a07,209,042,319<\/li>\n<li><a href=\"http:\/\/aka.ms\/sppnp-videos\">SharePoint Dev YouTube channel<\/a>\u00a0had\u00a019,514 views with\u00a0118,645 minutes watch time during\u00a0December 2017<\/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=\"http:\/\/dev.office.com\/sharepoint\">http:\/\/dev.office.com\/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 MSDN pages &#8211; <a href=\"http:\/\/aka.ms\/SPPnP-MSDN\">http:\/\/aka.ms\/SPPnP-MSDN<\/a><\/li>\n<li>PnP Community Discussions\u00a0&#8211; <a href=\"http:\/\/aka.ms\/SPPnP-Community\">http:\/\/aka.ms\/SPPnP-Community<\/a><\/li>\n<li>PnP Videos on YouTube\u00a0&#8211; <a href=\"http:\/\/aka.ms\/SPPnP-Videos\">http:\/\/aka.ms\/SPPnP-Videos<\/a><\/li>\n<li>Presentations at docs.com &#8211; <a href=\"http:\/\/aka.ms\/SPPnP-Docs\">http:\/\/aka.ms\/SPPnP-Docs<\/a>\u00a0&#8211; moving gradually to\u00a0<a href=\"https:\/\/www.slideshare.net\/sharepointpnp\">SlideShare<\/a><\/li>\n<\/ul>\n<h2>January 2018 monthly community call<\/h2>\n<p>Agenda for the Tuesday 9th of January 2018 SharePoint Dev Ecosystem \/ Patterns and Practices\u00a0<a href=\"http:\/\/aka.ms\/sppnp-call\">community call<\/a> at 8\u00a0AM PST \/ 5 PM CEST:<\/p>\n<ul>\n<li>Monthly summary of SharePoint Development topics &#8211; <a href=\"https:\/\/twitter.com\/vesajuvonen\">Vesa Juvonen<\/a>\u00a0(Microsoft) ~15 min<\/li>\n<li>Preview of upcoming 3rd party API and Graph improvements with SharePoint Framework &#8211;\u00a0<a href=\"https:\/\/twitter.com\/paolopia\">Paolo Pialorsi<\/a> (<a href=\"https:\/\/piasys.com\/\">Piasys.com<\/a>) ~15 min<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-extensions\/tree\/master\/samples\/js-command-lock-item\">Lock Item Command Set Customizer<\/a>\u00a0&#8211;\u00a0<a href=\"https:\/\/github.com\/AJIXuMuK\">Alex Terentiev<\/a>\u00a0(<a href=\"http:\/\/www.sharepointalist.com\/\">SharePointalist<\/a>) ~15 min<\/li>\n<li><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-solutions\/tree\/master\/solutions\/ColumnFormatter\">Column Formatting Client-Side Web Part<\/a>\u00a0&#8211;\u00a0<a href=\"https:\/\/twitter.com\/theChrisKent\">Chris Kent<\/a> (<a href=\"https:\/\/dminc.com\/\">DMI<\/a>) ~15 min<\/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>21st of December &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/new-sharepoint-csom-version-released-for-Office-365-december-2017\">New SharePoint CSOM version released for SharePoint Online &#8211; December 2017<\/a><\/li>\n<li>15th of December &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/reusable-controls-for-your-sharepoint-framework-solutions\">Reusable controls for your SharePoint Framework solutions<\/a><\/li>\n<li>7th of December &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/sharepoint-framework-1-4-and-new-site-updates-now-available\">SharePoint Framework 1.4 and new site updates now available\n<p><\/a><\/li>\n<\/ul>\n<h2>PnP Webcasts<\/h2>\n<p>We started new PnP Webcast series in October 2015 and have continued releasing new videos since that. All new webcasts are released on <a href=\"http:\/\/aka.ms\/SPPnP-Videos\">PnP YouTube Channel<\/a>. Old webcasts and other demo videos are also found in the <a href=\"http:\/\/channel9.msdn.com\/\/OfficeDevPnP\">PnP Channel 9 section<\/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>8th of January &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/asynchronous-pattern-for-creating-modern-sharepoint-sites\">Asynchronous Pattern for Creating Modern SharePoint Sites<\/a><\/li>\n<li>2nd of January &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/webcast-reusable-controls-for-your-sharepoint-framework-solutions\">Reusable controls for your SharePoint Framework solutions<\/a><\/li>\n<li>18th of December &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/site-collection-app-catalog\">Site collection app catalog<\/a><\/li>\n<li>11th of December &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/including-assets-in-sharepoint-framework-solution-packages\">Including assets in SharePoint Framework solution packages<\/a><\/li>\n<li>4th of December &#8211;\u00a0<a href=\"https:\/\/officedevblogs.wpengine.com\/migration-to-sharepoint-framework-extensions\">Migrating to SharePoint Framework Extensions\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>28th of December &#8211; Cancelled due holiday season<\/li>\n<li><a href=\"https:\/\/techcommunity.microsoft.com\/t5\/SharePoint-Developer\/SharePoint-Patterns-amp-Practices-General-SP-Dev-SIG-recording\/m-p\/137726\/jump-to\/first-unread-message\">14th of December<\/a>\u00a0&#8211;\u00a0Miscellaneous announcements. A detailed look at new provisioning schema capabilities in PnP provisioned engine. Scanner Framework for SharePoint Online.<\/li>\n<li><a href=\"https:\/\/techcommunity.microsoft.com\/t5\/SharePoint-Developer\/SharePoint-Patterns-amp-Practices-General-SP-Dev-SIG-recording\/m-p\/133204\/jump-to\/first-unread-message\">30th of November<\/a>\u00a0&#8211; Miscellaneous announcements. Preview of upcoming Site Designs and Site Scripts with PnP PowerShell.\u00a0Manage modern pages with code. Building self-service site collection provisioning solution for modern sites.<\/li>\n<\/ul>\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\/142011\/jump-to\/first-unread-message\">4th of January<\/a>\u00a0&#8211; PnP JS Core library updates, SharePoint Framework update, Reusable controls for SPFx &#8211; Live demos on upcoming Graph capabilities with SPFx, reusable controls and async with JSOM.<\/li>\n<li><a href=\"https:\/\/techcommunity.microsoft.com\/t5\/SharePoint-Developer\/SharePoint-Patterns-amp-Practices-JavaScript-Special-Interest\/m-p\/140921\/jump-to\/first-unread-message\">21st of December<\/a>\u00a0&#8211; PnP JS Core library updates, SharePoint Framework update, Q&amp;A.<\/li>\n<li><a href=\"https:\/\/techcommunity.microsoft.com\/t5\/SharePoint-Developer\/SharePoint-Patterns-amp-Practices-JavaScript-Special-Interest\/m-p\/135393\/jump-to\/first-unread-message\">7th of December<\/a>\u00a0&#8211; Latest news on SharePoint Framework and PnP JS Core. Security Grid sample web part for showing permission details from the site.\u00a0SPFx property controls sample.<\/li>\n<\/ul>\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. In general, we do recommend you to use the <a href=\"http:\/\/dev.office.com\/patterns-and-practices-resources\">PnP sample search tool<\/a> at dev.office.com for locating relevant material for you. This should be easier and faster than trying to locate relevant material from GitHub.<\/p>\n<p>On top of the specific PnP repositories, PnP initiative also controls the new repositories under the SharePoint organization.<\/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<p>Here&#8217;s the current repository structure, including a short description for each of them.<\/p>\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; New repository for 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>New solution sample\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-solutions\/tree\/master\/solutions\/ColumnFormatter\">ColumnFormatter<\/a><\/strong> web part which\u00a0<strong>has been designed to give the full power of VS Code editing while providing easy to use templates and wizards all within the browser!<\/strong>\u00a0The goal is to make writing and applying Column Formatting easier and quicker for both developers and end users.<\/li>\n<li>New\u00a0List View Command Set sample\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-extensions\/tree\/master\/samples\/js-command-lock-item\">js-command-lock-item<\/a><\/strong>\u00a0illustrates the ability to lock\/unlock selected item\/document for the current user.<\/li>\n<li>New Application Customizer sample\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-extensions\/tree\/master\/samples\/react-msal-bot\">react-msal-bot<\/a><\/strong>\u00a0sample demonstrates how to integrate a bot within a SharePoint Online portal supporting authentication to access Azure AD protected APIs like Microsoft graph resources.<\/li>\n<li>New Field Customizer Sample\u00a0<strong><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-fx-extensions\/tree\/master\/samples\/react-field-text-analytics-api\">react-field-text-analytics-api<\/a><\/strong> which demonstrates how to use the\u00a0<a href=\"https:\/\/azure.microsoft.com\/en-us\/services\/cognitive-services\/text-analytics\/\">Text Analytics API<\/a> (Cognitive Services) to render a sentiment icon based on the text of a field in the List<\/li>\n<li>Updates to numerous other samples to polish the code and documentation<\/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<ul>\n<li>Controls updated to use latest SharePoint Framework version<\/li>\n<li>Added the option to the\u00a0<a href=\"https:\/\/sharepoint.github.io\/sp-dev-fx-property-controls\/controls\/PropertyFieldPeoplePicker\/\">people picker<\/a> to allow you to specify single or multi-selection<\/li>\n<li>General improvements and adjustments<\/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>New sample presenting column value as a\u00a0<a href=\"https:\/\/github.com\/SharePoint\/sp-dev-column-formatting\/tree\/master\/samples\/number-piechart\">pie chart<\/a><\/li>\n<li>New sample\u00a0presenting column value\u00a0as a\u00a0<a href=\"https:\/\/github.com\/SharePoint\/sp-dev-column-formatting\/tree\/master\/samples\/isbn-image-format\">book cover based on ISBN query<\/a><a href=\"https:\/\/github.com\/SharePoint\/sp-dev-column-formatting\/tree\/master\/samples\/number-quiz-smiley-face\">\n<p><\/a><\/li>\n<\/ul>\n<h3>SharePoint Site Script samples<\/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>\u00a0for sharing different column formatting definitions.\u00a0Following lists the changes in the column formatting area.<\/p>\n<ul>\n<li>New sample showing how to\u00a0<a href=\"https:\/\/github.com\/SharePoint\/sp-dev-site-scripts\/tree\/master\/samples\/site-apply-company-theme\">apply company theme<\/a> with a site script<\/li>\n<li>New sample showing how to\u00a0<a href=\"https:\/\/github.com\/SharePoint\/sp-dev-site-scripts\/tree\/master\/samples\/site-create-formatted-lists\">create formatted list<\/a> with custom fields<\/li>\n<li>new sample showing how to\u00a0<a href=\"https:\/\/github.com\/SharePoint\/sp-dev-site-scripts\/tree\/master\/samples\/site-create-lists-add-to-site-nav\">create lists with specific schema and adding them to navigation<\/a><\/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. Changes since last monthly summary are following.<\/p>\n<ul>\n<li>v0.4.0\u00a0<a href=\"https:\/\/sharepoint.github.io\/office365-cli\/about\/release-notes\/#v040\">release<\/a> available<\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/spo\/customaction\/customaction-list\/\">spo customaction list<\/a>\u00a0&#8211; lists user custom actions for site or site collection\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/19\">#19<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/spo\/site\/site-get\/\">spo site get<\/a>\u00a0&#8211; gets information about the specific site collection\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/114\">#114<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/spo\/site\/site-list\/\">spo site list<\/a>\u00a0&#8211; lists modern sites of the given type\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/115\">#115<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/spo\/site\/site-add\/\">spo site add<\/a>\u00a0&#8211; creates new modern site\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/116\">#116<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/spo\/app\/app-remove\/\">spo app remove<\/a>\u00a0&#8211; removes the specified app from the tenant app catalog\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/9\">#9<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/spo\/site\/site-appcatalog-add\/\">spo site appcatalog add<\/a>\u00a0&#8211; creates a site collection app catalog in the specified site\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/63\">#63<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/spo\/site\/site-appcatalog-remove\/\">spo site appcatalog remove<\/a>\u00a0&#8211; removes site collection scoped app catalog from site\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/64\">#64<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/spo\/serviceprincipal\/serviceprincipal-permissionrequest-list\/\">spo serviceprincipal permissionrequest list<\/a>\u00a0&#8211; lists pending permission requests\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/152\">#152<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/spo\/serviceprincipal\/serviceprincipal-permissionrequest-approve\/\">spo serviceprincipal permissionrequest approve<\/a>\u00a0&#8211; approves the specified permission request\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/153\">#153<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/spo\/serviceprincipal\/serviceprincipal-permissionrequest-deny\/\">spo serviceprincipal permissionrequest deny<\/a>\u00a0&#8211; denies the specified permission request\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/154\">#154<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/spo\/serviceprincipal\/serviceprincipal-grant-list\/\">spo serviceprincipal grant list<\/a>\u00a0&#8211; lists permissions granted to the service principal\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/155\">#155<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/spo\/serviceprincipal\/serviceprincipal-grant-revoke\/\">spo serviceprincipal grant revoke<\/a>\u00a0&#8211; revokes the specified set of permissions granted to the service principal\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/156\">#155<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/spo\/serviceprincipal\/serviceprincipal-set\/\">spo serviceprincipal set<\/a>\u00a0&#8211; enable or disable the service principal\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/157\">#157<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/spo\/customaction\/customaction-add\/\">spo customaction add<\/a>\u00a0&#8211; adds a user custom action for site or site collection\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/18\">#18<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/spo\/externaluser\/externaluser-list\/\">spo externaluser list<\/a>\u00a0&#8211; lists external users in the tenant\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/27\">#27<\/a><\/li>\n<\/ul>\n<ul>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/aad\/connect\/\">aad connect<\/a>\u00a0&#8211; connects to the Azure Active Directory Graph\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/160\">#160<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/aad\/disconnect\/\">aad disconnect<\/a>\u00a0&#8211; disconnects from Azure Active Directory Graph\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/161\">#161<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/aad\/status\/\">aad status<\/a>\u00a0&#8211; shows Azure Active Directory Graph connection status\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/162\">#162<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/aad\/sp\/sp-get\/\">aad sp get<\/a>\u00a0&#8211; gets information about the specific service principal\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/158\">#158<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/aad\/oauth2grant\/oauth2grant-list\/\">aad oauth2grant list<\/a>\u00a0&#8211; lists OAuth2 permission grants for the specified service principal\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/159\">#159<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/aad\/oauth2grant\/oauth2grant-add\/\">aad oauth2grant add<\/a>\u00a0&#8211; grant the specified service principal OAuth2 permissions to the specified resource\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/164\">#164<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/aad\/oauth2grant\/oauth2grant-set\/\">aad oauth2grant set<\/a>\u00a0&#8211; update OAuth2 permissions for the service principal\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/163\">#163<\/a><\/li>\n<li><a href=\"https:\/\/sharepoint.github.io\/office365-cli\/cmd\/aad\/oauth2grant\/oauth2grant-remove\/\">aad oauth2grant remove<\/a>\u00a0&#8211; remove specified service principal OAuth2 permissions\u00a0<a href=\"https:\/\/github.com\/SharePoint\/office365-cli\/issues\/165\">#165<\/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<ul>\n<li>Various small bug fixes and improvements<\/li>\n<li>Updated to use latest SPO CSOM NuGet package<\/li>\n<li>Completed support for 2018 01 schema &#8211; this will be the default schema as of the February 2018 release<\/li>\n<li>Support for installing apps in synchronous mode<\/li>\n<li>Unit\/Integration test improvements<\/li>\n<li>Updated base templates for the SPO, 2013 and 2016 &#8211; used in delta handling<\/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>No actual updates on the <a href=\"https:\/\/github.com\/SharePoint\/pnp-js-core\">Patterns and Practices JavaScript Core Library<\/a>, but there have been active discussions on the package in <a href=\"gitter.im\/OfficeDev\/PnP-JS-Core\">Gitter channel<\/a>. Here are the changes since last monthly communications.<\/p>\n<ul>\n<li>Preparations for the\u00a0<a href=\"https:\/\/github.com\/pnp\/pnp\">new library version<\/a> from the @pnp scope<\/li>\n<li>Improved\u00a0<a href=\"https:\/\/github.com\/pnp\/pnp\/blob\/dev\/docs-src\/index.md\">docs<\/a> for the new @pnp scope version<\/li>\n<li>Various smaller improvements and fixes<\/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=\"https:\/\/github.com\/OfficeDev\/PnP-PowerShell\">PnP PowerShell<\/a>\u00a0providers more than two 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<ul>\n<li>Various small bug fixes, improvements and documentation updates<\/li>\n<li>Updated signing certificate to use Microsoft organization certs<\/li>\n<li>New cmdlet <strong>Get-PnPTenantAppCatalogUrl\u00a0<\/strong><\/li>\n<li>New cmdlet\u00a0<strong>Start-PnPWorkflowInstance<\/strong><\/li>\n<li>New cmdlet\u00a0<strong>Get-PnPWorkflowInstance<\/strong><\/li>\n<li>New cmdlet\u00a0<strong>Get-PnPUnifiedGroupMembers<\/strong><\/li>\n<li>New cmdlet\u00a0<strong>Get-PnPUnifiedGroupOwners<\/strong><\/li>\n<li>Numerous other updates cross existing commands<\/li>\n<li>Overall quality improvements and bug fixes<\/li>\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<\/a><\/li>\n<\/ul>\n<p><strong>Notice<\/strong>. Due signing certificate change in December 2017 release, you cannot update PnP PowerShell cmdlet using the <em>upgrade-module<\/em> command. You&#8217;ll need to first uninstall and then re-install module.<\/p>\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><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>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><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/general-development\/client-side-web-parts-maintenance-mode\">Maintenance mode for client-side web parts<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/general-development\/site-collection-app-catalog\">Use the site collection app catalog<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/solution-guidance\/modern-experience-site-classification\">SharePoint &#8220;modern&#8221; sites classification<\/a><\/li>\n<li>Migrating JavaScript customizations to modern techniques with SharePoint Framework\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/extensions\/guidance\/migrate-jslink-to-spfx-extensions\">Migrating JSLink customizations to SharePoint Framework Field Customizers<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/extensions\/guidance\/migrate-user-customactions-to-spfx-extensions\">Migrating User CustomAction \/ ECB menu items to SharePoint Framework Extensions<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/extensions\/guidance\/migrate-from-ecb-to-spfx-extensions\">Tutorial &#8211;\u00a0Migrating from Edit Control Block (ECB) menu item to SharePoint Framework Extensions<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/extensions\/guidance\/migrate-from-jslink-to-spfx-extensions\">Tutorial &#8211;\u00a0Migrating from JSLink to SharePoint Framework Extensions<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/extensions\/guidance\/migrate-from-usercustomactions-to-spfx-extensions\">Tutorial &#8211;\u00a0Migrating from UserCustomAction to SharePoint Framework Extensions<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Updated tutorials on getting started with web part development\n<ul>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/set-up-your-development-environment\">Set up your SharePoint client-side web part development environment<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/web-parts\/get-started\/build-a-hello-world-web-part\">Build your first SharePoint client-side web part (Hello world part 1)<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/web-parts\/get-started\/connect-to-sharepoint\">Connect your client-side web part SharePoint (Hello world part 2)<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/web-parts\/get-started\/serve-your-web-part-in-a-sharepoint-page\">Deploy your client-side web part to a SharePoint page (Hello world part 3)<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/web-parts\/get-started\/hosting-webpart-from-office-365-cdn\">Hosting client-side web part from Office 365 CDN (Hello world part 4)<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/web-parts\/get-started\/add-jqueryui-accordion-to-web-part\">Add jQueryUI Accordion to your\u00a0SharePoint client-side web part<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/web-parts\/get-started\/use-fabric-react-components\">Use Office UI Fabric React components in your SharePoint client-side web part<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/web-parts\/get-started\/provision-sp-assets-from-package\">Provisioning SharePoint assets from your SharePoint client-side web part<\/a><\/li>\n<li><a href=\"https:\/\/docs.microsoft.com\/en-us\/sharepoint\/dev\/spfx\/web-parts\/get-started\/deploy-web-part-to-cdn\">Deploy your SharePoint client-side web part to Azure CDN<\/a><\/li>\n<\/ul>\n<\/li>\n<li>Updates on\u00a0numerous 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=kRbrrGCfUtE\">Getting started with the PnP Provisioning Engine in .NET<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube-nocookie.com\/watch?v=NXx3-XEEzGI\">Using PnP Sites Core (CSOM) component from the NuGet gallery<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube-nocookie.com\/playlist?list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq\">Updated tutorials<\/a>\u00a0on getting started with SharePoint Framework client-side web part development\n<ul>\n<li><a href=\"https:\/\/www.youtube-nocookie.com\/watch?v=WX9FL0BjE0I&amp;index=1&amp;list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq\">Set up your SharePoint client-side web part development environment<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube-nocookie.com\/watch?v=YqUIX2pMUzg&amp;index=2&amp;list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq\">Build your first SharePoint client-side web part (Hello world part 1)<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube-nocookie.com\/watch?v=hYrP6D4FaaU&amp;index=3&amp;list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq\">Connect your client-side web part SharePoint (Hello world part 2)<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube-nocookie.com\/watch?v=BpJ01ahxbiY&amp;index=4&amp;list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq\">Deploy your client-side web part to a SharePoint page (Hello world part 3)<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube-nocookie.com\/watch?v=MEZMs8VMVQ0&amp;index=5&amp;list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq\">Hosting client-side web part from Office 365 CDN (Hello world part 4)<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube-nocookie.com\/watch?v=7UOxTbMMPrQ&amp;index=6&amp;list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq\">Add jQueryUI Accordion to your\u00a0SharePoint client-side web part<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube-nocookie.com\/watch?v=1YRu4-nZot4&amp;index=7&amp;list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq\">Use Office UI Fabric React components in your SharePoint client-side web part<\/a><\/li>\n<li><a href=\"https:\/\/www.youtube-nocookie.com\/watch?v=qAqNk_X82QM&amp;index=8&amp;list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq\">Provisioning SharePoint assets from your SharePoint client-side web part\n<p><\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h1 id=\"key-contributors-for-the-september-2015-release\">Key contributors to the\u00a0January 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>Adrian Campos &#8211;\u00a0<a href=\"https:\/\/github.com\/adriancampos\">adriancampos<\/a><\/li>\n<li>Alex Terentiev (SharePointalist) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/alexaterentiev\">@alexaterentiev<\/a><\/li>\n<li>Andrew Connell &#8211;\u00a0<a href=\"https:\/\/twitter.com\/andrewconnell\">@andrewconnell<\/a><\/li>\n<li>Andrew Koltyakov &#8211;\u00a0<a href=\"https:\/\/twitter.com\/andrewkoltyakov\">@andrewkoltyakov<\/a><\/li>\n<li>Chris Kent (DMI) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/theChrisKent\">@theChrisKent<\/a><\/li>\n<li>Daniel Wyss &#8211;\u00a0<a href=\"https:\/\/twitter.com\/DanyWyss\">@DanyWyss<\/a><\/li>\n<li>Denis Goedegebuure &#8211;\u00a0<a href=\"https:\/\/twitter.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>Giuliano De Luca &#8211;\u00a0<a href=\"https:\/\/twitter.com\/giuleon\">@giuleon<\/a><\/li>\n<li>James May &#8211;\u00a0<a href=\"https:\/\/github.com\/fowl2\">fowl2<\/a><\/li>\n<li>Jeff Burt (Credera) &#8211;\u00a0<a href=\"https:\/\/github.com\/TheJeffer\">TheJeffer<\/a><\/li>\n<li>Jens Otto Hatlevold (Bouvet AS) &#8211;\u00a0\u00a0<a href=\"https:\/\/github.com\/jensotto\">jensotto<\/a><\/li>\n<li>Joel Rodrigues (CPS) &#8211;\u00a0<a href=\"https:\/\/github.com\/joelfmrodrigues\">joelfmrodrigues<\/a><\/li>\n<li>Junzhe Liu &#8211;\u00a0<a href=\"https:\/\/github.com\/Shelleyliu0415\">Shelleyliu0415<\/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>Ole Kristian\u00a0M\u00f8rch-Storstein (Puzzlepart) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/ole_kristian\">@ole_kristian<\/a><\/li>\n<li>Paolo Pialorsi (PiaSys.com) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/PaoloPia\">@PaoloPia<\/a><\/li>\n<li>Paul Pascha (Wortell) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/paulpascha\">@paulpascha<\/a><\/li>\n<li>Paul Schaeflein &#8211;\u00a0<a href=\"https:\/\/twitter.com\/paulschaeflein\">@paulschaeflein<\/a><\/li>\n<li>Radi Atanassov (OneBit Software) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/RadiAtanassov\">@RadiAtanassov<\/a><\/li>\n<li>Rajendra Shekhawat &#8211;\u00a0<a href=\"https:\/\/github.com\/rajendra1976\">rajendra1976<\/a><\/li>\n<li>Rodrigo Silva (Storm Technology) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/RodResendeSilva\">@RodResendeSilva<\/a><\/li>\n<li>Russell Gove &#8211;\u00a0<a href=\"https:\/\/twitter.com\/russgove\">@russgove<\/a><\/li>\n<li>sefaburak &#8211;\u00a0<a href=\"https:\/\/github.com\/sefaburak\">sefaburak<\/a><\/li>\n<li>Spencer Harbar &#8211;\u00a0<a href=\"https:\/\/twitter.com\/harbars\">@harbars<\/a><\/li>\n<li>Velin Georgiev &#8211;\u00a0<a href=\"https:\/\/twitter.com\/velingeorgiev\">@velingeorgiev<\/a><\/li>\n<li>Vipul Kelkar (Pune) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/vipulkelkar\">@vipulkelkar<\/a><\/li>\n<li>Waldek Mastykarz (Rencore) &#8211;\u00a0<a href=\"https:\/\/twitter.com\/waldekm\">@waldekm\n<\/a><\/li>\n<li>Yannick Plenevaux &#8211;\u00a0<a href=\"https:\/\/twitter.com\/yp_code\">@yp_code\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=\"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=\"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=\"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\/LLz1tCY.jpg\" 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.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.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=\"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:\/\/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>Carol Smith &#8211;\u00a0<a href=\"https:\/\/twitter.com\/fossygrl\">@fossygrl<\/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>Cristy Gonzalez &#8211;\u00a0<a href=\"https:\/\/github.com\/cristy\">cristy<\/a><\/li>\n<li>David Chesnut<\/li>\n<li>Doug Mahugh &#8211;\u00a0<a href=\"https:\/\/twitter.com\/Dougerino\">@Dougerino<\/a><\/li>\n<li>Frank Marasco &#8211; <a href=\"https:\/\/twitter.com\/frank_marasco\">@frank_marasco<\/a><\/li>\n<li>Junle Li &#8211;\u00a0<a href=\"https:\/\/github.com\/lijunle\">lijunle<\/a><\/li>\n<li>Keyur Patel<\/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>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>Sean Squires &#8211;\u00a0<a href=\"https:\/\/twitter.com\/iamseansquires\">@iamseansquires<\/a><\/li>\n<li>Usama Ansari &#8211;\u00a0<a href=\"https:\/\/github.com\/usmslm102\">usmslm102<\/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>January 2018 monthly community call is on Tuesday 9th of January 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; 8th of\u00a0January 2018<\/i><\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>SharePoint Dev Ecosystem \/ SharePoint Patterns and Practices (PnP)\u00a0January 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-8680","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)\u00a0January 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\/8680","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=8680"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/posts\/8680\/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=8680"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/categories?post=8680"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-json\/wp\/v2\/tags?post=8680"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}