三種擴充 Office 軟體功能的開發模型對比 – Office Add-In Model, VBA 和 VSTO

來源:互聯網
上載者:User

標籤:

當 Office 使用者需要針對文檔自訂新功能時,可以求助於 VBA 或者 VSTO 兩種方式。Office 2013 富用戶端以後,微軟為 Office 平台上的開發人員提供了一種新模型 --- Office Add-In Model,它允許在 Office 應用程式中建立一片地區,並在這片地區中展現網頁與文檔的互動。開發人員可以將高度定製化的 Web 應用程式或服務整合在 Office 中,使之在整個 Office 平台上可用。 應用程式實際上並沒有安裝在運行 Office 的電腦上,而是託管在開發人員所指定的 Web 服務器上,因此,可以輕鬆地從該伺服器對它進行維護和更新。現在到處都是社交網路、行動裝置、各種各樣的雲端服務以及即時的文檔協作,新的模型正致力於將 Office 與 Web 技術和資源銜接起來。

對於開發人員而言,無論是 VBA、VSTO,還是新的 Office Add-In Model,只要可以解決實際問題,可以選擇任何一種方式實現。而如果要開發新的擴充功能,可以優先考慮 Office Add-In Model 實現,因為這種方式有其專屬的優勢。下面,我們逐一介紹三種開發模型的優劣,讓大家清楚什麼時候適宜選擇什麼樣的方案。

Office Add-In Model

【部署方式多樣化】使用這種方式開發的擴充功能,稱之為 Office Add-In, 微軟為這類 Add-In  提供了統一的發布商店 --- Microsoft Office Store。這可以最大化的減少不同公司、不同部門針對相似業務的重複投資,使所有的 Office 使用者在不同的 Office 平台( 主要有富用戶端、web版 Office、RT 版 Office等)使用優質的Office 自訂擴充功能。另外, Office Store 還允許開發人員對自己發布的Office Add-In收費,這無疑為優質的Add-In開發人員帶來了商機。另外,微軟還允許開發人員將開發的 Add-In 部署在本地共用資料夾中或者SharePoint App Catalog上,這樣只有區域網路或者本公司的人才可以在 Office 軟體中使用該Add-In。在發布和傳播上, 顯然新的Add-In Model走在了VBA、VSTO的前面。

【學習成本更低】開發Office Add-In,更多是利用現今流行的Web開發技術,對於開發人員(尤其是已經熟知Web 技術的從業人員)而言,學習和開發Office Add-In的成本也大大降低。開發人員甚至可以利用已經存在的web 服務或者網站快速構建出一個Office Add-In。

【維護和更新更加容易】基於 VBA 和 VSTO 的 擴充功能,它們運行在本地的 Office 軟體並依賴於相應的平台支援(如 VSTO 依賴於 Office 軟體提供的主要 Interop 組件,諸如Microsoft.Office.Interop.Excel.dll)。 然而當 Office 軟體或一些平台支援不一致時,會出現同一個指令碼或應用在不同的機器上表現不同,甚至是不支援。 新的 Add-In Model下開發的Add-In, 由於本質上是運行在 Office 平台(包括2013及以後的富用戶端,Web 版, RT版,甚至是 Mac版)上嵌入的的 iframe 中, 而 Add-In 本身是被開發人員 host 在遠端的 Web 服務器上。 Add-In 開發人員可以根據情況快速的更新 App 的功能或者修正 bug。

由於這個模型剛剛起步,在Office功能的自訂上稍顯不足,更多地強調可以在Office中銜接Web技術。

利用VSTO 構建Office擴充功能

VSTO(也就是Visual Studio Tools for Office) 是一套用於建立自訂Office應用程式的Visual Studio工具包。VSTO藉助於 .NET Framework去自訂和擴充 Office的功能。 VSTO 全面支援 C# 和Visual Basic 語言, 因此可以利用 .Net Framework 中常用的開發模型、工具和方法。VSTO 允許開發出的功能與Office 用戶端程式緊密整合,不管是在使用的 APIs 上還是針對使用者操作介面的自訂上。如所示的是一個PowerPoint 中的 VSTO solution,它實現了一個自訂的Ribbon(上側紅框)、基於 Windows Presentation Foundation實現的工作面板(右側紅框)和浮動的Windows Form視窗。

 

