Office 365也是.NET Core應用開發新戰場

張善友發表於2018-01-07

最近有幸閱讀了陳希章花了一年時間為國內開發者貢獻的《Office 365 開發入門指南》。 雖然早期接觸過SharePoint的開發,2007年之後就再也沒有接觸SharePoint的開發,這次閱讀這本書讓我重新認識了Office的系統開發技術,讓我意識到現在的Office 開發也是.NET Core 開發技術的新戰場,而且更為有心的是陳希章的範例都是使用.NET Core寫的,具體地址 https://github.com/chenxizhang/office365dev

在新CEO納德拉的帶領下,秉持“云為先”和“一個微軟”的方針,微軟比任何時候都更加開放和謙虛,內部協作也更緊密。Office 365發展到現在,在經過各種使用者看得見和看不見的變遷和進化後,已經成為一套比較成熟的雲服務,而各種進步和創新還在繼續。 Office 365是一個很好的開發平臺,有數以億計的使用者,據不完全統計,地球上1/7的人們在使用Office,Microsoft Graph可以讓你的業務系統很容易地和Office 365 整合 起來,立即利用Office 365的強大服務增強業務應用能力。而Office Add-in則是面向所有的Office 365 & Office 開發人員的盛宴,它用來擴充套件Office 365 & Office的能力,用中國話講就是“外掛”。

Office 365

本書的內容不僅基本完整覆蓋了Office 365開發的四大方向(Microsoft Graph,Office Add-in, SharePoint Add-in,Office 365 Connector),而且還包括了其他一些有意義的話題,例如有針對人工智慧的話題,有商業應用平臺的話題(Power Apps,Microsoft Flow,Power BI等)。

Microsoft Graph是一套RESTful的介面,所以它的所有介面都是通過標準的http方法(GET, POST, PUT, DELETE)可以直接訪問到, 而且還可以通過改變Url的引數來進行篩選、排序、分頁等操作,它返回的資料是標準的JSON格式,這種特性決定了Microsoft Graph是跨開發平臺支援的,我們可以把它看作是微軟Office 365 的API閘道器,對外提供統一介面層,讓我想起我的開源專案Nanofabric(https://github.com/geffzhang/NanoFabric)的API閘道器Ocelot的角色,我們來看下這張Microsoft Graph的整體架構。

Office 365也是.NET Core應用開發新戰場

身份認證和授權使用的OpenID Connect和OAuth 2.0,不僅僅是Office 365,Azure上的API驗證都是用OpenID Connect和OAuth 2.0,他的實現服務是Azure活動目錄(AAD),在Nanofabric 中使用IdentityServer4 來實現身份驗證和授權,IdentityServer4 本身已經幫你完成了OpenID Connect和OAuth 2.0 ,而且IdentityServer4 的架構非常優秀,非常容易進行定製開發。

Office add-ins,SharePoint Add-ins,Office 365 Connectors 這三部分是Office 的功能的開發了,包括客戶端、服務端和外部系統的互動整合。這是一個典型的微服務的應用系統的架構,值得我們設計應用系統參考。

Office 的擴充套件開發擁有悠久的歷史,相比較之前的VBA(Visual Basic for Application)和VSTO(Visual Studio Tools for Office)開發,我們將這一代的Office Add-in開發技術稱為“Web Add-in”,顧名思義,就是使用最普遍的Web技術來進行Office Add-in的開發。如果你已經有Web的開發經驗,你將很容易地上手,無需特別學習。反過來說,這也增加了技術的門檻,對於一些早期的Office 外掛開發者來說,這是一個不太熟悉的領域,要學的新東西不少,可能會增加大家的轉換成本。無論如何,Web Add-in是一個有益的補充(使用它並不意味著要拋棄此前的VBA和VSTO),也是跨平臺尤其是移動化的需要。總的來說,Office 365的開發已經全面向開源轉型了,使用了大家最熟悉的Web技術,用到了很多開源框架和工具,特別是開源跨平臺的.NET 技術.NET Core 在這裡扮演了重要角色,這也是.NET Core應用的一個重要戰場。

Office 365 不僅僅是無可爭議的高效辦公第一選擇,而且秉持一貫以來的優良傳統,它是一個很開放的可擴充套件平臺。除了繼續支援VBA和VSTO的擴充套件方式,新一代Web Add-in 將全面實現“一次編寫,處處執行”的目標,發揮你的創意,定製專屬的功能,可以在桌上型電腦、網頁、平板、手機中得到一致性的使用體驗,並且還可以與全世界的數以十億計的Office 365使用者分享。Office 365作為一個全新的平臺和全新的生態,它本身也足夠複雜, 這個指南包括目前Office 365所支援的開發模式的全面介紹,並且通過案例帶領觀眾進行實踐,這個指南是個入門的好手冊,廣大的Office開發人員轉到我們的.NET Core平臺上來吧,讓你的Office技能煥發第二春。

相關文章