中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
VSTO學習筆記(一)VSTO概述

接觸VSTO純屬偶然,前段時間因為忙于一個項目,在客戶端Excel中制作一個插件,從遠程服務器端(SharePoint Excel Services)上下載Excel到本地打開,用戶編輯后再上傳回服務器端。當時工期緊迫,臨時查了些資料,用VSTO + Excel COM API完成。正因為這個項目,我發(fā)現(xiàn)了VSTO的強大功能與潛力,決定抽出一些時間來好好研究下。

示例代碼下載

本系列所有示例代碼均在 Visual Studio 2010 Beta 2 + Office 2010 Beta 下測試通過 

 

一、什么是VSTO?

VSTO = Visual Studo Tools for Office,是.net平臺下的Office開發(fā)技術(shù)。相對于傳統(tǒng)的VBA(Visual Basic Application)開發(fā),VSTO為中高級開發(fā)人員提供了更加強大的開發(fā)平臺和語言,并部分解決了傳統(tǒng)Office開發(fā)中的諸多問題(難于更新、可擴展性差、難以維護、安全性低等),開發(fā)人員可以使用熟悉的技術(shù)來構(gòu)建更加靈活的、強大的、跨平臺的企業(yè)級解決方案。

二、為什么要進行Office開發(fā)?

    Office擁有強大的數(shù)據(jù)分析、顯示和計算能力,尤其在桌面領(lǐng)域,已經(jīng)成為了辦公自動化的行業(yè)標準。雖然Office功能強大,但是也不可能滿足各行各業(yè)的特定需求,如果能夠借助于Office構(gòu)建企業(yè)的個性需求,那將十分具有吸引力。這樣,在不需要其他專業(yè)軟件的情況下,就可能完成既定的目標。

三、Office開發(fā)簡史

1、VBA(Visual Basic Application)

    微軟提出的第一種Office開發(fā)解決方案就是VBA,在20世紀九十年代VBA紅極一時,借助于當時如日中天的Visual Basic,VBA取得了巨大的成功,無論是專業(yè)的開發(fā)人員,還是剛?cè)腴T的非開發(fā)人員,都可以利用VBA完成簡單或復雜的需求。但是VBA本身擁有很多的局限性,VB語言雖然簡單,但是其語法令中高級開發(fā)人員不太適應,尤其是VBA的開發(fā)環(huán)境過于簡單,缺少與時俱進的高級功能,使得VBA開發(fā)陷入了瓶頸。

2、VSTO 1.0(VSTO 2003)

時光跨入21世紀,微軟發(fā)布了.net平臺,并推出了新千年的新語言:C#,VBA一統(tǒng)Office開發(fā)天下的情況終于有所轉(zhuǎn)變。從Office 2003開始,Office正式由一個桌面辦公平臺轉(zhuǎn)化為了桌面開發(fā)平臺,微軟也適時推出了VSTO 2003,即VSTO 1.0。正是由此開始,Office開發(fā)跨入了一個新的時代,開發(fā)人員可以使用更加高級的語言和熟悉的技術(shù)來更容易的進行Office開發(fā)。VSTO 1.0完全編程支持Office 2000和Office XP,提供了以文檔為中心的開發(fā)平臺,開發(fā)人員使用.net framework 1.1開發(fā)Office中的一些自動化程序等。

3、VSTO 2.0(VSTO 2005 SE)

    VSTO 2.0隨同Visual Studio 2005推出,提供了大量新特性:

  1. 提供了新的文檔模板
  2. 對Word、Excel的可視化支持
  3. 可以使用托管的Windows Forms控件或組件
  4. 宿主控件(不知道翻譯的怎樣:))    
  5. 支持在文檔中添加智能標簽
  6. 動作面板支持
  7. 數(shù)據(jù)綁定、數(shù)據(jù)源、數(shù)據(jù)模型支持
  8. 數(shù)據(jù)緩存
  9. 服務器端編程
  10. 配置文件
  11. 新的部署方式
  12. InfoPath開始支持托管代碼
  13. 與眾不同的Outlook 托管插件

4、VSTO 3.0(VSTO 2008)

VSTO 3.0隨同Visual Studio 2008發(fā)布:

