Introduction
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.
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.
Architecture
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.
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.
Conclusion
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.