從Microsoft Teams技術棧看前端技術發展趨勢

在前不久的微軟美國一年一度的Ignite大會上,微軟宣布Microsoft Teams是微軟歷史上發展最快的應用。它將取代Skype for business,成為語音視頻協作的主打產品。

我也有幸在上個月微軟中國年度技術大會Tech Summit 2018上被邀請作為講師講解基于Teams平臺的app開發。會上時間有限,沒有太多展開Teams的前端技術棧,會后有很多人來咨詢,希望進一步了解。我這篇文章就對比一些Teams的2017年和2018年技術的變化,讓我們看看業界領跑的軟件巨頭是采用什么技術的。

手機客戶端

手機客戶端架構對比

可以看到幾個明顯的變化:

  • Windows Phone平臺沒有在2018年再提到了(大家都懂的)
  • 之前都是使用手機平臺的原生語言開發的,Android使用Java,iOS使用Swift。可以看到微軟在2017之前就已經在使用swift
  • 到2018年,Teams手機客戶端已經大量使用React Native。好處十分明顯,可以在兩大手機平臺重用代碼,提高研發效率。

桌面客戶端

桌面客戶端架構對比

  • 三大桌面端:Web,Windows,Mac。技術棧基本統一
  • 使用TypeScript,大牛Anders Hejlsberg的力作啊,此語言在web開發上快要一統江湖了
  • 之前使用Angular,但目前正在慢慢的轉成React,原因也很簡單,一旦全部轉成React,就可以和手機客戶端的React Native重用大量代碼,進一步降低研發成本。代碼重用、重用、重用!重要的事講三遍。
  • Windows和Mac桌面端使用Electron作為外殼,提供原生系統的調用能力。并且使用C++和ObjectiveC來處理音頻視頻編碼和桌面共享等功能。Electron目前使用很廣,微軟的Visual Studio Code,Azure Storage Explorerd等,凡是需要跨系統的桌面應用,基本都能看到electron的身影。

看一下你目前使用的前端技術棧,對比一下微軟的Teams,你get到什么了嗎? :)

以上技術棧的所有圖片都來自于微軟2017年和2018年兩次ignite大會上的PPT。?2017技術棧2017技術棧,來源Ignite 2017,課程編號BRK3071?2018技術棧2018技術棧,來源Ignite 2018,課程編號BRK3118

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/278088.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/278088.shtml
英文地址,請注明出處:http://en.pswp.cn/news/278088.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LeetCode 最大正方形

在一個由 0 和 1 組成的二維矩陣內,找到只包含 1 的最大正方形,并返回其面積。 示例: 輸入: 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 0 0 1 0輸出: 4解法:判斷以某個點為正方形右下角時最大的正方形時,那它的上方,左方和左上…

solidity字符串拼接

如果你希望馬上開始學習以太坊DApp開發,可以訪問匯智網提供的出色的在線互動教程: 以太坊DApp實戰開發入門去中心化電商DApp實戰開發當你開始學習使用solidity開發以太坊智能合約之后,很快你會碰到一個問題: 在solidity中該如何拼…

Confluence Cloud的Teams Message Extension

Confluence Cloud的Message Extension現在正式登入Microsoft Teams。 它可用于團隊頻道和私人聊天,使您的對話更具描述性和信息性。 從Microsoft Teams應用商店獲取Confluence Cloud應用程序并連接到Confluence Cloud實例。 連接后,您將能夠搜索Conflue…

45 | 打蛇打七寸:精準測試

轉載于:https://www.cnblogs.com/lmx0621/p/10614966.html

Teams App統計

