做者:陳希章 發表於 2017年8月6日html
離上一篇Office Add-in的文章已通過去了一段時間,期間有去年Office 365 Asia Devday & Hackathon的二等獎得到者閆曉迪寫了Office365開發系列——開發一個全功能的Word Add-In ,另外我也寫了兩篇有關人工智能方面的文章git
我一直在思考怎麼爲你們講解Office Add-in開發,一方面確實須要實例(因此咱們須要更多的閆曉迪站出來),另外一方面來講,我以爲從一開始就講解一些設計規範和最佳實踐可能對你們會有較大幫助。github
固然,實際上我也沒有很是豐富的Office Add-in開發經驗,這方面還須要有時間和案例的積累。因此這一篇文章的主要內容都來自於官方的手冊,我稍微作了一些整理,增長了少許我我的的建議。若是但願查看英文的版本,請訪問:https://dev.office.com/docs/add-ins/overview/add-in-development-best-practices。c#
這個原則之因此放在最前面,是由於它要回答「你爲何須要開發這個Office Add-in」的終極哲學性問題。緩存
下面幾個最佳實踐是比較適合關注的網絡
我要補充的一兩點個人理解:一個好的Office Add-in由於提供明確,而且儘可能獨特的價值 —— 不要貪大求全,而是由於專一於作好一件事情。同時,用戶不該該被要求離開他當前所在的Office 環境,就能完成一些有意思的工做,而且與他自己在Office裏面作的工做無縫地融合在一塊兒。這個讓我想起在人工智能背景下的Office 365現狀和發展趨勢 中提到的Tap和Rsearcher這兩項功能。框架
若是你但願將你的Add-in發佈到Office Store,還有兩個文檔可能對你有用ide
你永遠沒法改變留給別人的第一印象。這句話一樣適合於Office Add-in開發的領域。下面的一些最佳實踐或許能讓你的Office Add-in給人留下深入印象,而且願意長期使用下去。函數
雖然寫了這麼多條,但我總結起來可能就是一條:KISS原則用在這裏是恰如其分的 —— Keep it simple, stupid —— 若是你讓用戶思考,你就輸了。性能
使用Add-in Command是很是常見的作法,它能夠用來在Office 應用程序中添加Ribbon按鈕,也能夠在快捷菜單中增長子菜單。點擊這些按鈕或者子菜單,能夠直接執行一段代碼(一般是Javascript函數),也能夠打開任務面板(Task Pane)以進一步操做。典型的Add-in Command效果圖以下所示:
考慮到對觸摸操做的支持,應該儘可能減小對於快捷菜單的依賴。
下面還有一些具體的建議
值得高興的一件事情是,微軟爲開發人員專門提供了Office UI Fabric這一套UX 框架,你能夠直接使用Fabric Core Style開展工做,它主要提供了CSS的支持(字體,圖標,內置組件等),但也能夠結合你熟悉的UI框架使用,例如React和AngularJS。
Office UI Fabric是一切界面問題的解藥,與此同時下面還有一些能夠參考的最佳實踐
確保你的Add-in的用戶體驗跟Office宿主程序一脈相承。
如無必要,不要添加多餘的元素。
爲1366*768的主流分辨率優化設計,儘可能避免滾動條。
不要使用未經受權的圖像(或其餘素材)。
使用簡單明瞭的語言。
不要在Add-in作廣告。
考慮不一樣平臺的適用性,包括鼠標、鍵盤和觸摸體驗。
經過Context.touchEnabled 能夠檢測到當前是否運行在觸摸的模式下。若是在觸摸模式下,還有幾條參考的建議
增長輔助訪問功能。
之前咱們固然也講性能,但現在Office Web Add-in的話,這個就顯得尤其重要了,你的Add-in可能會被成千上萬的人使用,性能可能成爲你的制勝法寶,反過來也可能葬送你全部的努力。
除了一直要將性能放在重要位置,從思想上很重視它以外,下面也有一些具體的建議