Microsoft Teams Desktop Client - Part Two


In my previous article, we have seen how MS-Teams desktop client works. In this article, we will explore Teams desktop client architecture in detail.
If you are new to the Microsoft Teams, please visit my previous articles to get more understanding on Teams- Introduction, Teams Differently, Guest Users in Teams, best practices while creating new team, best practices while creating a new Channel.

Microsoft Teams client architecture

Microsoft Teams is a collaboration software and it has a lot of integration tools externally as well as internally. External means we can fetch data from external sources and show it in Teams using Tabs, Apps, actional messages, etc.
Let’s see how Teams desktop client is designed internally. Microsoft Teams is designed with the help of the below open source tools to achieve rich UI and for performance benefits.


Microsoft Teams Desktop Client 
Figure 1: Desktop or Mobile Clients Technologies
Microsoft Teams desktop client is designed in different technologies and integration of tools.
Desktop UI is designed in Angular with HTML5 and CSS. Now, Microsoft is moving towards ReactJS components rendering. Internally, 200+ open source projects have been used by the desktop client. Under the hood, TypeScript performs the conversion into JavaScript and use of NodeJS for smooth updates of information in desktop or mobile clients. 
Desktop clients are created in different languages, such as C++ for Windows and Objective-C for Mac platform.
Desktop clients use internally SASS to set the styling of UI for clients.
The mobile client is supported for iOS and Android platforms. It uses Swift for iOS and Java for Android. Now Microsoft has started using React Native also for a few of the components in mobile clients.
We have already seen how squirrel helps to achieve auto-updates, in my last article. Auto Update frequency is daily for internal timelines but for outside updates, the frequency is set to 2-week or 1-month time.
Let’s check how Microsoft Azure is a major component for Teams.
Microsoft Teams Desktop Client
Figure 2: Azure Components
Microsoft Teams core component is Azure. It uses redundancy and disaster recovery features from Azure. Teams also uses the compliance feature of Azure (Office365) to secure the organizational teams with custom policies.


Microsoft Teams uses multiple technologies internally to provide a single application for collaboration and teamwork. It is now slowly moving to React development for future benefits.
For more information, please refer Microsoft link.