對于Office解決方案開發(fā)來說,VSTO是簡單但強大的框架。這個框架為每個Office開發(fā)者帶來了許多令人驚嘆的好處:窗體控件、類、安全性、服務器可測量性、面向?qū)ο筇卣鳌⑼暾?、易發(fā)布,等等。
1)
、更安全的托管代碼擴展
VSTO
允許托管和非托管代碼無縫地放在一起到相同的.NET程序集里,這允許開發(fā)者保留非托管代碼而無須完全重寫。帶有鏈接或引用托管代碼程序集的文檔或工作簿被作為托管代碼擴展。通過使用VSTOWordExcel中創(chuàng)建托管代碼擴展,與宏相似但更安全。使用VSTO,能夠創(chuàng)建僅需要裝載數(shù)據(jù)的模板。
2)
、數(shù)據(jù)緩存
數(shù)據(jù)緩存,簡單地說,就是在內(nèi)存中存儲數(shù)據(jù)以便于快速訪問。Microsoft Office Word文檔或Excel工作簿有一個隱藏的控件,稱之為運行時存儲控件(Runtime Storage Control),存儲緩存的數(shù)據(jù)。VSTO提供數(shù)據(jù)緩存功能,使用C#中的ServerDocument類,通過應用程序外部到Office來操控數(shù)據(jù)緩存,無須訪問WordExcel對象模型。
3)
、自定義功能
使用可重復使用的類,VSTO 3.0提供極好的控制來自定義Office應用程序。不像VBA開發(fā)者,VSTO開發(fā)者不局限于VBA函數(shù)庫。VSTO提供了相當廣泛的類、對象和事件來創(chuàng)建Office商業(yè)解決方案。使用VSTO,開發(fā)者能夠為Office應用程序自定義功能。這能夠簡單到在應用程序命令欄中添加按鈕或自定義任務窗格,或者復雜到用于訪問不同數(shù)據(jù)源的數(shù)據(jù)報表模板。
4)
、自定義用戶界面
VSTO
提供Windows窗體控件,幫助你為Office解決方案開發(fā)富用戶界面(UI)。通過使用大量各種各樣的控件集,VSTO開發(fā)者能夠為用戶創(chuàng)建豐富的數(shù)據(jù)視圖。每種和每類Windows窗體控件都有自已的屬性、方法和事件設置,適合不同的需要。
通過在文檔和任務窗格里使用控件,VSTO使創(chuàng)建豐富的用戶界面更容易。例如,可以創(chuàng)建一個活潑的按鈕命令產(chǎn)生套用信函。又如,假設公司在其服務器上存儲了數(shù)據(jù)內(nèi)容,用戶在處理文檔時想從服務器中引用一些內(nèi)容并且不想離開當前編輯的文檔,使用VSTO可以使服務器內(nèi)容在文檔的任務窗格中可用而無須干擾用戶當前的工作。
5)
、智能標記
智能標記是Office應用程序能夠在文檔里識別的字符串。啟用智能標記,Word試圖識別文檔中某類數(shù)據(jù),通過紫色的點劃線來顯示。單擊智能標記,出現(xiàn)特定數(shù)據(jù)類型的可能操作的列表。VSTOOffice開發(fā)者提供了對象模型,可用于為文檔和工作簿創(chuàng)建智能標記。
6)
、WPF支持
WPF
能用于創(chuàng)建豐富的、具有吸引力的外觀。在VSTO環(huán)境中可使用WPF。VSTO的可視設計器支持Windows窗體和WPF控件的使用。WPF為創(chuàng)建基于客戶和基于網(wǎng)絡的應用程序提供了可靠的編程模型,并且在商務邏輯和UI之間呈現(xiàn)清楚的分離。
7)
、可視化的設計器
VSTO
Office應用程序提供了可視化的設計器,例如Word 2007、Excel 2007,顯示在Visual Studio IDE里。在Visual Studio IDE里創(chuàng)建窗體只需拖動并放置窗體到Office文檔中。開發(fā)者能夠訪問Visual Studio IDE中的許多工具和功能,例如智能感知、拖放控件和數(shù)據(jù)源。VSTO也提供了Ribbon可視化設計器,用于通過使用簡單的.NET應用程序編程模型自定義Office功能區(qū)和編程。
8)
、安全改進
VSTO
安全模型包含從Office信任中心和Visual Studio Tools for Office運行時的廣泛支持,幫助解決VBA代碼通常涉及的安全問題。VBA安全模型有許多缺點,容易使用VBA開發(fā)許多病毒。為了安全地運行VBA宏,用戶機器中必須設置安全性為高,并且使用數(shù)字簽名。更重要的是,這些操作都需要用戶手工執(zhí)行。在VSTO 3.0中,已經(jīng)修改了安全模型。VSTO創(chuàng)建了安全策略,每次創(chuàng)建工程時必需在計算機中運行和調(diào)試解決方案,在發(fā)布前簽署程序集。
9)
、可維護性
Office系統(tǒng)開發(fā)的VSTO解決方案更容易維護。更新已發(fā)布的解決方案,修改代碼,以及更新單個的程序集將幫助更多的資源在相同文檔的多個副本里做相同的事情。所有代碼將駐留在程序集里。在使用宏時,腳本駐留在Office文檔里,無論何時想更新代碼,必須修改每一個包含代碼的文檔。使用VSTO 3.0,能夠通過簡單地修改代碼和更新單個的程序集來管理應用程序級加載項,無須在相同文檔的多個副本中做同樣的事情。


