Teams WebView2 Client

Mit den ersten öffentlichen Informationen über Windows 11 hat Microsoft die Katze aus dem Sack gelassen, dass nicht nur Teams auf dem Client enthalten sein wird, sondern auch eine neue Plattform eingesetzt wird.

Vorgeschichte

Als Microsoft mit Teams gestartet ist, wurde für den Client ein ganz neuer Ansatz gewählt. Anstatt für jede Plattform einen eigenen Client in deren nativen Sprache (C#, C+, HTML/CSS/JS etc.) zu entwickeln, hat Microsoft einen sehr modernen Ansatz gewählt. Der Teams Client wurde als "Browser App" entwickelt, d.h. die Programmiersprache ist JavaScript, die Laufzeitumgebung Chromium und die Oberfläche wir als HTML/CSS über das Objektmodel bespielt statt WinGDI/WinForms o.ä.

Das war schon etwas mutig aber so konnte der gleiche Code auf allen klassischen Desktop Plattformen (Windows, Mac, Linux) genutzt werden während für mobile Clients (IOS/Android) doch ein nativer Client existiert. Natürlich beginnt Microsoft nicht bei Null sondern nutzt bestehende Bibliotheken, von denen es gerade für Progressive Web Apps sehr viele gibt. Begriffe wie Angular, Node.JS etc. sind hier gefallen und angeblich über 100 weitere Bibliotheken. Damit der Client nicht im Browser sondern als eigenständige App installiert werden konnte, wurde Electron als Plattform genutzt. Sie starten also eine Electron.EXE, welche dann Chromium startet in dem dann Teams läuft. Electron erlaubte aber durchaus den Zugriff über native Programme, die z.B. vom Teams Addon für Outlook oder den verschiedenen Besetzt-Anzeigen genutzt wird. Bei einer reinen BrowserApp ist das nicht so einfach.

Dieser neue Ansatz hat aber immer wieder zu Problemen geführt, denn auch die Nutzung von Open Source Frameworks bedeutet nicht, dass sich diese Module in die Richtung weiterentwickeln, die dem eigenen Produkt helfen oder konzeptionell auch auf Performance optimiert sind. Viele Frameworks tragen schon wieder Altlasten mit sich herum oder wollen flexibel sein, was diese größer und komplexer macht. Der Spagat zwischen "es allen recht machen" und "effektive und schlank zu bleiben", ist nicht einfach. So hat Microsoft den Client zwischen 2017 und 2021 angeblich dreimal umgebaut. Wenige Änderungen, wie z.B. der Wechsel von Anguar.JS auf react.JS, wurden dabei öffentlich.

Welche verschiedenen Frameworks ihr aktueller Teams Client einsetzt, veröffentlicht Microsoft innerhalb von Teams:

Die Links hier sind nur die häufig genannten. Microsoft ist aber nicht nur Profiteur sondern arbeitet aktiv bei den Frameworks mit, um Fehler zu beheben und neue Funktion zu ergänzen.

WebView2 statt Electron

Dass Teams nicht gerade "sparsam" mit dem Speicher umgeht, dürfte allen Administratoren und sicher auch einigen Anwendern schon aufgefallen sein. Microsoft verspricht auch immer, hier Verbesserungen zu bringen. Allerdings kommt auch immer neue Funktionen hinzu, z.B. 3x3 Video oder 49er Gallery, PowerPoint Live mit einblenden des Sprechers, die neue Anforderungen an das System stellen und nicht immer native mit JavaScript oder WebRTC abgebildet werden können. Es gibt daher auch heute schon einige Unterschiede zwischen Teams/Electron und Teams/Browser. Mit dem Wechsel auf Webview2 dürfte es dann noch den ein oder anderen weiteren Unterschied geben.

Aktuell gibt es den "neuen" Client im Windows 11 Insider-Programm und der ist primär für Teams Home. Sobald ich den ersten "Business Client" habe, werde ich hier weiter berichten.

Weitere Links