 On March 8th of 2022, Microsoft released the beta of the next version of the SharePoint framework, that's SPFX v1.15. While the official release notes for the beta of 1.15 mentions a few things, I poked around and I think I found one or two other things that they didn't cover. Like what? Stay tuned and you'll find out. Hey, I'm Andrew Powell. This episode is also available as a blog post on Voigtonos.io and as a podcast on Voigtonos.show. Check out the description below the video for links to these other resources. What I've got on the screen here is a repository that I use, it's a private repo, that I use to keep track of the changes to the SharePoint framework. So every time Microsoft ships a new version of the SharePoint framework, I go in, I have one repo that has a copy of the generator and where I can easily see the differences and I have another project or another repo where I create an instance of every single permutation of every project that we can create so that I can see what changed from this version to this version. So that allows me to really quickly go back and do regression checks and stuff, what they've done. These repos today are private. I can make them public, but I need to kind of explain it and my plan is to eventually make them public, like in the next month or so, but I want to have a blog post that explains kind of what they are and how you could use them. They're mainly for me, but I figured there's no reason I shouldn't go through and just open these up. Now this is the way that I look to see and that I use this to do research on what is the latest changes that have happened with the SharePoint framework. So if I go over and I look at the SharePoint framework docs and today the most recent docs that they have are from 1.15. So if I scroll down here on 1.15, I will see some stuff here. I can already see some typos here. Install the new 1.14 preview package. It's not. It's 1.15. But there's a couple of things that we've seen that they've added some support for that they are talking about. So graph V3 support, what is that? So for a while, ever since they shipped support for Microsoft Graph in the SharePoint framework, which that was included in, I think that that shipped as developer preview, that was shipped in version 1.6 of the SharePoint framework. Ever since they did that, we've been using the JavaScript SDK that the Microsoft graph team has published, but we've been using version one. They're all the way at the version three and we have not been able to change it. Well, the graph team finally figured out how to have their JavaScript SDK multiple instances of it on the same page as different versions. So before, if I had two web parts on the page, they had to use the same graph version, graph SDK version. They couldn't use both. So what they did was they made some changes to how the SDK worked. And now I could have like Web Part A uses the graph JavaScript SDK V1 and then Web Part B uses the graph JavaScript SDK V3 or V2. Now, just to note, this is not a graph version difference. I'm not talking about there's a brand new graph version three or a graph version two. All I'm referring to is the SDK. So major changes to the SDK from version one to version three. That's all it is. They're still talking to the same rest endpoints. They now give us ability to go through and say I want to use a specific version like V3. And the way you do that is by initializing it in a different way. When you say get client, you can pass in the string three and you'll get the V3 client. If you don't pass anything in, you get the V1 client just like we did before. They also went through and updated the command set extension template. I will show you where they did that and explain what happened, why that is. They talked about this deprecation about the component loader and get manifests. They deprecated this. This wasn't something that I really saw anybody use. So I don't think this is that big of a deal. Maybe to an ISV was using it. And then a handful of things that they're working on that were fixed in SPFX 1. The SPFX 1.15. So that's what they talk about. But I found some stuff that they didn't talk about. So let's come over here to my little repository here. So what I've got is if I look at all the commits that we have here, what I'll see is that I have a committee here from 1.14 and 1.15 beta one that I did this yesterday. So let's go through and let's unpack a bit. Let's see what stuff they change. Now this is I'm going to show you how I do it and I'll explain this as I go along. Just know that I'm sure that there's some of this where you guys would be like, how in the world did you figure this out? So let me try and explain how I figure some of this stuff out. So first of all, you look at this, you're going, oh my goodness, 73 files changed. There's a lot of stuff that changed. And the answer is not really some of the stuff doesn't I mean, yes, 73 files change, but a lot of it is stuff that doesn't really matter to us. So how do I know it doesn't matter? So if I click on the 73 files that that that changed, if I start looking at this, what I can see is the these yellow badges over here are showing files that have changed. Green says it's a file that's been added. Red says it's a file that's been deleted. So a lot of the stuff that you're seeing here, I'm going to just you're seeing stuff that is used to make the generator work like that. What how does it prompt you for those different questions when you run it? The SVFX generator. And stuff like that, right? The stuff that you really only care about the only stuff that I only really care about is stuff related to the templates that are being created. And the actual generator description itself. So like for example, see all these packages that are listed inside of package slash lib slash common. That is stuff that is being that the generator uses. So like for example, if I look at this thing called base generator, and I can see that they just changed this, this type from t to partial t. That has no impact on us. That is something that the generator developers had to do to make some stuff work for them. Okay. So I don't care about a lot of this stuff. The things that I'm looking for. Right. And maybe one day we can pick this apart and understand the architecture. But right now it doesn't really matter like this dependencies thing. You see all these other dependencies, they basically just consolidate and got rid of all these files and put it into one file. Like I don't care. That's great. Good. But to make your life easier. Doesn't do anything for me. All this stuff. None of this stuff has any bearing on us. Now, I do see something here that does catch my eye. So I'm going to come back to that in just a second. But I know there's something that they changed here that I want that I first went for went to go look for. And I wanted to see that I noticed that I was like, Oh, your package.json file. And this is going to tell me some things about this. Let's go let's take a look at this guy. So this is the thing that describes the SharePoint framework. What stuff do we need? What stuff does the SharePoint framework use? And the big thing that this tells me this is used by the npm.js registry. The big thing that this tells me right here is this is what I was looking for is the engine section. What it tells me is not only in one dot 14. So that little this red line here with this minus next to it. That's the line that was removed in the line that was added. It shows what was added in green here. And this tells me that one dot 14, we knew that it was supported for Node.js 12 and Node.js 14. This tells me they've added support for Node.js 16. That's not in the release notes. But that to me tells me that at least that's their intention. And that's what they're testing against. That is not an announcement that one dot 15 is going to support Node.js 16. But that right there tells me that's their plan, or at least that's their intention, right? So that's good. I like that latest version of Node. Cool. All right. So that's one thing that we just that we that I identified. Let me go back and scroll back up to the top here. Alright, so let's keep going through looking at these files. I'm looking for a file name that's got a very specific pattern, like this one right here. So what I'm looking at with this is that the component class name, when you see those mustache brackets with the with the the something in the middle of it, when if you know how if you've ever built a yeoman generator, you know that that is a template. And it knows that what it's going to do is that if I name my component, Hello World, then it's going to replace that component class name with Hello World. So my file is going to be named Hello World dot ts. And I know that this is for the generator for list view command sets, because I can see that right here in the in the path. And you can see the template right here. It's for a template and the template is for none. So it's not in the react one, it's not in the, or it probably will be if there if there's a react one will be in that one as well. But it this is for the no web framework that was chosen. So like, they didn't choose JavaScript, they didn't choose minimal. So what is in this guy? Ah, so let's take a look at this. When one dot 14 came out, they deprecated a lifecycle method, and they gave us a new API for hooking up for when things change on the list view to give us a lot more context, the name of the list, the idea of the list that we're in the view. What happens when items change in the list? When the number when the the items that are being shown in the list, if the sorting changes, the filter changes, all that stuff was new, that we were being we can be told on one dot 14. But when I looked at the release notes, I'm like, Well, wait a minute, if that method was deprecated, then why wouldn't I create a new list view command set, you're still giving me the old code that was deprecated? Why don't you stub out the new code? And I noticed that right before one dot 14 came out. What you can see here is that the interface changes, they basically got rid of this line five, and they replaced it with these event args. And if I go down, look a bit farther when I create a brand new list view command set, you'll notice they got rid of the deprecated method called on list view updated. And it looks like they also are they're just going to go through and update the on a knit because they got rid of the return and the closing bracket, they got rid of the opening statement for this method. They have all the same when they got rid of all this code as well, and they replaced it with saying the visibility state to false. And then they're doing now they're going through in there and they're creating this. They've they they're wiring it up using wiring an event handler up using the new API. So they're using the list view state changed event, and they're adding in a new private method that we define. And then they've gone through and they've stubbed out that new method here, right? And then they're returning back the promise. So if you remember my 1.14 blog post or video that explained this and said here's what the code should look like. It looks like they that's what they went there and they did. So now we create a new list view command set. It will have the code that we should be using, not the deprecated code. Okay, so that's cool. So that's a change that they added. So let's go back a little bit farther. What else do we have? So there's that's the one we just went through. So let's keep looking. What else do we see new files? These are just files that were renamed or the path was renamed. So don't care about that stuff. Here we go. Oh, it looks like we got a change to web parts. So we have a web part to all three of the web part templates, the minimal template, the no web framework template, and the none and the in the react when you can see the minimal none and react in the middle there. So let's look at the none one because that's pretty straightforward. What changes do they make? Oh my gosh. Okay, so this is the one that's right. This is the change that's kind of like really guys, was this necessary? They basically just want the render method to be first. Right now, when you create a new web part, so if I open this up a little bit, when you create a new web part, so there's your export default class, there's the component name that's going to get written out. There's some of the theming stuff that we got one dot 14. It then shows the on a knit method. And then it shows the render method. Well, they basically said, Nope, we're going to delete the on a knit method as indicated by all these minuses in the red. And we're going to move it down here right after the render method. And why are we getting three line breaks between? Oh, anyway, so you can look at going, Okay, so I guess you made a change there. Good job. Not much of a not not that big of a change, but you know, they just kind of reorganizing stuff. I bet that's what we saw. I bet that's what they did in the no in the minimal template and the react one. Let's look. Yep, same thing. There's our render method for a react component. They basically removed on a knit, and they put it after render. So now they want render to be the first thing showing up in the class. That's basically everything that I found. Right. So they didn't we there are the only thing that they had the release notes that I showed you was the change to the list view command sets. And the the oh, that's the only thing that they talked about. What I was able to find here as well was they have stuff for the support for node 16 and also reorganizing the default web parts. Now what's not in this beta? Well, remember, this is beta one. So we're early on in this one dot 15 release. But if you've watched any of the special interest groups from the from the Microsoft hosts every other week, you'll know that they've talked about giving us the ability using the SharePoint framework to create custom forms for our SharePoint lists. Today, the only way that you can do that in a supported way is using Power Apps. But we've been asking for it for a while to do this with SharePoint with SharePoint framework pages or SharePoint framework with a page that hosts a SharePoint framework web part on it. And so far we haven't seen that yet. Well, they've talked about the fact that they actually want to add that and give us that ability on SharePoint lists. And right now, though, it look they've hinted that that was going to be in one dot 15. Well, at least in this beta, it doesn't look like we're going to see that just yet. That's not to say it's not going to be in the in the one dot 15 release. It's just to say that right now we don't see any hints of it. That's not a guarantee. I we got a long way to go. I'm sure with one dot 15 and we don't usually see them release every single beta or every single version in the beta to us as a preview. This is beta one, though. So this is really early on. So I wouldn't I wouldn't read too much into that that we are or not going to see it in one dot 15. I just want to call that out because that was one thing that I was looking for to see, you know, is this here yet? So far. No, but it's early on. We'll see if they add it. Stay tuned, I guess, right? 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 like this episode, man, I'd really appreciate it if you'd share it with the rest of your friends. This episode, as I said earlier, is also available as a blog post on Voitanos dot IO and on the Voitanos podcast at Voitanos dot show. I've included links in the description below to these other resources. And hey, don't forget to subscribe to this channel and click that little bell in the corner to be notified of future episodes.