{"version":"1.0","provider_name":"Microsoft 365 Developer Blog","provider_url":"https:\/\/devblogs.microsoft.com\/microsoft365dev","author_name":"Vesa Juvonen","author_url":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/author\/vesa_juvonen\/","title":"SharePoint Patterns &amp; Practices \u2013 April 2017 release - Microsoft 365 Developer Blog","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"fnOpVvsJOE\"><a href=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/pnp-april-2017-release\/\">SharePoint Patterns &amp; Practices \u2013 April 2017 release<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/devblogs.microsoft.com\/microsoft365dev\/pnp-april-2017-release\/embed\/#?secret=fnOpVvsJOE\" width=\"600\" height=\"338\" title=\"&#8220;SharePoint Patterns &amp; Practices \u2013 April 2017 release&#8221; &#8212; Microsoft 365 Developer Blog\" data-secret=\"fnOpVvsJOE\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script type=\"text\/javascript\">\n\/* <![CDATA[ *\/\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-includes\/js\/wp-embed.min.js\n\/* ]]> *\/\n<\/script>\n","thumbnail_url":"https:\/\/devblogs.microsoft.com\/microsoft365dev\/wp-content\/uploads\/sites\/73\/2018\/05\/sppnp.png","thumbnail_width":250,"thumbnail_height":78,"description":"SharePoint \/ Office 365 Dev Patterns and Practices&nbsp;(PnP) April 2017 release is out with new contributions from community for the community. This post contains all the details related on what was included with the release and what else has been happening in the PnP world during the past month. &nbsp; What is SharePoint Patterns &amp;&nbsp;Practices [&hellip;]"}