It’s been a few years since I published my last SPFx wish list - this time I want to expand it to all Microsoft 365 development topics!
It’s been a few years since I published my last SharePoint Framework (SPFx) wish list. Now, I want to broaden it to a Microsoft 365 developer wish list.
In this article, I’ll outline the key features I’d like to see if I had the chance to invest in new Microsoft 365 capabilities.
I’m going to exclude AI, as I believe Microsoft is already doing impressive work in that field, particularly with Azure, including Azure OpenAI, Responsible AI, content filtering, and secure enclave. There’s also exciting work happening in the Microsoft 365 space with tools like Copilot and the possibility to extend it using Microsoft Graph connectors and Microsoft Teams message extensions. I, like many others, am merely a spectator & consumer in this area for now. I’d rather observe how others are pushing this area to see what’s resonating with customers before throwing them into my wish list.
So, let’s dive in without further delay.
Carry forward previous wish lists
Unfortunately, there are a few items from my original wish list that remain, as they have not yet been addressed.
Finish Modern
I want to start by revisiting some longstanding items on my wish list that remain unfulfilled.
The first of these is the completion of the “modern” experience. This update, specifically for Microsoft 365 and initially rolled out in the SharePoint online space, was intended to replace the “classic” experience.
However, Microsoft never fully implemented this modern experience. We still encounter numerous features that rely on the classic experience, such as the app catalog and the site collection app catalog. Issues also arise when upgrading or installing apps, as there are many instances where we must revert to the classic mode to accomplish certain tasks.
I won’t delve into this in detail, as I have previously written extensively on the topic, but the same issues persist and are frustrating this hasn’t been wrapped up.
Finish half-baked features
Another one of the frustrations that I have is kind of at a high level around things that the Microsoft 365 or more specifically the SPFx team does and that is they really need to finish half-baked features.
For example, the best example of this is the SpHttpClient
batch request support to the SharePoint online REST API. I get it. If you want us to use the Microsoft Graph and you want us to use the batch support that we have in Microsoft Graph for issuing batch requests (which I agree with) then why don’t we just cut the SpHttpClient
batch support that has been living in the API for the longest time.
SharePoint Framework capabilities
Now, I’d like to discuss specific aspects of the SPFx where I believe Microsoft should invest more resources.
Invest in new features while at the same time finishing & investing in core features
Microsoft seems to primarily focus on enhancing the SPFx, such as the addition of Viva Connections features, which seems to have their singular focus.
Specifically for Viva Connections, they’ve added Adaptive Card Extensions (ACE) templates, then retired & relaunched them with two new, more flexible templates. More recently, we’ve seen a beta (in SPFx v1.19) for a new data visualization ACE template. However, there seems to be a neglect of unfinished tasks, despite requests for their completion.
This pattern is similar to the transition from classic to modern experience. While there is significant progress, completion is often lacking. They often reach 60, 70, 80% of the way, then seemingly abandon the task. For instance, they released extensions in the SPFx v1.3, only a few months after the initial SPFx launch in 2017, but never followed through on the initial push.
My wish: finish core features… and stop asking for feedback if you don’t intend to do anything about it.
Let me explain what I mean…
Finish the promise on SPFx extensions
There have been no investments in application customizers or field customizers since the initial launch 6.5 years ago, with the only significant update being to the list view command sets in SPFx v1.14 in February 2022. This was merely to rectify a design issue with the API and the code. The focus has been solely on initiatives like Viva Connections, neglecting to address not fully baked features and technical debt.
To be fair, they did implement a significant feature request in list form customizer extensions (SPFx v1.15, released about 2 years ago). However, they were launched without an installation method, except in a do-it-yourself scenario. Users have to write their own code to install them using the SharePoint REST API. There has been no investments in this feature since.
This lack of follow-up is frustrating and raises questions about Microsoft’s commitment to the SPFx for existing features… I don’t question their new investments in SPFx. Despite this, I still remain confident in the SPFx for the long term, albeit frustrated.
However, I understand the concerns of customers who question whether they want to invest in the SPFx for extending SharePoint. Microsoft seems to be focused on adding new features, but not ensuring they are fully developed before release, which results in half-baked solutions.
Repeating the same points from my 2020 wish list…
- We need more SPFx app customizer placeholders.
- Field customizers currently only function in one scenario – the list view experience. They don’t work in the list view web parts, nor within a Microsoft Teams list app experience. The “that’s the responsibility of another team” response is annoying - sounds like a YOU (Microsoft) problem, not a ME (customer) problem. My wish: finish the story and solve your own internal issues.
That addresses my refreshed thoughts from previous wish list items…
SharePoint Framework development experience
… now let’s look at something new. The next thing on my list is going to focus on the SPFx development & developer experience.
Tooling - it’s time for an overhaul & refresh
I would like to see a refresh of the developer tool chain.
Its outdated and in need of a new foundation. Although what we have now functions, it’s old and tired. I’m particularly interested in moving away from Yeoman and Gulp for task execution.
The recent SPFx v1.19 beta suggests progress in this direction, as it shows some of the build packages being decoupled from the SPFx release version.
Dependencies are outdated
While the SPFx v1.19 beta includes a Webpack upgrade to v5, we still have a significant number of more important dependencies that are old, outdated, and badly in need of upgrading to the latest versions.
We’re currently building our applications with an outdated JavaScript target. This results in larger bundles than necessary not to mention compatibility issues with some packages.
Specifically, we’re still using ECMAScript 5 (ES5), which was released in 2009. Despite ECMAScript 6 (ES6) being available since June 2015, the SPFx toolchain still hasn’t adopted it. Even newer standards, such as ES2013, are widely used… yet we’re still stuck using technology that was released when Steve Balmer was Microsoft’s CEO & when Windows 7 was released! Seriously?!?!
Take a look at this table for my specific gripes:
Dependency | SPFx’s version (release date - days since) | Current version (release date - days since) |
---|---|---|
Webpack | v4 (February 25, 2018 - 2,227 days) | v5 (October 10, 2020 - 1,269 days) |
ECMAScript Target | ES5 (December 2009 - 5,205 days) | ES6 (June 17, 2015 - 3,211 days) |
React | v17.0.1 (October 22, 2020 - 1,257 days) | v18.2.0 (June 14, 2022 - 657 days) |
Fluent UI React | v8.106.4 (March 9, 2023 - 389 days) | v9 (February 10, 2023 - 416 days) |
I understand that updating these dependencies in our projects is challenging due to the dependencies that SPFx relies on. However, this situation highlights the need for a complete overhaul of our toolchain.
The SPFx development & build toolchain should be re-imagined, ideally I’d like to see it use a system similar to the Microsoft Teams Toolkit. We’ve already seen how SPFx components can be built using the Microsoft Teams Toolkit, but only when creating a Teams app.
Microsoft 365 - 3P App Lifecycle Webhooks
Another big wish list item of mine is for third party (3P) apps is getting notifications for the different lifecycle events involved in our app.
Ideally, I want webhooks for when the app’s lifecycle events occur such as deployment, when they’re installed, upgraded, or uninstalled.
I want these for both SharePoint apps, including SPFx solutions, but for Microsoft Teams apps as well.
Why? If someone installs my app, I’d like to be able to handle any kind of provisioning stuff for them on their behalf as part of the install process, the inverse when they’re uninstalled, or other tasks when they’re upgraded.
Microsoft 365 - Take a page from Azure’s infrastructure as code story
From a holistic perspective, I’d like to see a unified deployment model for Microsoft 365, specifically for Teams apps, SharePoint, & SPFx apps, similar to what we have in Azure. This would involve using Azure Resource Manager (ARM) or the Domain Specific Language (DSL) Bicep to provision resources and line up infrastructure as code.
Why can’t we use a similar model with the SPFx? When installing my SPFx solution?
Why can’t I also provision SharePoint lists without involving a user?
Furthermore, if a user is involved, they currently need to have Multi-Factor Authentication (MFA) enabled or use a certificate, but why can’t we use Microsoft Entra managed identities for apps in like in Azure?
In Azure, I can create a solution, like an Azure Function app, and define the structure using a Bicep file following the infrastructure-as-code (IaaC) approach. My deployment first creates the infrastructure defined in the file, or updates it if it already exists. The entire deployment lives in code and, only if this process is successful, does my application get built, deployed, and a new version rolled out.
Want to learn more about using Azure Bicep, a DSL for ARM, to create Azure resources & keep them updated using IaaC and CI/CD processes? Check out my articles on these two topics. Each article has an accompanying video published on my YouTube channel if video is more your jam:
I wish we had the same kind of setup in the Microsoft 365 space, both for SharePoint apps (including SPFx) and Microsoft Teams apps.
What do you think?
What do you think about my spring 2024 wish list for Microsoft 365 app development?
We’ve got a couple conferences coming up, starting with the Microsoft 365 Community Conference in Orlando at the end of April/beginning of May.
I’ll be there! I’m presenting a breakout session and a full-day seminar on Microsoft Teams app development. If you want to level up and learn more about building Teams apps the right way, come join me. I’m going to give everybody who attends my workshop a free copy of one of my upcoming MicrosoftTeams self-paced courses that will be released in the next few months.
Interested in joining me? You can save $100 off your registration if you use the code CONNELL100!
In addition, the Build Conference for Microsoft is coming up later in May.
Will we see anything from Microsoft 365 in that space? Is it all going to be dominated by Copilot? Are we going to see some things that developers can use and small businesses can use today who are not ready to fully embrace AI? We’ll see.
What do you think we’re going to see? I’d love to hear your thoughts and what you think about my wish list items!
What’s on your wish list?
Drop a comment below or reach out. I’d love to have that discussion.