Credit to Brad Sams for first reporting on this, Alongside the Windows 11 announcement today, Rish Tandon, the CVP Engineering for Microsoft Teams, posted on Twitter about changes coming to Microsoft Teams architecture. It gave a lot of useful insight into what is coming.
- Microsoft Teams is moving away from Electron to Edge Webview2
- Angular has gone. Teams is now 100% on reactjs
- Teams is also leveraging apollo graphql
- “Teams 2.0”, a name Rish coins in his tweet, but I suspect not an actual product name/version, launches with Windows 11 and consumer accounts then commercial will move to the same architecture
- Teams/Microsoft will continue to contribute back to apollo, graphql, reactjs, chromium projects
So what does this all mean?
If you are not interested in the detail, the punchline is Teams is moving to a more performant and more Microsoft controlled technology stack, meaning a better and more performance client experience. If you want the detail read on….
Today Microsoft Teams uses Electron. Electron is a framework for creating desktop applications with web technologies like JavaScript, HTML, and CSS. It’s popular with some developers for its flexibility, but it’s also a well-documented memory hog. Microsoft even has a Teams documentation page explaining why Microsoft Teams might have high memory use.
Electron uses Chromium for rendering and Chromium’s behaviour is to detect how much system memory is available and utilizes enough of that memory to optimize the rendering experience. If other apps or services signal that they require system memory, Chromium gives up memory to those processes. This matters a lot less on high-end PC’s with lots of RAM, but as you get to less performance machines with less RAM, for example often the choice in education to hit an aggressive price point, performance can really suffer.
Beyond just memory usage there are other benefits to Edge Webview2
What is Edge Webview2?
Microsoft Edge WebView2 control allows you to embed web technologies (HTML, CSS, and JavaScript) in native apps. So now Microsoft Teams will be leveraging another Microsoft lead technology, rather than needing to wait on and leverage and integrate Electron, a separate open-source project.
If an app is written in what is called “Evergreen distribution mode” the WebView2 Runtime is updated automatically so there is no need for the developer to manage it.
All apps that use the Evergreen distribution mode use a shared copy of the Evergreen WebView2 Runtime, meaning it does not have to be distributed by each app, reducing the app size, meaning a smaller app to download and update.
Microsoft has been pushing Edge WebView2 Runtime on PCs with Microsoft 365 Apps for Enterprise, WebView2 is already leveraged by the Outlook team in OWA Powered Experiences (OPX)
Windows 11 / Teams consumer version first
At the Windows 11 launch event today we saw that Teams will be integrated into Windows. This will be Teams consumer and it will be the first client to leverage Edge Webview2. Later the enterprise version of teams will move away from Electron to Edge Webview2
Stay tuned to the blog for more on the new Teams client as it rolls out.
Reference:
Electron to WebView2 – What does it really mean for the Teams desktop client, and for a Client SDK?
Introduction to Microsoft Edge WebView2
The Most Exciting Part of Microsoft Edge is WebView2
[…] Microsoft Teams 2.0 will use half the memory, dropping Electron… – Tom Talks Blog […]
Meh, the big design flaw with teams isn’t the memory usage its the HDD space used. Because it installs to appdata instead of program files it has to install a seperate copy for every user.
I’ve lost count of the times we’ve had to repair or reimage machines because they became ususable or straight up failed to boot due to having 30-90GB of teams installations on the drive >.>
How will this affect the Linux version of Teams?
Great question. Same one for Mac. I’ll see what I can find out.
Edge Webview2 is being ported to Mac first, then Linux, so presumably Teams will follow.
Find out anything ?
That’s definitely a good news,
But what about being able to manage updates through SCCM/MECM?
I sincerely hope Microsoft will move on this soon because we are really scared to stop using Skype4Buisness because of that. We have a lot of users behind VSAT connections and we cannot afford to have every client downloading their own updates, this will clearly kill our bandwidth at some times.
[…] Article URL: https://tomtalks.blog/2021/06/microsoft-teams-2-0-will-use-half-the-memory-dropping-electron-for-edg… […]
Thanks for information and update. What will be value added for enterprise customer part of service offering?
Angular 2 is significantly more performant than react. This is for control, and to allow for the use of cheaper resources as they expand their reliance on outsourced partner labor.
This is not really true. React gives you much more fine-grained control over performance than Angular. Incompetent developers and management, unreasonable business pressure/decisions that’s making softwares simply bad.
[…] https://tomtalks.blog/2021/06/microsoft-teams-2-0-will-use-half-the-memory-dropping-electron-for-edg… […]
[…] Microsoft Teams 2.0 will use half the memory, dropping Electron for Edge Webview2 – Tom Talks […]
The problem with Teams is not in used technologies.
It is implementation: a horrible UI/UX, bad code and countless number of bugs.
Product feels raw. Obviously it was cooked way too fast that supposed to be.
You need to invest in good people and time.
[…] Source: Microsoft Teams 2.0 will use half the memory, dropping Electron for Edge Webview2 – Tom Talks […]
[…] natch — which sees Teams replace Skype as the default video calling add-on to Windows. The Teams architecture is getting a makeover at the same time, […]
Microsoft owns Electron. They own GitHub which owns Electron.
[…] Microsoft Teams 2.0 will use half the memory, dropping Electron for Edge Webview2 […]
[…] wonder if this client SDK will somehow relate to the new Teams 2.0/Webview2 […]
[…] few weeks ago I blogged about the new “Teams 2.0” client which is initially coming for Teams personal (consumer) bundled in with Windows […]
“100 hunnit percent React.” “This was a moonshot!!” “This took us a whole 6 months”
So why not just use React Native Windows? It’s developed by Microsoft. It’s even better than WebView2. And then they can have an MSIX installer. Another thing Microsoft wishes people would use but doesn’t use themselves.
Why do all of this development of you’re not going to use it? Why does OneDrive use Qt? Why does Microsoft not use Xamarin or MAUI? It’s insulting.
This so called “integration” with Windows 11 doesn’t look special to me at all.
And not to forget that Microsoft has control over Electron. They could have easily fixed the performance of the thousands of apps by sharing Chromium resources in Electron. That idea was rejected on their GitHub, ironically.
Pretty frustrating.
[…] be built-in to help optimize the user experience and resource utilization (more on that later). Click here to the article that points to sources of this […]
[…] This is the same electron-based version of the client you get if you download it directly from Office 365/Microsoft outside of the Microsoft Store, not a new version of the client. As it’s electron/win32 it’s not supported in S mode and it’s not Teams 2.0 for work/school. […]
[…] This is the same electron-based version of the client you get if you download it directly from Office 365/Microsoft outside of the Microsoft Store, not a new version of the client. As it’s electron/win32 it’s not supported in Windows S mode (a version of Windows locked down to only non-win32 Microsoft store apps) and it’s not Teams 2.0 for work/school. […]