VSTO 3.0
的新功能
VSTO 3.0
具有大量的新功能,也增強了現(xiàn)有的關(guān)鍵功能。下面列出在VSTO 3.0中可用的改進Office解決方案開發(fā)工作的一些關(guān)鍵的新功能:

  • 文檔級的定制:文檔級的定制是自定義駐留在單個文檔里的解決方案。使用VSTO的文檔級定制是新版VSTO中添加的關(guān)鍵功能之一。VSTO支持Word、Excel、InfoPath的文檔級解決方案。

     

  • 應用程序級加載項:應用程序級加載項被創(chuàng)建為托管代碼程序集,當相關(guān)的Office應用程序啟動時將裝載應用程序級加載項。VSTO 3.0提供了直接編程訪問.NET對象和控件。

 

  • 功能區(qū)可視化設計器:功能區(qū)是組織相關(guān)命令的新方式。實際上,它們作為控件顯示。可視化設計器提供高級工具并支持更容易地創(chuàng)建和設計自定義功能區(qū)。

 

  • 任務窗格:任務窗格幫助用戶快速且更方便地訪問信息。取決于用戶的喜好,可以在Office應用程序用戶界面中顯示或隱藏任務窗格。

    ?

  • 窗體區(qū)域:窗體區(qū)域是自定義標準的Outlook 2007用戶界面的新方式。例如,在Visual Studio 2008中,VSTO 3.0提供了基于Windows窗體的設計和開發(fā)環(huán)境。這允許Office開發(fā)者在單個的開發(fā)環(huán)境中設計和編碼新的Outlook窗體區(qū)域,將大多數(shù)Windows窗體引入到Outlook的宿主環(huán)境中。

     

  • 工作流支持:VSTO提供可視化設計器支持開發(fā)者使用Visual Studio 2008創(chuàng)建工作流。一個向?qū)нx項用于創(chuàng)建工作流,并且直接將其賦值到發(fā)布位置。

 

  • SharePoint支持:VSTO中的新對象幫助開發(fā)者在Office應用程序中為SharePoint編程??梢允褂?/span>VSTO擴展Office客戶端應用程序,使用SharePoint Portal將它們整合到企業(yè)解決方案中,例如客戶關(guān)系管理、供應鏈管理以及其他類似的應用程序。

    ?

  • 使用ClickOnce部署:ClickOcne部署技術(shù)允許基于Windows應用程序使用最小程度的用戶交互來部署和運行。安全區(qū)將限制使用ClickOnce技術(shù)部署的應用程序的許可和操作。

 

  • Word內(nèi)容控件:內(nèi)容控件是容器,其中能放置特定類型的內(nèi)容,例如日期、列表、圖片或文本。

    ?

  • 富用戶界面控件:能夠創(chuàng)建帶有豐富且容易訪問的用戶界面的Office解決方案。例如,可以創(chuàng)建帶有Windows控件的任務窗格,和其它數(shù)據(jù)源交互數(shù)據(jù)。

 

  • 支持其他的Office應用程序。

