New Teams Client / Teams 2.1

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.

5. Okt 2023: Announcing general availability of the new Microsoft Teams app for Windows and Mac
https://techcommunity.microsoft.com/t5/microsoft-teams-blog/announcing-general-availability-of-the-new-microsoft-teams-app/ba-p/3934603
https://aka.ms/newteams

Was ist neu?

Der Teams Client als "Modern App" wurde auch in den vergangenen Jahren mehrfach umgebaut. Anders als viele klassische Produkte ist Teams als "Modern App" mit JavaScript, CSS, HTML geschrieben und nutzt Chromium als Plattform. der "alte" Client bediente sich dazu dem Electron-Framework während der neue Client auf WebView2 basiert. Letztlich kann es ihnen als Anwender auch egal sein, solange der Teams Client ihre Anforderungen erfüllt.

Auch wenn Microsoft den neuen Client mittlerweile als "Verfügbar" und nicht mehr als Preview bezeichnet, ist er noch nicht komplett funktionsgleich mit dem alten Client. Leider gibt es keine Liste, was noch nicht implementiert ist. Es fehlt aber z.B. die Client-API, mit z.B.: Stream Deck-Geräte angebunden werden oder bei eingehenden Anrufen eine lokale URL gestartet wird etc.

Microsoft hat aber vor einiger Zeit aber in einem Video die wichtigsten Änderungen veröffentlicht und zum GA-Zeitpunkt auch einen Blog-Artikel bereitgestellt:

Welcome to the new era of Microsoft Teams!
https://www.youtube.com/watch?v=Emdc1GZ_HMU&ab_channel=Microsoft365
https://aka.ms/InsideMSTeams/S7E7

Einige Aussagen aus dem Video:

  • Halbierter Speicherbedarf und Doppelte Geschwindigkeit
    Microsoft nutzt andere Frameworks und Webview2 für bessere Performance und optimierte CPU-Nutzung
  • Cached Mode und asynchrone IOs
    Es werden mehr Daten lokal vorgehalten und weniger Übertragungen blockieren die Oberfläche
  • Parallele Entwicklung zum "alten" Clients
    Teams 1-Client hat auch neue Funktionen bekommen habe und der neue Client ist an einigen Stellen noch nicht ganz
  • Multi Tenant Switching
    Der neue Client kann nicht nur mehrere Business-Konten verwalten, sondern auch schnell zwischen Tenants wechseln, ohne das Sie Anrufe oder Benachrichtigungen in den anderen Tenants verpassen.
  • Release Datum könnte die MS Build 2023 im Mai 2023 sein?
    Nur eine Vermutung. Aber letztlich ist es nicht relevant, wann es soweit ist.

Für Administratoren ist zudem wichtig, dass der neue Teams Client als "App" in Windows eingerichtet wird und nicht mehr im Benutzerprofil unter "Appdata" liegt.

Rollout kontrollieren

Als Administrator sollten sie zuerst vorgeben, ob und wie ihre Mitarbeiter den neuen Teams Client nutzen dürfen. Das geht über die Updates Policy im Teams Admin Center:


Quelle: https://admin.teams.microsoft.com/policies/updatemanagement

Microsoft passt diese Einstellungen immer mal wieder an und im Oktober 2023 hatten Sie diese vier Optionen zur Auswahl. Einige Wochen gab es nur drei Optionen.

Hinweis: Als Admin können Sie nur steuern, welcher Benutzer den neuen Client über ihren Tenant bekommt. Sie können nicht kontrollieren, wenn ein Nutzer über eine Anmeldung an einem anderen Tenant schon den neuen Client nutzt und sich damit dann an ihrem Tenant anmeldet.

Wenn Sie es dem Anwender überlassen, dann kann er im alten Teams Client oben über einen Reiter den Wechsel einleiten:

Beta-Benutzer könnten noch einen sehr alten Client haben. Dann kann es helfen die Teams App zu deinstallieren und dann neu installieren zu lassen. Ich hatte teilweise drei Teams Apps parallel installiert.

Es kann aber sein, dass sie noch einen sehr alten Client haben und daher die Anmeldung schon fehlschlägt und sie damit in der Update-Schleife festhängen.

Was ist neu?

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 nativ mit JavaScript oder WebRTC abgebildet werden können. Es gibt daher immer Unterschiede zwischen Teams/Electron und Teams/Browser. Der neue Teams 2.1 Client basiert auf Webview2 und viele Funktionen werden vom Betriebssystem abhängig sein.

