最近有幸閱讀了陳希章花了一年時間爲國內開發者貢獻的《Office 365 開發入門指南》。 雖然早期接觸過SharePoint的開發,2007年以後就再也沒有接觸SharePoint的開發,此次閱讀這本書讓我從新認識了Office的系統開發技術,讓我意識到如今的Office 開發也是.NET Core 開發技術的新戰場,並且更爲有心的是陳希章的範例都是使用.NET Core寫的,具體地址 https://github.com/chenxizhang/office365dev。html
在新CEO納德拉的帶領下,秉持「云爲先」和「一個微軟」的方針,微軟比任什麼時候候都更加開放和謙虛,內部協做也更緊密。Office 365發展到如今,在通過各類用戶看得見和看不見的變遷和進化後,已經成爲一套比較成熟的雲服務,而各類進步和創新還在繼續。 Office 365是一個很好的開發平臺,有數以億計的用戶,據不徹底統計,地球上1/7的人們在使用Office,Microsoft Graph可讓你的業務系統很容易地和Office 365 集成 起來,當即利用Office 365的強大服務加強業務應用能力。而Office Add-in則是面向全部的Office 365 & Office 開發人員的盛宴,它用來擴展Office 365 & Office的能力,用中國話講就是「插件」。git
本書的內容不只基本完整覆蓋了Office 365開發的四大方向(Microsoft Graph,Office Add-in, SharePoint Add-in,Office 365 Connector),並且還包括了其餘一些有意義的話題,例若有針對人工智能的話題,有商業應用平臺的話題(Power Apps,Microsoft Flow,Power BI等)。github
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的總體架構。架構
身份認證和受權使用的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技能煥發第二春。學習