VSTO架構(gòu)
VSTO
應用程序由Office應用程序和.NET程序集組成。
?

  • Office應用程序:VSTO公布了對象,使之更容易編寫Office應用程序。包括擴充應用程序和處理應用程序使用的數(shù)據(jù)的對象。要理解的重點之一是WordExcel編輯器提供了WordExcel文檔視圖。使用這些編輯器,可以編輯和格式文檔,就像直接在Office應用程序中操作一樣。

    ?

  • .NET程序集:包含中間語言(IL)代碼。描述程序的二進制信息的元數(shù)據(jù)存儲在內(nèi)存中,是.NET程序集的一部分。除了元數(shù)據(jù)信息外,程序集也有稱作Manifest的專門的文件。Manifest包含程序集當前版本的信息。

VSTO架構(gòu)的核心組件是文檔級定制、應用程序級加載項和文檔級的數(shù)據(jù)模型。VSTO的新架構(gòu)允許編寫和運行帶有宏的Office應用程序。


上圖表明Office 2007解決方案邏輯架構(gòu)。VSTO能夠使Office開發(fā)者為InfoPath、WordExcel文檔創(chuàng)建文檔級定制,而對于Outlook、PowerPointVisioVSTO不支持文檔級定制。
VSTO
提供了非常好的面向?qū)ο缶幊讨С帧?/span>VSTO提供了對C#編程語言的完全支持,允許在Office解決方案中執(zhí)行面向?qū)ο缶幊?。面向?qū)ο缶幊淌且环N軟件編程方式,程序結(jié)構(gòu)基于對象之間的交互,以執(zhí)行任務。
VSTO
的架構(gòu)設計幫助Office開發(fā)者實現(xiàn)了應用程序和數(shù)據(jù)的分離,提供開發(fā)應用程序級解決方案的增強支持,并且公布了多種對象使Office開發(fā)者更容易編寫Office應用程序。開發(fā)應用程序級和文檔級的解決方案是VSTO中另一項架構(gòu)改進。


開發(fā)方式
使用VSTO 3.0創(chuàng)建的解決方案類型分成兩類:文檔級解決方案和應用程序級解決方案。
1)
、面向文檔的方式
面向文檔的方式被專門設計為接觸WordExcel文檔的核心并包含原先設計的文檔不支持的信息。VSTO 3.0支持面向文檔的方式創(chuàng)建Word、ExcelInfoPath。實際上,面向文檔的方式提供指向非常特定任務的文檔,不會影響到文檔駐留的應用程序。
2)
、面向應用程序的方式
VSTO 3.0
具有為Office 2007套件中所有的應用程序創(chuàng)建面向應用程序的方式的能力??梢詣?chuàng)建和執(zhí)行向Office應用程序中添加了各種功能和特征的加載項。
VSTO
開發(fā)和部署
VSTO
系統(tǒng)3.0運行時,運行Office 2007解決方案的首要需求,被內(nèi)置到VSTO中。而VSTO 3.0被內(nèi)置到Visual Studio 2008安裝中。
使用VSTO創(chuàng)建Office應用程序
Visual Studio 2008中包括VSTO,也就是說,Microsoft首次將Visual Studio 2008VSTO 3.0綁在了一塊。在VSTO 3.0中,Microsoft Office工具變得更加強大,因為Microsoft使Office開發(fā)環(huán)境對開發(fā)者更加友好,通過創(chuàng)建新的開發(fā)環(huán)境幫助開發(fā)者創(chuàng)建Office應用程序里的功能的解決方案。因此,Office開發(fā)者能夠容易地創(chuàng)建解決方案,為他們的商務做更多工作,另一方面,重復使用Office應用程序中現(xiàn)有的可用功能,從而減少成本開支。
VSTO
甚至可以整合現(xiàn)有的ERP系統(tǒng),增進企業(yè)的成長??梢允褂?/span>VSTO擴展Office客戶端應用程序,將VSTOSharePoint Portal整合來提供企業(yè)解決方案,例如Office商務應用程序,包括客戶關(guān)系管理、供應鏈管理,等等。