利用 VSTO 開發時,開發人員在 Visual Studio 中利用各種模板建立針對Excel/Outlook/InfoPath/Project/PowerPoint的擴充應用程式。利用模板建立新的 Office 項目後,Visual Studio 會添加對產生該項目所需的主要 Interop 組件(簡稱PIA) 的引用,比如說 Microsoft.Office.Interop.Excel.dll。 在某些情況下,你可能需要添加對其他 PIA 的引用(例如,如果你希望在 Microsoft Office Excel 項目中使用 Microsoft Office Word 的功能)。 MSDN 中列出了可用於 Office 2013 和 Office 2010 的 主要 Interop 組件。

當需要高度自訂Office功能或者針對Office 2007、2010及以下版本的富用戶端開發擴充功能時,VSTO將是最好的選擇。

基於VSTO的solution,其部署和更新依賴於各個企業的IT部門。另外,由於VSTO允許高度的自訂化,其運行需要和其他傳統型程式一樣的許可權,因此可以訪問檔案系統,或與其他軟體通訊,所以IT部門或者使用者個人需要自己衡量所要安裝的VSTO solution 是否安全可靠。

VBA

VBA 是用來自動化Office 用戶端軟體內操作的工具。由於這項技術植根於 Visual Basic 6, 並在 Word和Excel中提供了宏錄影(macro recorder)的支援, VBA 為自動化Office文檔內的任務提供了可能。 不過由於曆史久遠, VBA 更多的是提供UI上的自訂上和整體上對工具架構的支援。

VBA指令碼可以儲存分布在Office 文檔中,這使得指令碼的初次發布和傳播比較容易,但是當文檔通過郵件或其他方式廣泛的傳播和複製後,如果需要對指令碼變更,就會變得非常麻煩。另外,VBA指令碼可以做成應用程式層級的,不與特定的文檔相關,這時則需要每個使用它的使用者正確的安裝到特定的目錄下。

Office 取得巨大成功的一個重要原因就是 VBA,使用VBA可以完成很多事情,基於Excel、Word的VBA小程式不計其數。 VBA 的語言入門門檻較低,而這些使用者利用 VBA 解決的正式工作中關鍵問題。因此,VBA 程式大多作為部門內部或個人使用的小工具。

另外

為了防止使用過 VSTO 的開發人員將新的 Add-In Model 與 以前的 Office Add-In 概念混淆,下表列出了微軟官方對 Office 平台開發中涉及到概念的最新命名: 

原名

新名稱

適用於

apps for Office

Office Add-ins

Office 2013 及 更新版本 ( 2013 app model)

mail app for Outlook

Outlook Add-in

Office (VSTO)

app for Excel

Excel Add-in

Office (VSTO)

app for PowerPoint

PowerPoint Add-in

Office (VSTO)

app for Word

Word Add-in

Office (VSTO)

Office App Model

Office Add-in Model

Office (2013 app model)

apps for SharePoint

SharePoint Add-ins

SharePoint (SharePoint 2013 app model)

SharePoint App Model

SharePoint Add-in Model

SharePoint (SharePoint 2013 app model)

app part

add-in part

SharePoint (SharePoint 2013 app model)

app web

add-in web

SharePoint (SharePoint 2013 app model)

 

 相應地,在 Office Developer Tools for Visual Studio 中, 將分為以下幾類:

Type

Description

Example

Office Web Add-ins

Add-ins based on the web technologies provided by the new Office Add-in Model.

基於 Web 技術的 2013 app model

Excel Web Add-in

Office VSTO Add-ins

Add-ins based on managed code technologies built with Visual Studio Tools for Office (VSTO).

(VSTO)

Excel 2013 VSTO Add-in

Office COM Add-ins

Add-ins based on COM and VBA technology that extend applications by adding custom commands and specialized features.

Excel 2013 COM Add-in

 

參考資料

Roadmap for Apps for Office, VSTO, and VBA -- http://blogs.msdn.com/b/officeapps/archive/2013/06/18/roadmap-for-apps-for-office-vsto-and-vba.aspx

Office 主要 Interop 組件 -- https://msdn.microsoft.com/zh-cn/library/15s06t57.aspx

New names for apps for Office and SharePoint --- https://msdn.microsoft.com/en-us/library/fp161507.aspx#bk_newname

如需轉載,請註明出處http://www.cnblogs.com/simpeng/p/4640850.html ,謝謝。

三種擴充 Office 軟體功能的開發模型對比 – Office Add-In Model, VBA 和 VSTO

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.