 Microsoft released the SharePoint Framework version 1.18 on September 12th, 2023. And this release features one big change among a bunch of other updates such as core dependency upgrades. The majority of this release is centered around adaptive card extensions, also known as ASUS. Unlike earlier releases where I found lots of undocumented thing, the official release notes, they're mostly complete, but just like prior releases, I did find a few additional nuggets in my research picking this release apart. Now this video is going to cover everything that you need to know about the SharePoint Framework version 1.18 release. I'm going to reference a lot of links to a lot of additional documentation. All those links will be included in the article that's associated with this video, and will be included in the description as well below this video. You'll find all those links in the description. Now this release can be grouped in a couple different categories. The first is going to a pair of fixes or in a pair of deprecations. The next is an update to some core dependencies for SharePoint Framework projects, including two big changes. And then updates to ASUS, such as replacing all the project templates with new templates. We'll get to that towards the end. So let's get started. Let's start with some bug fixes. Now firstly, about the SharePoint Framework and Microsoft Team solutions, Microsoft replaced the icon that we get in a default SharePoint Framework project, and that's going to be used typically as the icon for the app in a Microsoft Teams-based project. So when you deploy your SharePoint Framework project as a Teams app to Microsoft Teams, the previous icon that we had didn't meet the design requirements or guidelines for Teams apps. So to meet these requirements, what Microsoft did is they had to update the icon to remove a solid border around the icon. Instead, they replaced it with a transparent outline. Now there are two deprecations related to ASUS that we need to cover here. Now I'm going to talk about both of these a lot more later in the video. I can't do too much with them right now. I do want to mention them, but they're going to come to the big news that we're going to talk about a little bit later. The first thing that's been deprecated is the class Base Adaptive Card View. That's used as the base class for Quick Views. It's been replaced by a new class called the Base Adaptive Card Quick View Class. The other thing that was deprecated is the template method on the Base Template Card View class. That and all of its descendants have been deprecated. And we were able to use that by overriding the cards that we're going to be used, but Microsoft doesn't want us doing that anymore. Now the next set of updates, they're all around dependencies. Now probably the biggest one that we want to talk about first is that all SharePoint Framework projects that are version 1.18 or higher, they now support Node.js version 18. Previously only Node.js version 16 was supported. And it still is, but it's always supported for SharePoint Framework projects officially. Why? Well, Node 16 released End of Life on September 11th of 2023. Wonder why the SharePoint Framework 1.18 came out on September 12th one day later? Maybe that's why. Now the version of TypeScript that's used to transpile our SharePoint Framework projects, that was also updated from version 4.5 to version 4.7 in this release. You don't have to do anything that's already done for you in every new project. Another very minor update that won't likely have any impact on any of us is that Webpack was updated to a new version. It went from 4.44.2 to 4.47.0. Again, that's included as part of the project dependency, so nothing for you to do. Now unlike some of these other dependencies, this next one is a big update. What Microsoft did is they updated the version of Fluent UI React from version 7 to version 8 in this SharePoint Framework release. Specifically, Fluent UI React 8.106.4. Now if you use Fluent UI React in your SharePoint Framework projects and you want to migrate to use Fluent UI React in those projects, the new version of it, version 8, or you upgrade those projects, you may run into a couple of issues because it's a major release. Well, the Fluent UI React team has tried to help you with this and they've provided a migration guide to go from version 7 to version 8. I'll include a link to that in the notes below this video. Now the SharePoint Framework API has an internal reference to the Microsoft Teams JavaScript SDK that is already initialized for developers to use in SharePoint Framework projects. Now in this release, Microsoft updated the Teams JavaScript SDK to version 2.12.0. That version of the Teams JavaScript SDK is relatively new or recent. It was released in June of 2023. This upgrades the JavaScript SDK in SharePoint Framework projects that we had in 1.17 from 2.9.1 up to the 2.12. Now the most current version of the Teams JavaScript SDK is 2.15. Now I bring this up for a reason as I've heard from a few developers about some interesting issues that they're running into with the Teams JavaScript SDK and the new Teams desktop app for Windows and macOS. The Teams JavaScript SDK group has released a few new versions from what we are going to find in the SharePoint Framework SDK that includes a few new capabilities. Now I noticed in some of the commits and those updates it also addresses some issues around the new Teams desktop clients that the JavaScript SDK is going to take into account. So for example, the Teams JavaScript SDK 2.13 adds a new marketplace capability to help developers with the checkout flow for apps that are deployed to app source and they also added a live share capability to help build real-time collaborative apps as well using the Live Share SDK. Also the 2.15 release, the most recent one as of this recording that adds a clipboard capability allowing access to the system clipboard as well as support from macOS. Now unfortunately this is one of the downsides of the SharePoint Framework team including a copy of the Teams JavaScript SDK because we're not going to always have the latest and greatest stuff if we're dependent on a new SharePoint Framework release to utilize the latest Teams features in their JavaScript SDK. We're always going to be dependent on the SharePoint team updating it for us. Okay, that wraps up a look at all the changes to the dependencies in this SharePoint Framework release. So now let's look at a few updates that Microsoft added to the SharePoint Framework 1.18 release. As I said earlier, this is primarily an update centered around adaptive card extensions or ACES. This release of the SharePoint Framework version 1.18 includes a bunch of improvements to ACES that I want to cover before we get to one really big change that they made. Now the first update, pretty small, is the addition of a host context property to the ACES context object that developers can use to determine the current theme if we're in the mobile client specifically the Viva Connections mobile client. It's going to return one of the three different values either light, dark, or undefined. This SharePoint Framework release includes a change to adopt the universal action model that's been adapted by adaptive cards. Now as adaptive cards grew in popularity, different hosts started supporting different action models and this led to fragmentation. So to solve this problem, the Microsoft Teams group, the Outlook group, and the Adaptive Cards group all worked together in creating a new universal action model and this is compatible across all three of these different hosts. This effort led to a couple of different things that resulted in the generalization of bots in the bot framework as the way to implement adaptive card based scenarios. And this includes both for Microsoft Teams, bots, and Outlook actionable messages. Part of this also gave us the action.execute as a replacement for the action.submit that was used by bots and it also gave us as an access replacement for the action.http which is used by actionable messages. Now in addition to those things, some popular features that were only supported by actionable messages were made available now to bots and this new universal action model is going to give us the ability for adaptive cards to be refreshed at the time that it's being displayed and the ability for the action.execute action to return an updated card to be immediately displayed in the client. Now developers can also now use a text input component in a body or a footer of an adaptive card extension and this can be used to collect some information from your users. And in addition to that, we also have support for an on change event that the text input box on the text input box so that we can react to when the text changes as well. But that's not all. In addition, it's also going to work for a search box. We're going to talk more about that search box in just a minute. Now for the big news. The rest of the news in this release is all related to a very significant update in how we build ACEs. Now, kind of unfortunately kind of not, this is likely going to lead to most of us wanting to rebuild our existing adaptive card extensions although it's not required as everything is backwards compatible and your existing cards will continue to work. In the SharePoint framework 1.18 release, Microsoft is replacing the project templates that we've been using to create new ACEs. So let's take a look back. Previously, we had three options for creating adaptive cards. We could choose the basic card or the image card and then we also had another option for the primary text card as well. These are now referred to as template based approaches to ACEs. Each project template would create a different type of a card. Well, in this release of the SharePoint framework, Microsoft is retiring all three of those templates and removing them from the generator and it's replacing them with two new templates, generic card and search card. Now these new options, these are a more granular component based way of creating ACEs that result in a lot more flexibility in how we can design and implement our ACEs. Now these flexible views are based on an allowed set of variations using the generic card template. You can learn more about the different combinations from the docs. I'll include a link to a big table that Microsoft has that explains all the different variations. It's on the card design page in the design guidelines section of Viva Connections Docs. Again, it'll be linked in the notes below. Now a new generic card template has full support for everything that we used to be able to do with one of those three original templates. But unlike those old templates, the new template and classes give us a lot more control over our ACE designs because we can control things such as the card bar. This is where the ACEs icon and name usually goes. We can control the header. That's where the heading or the primary text that we use in the original template that's right below the card bar. We can control the body. That's where we previously added the description of the card. We have the image, which is how we implemented that original image card template. And we also have the footer. And this is where the action commands like buttons would normally go as well. Now these options are provided through the generic card template. These allow us to implement four different types of card layouts with one single template. Whereas before, as I said, we had to pick from one of those three templates and choose one of the different card layout options. Now we have one template that we can use for all of these different options. The first one is one with just a heading. Then we can have a heading and an image. We can have a heading and a description. And finally, we can have a heading and a text box. While Microsoft removed the old templates, existing projects, as I said, they're still all supported and they will continue to work as is. No change is required. In fact, the three of the original card types can be implemented using the generic card template. And if you want to do the migration, Microsoft has even made this easier for us. And they've created a migration guide which is very basic, but it kind of walks you through how to upgrade those cards. To simplify this process of the migration, what Microsoft did is they added three helper functions, one for each one of those old templates that you can import into your project and you can use that to map the old API to the new classes. You can take an ace that was originally implemented using the basic card template, such as one that you see here, and I could implement the exact same thing as you see from this other code and by doing that, by implementing that utility function, the base card view function. And that's going to map things like the primary text to the card's header, the title to the card's command bar, and the button to the card's footer section. If you want to see how to migrate some additional cards, let me know. Drop a comment below and I'm going to create some videos migrating some of mine and show you some examples. Now, one thing I want you to keep in mind here is that you don't have to upgrade all of your existing aces to use the new templates, but you might want to add it to your listing of things that you want to consider doing in the future. And the reason why I say that is because I would expect that new features and capabilities that Microsoft adds to these aces and ace projects, they're only going to be in the new API and supported in the new project types and APIs. So, you probably want to get on the new stuff first, but the conversion that you have to make is really not that big of a deal. I don't think it is, at least. So, it might be something you just wait until the next time you do an update to your project. There's also a new ace search card template as part of this update, and this new card type is going to contain any input control, like the ones I talked about previously in this video. Now, one thing I want to warn you about is that you might want to use this sparingly for now, because as this new text input component and the associated on change event, they're not fully supported in all the experiences just yet. At the release time of spfx1.18 and the release of this video, they're only supported in the Microsoft team's browser or web client and the desktop clients. They're not supported in the Viva Connections mobile clients just yet. Now, Microsoft says they will be supported in the Viva Connections mobile clients, but all they've said is it's going to be enabled later. They didn't say when that later is or give us any kind of hints. Alright, that's a wrap on the latest release of the SharePoint Framework version 1.18. What did you think about this release? Do you like these ace improvements that Microsoft added to this? So far, I haven't really seen any issues around like reported from the SharePoint Framework version 1.18 release, but history has shown us that there's almost always a regression with one of these minor releases that Microsoft releases. So my advice is to hold off on upgrading your projects or using 1.18 for about three weeks after the release. That would mean that you would start using this until about early October. And the reason I say that is you probably want to wait to see if there's a patch update. The last few releases of the SharePoint Framework have followed the new minor releases with at least one patch release on an average of about three weeks following the initial release of the SharePoint Framework. So again, what do you think? Leave a comment below the video and let me know what you think or if you've got any questions about this release or any ideas for future videos. I'd love to hear. Thanks a lot. I'll see you next time.