{"id":5957,"date":"2024-01-08T10:35:44","date_gmt":"2024-01-08T10:35:44","guid":{"rendered":"https:\/\/www.ventigrate.be\/pnp-framework\/"},"modified":"2024-01-09T08:23:47","modified_gmt":"2024-01-09T08:23:47","slug":"pnp-framework","status":"publish","type":"post","link":"https:\/\/www.ventigrate.be\/en\/pnp-framework\/","title":{"rendered":"PnP Framework"},"content":{"rendered":"<div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-flex-wrap:wrap;\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1456px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-1\"><div class=\"is-layout-flex wp-container-6 wp-block-columns\">\n<div class=\"is-layout-flow wp-block-column\">\n<p>When we come to customers to configure things we are going to refer to the PnP community on a regular basis. But what exactly is this community? What advantages does it have and what does it all have to offer?  <span style=\"color: var(--awb-text-color); font-family: var(--awb-text-font-family); font-size: var(--awb-font-size); font-style: var(--awb-text-font-style); font-weight: var(--awb-text-font-weight); letter-spacing: var(--awb-letter-spacing); text-align: var(--awb-content-alignment); text-transform: var(--awb-text-transform); background-color: var(--awb-bg-color-hover);\">In this blog, we try to give you an overview of this and answer these above questions.<\/span><\/p>\n<h4 style=\"text-align: left;\">What is it right?<\/h4>\n<p>The PnP community is currently a collaboration between Microsoft and several individuals within the M365 community. This community has 1 big goal: &#8220;Sharing is caring.  <span style=\"color: var(--awb-text-color); font-family: var(--awb-text-font-family); font-size: var(--awb-font-size); font-style: var(--awb-text-font-style); font-weight: var(--awb-text-font-weight); letter-spacing: var(--awb-letter-spacing); text-align: var(--awb-content-alignment); text-transform: var(--awb-text-transform); background-color: var(--awb-bg-color-hover);\">So this community started with the idea that we didn&#8217;t have to reinvent the wheel every time and we could also work together to implement Microsoft&#8217;s guidance rules in practice together.  <\/span><\/p>\n<p><span style=\"background-color: var(--awb-bg-color-hover); color: var(--awb-text-color); font-family: var(--awb-text-font-family); font-size: var(--awb-font-size); font-style: var(--awb-text-font-style); font-weight: var(--awb-text-font-weight); letter-spacing: var(--awb-letter-spacing); text-align: var(--awb-content-alignment); text-transform: var(--awb-text-transform);\">So what actually makes this community real? This could be about pure information how you should handle certain things such as governance around M365, for example.  <\/span><span style=\"color: var(--awb-text-color); font-family: var(--awb-text-font-family); font-size: var(--awb-font-size); font-style: var(--awb-text-font-style); font-weight: var(--awb-text-font-weight); letter-spacing: var(--awb-letter-spacing); text-align: var(--awb-content-alignment); text-transform: var(--awb-text-transform); background-color: var(--awb-bg-color-hover);\">But in addition, the PnP community is also the place to look for code samples for creating SPFx webparts, view formatting or column formatting.<\/span><\/p>\n<p>Below we name some of the most interesting tools\/samples that PnP has to offer.<\/p>\n<h5>PnP Provisioning<\/h5>\n<p>When exactly it started is hard to say but we can certainly go back to 2014 where we first see the name PnP appear. 1 of the first real tools that became very popular (and still is) is the PnP provisioning tool. This tool was actually a collection of PowerShell scripts that translated your entire site structure into an XML file that you could then easily have remapped back based on that same XML file.<\/p>\n<p>This was primarily used for, you guessed it, provisioning solutions where different types of SharePoint sites can be created based on a particular XML file.  <span style=\"color: var(--awb-text-color); font-family: var(--awb-text-font-family); font-size: var(--awb-font-size); font-style: var(--awb-text-font-style); font-weight: var(--awb-text-font-weight); letter-spacing: var(--awb-letter-spacing); text-align: var(--awb-content-alignment); text-transform: var(--awb-text-transform); background-color: var(--awb-bg-color-hover);\">This tool ensured that we did not have to keep building a site from code and that minor changes to the template could also be easily made by modifying the XML file. This no longer required a code change.<\/span><\/p>\n<h5>PnP PowerShell module<\/h5>\n<p>Another gift from heaven is the PnP PowerShell module. This module gives us an arsenal of commands that reduces certain actions requiring 10-15 lines of CSOM code to 1 PowerShell command.  <span style=\"color: var(--awb-text-color); font-family: var(--awb-text-font-family); font-size: var(--awb-font-size); font-style: var(--awb-text-font-style); font-weight: var(--awb-text-font-weight); letter-spacing: var(--awb-letter-spacing); text-align: var(--awb-content-alignment); text-transform: var(--awb-text-transform); background-color: var(--awb-bg-color-hover);\">Looking around at customers, this is 1 of the most widely used PnP functionalities and actually also a must-have for a tenant administrator to perform various repetitive tasks.<\/span><\/p>\n<p>An overview of the available commands can be found here. By the way, you will see that this PowerShell module does not focus purely on SharePoint but already has several commands for Teams, Planner, Power Automate, &#8230;<\/p>\n<h5>PnP search webpart<\/h5>\n<p>Those who have been around within the SharePoint world for quite some time are undoubtedly going to remember the content query or content search webpart. These webparts were useful tools for displaying information structured somewhere on the SharePoint environment in another place. This gave the ability to store the data in a logical place but still display it somewhere else.<\/p>\n<p>Within the modern SharePoint layout, we have long waited for an alternative to this webpart, and outside of the Highlighted content webpart, nothing really comes close. But even this webpart is only a pale shadow of what the content query\/search webpart could do.  <span style=\"color: var(--awb-text-color); font-family: var(--awb-text-font-family); font-size: var(--awb-font-size); font-style: var(--awb-text-font-style); font-weight: var(--awb-text-font-weight); letter-spacing: var(--awb-letter-spacing); text-align: var(--awb-content-alignment); text-transform: var(--awb-text-transform); background-color: var(--awb-bg-color-hover);\">To this, the PnP community joined hands and started building a real alternative. The PnP search webpart was born.<\/span><\/p>\n<p>Nowadays, you can&#8217;t think away this webpart within a SharePoint intranet solution. To bring news together in a fresh way on the home page, for example.  <span style=\"color: var(--awb-text-color); font-family: var(--awb-text-font-family); font-size: var(--awb-font-size); font-style: var(--awb-text-font-style); font-weight: var(--awb-text-font-weight); letter-spacing: var(--awb-letter-spacing); text-align: var(--awb-content-alignment); text-transform: var(--awb-text-transform); background-color: var(--awb-bg-color-hover);\">Choosing what information to display is usually done adhv a SharePoint search query but to display the data there are already several options by now.  <\/span><\/p>\n<\/div>\n<\/div>\n<\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-image-element \" style=\"--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\" fusion-imageframe imageframe-none imageframe-1 hover-type-none\"><img decoding=\"async\" width=\"338\" height=\"746\" title=\"BlogImagePNPSearch\" src=\"https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogImagePNPSearch.png\" data-orig-src=\"https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogImagePNPSearch.png\" alt class=\"lazyload img-responsive wp-image-5948\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%27338%27%20height%3D%27746%27%20viewBox%3D%270%200%20338%20746%27%3E%3Crect%20width%3D%27338%27%20height%3D%27746%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogImagePNPSearch-200x441.png 200w, https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogImagePNPSearch.png 338w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 1024px) 100vw, (max-width: 640px) 100vw, 338px\" \/><\/span><\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-2\"><div class=\"is-layout-flex wp-container-6 wp-block-columns\">\n<div class=\"is-layout-flow wp-block-column\">\n<p>In addition, of course, it is also possible to create your own layouts based on adaptive cards or custom html.<\/p>\n<p><span style=\"background-color: var(--awb-bg-color-hover); color: var(--awb-text-color); font-family: var(--awb-text-font-family); font-size: var(--awb-font-size); font-style: var(--awb-text-font-style); font-weight: var(--awb-text-font-weight); letter-spacing: var(--awb-letter-spacing); text-align: var(--awb-content-alignment); text-transform: var(--awb-text-transform);\">In short, a must have webpart if you use SharePoint a lot.<\/span><\/p>\n<h5>List\/view formatting<\/h5>\n<p>A nice library of examples is the list\/view formatting library. These days, you can already format your SharePoint lists so that they no longer look like SharePoint lists. Take the example below. On the left you have the effective To-do application and on the right you see roughly the same layout but based on a simple SharePoint list instead of the ToDo application.<\/p>\n<\/div>\n<\/div>\n<\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-3 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-image-element \" style=\"--awb-max-width:75%;--awb-caption-title-font-family:var(--h2_typography-font-family);--awb-caption-title-font-weight:var(--h2_typography-font-weight);--awb-caption-title-font-style:var(--h2_typography-font-style);--awb-caption-title-size:var(--h2_typography-font-size);--awb-caption-title-transform:var(--h2_typography-text-transform);--awb-caption-title-line-height:var(--h2_typography-line-height);--awb-caption-title-letter-spacing:var(--h2_typography-letter-spacing);\"><span class=\" fusion-imageframe imageframe-none imageframe-2 hover-type-none\"><img decoding=\"async\" width=\"2369\" height=\"1287\" title=\"BlogImagePNPMicrosoftLists\" src=\"https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogImagePNPMicrosoftLists.png\" data-orig-src=\"https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogImagePNPMicrosoftLists.png\" alt class=\"lazyload img-responsive wp-image-5950\" srcset=\"data:image\/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20width%3D%272369%27%20height%3D%271287%27%20viewBox%3D%270%200%202369%201287%27%3E%3Crect%20width%3D%272369%27%20height%3D%271287%27%20fill-opacity%3D%220%22%2F%3E%3C%2Fsvg%3E\" data-srcset=\"https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogImagePNPMicrosoftLists-200x109.png 200w, https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogImagePNPMicrosoftLists-400x217.png 400w, https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogImagePNPMicrosoftLists-600x326.png 600w, https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogImagePNPMicrosoftLists-800x435.png 800w, https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogImagePNPMicrosoftLists-1200x652.png 1200w, https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogImagePNPMicrosoftLists.png 2369w\" data-sizes=\"auto\" data-orig-sizes=\"(max-width: 1024px) 100vw, (max-width: 640px) 100vw, 2369px\" \/><\/span><\/div><\/div><\/div><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-4 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:20px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-3\"><div class=\"is-layout-flex wp-container-6 wp-block-columns\">\n<div class=\"is-layout-flow wp-block-column\">\n<p>And due to the fact that you can already perform various actions in the view today, you can effectively build mini applications within SharePoint lists already. Below is an example of how all the information changes when you go to modify a particular value.<\/p>\n<p><a href=\"https:\/\/github.com\/pnp\/List-Formatting\/blob\/master\/view-samples\/elf-progress-board\/assets\/screenshot.gif\">https:\/\/github.com\/pnp\/List-Formatting\/blob\/master\/view-samples\/elf-progress-board\/assets\/screenshot.gif<\/a><\/p>\n<p>So are you looking to display certain information in a slightly different way? Then be sure to browse around this site.<\/p>\n<h5>And much more&#8230;<\/h5>\n<p>We have discussed some issues around PnP here but there is much more available. Learning paths, webparts, a starter kit, script samples, &#8230;  <span style=\"color: var(--awb-text-color); font-family: var(--awb-text-font-family); font-size: var(--awb-font-size); font-style: var(--awb-text-font-style); font-weight: var(--awb-text-font-weight); letter-spacing: var(--awb-letter-spacing); text-align: var(--awb-content-alignment); text-transform: var(--awb-text-transform); background-color: var(--awb-bg-color-hover);\">We can recommend that every M365\/SharePoint administrator take some time to check out all of PnP&#8217;s solutions. You do this here.<\/span><\/p>\n<h5>In short.<\/h5>\n<p>Sharing is caring! And because this PnP community upholds this motto, we now manage to provide solutions to our customers in a faster way.<\/p>\n<\/div>\n<\/div>\n<\/div><\/div><\/div><\/div><\/div>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":6134,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"footnotes":""},"categories":[145],"tags":[],"class_list":["post-5957","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog-en"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v23.3 (Yoast SEO v28.1) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>PnP Framework | Ventigrate<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.ventigrate.be\/en\/pnp-framework\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PnP Framework\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.ventigrate.be\/en\/pnp-framework\/\" \/>\n<meta property=\"og:site_name\" content=\"Ventigrate\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Ventigrate\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/Ventigrate\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-01-08T10:35:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-01-09T08:23:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogPnPFramework-1.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"michael.vanderborght@ventigrate.be\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Ventigrate\" \/>\n<meta name=\"twitter:site\" content=\"@Ventigrate\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"michael.vanderborght@ventigrate.be\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/pnp-framework\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/pnp-framework\\\/\"},\"author\":{\"name\":\"michael.vanderborght@ventigrate.be\",\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/#\\\/schema\\\/person\\\/6d1f8145efeaa0d28a08f66dac489bb4\"},\"headline\":\"PnP Framework\",\"datePublished\":\"2024-01-08T10:35:44+00:00\",\"dateModified\":\"2024-01-09T08:23:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/pnp-framework\\\/\"},\"wordCount\":2737,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/pnp-framework\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.ventigrate.be\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/BlogPnPFramework-1.webp\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/pnp-framework\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/pnp-framework\\\/\",\"url\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/pnp-framework\\\/\",\"name\":\"PnP Framework | Ventigrate\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/pnp-framework\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/pnp-framework\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.ventigrate.be\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/BlogPnPFramework-1.webp\",\"datePublished\":\"2024-01-08T10:35:44+00:00\",\"dateModified\":\"2024-01-09T08:23:47+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/pnp-framework\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/pnp-framework\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/pnp-framework\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.ventigrate.be\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/BlogPnPFramework-1.webp\",\"contentUrl\":\"https:\\\/\\\/www.ventigrate.be\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/BlogPnPFramework-1.webp\",\"width\":1200,\"height\":630,\"caption\":\"Blog PnP Framework Banner\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/pnp-framework\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PnP Framework\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/\",\"name\":\"Ventigrate\",\"description\":\"Innoveren, excelleren, integreren.\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/#organization\",\"name\":\"Ventigrate NV\",\"url\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.ventigrate.be\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/LogoVentigrateSEO-1.webp\",\"contentUrl\":\"https:\\\/\\\/www.ventigrate.be\\\/wp-content\\\/uploads\\\/2023\\\/10\\\/LogoVentigrateSEO-1.webp\",\"width\":1200,\"height\":675,\"caption\":\"Ventigrate NV\"},\"image\":{\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Ventigrate\",\"https:\\\/\\\/x.com\\\/Ventigrate\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCOlPphzBwkVxvaTEr2MUEgw\",\"https:\\\/\\\/www.instagram.com\\\/ventigrate\",\"https:\\\/\\\/be.linkedin.com\\\/company\\\/ventigrate\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/#\\\/schema\\\/person\\\/6d1f8145efeaa0d28a08f66dac489bb4\",\"name\":\"michael.vanderborght@ventigrate.be\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cf7726d49778af9366d19989032d03734e344332c9e800000e3cc5b6aed6bf37?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cf7726d49778af9366d19989032d03734e344332c9e800000e3cc5b6aed6bf37?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/cf7726d49778af9366d19989032d03734e344332c9e800000e3cc5b6aed6bf37?s=96&d=mm&r=g\",\"caption\":\"michael.vanderborght@ventigrate.be\"},\"sameAs\":[\"https:\\\/\\\/www.ventigrate.be\",\"https:\\\/\\\/www.facebook.com\\\/Ventigrate\\\/\",\"https:\\\/\\\/www.instagram.com\\\/ventigrate\",\"https:\\\/\\\/be.linkedin.com\\\/company\\\/ventigrate\",\"https:\\\/\\\/x.com\\\/Ventigrate\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCOlPphzBwkVxvaTEr2MUEgw\"],\"url\":\"https:\\\/\\\/www.ventigrate.be\\\/en\\\/author\\\/michael-vanderborghtventigrate-be\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PnP Framework | Ventigrate","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.ventigrate.be\/en\/pnp-framework\/","og_locale":"en_US","og_type":"article","og_title":"PnP Framework","og_url":"https:\/\/www.ventigrate.be\/en\/pnp-framework\/","og_site_name":"Ventigrate","article_publisher":"https:\/\/www.facebook.com\/Ventigrate","article_author":"https:\/\/www.facebook.com\/Ventigrate\/","article_published_time":"2024-01-08T10:35:44+00:00","article_modified_time":"2024-01-09T08:23:47+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogPnPFramework-1.webp","type":"image\/webp"}],"author":"michael.vanderborght@ventigrate.be","twitter_card":"summary_large_image","twitter_creator":"@Ventigrate","twitter_site":"@Ventigrate","twitter_misc":{"Written by":"michael.vanderborght@ventigrate.be","Est. reading time":"14 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.ventigrate.be\/en\/pnp-framework\/#article","isPartOf":{"@id":"https:\/\/www.ventigrate.be\/en\/pnp-framework\/"},"author":{"name":"michael.vanderborght@ventigrate.be","@id":"https:\/\/www.ventigrate.be\/en\/#\/schema\/person\/6d1f8145efeaa0d28a08f66dac489bb4"},"headline":"PnP Framework","datePublished":"2024-01-08T10:35:44+00:00","dateModified":"2024-01-09T08:23:47+00:00","mainEntityOfPage":{"@id":"https:\/\/www.ventigrate.be\/en\/pnp-framework\/"},"wordCount":2737,"commentCount":0,"publisher":{"@id":"https:\/\/www.ventigrate.be\/en\/#organization"},"image":{"@id":"https:\/\/www.ventigrate.be\/en\/pnp-framework\/#primaryimage"},"thumbnailUrl":"https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogPnPFramework-1.webp","articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.ventigrate.be\/en\/pnp-framework\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.ventigrate.be\/en\/pnp-framework\/","url":"https:\/\/www.ventigrate.be\/en\/pnp-framework\/","name":"PnP Framework | Ventigrate","isPartOf":{"@id":"https:\/\/www.ventigrate.be\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.ventigrate.be\/en\/pnp-framework\/#primaryimage"},"image":{"@id":"https:\/\/www.ventigrate.be\/en\/pnp-framework\/#primaryimage"},"thumbnailUrl":"https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogPnPFramework-1.webp","datePublished":"2024-01-08T10:35:44+00:00","dateModified":"2024-01-09T08:23:47+00:00","breadcrumb":{"@id":"https:\/\/www.ventigrate.be\/en\/pnp-framework\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.ventigrate.be\/en\/pnp-framework\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.ventigrate.be\/en\/pnp-framework\/#primaryimage","url":"https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogPnPFramework-1.webp","contentUrl":"https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/11\/BlogPnPFramework-1.webp","width":1200,"height":630,"caption":"Blog PnP Framework Banner"},{"@type":"BreadcrumbList","@id":"https:\/\/www.ventigrate.be\/en\/pnp-framework\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.ventigrate.be\/en\/"},{"@type":"ListItem","position":2,"name":"PnP Framework"}]},{"@type":"WebSite","@id":"https:\/\/www.ventigrate.be\/en\/#website","url":"https:\/\/www.ventigrate.be\/en\/","name":"Ventigrate","description":"Innoveren, excelleren, integreren.","publisher":{"@id":"https:\/\/www.ventigrate.be\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.ventigrate.be\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.ventigrate.be\/en\/#organization","name":"Ventigrate NV","url":"https:\/\/www.ventigrate.be\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.ventigrate.be\/en\/#\/schema\/logo\/image\/","url":"https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/10\/LogoVentigrateSEO-1.webp","contentUrl":"https:\/\/www.ventigrate.be\/wp-content\/uploads\/2023\/10\/LogoVentigrateSEO-1.webp","width":1200,"height":675,"caption":"Ventigrate NV"},"image":{"@id":"https:\/\/www.ventigrate.be\/en\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Ventigrate","https:\/\/x.com\/Ventigrate","https:\/\/www.youtube.com\/channel\/UCOlPphzBwkVxvaTEr2MUEgw","https:\/\/www.instagram.com\/ventigrate","https:\/\/be.linkedin.com\/company\/ventigrate"]},{"@type":"Person","@id":"https:\/\/www.ventigrate.be\/en\/#\/schema\/person\/6d1f8145efeaa0d28a08f66dac489bb4","name":"michael.vanderborght@ventigrate.be","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/cf7726d49778af9366d19989032d03734e344332c9e800000e3cc5b6aed6bf37?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/cf7726d49778af9366d19989032d03734e344332c9e800000e3cc5b6aed6bf37?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/cf7726d49778af9366d19989032d03734e344332c9e800000e3cc5b6aed6bf37?s=96&d=mm&r=g","caption":"michael.vanderborght@ventigrate.be"},"sameAs":["https:\/\/www.ventigrate.be","https:\/\/www.facebook.com\/Ventigrate\/","https:\/\/www.instagram.com\/ventigrate","https:\/\/be.linkedin.com\/company\/ventigrate","https:\/\/x.com\/Ventigrate","https:\/\/www.youtube.com\/channel\/UCOlPphzBwkVxvaTEr2MUEgw"],"url":"https:\/\/www.ventigrate.be\/en\/author\/michael-vanderborghtventigrate-be\/"}]}},"_links":{"self":[{"href":"https:\/\/www.ventigrate.be\/en\/wp-json\/wp\/v2\/posts\/5957","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ventigrate.be\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ventigrate.be\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ventigrate.be\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ventigrate.be\/en\/wp-json\/wp\/v2\/comments?post=5957"}],"version-history":[{"count":10,"href":"https:\/\/www.ventigrate.be\/en\/wp-json\/wp\/v2\/posts\/5957\/revisions"}],"predecessor-version":[{"id":6196,"href":"https:\/\/www.ventigrate.be\/en\/wp-json\/wp\/v2\/posts\/5957\/revisions\/6196"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.ventigrate.be\/en\/wp-json\/wp\/v2\/media\/6134"}],"wp:attachment":[{"href":"https:\/\/www.ventigrate.be\/en\/wp-json\/wp\/v2\/media?parent=5957"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ventigrate.be\/en\/wp-json\/wp\/v2\/categories?post=5957"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ventigrate.be\/en\/wp-json\/wp\/v2\/tags?post=5957"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}