Development / Open Source / Tools

Microsoft’s Collaborative Apps — the Web Is the Engine

14 Jun 2021 6:00am, by

“Collaborative applications” was one of the new buzzwords to come out of Microsoft Build, the company’s recent annual developer conference. The phrase was bandied about in reference to an application platform for Teams and Office, which gives third-party developers increased access to Microsoft’s core enterprise software products. Developers can both integrate their existing apps into Teams and Office, but also build hooks into the products via new APIs. The overarching idea is to help enterprise workers collaborate with each other, including in real-time.

Richard MacManus
Richard is senior editor at The New Stack and writes a weekly column about web and application development trends. Previously he founded ReadWriteWeb in 2003 and built it into one of the world’s most influential technology news and analysis sites.

The web platform is a key part of Microsoft’s vision for collaborative applications, particularly for the newer Teams functionality. As Archana Saseetharan, who leads Microsoft’s Teams Platform Product Group, put it in a Build presentation, “the Teams app platform is built on open web standards, so you can use the frameworks you already know and love as a developer to build apps.”

Of course, this is just the latest iteration of a Microsoft developer strategy that straddles both the Windows world and the wider web world. We’ve had an annual update on this strategy ever since Microsoft’s 1996 developer conference (then called the PDC — Professional Developers Conference), when the company first signaled its intention to integrate the internet into everything it did.

“Part of the unique thing that Microsoft is doing,” said Bill Gates in 1996, regarding its approach to the internet, “[…] is a strong level of integration into Windows.” That was the year Microsoft debuted ActiveX, a Windows component model which (among other things) enabled ActiveX controls in the Internet Explorer (IE) browser. ActiveX technology thrived (and later merely survived) for as long as IE did, but it was never supported in the Chromium browser engine — which Microsoft’s latest browser, Edge, is based on. So nowadays, HTML5 and JavaScript are the key technologies for Windows developers when it comes to web integration.

This brings us back to 2021 and the nascent Teams application platform. Although JavaScript isn’t mentioned in the diagram that Microsoft CEO Satya Nadella showed during his keynote (see below), it’s what developers will be using to build these “collaborative apps” in Teams. As Jeff Teper, head of Microsoft 365 collaboration, told The Verge, “if you can build web apps, you can build extensions into Teams chats, channels, and meetings.”

Source: Microsoft Build 2021

Fluid Framework

While technologies in the open web stack (like JavaScript) don’t merit a mention in the above diagram, the web is baked into some of the Microsoft products name-checked. For example, the Fluid Framework — a part of the “Components” layer — is a relatively new set of technologies (first demonstrated at the 2019 Build) that enables users to “compose and re-use application elements across apps.” It was originally designed for “multiperson coauthoring” and was built with TypeScript (a superset of JavaScript), so it has a solid web foundation.

Source: Microsoft Build 2021

Perhaps the most important thing to note about Fluid is that web developers can use the JavaScript frameworks they’re already familiar with to build Fluid apps. “You can use any UX framework designed for the web,” says Microsoft. That includes the popular ones of today — such as React, Angular, Vue.js and Svelte.

In another Build session, Dan Roney, a program manager on the Fluid Framework platform team, demonstrated a brainstorming app integrated inside of Teams. “Brainstorming is an obvious fit for Fluid,” said Roney, “because it’s an application that’s significantly improved from people using it collaboratively and it benefits from a simple streamline service.”

Source: Microsoft Build 2021

Also announced at Build was the preview of Fluid components in Teams. “Users can create and edit live components like lists and tables and tasks directly in chat,” said Jeffrey Teper, a corporate vice president in the 365 division. He added that Fluid components in Teams “are shareable across Office apps like Outlook” and can be accessed across devices.

From Browser Widgets to Hybrid Apps

Again, this sprinkling of Windows components into various online products has been a common theme for Microsoft ever since the advent of ActiveX in the 1990s. The main difference is that Microsoft is no longer pushing its own proprietary web stack — it has embraced open web technologies like JavaScript and HTML5. Back in the day, most ActiveX controls only worked on Windows machines. But by choosing to use open web technologies like JavaScript, anybody with a “modern browser” (like Edge, Chrome, Firefox, or Safari on Mac) can use and access the Fluid components of today.

The component models of the web have come a long way, even over the past decade. Back in 2007, I attended the Microsoft MIX conference and was fortunate enough to be invited to a “blogger lunch” with Microsoft’s Chief Software Architect Ray Ozzie (he’d inherited the role from Gates the previous year). During the lunch, Ozzie discussed the general trend of componentization, which he noted had been a part of browsers for some time. He went on to talk about the popular web components of the day, known as “widgets” or “web services” (some of you may remember “start pages”, including Netvibes and Microsoft’s own Live.com product — these were basically home pages for widgets).

Looking back, browser widgets seem quaint compared to the sophisticated Fluid components available now in Teams. One of the main changes in capability since 2007 is that the web experience can now be wrapped as a native application, like Teams. Microsoft calls this “hybrid apps” (I assume “collaborative apps” are a subset). According to a Build press release:

“More and more developers are building hybrid apps — using web engines for the user experience, but wrapped as a native app to connect with all of the power of native services.”

So, “web engines” are increasingly at the core of Microsoft’s application stack. This has happened partly due to the company’s embrace of open source over the past decade, including Google’s open source Chromium project — which now powers Microsoft Edge. But it’s also an acknowledgment that web developers are the ones building the most innovative products and tools nowadays (the React JavaScript library came out of Facebook’s frontend team, as just one example).

Under the Hood

I’ve touched on Microsoft’s history with internet technologies in this column, because at every developer conference it has held over the past twenty-five years there is always a push and pull between Windows technologies and the web. While Microsoft will always “push” its Windows-based products (Office, Teams, et al) at these events, it hasn’t been immune to the increasing “pull” of web technologies — which in the case of JavaScript, has now become gravitational.

If you look again at the developer stack diagram Satya Nadella showed off at Build, you’ll see a lot of different Microsoft products and tools (Azure PaaS, Microsoft Graph, etc.). But after checking under the hood in this post, it’s gratifying to see that the open web is the engine that drives everything.

A newsletter digest of the week’s most important stories & analyses.