1
VSTO開發(fā)環(huán)境
VSTO 3.0
不是單獨的安裝包,當安裝Visual Studio 2008時,VSTO 3.0將與其它的框架和所需的組件一起安裝。
2
、包(Package
當安裝Microsoft VSTO 3.0分發(fā)包時安裝VSTO運行時。VSTO 3.0分發(fā)包是將Visual Studio 2008.NET框架的功能和生產(chǎn)力帶給建立在Office 2007應用程序中的商務解決方案的框架。


上圖說明了VSTO的版本歷史,以及各版本之間的一些主要的不同。當前版本的VSTO僅支持編程語言VB.NETC#。我們期望VSTO的下一個版本能支持其它的編程語言。


3
、Visual Studio整合
為了容易創(chuàng)建定制的用戶界面,VSTO 3.0Visual Studio里提供了Office應用程序的可視化表現(xiàn)。VSTO 3.0很好地與Visual Studio 2008整合在一起,為Office開發(fā)者提供了完整的開發(fā)和部署Office解決方案的工具。Visual Studio 2008能夠使開發(fā)者創(chuàng)建可升級的Office商務應用程序、改變主要的Office UI特征、支持工作流、以及創(chuàng)建更容易的部署。
下面,看看Visual Studio 2008Office 2007應用程序的典型的VSTO項目模板。


Visual Studio 2008已經(jīng)打包了使用VSTO創(chuàng)建Office解決方案所需要的全部VSTO 3.0組件。當安裝Visual Studio 2008時,所有相關(guān)的安裝,包括VSTO 3.0的項目模板、Office開發(fā)引用和其它組件,都被安裝并完全整合到新的Visual Studio 2008開發(fā)環(huán)境中。

 


4
、創(chuàng)建VSTO解決方案
在開發(fā)和傳遞創(chuàng)新的Microsoft技術(shù)方面,Visual Studio 2008是非??焖佟f(xié)同性好和靈活的,包括增強的語言和數(shù)據(jù)功能。Office 2007中支持的C#VB.NET是增強的語言特性之一,并且容易與其它數(shù)據(jù)源交互數(shù)據(jù),例如Microsoft SQL服務器,是數(shù)據(jù)特性之一。這些特性確保開發(fā)者能夠快速地創(chuàng)建連接的應用程序,傳遞下一代軟件實踐,以及克服應用程序軟件開發(fā)挑戰(zhàn)。


上圖表現(xiàn)了Office解決方案的開發(fā)環(huán)境。在圖中,客戶端代表開發(fā)環(huán)境機器,在Visual Studio 2008里面的VSTO 3.0代表VSTO整合在Visual Studio中,Office 2007客戶端工具是Office應用程序,包括Word、Excel、InfoPath等,應該被安裝在客戶端機器上。
使用Visual Studio 2008開發(fā)環(huán)境能夠創(chuàng)建應用程序級、數(shù)據(jù)中心解決方案。數(shù)據(jù)中心解決方案是集中于數(shù)據(jù)操作和數(shù)據(jù)存儲的功能。
Visual Studio 2008
開發(fā)環(huán)境使得開發(fā)帶有主要的Office 2007系統(tǒng)特征設計時和運行時支持的解決方案成為可能,例如功能區(qū)、自定義任務窗格、文檔級解決方案、Outlook窗體區(qū)域,等等。
功能區(qū)是Office應用程序中表現(xiàn)菜單項的新方式。在新開發(fā)環(huán)境中,有可視化設計器,能夠拖拉功能區(qū)里的控件,容易設計自定義的功能區(qū)菜單。甚至數(shù)據(jù)相關(guān)的操作,例如創(chuàng)建數(shù)據(jù)連接,有數(shù)據(jù)連接向?qū)菀讋?chuàng)建數(shù)據(jù)連接。
在創(chuàng)建的Office項目解決方案中,可以看到列出的引用,例如System.AddIn、System.Core等等,它們被自動裝載作為項目模塊的一部分。這使得開發(fā)者更容易開始編程,不需要像以前一樣手工添加引用和驗證解決方案。
通過使用基于XML的數(shù)據(jù)/視圖分離和編程性,Office開發(fā)者能夠?qū)⑸虅諗?shù)據(jù)整合到文檔里。