周末閑來無事,統計了一下Teams的app商店里的app ( Teams App Store )。截至到現在(2018年11月)一共有145個app。要注意一點:如果app不是公開的(即單獨安裝到Office365租戶里,并沒有提交到office store&…

你必須要懂的APK瘦身知識

隨著業務復雜度的逐漸增加,代碼、資源也在不斷的增加,此時你的APP大小也在增加。從用戶層面來說,面對動輒幾十兆的APP來說在非WIFI情況下還是會猶豫要不要下載,不下載你就可能因此失去了一個用戶。從公司層面來講,流量…

DHT網絡

(基礎技術) 現在有一種方法,可以通過磁力鏈接,例如magnet:?xturn:btih:0482e0811014fd4cb5d207d08a7be616a4672daa,就可以獲取BT文件。 這個是通過DHT網絡來實現的。 DHT網絡是一個去中心化的,分布式信息存儲系統。 存儲的信息就…

Java基礎 Day04(個人復習整理)

分支結構 2、switch語句 因為if語句的級聯式最多只會處理三種情況,如果出現多情況 1>可以繼續使用if語句的級聯式,但是可能代碼的可讀性就會變差。  2>采用switch語句來解決。 switch語法格式: switch (存在多種情況的變量) {case 值…

java如何獲取一個double的小數位數

前言 看標題是不是覺得這是一個很簡單的問題,我一開始也是這么認為的,但是實際情況下,在各種情況下我們都進行了測試,發現很多實際情況是無法不盡如人意的。 方法分析 當前能想到的比較容易有下面幾種 1、直接使用double處理 2、將…

Node文件模塊

在上一篇文章中有提到,Node模塊分為核心模塊和文件模塊,接下來就簡單總結一下文件模塊。 文件模塊則是在運行時動態加載,需要完整的路徑分析、文件定位、編譯執行過程、速度相比核心模塊稍微慢一些,但是用的非常多。這些模塊需要我…

PHP GD庫解析一張簡單圖片并輸出

這里只演示一下2種顏色值的圖片&#xff0c;簡單描述下概念。 首先要安裝下GD庫。否則下面的代碼運行不了。 $size getimagesize(2.png); // 獲取圖片大小 $res imagecreatefrompng(2.png); // 獲取指定圖片的資源對象for ($i 0; $i < $size[1]; $i) {for ($j 0; $j &…

Permutations CodeForces - 736D (矩陣逆)

對于刪除每個對(x,y), 可以發現他對答案的貢獻為代數余子式$A_{xy}$ 復習了一下線代后發現代數余子式可以通過伴隨矩陣求出, 即$A_{xy}A^*[y][x]$, 伴隨矩陣$A^*|A|A^{-1}$可以通過高斯消元$O(\frac{n^3}{\omega})$求出 #include <iostream> #include <algorithm> …

開發Teams的messaging extension

什么是Messaging Extension Messaging Extension是微軟Teams的一種十分有用的擴展方式。可以讓用戶發送adaptive cards。具體的說明不在這里展開了。可以閱讀微軟官方的詳細說明&#xff1a; https://docs.microsoft.com/en-gb/microsoftteams/platform/concepts/messaging-e…

歸并排序(轉)

轉載自&#xff1a;https://www.cnblogs.com/chengxiao/p/6194356.html 歸并排序&#xff08;MERGE-SORT&#xff09;是利用歸并的思想實現的排序方法&#xff0c;該算法采用經典的分治&#xff08;divide-and-conquer&#xff09;策略&#xff08;分治法將問題分(divide)成一些…

Site24x7 為Teams提供可智能 DevOps

我們生活在一個云的時代, SaaS 應用程序每天都在推動我們的生產力。作為一個消費者, 很難想象如果你最喜歡的應用無法訪問&#xff0c;即使只是一秒鐘無法訪問。作為 SaaS業務, 更難以想象您的服務面臨停機, 每一分鐘停止服務都會花費大量的資金, 當然還損失客戶的信任。Site24…

XUbuntu22.04之跨平臺容器格式工具:MKVToolNix(二百零三)

簡介&#xff1a; CSDN博客專家&#xff0c;專注Android/Linux系統&#xff0c;分享多mic語音方案、音視頻、編解碼等技術&#xff0c;與大家一起成長&#xff01; 優質專欄&#xff1a;Audio工程師進階系列【原創干貨持續更新中……】&#x1f680; 優質專欄&#xff1a;多媒…

redis集群搭建踩坑筆記

推薦參考教程&#xff1a;https://blog.csdn.net/pucao_cug/article/details/69250101 錯誤&#xff1a; from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in require from /usr/local/redis-3.0.6/src/redis-trib.rb:25:in <main> 解決&#xff1a; g…

Docker 創建鏡像

文章首發自個人網站&#xff1a;https://www.exception.site/docker/docker-create-image 本文中&#xff0c;您將學習 Docker 如何創建鏡像&#xff1f;Docker 創建鏡像主要有三種&#xff1a; 基于已有的鏡像創建&#xff1b;基于 Dockerfile 來創建&#xff1b;基于本地模板…

hdfoo站點開發筆記

為了安全,也要兼顧編輯器切換管理 開發時不必管目錄名稱的事, 只是在部署的時候,才修改應用目錄和tp目錄的名字就行了. 為了提高tp的加載效率, 始終給app和tp以絕對路徑.就是以 realpath來定位 realpath返回的就是 一個絕對路徑, 在lx中是以 斜杠 根樹開始的. 參數可以是文件名…

論文致謝

這篇致謝語&#xff0c;是我論文的最后一節&#xff0c;也是我放在最后的最后寫的內容。之所以拖到最后&#xff0c;是因為我不知道該用怎么的方式來結束我的論文。我想&#xff0c;要結束的不只是文章&#xff0c;還是研究生生涯&#xff0c;是我在廈門大學三年來的一切&#…