Im März 2023 ist der neue Client aber auch endlich in einem normalen regulären Tenant erreichbar geworden, wenn der Administrator diese Option freigeschaltet hat. Es wird sicher viele sehr bald viele YouTube-Videos und Blogs zu all den neuen Funktionen geben und in einigen Monaten wird sich niemand mehr an den alten Client erinnern wollen. Daher hier nur ein paar Aspekte, die sofort auffallen:

  • Mehrere Geschäftskonten
    Sie können nun im Teams Client mehrere Benutzerkonten aus verschiedenen Tenants gleichzeitig anmelden und schnell wechseln.

    Der Bereich mit den weiteren Tenants, in welche ich als Gast wechseln kann, ist mit aber etwas zu geraten.
  • Tenant-übergreifende Benachrichtigung
    Sie sehen direkt, in welchen andere Tenants, die sie mit einem Gast-Konto "besuchen" können, ungelesene Nachrichten für sie vorliegen:
  • Neue Channelanzeige
    Die Eingabe für "neue Beiträge" ist nach oben geschoben worden, so dass sie nicht immer erst in einem Kanal die noch nicht gelesenen Nachrichten nach unten scrollen müssen. Zudem ist die Reihenfolge nun gedreht, d.h. neuere Einträge sind oben.

Die Liste wird fortgesetzt, wenn ich besondere Änderungen zu berichten habe. 

Steuerung per UpdatePolicy

Während der Einführungsphase möchten Sie vielleicht steuern welcher Benutzer den neuen Client schon bekommt. Die ersten Spuren zur Steuerung sollten sie seit ca Anfang Dezember in ihrem Teams Admin Center finden:

Für einen Piloten würde ich eine neue Richtlinie mit den gewünschten Einstellungen anlegen und dann den Personen zuweisen. Aktuell können Sie die Einstellung aber noch nicht ändern. Der passende Dialog erscheint erst nach und nach in den Tenants, abhängig , in welchem "Ring" ihr Tenant ist.

Sie können dann hier steuern, ob sie den neuen Client verhindern, durch den Benutzer selbst auswählen lassen oder durch Microsoft steuern lassen wollen. Ein "Erzwingen" des neuen Clients war zumindest im Dezember 2022 noch nicht möglich. Die Konfiguration können Sie natürlich auch per Microsoft Teams PowerShell über den Parameter "UseNewTeamsClient" beim Commandlet "Set-CsTeamsUpdateManagementPolicy" anpassen.

Sie können den Wert gerne von "AdminDisabled" oder "Microsoft Choice" auf "UserChoice" stellen, damit der Anwender selbst entscheiden kann.

Speicherorte

Alle bisherigen Teams Clients haben sich vom Benutzer ins Home-Verzeichnis des Anwenders installiert und konnten dort auch aktualisiert werden. Die neue Version ist nun eine Windows App, die nicht mehr in Appdata des Anwenders liegt, sondern unter C:\Program Files\WindowsApps\ und sehr einfach z.B. mittels "Get-AppxPackage" abgefragt werden kann.

PS C:\>Get-AppxPackage -Name MSTeams
RunspaceId             : 5ef19112-31fd-49fa-b3ca-906d85ad033c
Name                   : MSTeams
Publisher              : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
PublisherId            : 8wekyb3d8bbwe
Architecture           : X64
ResourceId             :
Version                : 23173.800.2189.3696
PackageFamilyName      : MSTeams_8wekyb3d8bbwe
PackageFullName        : MSTeams_23173.800.2189.3696_x64__8wekyb3d8bbwe
InstallLocation        : C:\Program Files\WindowsApps\MSTeams_23173.800.2189.3696_x64__8wekyb3d8bbwe
IsFramework            : False
PackageUserInformation : {}
IsResourcePackage      : False
IsBundle               : False
IsDevelopmentMode      : False
NonRemovable           : False
Dependencies           : {}
IsPartiallyStaged      : False
SignatureKind          : Developer
Status                 : Ok

Auch der Ablageplatz für den Teams Cache hat sich geändert. Mittels einer Analyse der Teams Prozesse mit Sysinternals Procmon und ProcessExplorer habe ich folgenden Pfad und einige interessante Unterverzeichnisse gefunden:

C:\Users\fcarius\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams

# Hier habe ich meine eigenen Hintergrundbilder gefunden
C:\Users\fcarius\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Backgrounds\Uploads

# Das ist das größte Verzeichnis und enthält wohl auch den Datencache. Bei mir ca 2,7 GB!
C:\Users\fcarius\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\EBWebView

 Hier sind jede Menge Protokolldateien
C:\Users\fcarius\AppData\Local\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\Logs

Eine genauere Untersuchung dieser Dateien steht zu einem späteren Zeitpunkt an.

Developer Tools

Beim alten Teams Client war es recht einfach möglich, die Developer Tools zu starten. Einfach sieben Mal mit der linken Maustaste auf das Teams Icon neben der Uhr klicken und dann mit der rechten Maustaste die DevTools starten. Das ist beim neuen Teams Client leider nicht mehr so einfach aber immer noch möglich

  1. Anlegen/Editieren der Datei "%localappdata%\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\configuration.json"
  2. Addieren des Text: {"core/devMenuEnabled": true}
  3. Neustart des Teams Client
  4. Rechte Maustaste auf das Teams Icon neben der Uhr

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.

Weitere Links