 When evaluating the SharePoint framework, you need to determine not just what you can do, but if your SharePoint environment supports specific customizations and where you can apply these customizations. So in this episode, you're going to learn not only what versions of SharePoint support which framework customizations, but also where these customizations can be applied to a page. Hey, I'm Andrew Powell. This episode is also available as a blog post on boytonos.io and as a podcast on boytonos.show. Check out the description below the video for links to these other resources. If this is your first time here, be sure to hit that big red subscribe button. Hey, I'm Andrew Connell. In this episode of my SharePoint Framework 5Ws Answered series, I'm going to tackle two questions in one episode. Who can use the SharePoint framework and where can you use the SharePoint framework? So let's start with the first question of who can use the SharePoint framework? The SharePoint framework was released in February of 2017 to SharePoint Online. So ever since then, every single release of the SharePoint framework is deployed to SharePoint Online. And this means that regardless of the SharePoint framework version that your component is created with, it'll work in SharePoint Online. Now initially the SharePoint framework wasn't available outside of SharePoint Online, but then in late 2017, Microsoft shipped Feature Pack 2 for SharePoint Server 2016. Feature Pack 2 included the SharePoint framework version 1.1. Now due to the nature of the SharePoint framework being primarily a cloud first extensibility model for SharePoint Online, the SharePoint Server 2016 implementation of the SharePoint framework has never received any updates beyond version 1.1, nor has Microsoft had any plans stated that they plan to update it. I don't think we're ever going to see an update to it. Now when Microsoft shipped SharePoint Server 2019 in September of 2018, that included the SharePoint framework version 1.4. Now just like the one that we just talked about, SharePoint Server 2016, Microsoft has not shipped any updates to the SharePoint framework for SharePoint Server 2019, nor have they stated any future plans to update it. So in summary, the answer to the question of who can use the SharePoint framework is customers who have the following SharePoint environments. SharePoint Online can use all SharePoint framework versions. SharePoint Server 2019 can use SharePoint framework up through version 1.4.1. And SharePoint Server 2016, as long as you have Feature Pack 2 installed, you can use versions up to SharePoint framework 1.1. So now let's tackle the second question of where can you use the SharePoint framework? So for this, I'm going to focus on the capabilities in the SharePoint framework as far as where they can be used. Some features are only available in specific user implementation experiences like Classic versus Modern, while others are only available in a hosted environment versus an on-premises environment. So let's look at the first category of the Modern experience. The SharePoint framework was built as the preferred way to customize the Modern experience in SharePoint. And this means that everything the SharePoint framework has to offer is going to work within the Modern experience, including client-side web parts and extensions. Now both SharePoint Online and SharePoint Server 2019 include the Modern experience, so this means that SPFX web parts and extensions are available in SharePoint Online and in SharePoint Server 2019. And furthermore, SharePoint Online supports everything the latest version of the SharePoint framework has to offer, with one exception. The Classic experience in SharePoint Online only supports client-side web parts. And SharePoint framework extensions are not supported and they don't work in the SharePoint Classic experience. The reason for that is because the extensions were designed to replace classic customizations that didn't work in Modern. So we have a new way of doing it. It's kind of like this old way translates to this new way. SharePoint framework client-side web parts are available in all supported versions of SharePoint that I've previously mentioned, as well as in both the Client, the Classic and the Modern experience. Now some features in the SharePoint framework are only available within the SharePoint Online due to their cloud nature. And this includes the following features that are only available in SharePoint Online. Tenant-wide deployment, search extensions, the Microsoft Graph API, specifically the MS Graph Client Factory and the MS Graph Client APIs, and the Azure AD secured endpoint support, and that's specifically the AAD-HTB Client Factory and the AAD-HTB Client Objects. In my previous episode that I published on what is the SharePoint framework when I talked about the page context, I explained where Microsoft established a contract with developers for which parts of a page could be customized or modified. These modifications shouldn't be done using the DOM, rather they should use the API that's been provided to the developers. So let's look at a typical modern page in SharePoint Online first. Now I've added a couple callouts here to show what areas of the page that you can customize. So let's look at each one of these. The red box across the top area where the number one is, that's the top placeholder where a top placeholder would go for an application customizer SharePoint framework extension. And for the number two area at the bottom of the page, that big red box across the bottom of the page, that's called the bottom placeholder, and that's where we would be able to do our customizations for application, using an application customizer SPFX extension. The yellow box in the middle, that's where our client-side web part goes, and the yellow box on the right side, which is number four, that's where we have a property pane with the associated client-side web part. This is the component of a web part. It's not something you build independently of the web part. It kind of goes hand-in-hand with the web part. That's just where it's visualized. Now while I don't show it in this picture that you just saw, rather I want to show it to you in a new picture, you can also customize the search box at the top, but not visually. Like the search customization component type is going to allow us to modify the search term that is sent to SharePoint before it's been submitted. So in other words, this extension has no visual component to it. Now let's also look at a list or a library page, and that's what you see here. So number two, you can use the command set extension to add a menu item to the context menu of items within lists. That's number two. But also in the number one area, the number one box that I have there, that's a command set extension as well, and that allows us to add buttons to the toolbars and lists and libraries. I can also define under what conditions that these buttons should be shown. Should they be visible or should they be hidden based on certain criteria? Now the red box for number three, that's for a list item cell. That's where a field customizer extension can go. This can be used to control how a cell is rendered for all items in this list. Now field customizer is defined at the column level and it has access to all data for the list item that it's rendering the results for as well as the list itself. As I mentioned previously, you can also associate the search extension in the site's search box to modify the search terms that are sent to SharePoint, and that's in the red box at the top labeled number four. And again, when it comes to extensions, while I didn't show it in this picture here, you saw in the previous one, remember that you can use an application customizer to add content to the top placeholder and the bottom placeholder across the page. And in fact, placeholders are defined in all modern pages in the site. They're not even just defined on specific pages. They're everywhere and you can use them absolutely everywhere. You got a question or comment? Let me know what you think by dropping a comment in the video below or tweeting me at Andrew Connell or at Voitanos. And if you liked this episode, man, I'd really appreciate it if you'd share it with the rest of your friends. This episode is also available as a blog post on Voitanos.io.