5
、查看IDE窗口
Visual Studio
是一款極其優(yōu)秀的產(chǎn)品,專門為開發(fā)者設計,是開發(fā)者最常使用的開發(fā)工具之一,內(nèi)置有IDE,能夠使開發(fā)者使用Microsoft技術(shù)創(chuàng)建不同類型的應用程序。通常,IDE由源代碼編輯器、編譯器和調(diào)試器組成。默認情況下,Microsoft Visual Studio IDE提供智能感知、調(diào)試、編譯、訪問控件、以及創(chuàng)建解決方案的能力。最新增強了功能區(qū)設計器、拖放控件、并為Office應用程序增強了調(diào)試功能,縮減了開發(fā)時間,提高了開發(fā)者的效率。
內(nèi)置的VSTO對象模型被設計來支持.NET,許多常用的功能被打包且很好地整合了。在新版本中,諸如Word、ExcelInfoPath的目標窗口工具被直接整合到IDE界面里,幫助Office開發(fā)者無須對象模型的高級知識就能創(chuàng)建解決方案。對于Word 2007Excel 2007,VSTOVisual Studio IDE中也有可視化設計器。


上圖中,可以看到Visual Studio 2008中如何顯示Excel 2007可視化設計器。同樣,Visual Studio 2008 IDE也提供了可視化功能區(qū)設計器,允許Office開發(fā)者使用拖放界面來設計功能區(qū),使用標準的.NET代碼與功能區(qū)交互。

上圖顯示Office解決方案開發(fā)里功能區(qū)的可視化設計器,通過提供拖放控件和容易訪問資源,簡化了功能區(qū)開發(fā)過程。同樣,Visual Studio 2008簡化并加速了操作窗格、指定文檔的任務窗格、創(chuàng)建指定應用程序的自定義任務窗格以及Outlook窗體區(qū)域設計器的開發(fā)過程。


6
、調(diào)試
調(diào)試是軟件開發(fā)中最重要的任務之一,并且是所有開發(fā)者在他們的開發(fā)過程中會遇到無數(shù)次的一項任務。在Visual Studio IDE中,開發(fā)者為調(diào)試.NET應用程序有幾種可用的調(diào)試選擇。
Visual Studio 2008
為使用VSTO 3.0Office解決方案開發(fā)提供了一組強大的創(chuàng)建和調(diào)試工具,與VSTO 2.0相比是一項大的改進。在創(chuàng)建配置時,開發(fā)者能夠選擇他們想創(chuàng)建的組件,排除他們當前想避免創(chuàng)建的組件。開發(fā)者可以像項目一樣,靈活地為解決方案創(chuàng)建配置。

 


我們期望下一版本能帶來什么?
基于筆者的分析和作為一名VSTO開發(fā)者的經(jīng)驗,我們期望下一版本的VSTO

  • 目前,VSTO 3.0支持VB.NETC#開發(fā)Office解決方案。在將來的VSTO版本中,我們期望支持其他語言,例如C++,這將幫助C++開發(fā)者創(chuàng)建VSTO解決方案。
  • VSTO 3.0智能標記僅限于Office應用程序中文檔級解決方案,不能在應用程序級解決方案中使用,因此我們期望Microsoft在將來的VSTO版本中添加這項功能。
  • 使用VSTOVisual Studio環(huán)境在Office應用程序內(nèi)創(chuàng)建工作流活動是我們在下一版本中期望的功能。數(shù)據(jù)和應用程序協(xié)同工作的能力是Windows工作流的核心,在VSTO中的改進將幫助我們重新組織面向工作流的開發(fā)。
  • 應該在將來的版本中在Visio應用程序中也添加使用VSTO創(chuàng)建文檔級的自定義任務窗格的功能。這將對Visio用戶管理自定義形狀是有用的。

5、VSTO 4.0(VSTO 2010)

雖然現(xiàn)在VSTO 4.0還沒有正式發(fā)布,但是從測試版已經(jīng)可以看出些端倪:

  1. 64Office 2010開發(fā)的支持
  2. 折疊工具欄項目支持
  3. C# 4.0 、.net framework 4.0支持
  4. 一次針對所有用戶部署Office項目
  5. 在單個包中部署多個Office項目
  6. 部署完Office項目后仍可以執(zhí)行附加操作

 

