VSTO 2005 版為基于 Microsoft Office Excel 2003 和 Microsoft Office Word 2003 的業(yè)務(wù)解決方案的開(kāi)發(fā)提供重大的增強(qiáng)。根據(jù)該版本 VSTO 提供的基礎(chǔ),Visual Studio 2005 Tool for Office 將解決 Office 解決方案開(kāi)發(fā)人員目前面臨的一些最大的難題,包括數(shù)據(jù)和視圖元素的分隔、Office 解決方案程序集的部署、服務(wù)器端和脫機(jī)方案以及與 Visual Studio 工具集的無(wú)縫集成。
VSTO 2005 的主要目標(biāo)之一是在 Office 文檔中分隔“數(shù)據(jù)”和“視圖”,以便簡(jiǎn)化基于 Office 的解決方案的創(chuàng)建。目前,Excel 電子表格和 Word 文檔,由單元格值/文本(表示數(shù)據(jù))以及字體等與數(shù)據(jù)有關(guān)的描述性信息(表示視圖)組成。因?yàn)?Word 和 Excel 不具有內(nèi)置的編程數(shù)據(jù)概念,所以開(kāi)發(fā)人員將受到文檔中存儲(chǔ)的數(shù)據(jù)有效開(kāi)發(fā)解決方案的能力的制約。
VSTO 2005 將通過(guò)使數(shù)據(jù)能夠作為 XML 數(shù)據(jù)島嵌入來(lái)在 Office 文檔中分隔數(shù)據(jù)和視圖。這提供了一種開(kāi)發(fā)人員在編程時(shí)可依靠的,易于理解且易于解決的結(jié)構(gòu)。開(kāi)發(fā)人員能夠分隔視圖和數(shù)據(jù),因而能夠直接更新數(shù)據(jù),而無(wú)需考慮視圖代碼的編寫。類型化數(shù)據(jù)集用來(lái)于提供面向架構(gòu)的編程模型,該編程模型用于與數(shù)據(jù)島進(jìn)行交互以確保編寫對(duì)托管代碼的智能感知支持。將在數(shù)據(jù)島和視圖之間使用數(shù)據(jù)綁定,以使這兩個(gè)實(shí)體保持同步。開(kāi)發(fā)人員還能向數(shù)據(jù)添加獨(dú)立于文檔視圖組件的驗(yàn)證代碼。
借助于基于 XML 架構(gòu)的模型直接對(duì)數(shù)據(jù)進(jìn)行編程,開(kāi)發(fā)人員可以顯著提高工作效率。處理數(shù)據(jù)的代碼無(wú)需考慮 Excel 和 Word 對(duì)象模型。這簡(jiǎn)化了在生成 Office 解決方案的過(guò)程中涉及的大量代碼,并且使解決方案保持對(duì)文檔中更改的彈性。產(chǎn)生代碼的易損壞性降低了,因?yàn)樗恍枰^(guò)度依賴于對(duì)最終用戶可以任意移動(dòng)的特定單元格、范圍和表的引用。相反,托管代碼直接訪問(wèn) XML 數(shù)據(jù)島。
在 Office 文檔中,使數(shù)據(jù)成為透明的、可直接訪問(wèn)的組件能夠帶來(lái)新的服務(wù)器端機(jī)遇。首先,無(wú)需啟動(dòng) Office 應(yīng)用程序即可操作該文檔中嵌入的數(shù)據(jù)島。與當(dāng)前模型(為使代碼能夠操作文檔、Excel 或 Word 的內(nèi)容必須按照該模型運(yùn)行)相比,這是一項(xiàng)巨大的轉(zhuǎn)變。這一限制使很多客戶無(wú)法實(shí)現(xiàn)從 ASP.NET 應(yīng)用程序內(nèi)創(chuàng)建 Office 文檔的常見(jiàn)解決方案要求。
相比之下,VSTO 2005 運(yùn)行庫(kù)將支持服務(wù)器上的實(shí)例化,而無(wú)需運(yùn)行 Excel 或 Word。這樣,就可以從服務(wù)器端代碼操作文檔中的數(shù)據(jù)島。當(dāng)打開(kāi)關(guān)聯(lián)的 Office 文檔時(shí),視圖與數(shù)據(jù)島重新同步,并且將自動(dòng)向用戶呈現(xiàn)經(jīng)過(guò)更新的數(shù)據(jù)。在該模型中,不需要使用 Excel 和 Word 對(duì)服務(wù)器上的數(shù)據(jù)進(jìn)行寫操作,而只需使用它們查看客戶端上的數(shù)據(jù)。這一經(jīng)過(guò)更新的模型將為客戶提供所需的可伸縮性,以及對(duì)包含服務(wù)器上數(shù)據(jù)島的文檔執(zhí)行高性能批處理的能力。
將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)島中還能夠提供一種機(jī)制,以實(shí)現(xiàn)可靠的脫機(jī)方案。當(dāng)從服務(wù)器首次請(qǐng)求文檔或用戶首次打開(kāi)文檔時(shí),將用最新的數(shù)據(jù)填充數(shù)據(jù)島。然后,在文檔中緩存該數(shù)據(jù)島并使其可以脫機(jī)使用。用戶和代碼無(wú)需活動(dòng)連接即可操作這些數(shù)據(jù)。當(dāng)用戶重新連接時(shí),可將對(duì)數(shù)據(jù)進(jìn)行的更改回傳到服務(wù)器數(shù)據(jù)源。
除根本改進(jìn)數(shù)據(jù)編程模型以外,VSTO 2005 版還引入對(duì)開(kāi)發(fā)人員以編程方式訪問(wèn)用戶界面或視圖、元素(例如,范圍、列表和書簽)方式的增強(qiáng)。即使開(kāi)發(fā)人員目前可以編寫代碼來(lái)操作上述元素,他們?nèi)匀粫?huì)受到 Office 對(duì)象模型公開(kāi)事件、屬性和方法的程度的影響。例如,Excel 對(duì)象模型提供 WorkSheet_Change 事件,但沒(méi)有為單個(gè)單元格或范圍提供類似的事件,因此需要編寫附加代碼來(lái)處理對(duì)特定元素進(jìn)行的更改。VSTO 2005 在視圖元素領(lǐng)域引入了對(duì) Excel 和 Word 對(duì)象模型的增強(qiáng)。元素(例如,單元格、范圍、列表和書簽)將成為可在代碼中輕松訪問(wèn)的一流控件。每個(gè)控件都將唯一標(biāo)識(shí),都將啟用數(shù)據(jù)綁定,并且都將提供更為完整的事件模型。
VSTO 2005 還將 Excel 和 Word 與 Visual Studio 進(jìn)行集成,從而在生成 Office 解決方案時(shí),削弱目前存在的障礙。目前,開(kāi)發(fā)人員在 Visual Studio .NET 中編寫托管代碼。然后,他們必須切換到 Excel 或 Word 來(lái)創(chuàng)建用戶界面。在 VSTO 2005 中,Excel 和 Word 將直接作為設(shè)計(jì)器駐留在 Visual Studio 2005 IDE 中(圖 17)。開(kāi)發(fā)人員能夠使用 Excel 和 Word 中的完整 Windows 窗體控件集合,僅通過(guò)從工具箱中拖放托管控件(包括第三方控件)在 Visual Studio 環(huán)境中設(shè)計(jì) Office 文檔。按照預(yù)期,雙擊 Excel 或 Word 中的托管控件將調(diào)用代碼視圖,從而可在該控件的自動(dòng)生成事件處理程序中編寫自定義。
駐留在 Word 和 Excel 文檔中的托管控件與 Visual Studio IDE 中的 Excel 和 Word 集成相結(jié)合,將減少目前在 Office 解決方案開(kāi)發(fā)以及基于 Windows 和 Web 的解決方案開(kāi)發(fā)之間存在的差異。
SQL Server 2005 解決方案開(kāi)發(fā)
Microsoft 計(jì)劃將其開(kāi)發(fā)人員工具的未來(lái)版本與重要的平臺(tái)里程碑進(jìn)行協(xié)調(diào),作為該計(jì)劃的一部分,Visual Studio 2005 將為 SQL Server 2005 提供深度的集成和支持。SQL Server 2005 將 CLR 功能合并到其數(shù)據(jù)庫(kù)引擎,以便帶來(lái)數(shù)據(jù)庫(kù)和工具之間新的集成級(jí)別,從而減少在開(kāi)發(fā)數(shù)據(jù)中心應(yīng)用程序時(shí)的代碼和工作量。
首先,SQL Server 2005 將引入在托管代碼中創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象的功能。這使開(kāi)發(fā)人員能夠使用 Visual Basic、Visual C++ 和 Visual C# 等語(yǔ)言生成 SQL Server 過(guò)程化對(duì)象,包括函數(shù)、存儲(chǔ)過(guò)程和觸發(fā)器。此外,開(kāi)發(fā)人員能夠使用托管代碼來(lái)生成 SQL Server 2005 中引入的新 SQL Server 對(duì)象,包括用戶定義的類型和聚合。因此,使用 Visual Studio 2005 的開(kāi)發(fā)團(tuán)隊(duì)不僅可創(chuàng)建和調(diào)試分布式應(yīng)用程序的表示形式和中間層,而且可以創(chuàng)建和調(diào)試組成數(shù)據(jù)層的數(shù)據(jù)庫(kù)對(duì)象。此外,.NET 語(yǔ)言將在很多方面比傳統(tǒng)的 Transact-SQL 更為豐富,并且通過(guò) SQL 開(kāi)發(fā)人員以前不可用的構(gòu)造和功能提供了增強(qiáng)的編程模型。
其次,用托管代碼編寫的數(shù)據(jù)庫(kù)對(duì)象將提供增強(qiáng)的安全性。因?yàn)檫@些數(shù)據(jù)庫(kù)對(duì)象將在數(shù)據(jù)庫(kù)引擎中承載的 CLR 環(huán)境中運(yùn)行,所以它們將在細(xì)粒度的 CLR 安全模型的上下文中進(jìn)行操作。本質(zhì)上,該模型比較低版本 SQL Server 中提供的擴(kuò)展存儲(chǔ)過(guò)程更為安全。它還賦予管理員更大的控制權(quán),以便在試圖訪問(wèn)或操作 SQL Server 2005 內(nèi)部或外部資源時(shí),為代碼定義一組允許的操作。
最后,使用托管語(yǔ)言生成 SQL Server 2005 數(shù)據(jù)庫(kù)對(duì)象通常會(huì)在性能和可伸縮性方面產(chǎn)生可觀的收益。由于 Visual Studio 2005 語(yǔ)言編譯器和執(zhí)行模型中內(nèi)置的優(yōu)化,用托管代碼編寫的數(shù)據(jù)庫(kù)對(duì)象(例如,存儲(chǔ)過(guò)程、函數(shù)和觸發(fā)器)將在很多情況下能提供比 T-SQL 更好的性能。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
