<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      VSTO學(xué)習(xí)筆記(一)VSTO概述

      接觸VSTO純屬偶然,前段時(shí)間因?yàn)槊τ谝粋€(gè)項(xiàng)目,在客戶(hù)端Excel中制作一個(gè)插件,從遠(yuǎn)程服務(wù)器端(SharePoint Excel Services)上下載Excel到本地打開(kāi),用戶(hù)編輯后再上傳回服務(wù)器端。當(dāng)時(shí)工期緊迫,臨時(shí)查了些資料,用VSTO + Excel COM API完成。正因?yàn)檫@個(gè)項(xiàng)目,我發(fā)現(xiàn)了VSTO的強(qiáng)大功能與潛力,決定抽出一些時(shí)間來(lái)好好研究下。

      示例代碼下載

      本系列所有示例代碼均在 Visual Studio 2010 Beta 2 + Office 2010 Beta 下測(cè)試通過(guò) 

       

      一、什么是VSTO?

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

      二、為什么要進(jìn)行Office開(kāi)發(fā)?

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

      三、Office開(kāi)發(fā)簡(jiǎn)史

      1、VBA(Visual Basic Application)

          微軟提出的第一種Office開(kāi)發(fā)解決方案就是VBA,在20世紀(jì)九十年代VBA紅極一時(shí),借助于當(dāng)時(shí)如日中天的Visual Basic,VBA取得了巨大的成功,無(wú)論是專(zhuān)業(yè)的開(kāi)發(fā)人員,還是剛?cè)腴T(mén)的非開(kāi)發(fā)人員,都可以利用VBA完成簡(jiǎn)單或復(fù)雜的需求。但是VBA本身?yè)碛泻芏嗟木窒扌裕琕B語(yǔ)言雖然簡(jiǎn)單,但是其語(yǔ)法令中高級(jí)開(kāi)發(fā)人員不太適應(yīng),尤其是VBA的開(kāi)發(fā)環(huán)境過(guò)于簡(jiǎn)單,缺少與時(shí)俱進(jìn)的高級(jí)功能,使得VBA開(kāi)發(fā)陷入了瓶頸。

      2、VSTO 1.0(VSTO 2003)

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

      3、VSTO 2.0(VSTO 2005 SE)

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

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

      4、VSTO 3.0(VSTO 2008)

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

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


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

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

         

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

       

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

       

      • 任務(wù)窗格:任務(wù)窗格幫助用戶(hù)快速且更方便地訪(fǎng)問(wèn)信息。取決于用戶(hù)的喜好,可以在Office應(yīng)用程序用戶(hù)界面中顯示或隱藏任務(wù)窗格。

        ?

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

         

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

       

      • SharePoint支持:VSTO中的新對(duì)象幫助開(kāi)發(fā)者在Office應(yīng)用程序中為SharePoint編程。可以使用VSTO擴(kuò)展Office客戶(hù)端應(yīng)用程序,使用SharePoint Portal將它們整合到企業(yè)解決方案中,例如客戶(hù)關(guān)系管理、供應(yīng)鏈管理以及其他類(lèi)似的應(yīng)用程序。

        ?

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

       

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

        ?

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

       

      • 支持其他的Office應(yīng)用程序。

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

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

        ?

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

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

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


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


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

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


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

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

       


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

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


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

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

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


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

       


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

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

      5、VSTO 4.0(VSTO 2010)

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

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

       

      四、Office開(kāi)發(fā)存在的問(wèn)題

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

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

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

      Improved COM Interoperability

      C#中在調(diào)用COM對(duì)象如office對(duì)象時(shí),經(jīng)常需要寫(xiě)一堆不必要的參數(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中就可以直接寫(xiě)成:

      doc.SaveAs("Test.docx");
      

       

      C#4.0對(duì)COM交互做了下面幾方面的改進(jìn):

      Automatic object -> dynamic mapping (自動(dòng)類(lèi)型轉(zhuǎn)換)

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

      Indexed properties (索引屬性?)

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

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

      對(duì)第1點(diǎn)和第5點(diǎn)的簡(jiǎn)單解釋如下:

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

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

      六、開(kāi)發(fā)工具

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

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

      3OpenXML SDK 2.0

      七、推薦資源

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

      2、網(wǎng)站:

      1)MSDN VSTO版塊    

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

      Eric Carter    Eric Lippert

      3)Office 2010官方博客

      八、VSTO 4.0 Hello World

      最后,讓我們用一個(gè)實(shí)例來(lái)結(jié)束本次研究:)

      1、新建一個(gè)Office 2010的Excel Workbook項(xiàng)目:

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

      3、彈出歡迎信息"

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

      一個(gè)最簡(jiǎn)單的VSTO 4.0項(xiàng)目就完成了。

       

      九、小結(jié):

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

      posted @ 2010-02-09 00:14  江蘇瑞步科技  閱讀(47823)  評(píng)論(10)    收藏  舉報(bào)
      主站蜘蛛池模板: 欧美成人无码a区视频在线观看| 日本中文一二区有码在线| 东京热无码av男人的天堂| 99www久久综合久久爱com| 玩弄丰满少妇人妻视频| 国产日产欧美最新| 91精品91久久久久久| 久久综合久色欧美综合狠狠| 人成午夜免费大片| 中文字幕av日韩有码| 国产片AV国语在线观看手机版| 临汾市| 亚洲男人天堂2018| 国产精品永久免费无遮挡| 国产成人女人在线观看| 亚洲综合在线一区二区三区| 深夜av在线免费观看| 欧美性猛交xxxx乱大交丰满| 精品国产亚洲区久久露脸| 久久精品蜜芽亚洲国产av| 亚洲综合伊人久久大杳蕉| 国产精品欧美福利久久| 强奷漂亮人妻系列老师| 九九热在线免费播放视频| 亚洲日本乱码在线观看| 夜夜偷天天爽夜夜爱| 成人午夜激情在线观看| 成人免费乱码大片a毛片| 久久综合色最新久久综合色| 国产精品久久久久久久久人妻| 亚洲av永久无码精品网站| 国产精品人人爽人人做我的可爱| 中文字幕av一区二区| 国产精品一区二区传媒蜜臀| 男女一边摸一边做爽爽| 蜜臀av午夜精品福利| 国产人妇三级视频在线观看| 亚洲av永久一区二区| 精品无人区卡一卡二卡三乱码| 亚洲中文字幕伊人久久无码 | 中文字幕日韩熟女av|