四、Office開發(fā)存在的問題

    由于歷史遺留問題,Office本來是設計與COM協(xié)同工作的,這就使得從一開始VSTO就有點"水土不服"。.net代碼通過封裝COMOffice通信,但是有時這種配合卻并不協(xié)調(diào),Office對象模型并不總是遵循.net設計所采用的命名規(guī)則和設計模式。

五、Visual Basic的"優(yōu)勢"

    C# 4.0發(fā)布之前(雖然現(xiàn)在也沒有發(fā)布),用VB開發(fā)Office比用C#方便的多,這是因為VB簡化了對Office對象模型的調(diào)用方法。但是隨著C# 4.0的即將發(fā)布,VB的這種"優(yōu)勢"將會變得愈來愈小。園子里有很多人已經(jīng)寫過C# 4.0的新特性,這里僅提取出針對于COM操作的改進:

Improved COM Interoperability

C#中在調(diào)用COM對象如office對象時,經(jīng)常需要寫一堆不必要的參數(shù):

object fileName = "Test.docx";

 

object missing  = System.Reflection.Missing.Value;

 

doc.SaveAs(ref fileName,

 

ref missing, ref missing, ref missing,

 

ref missing, ref missing, ref missing,

 

ref missing, ref missing, ref missing,

 

ref missing, ref missing, ref missing,

 

ref missing, ref missing, ref missing);

 

4.0中就可以直接寫成:

doc.SaveAs("Test.docx");

 

C#4.0COM交互做了下面幾方面的改進:

Automatic object -> dynamic mapping (自動類型轉(zhuǎn)換)

Optional and named parameters (可選命名參數(shù))

Indexed properties (索引屬性?)

Optional "ref" modifier (可選 ref 修飾)

Interop type embedding ("No PIA") (主調(diào)程序集嵌入)

對第1點和第5點的簡單解釋如下:

COM調(diào)用中,很多輸入輸出類型都是object,這樣就必須知道返回對象的確切類型,強制轉(zhuǎn)換后才可以調(diào)用相應的方法。在4.0中有了dynamic的支持,就可以在導入這些COM接口時將變量定義為dynamic而不是object,省掉了強制類型轉(zhuǎn)換。

PIAPrimary Interop Assemblies)是根據(jù)COM API生成的.Net Assembly,一般體積比較大。在4.0中運行時不需要PIA的存在,編譯器會判斷你的程序具體使用了哪一部分COM API,只把這部分用PIA包裝,直接加入到你自己程序的Assembly里面。

六、開發(fā)工具

1、Office 2007 Enterprise Edition With SP2或更新版本

2Visual Studio 2008 Team System With SP1 或更新版本

3、OpenXML SDK 2.0

七、推薦資源

1、書籍:《VSTO 開發(fā)指南》,VSTO的權(quán)威著作,強烈推薦。

2、網(wǎng)站:

1)MSDN VSTO版塊    

2)兩位VSTO大師的博客,也是《VSTO 開發(fā)指南》的共同作者:

Eric Carter    Eric Lippert

3)Office 2010官方博客

八、VSTO 4.0 Hello World

最后,讓我們用一個實例來結(jié)束本次研究:)

1、新建一個Office 2010的Excel Workbook項目:

2、在工作簿中添加一個按鈕,添加一個Click事件:

3、彈出歡迎信息"

4、全部保存,F(xiàn)5運行:

一個最簡單的VSTO 4.0項目就完成了。

 

九、小結(jié):

    本次研究花費了大量篇幅敘述了VSTO的歷史變遷及其歷代版本中的增強功能,后續(xù)篇章會注意研究各功能的具體實現(xiàn)。本次的示例非?;?,基本可以忽略,但是卻包括了創(chuàng)建一個完整的VSTO項目的全部步驟,后續(xù)練習將會在此基礎上進行擴充,實現(xiàn)一些高級功能。

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
三種擴展 Office 軟件功能的開發(fā)模型對比
VSTO之旅系列(一):VSTO入門
VSTO開發(fā)概述
Visual Studio Tools for Office (VSTO) 簡介及資源整理
Office 365 開發(fā)概覽系列教程(1)
用VSTO做插件,其實很簡單
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服