閑論Visual Studio 2010 Office開發(fā)
Visual Studio有很多值得學(xué)習(xí)的地方,這里我們主要介紹Visual Studio 2010 Office開發(fā),包括介紹Office對象模型等方面。本人很喜歡Visual Studio,在工作中也很喜歡總結(jié)關(guān)于XX的經(jīng)驗教訓(xùn),下面就這個問題來詳細(xì)說說吧。一位漂亮的OL把Word當(dāng)做文字處理軟件來使用,這無可厚非;但是如果一位帥氣的Developer也僅僅把Word當(dāng)做文字處理軟件來使用,恐怕會被同行恥笑。在程序員的眼中,Office不僅僅是一套非常流行的辦公軟件,更是一個成熟的開發(fā)平臺。
#t#Office的應(yīng)用是如此廣泛,幾乎深入到企業(yè)信息化和個人文檔處理的每個角落。通過Visual Studio 2010 Office開發(fā),可以幫助企業(yè)或者個人完成很多重復(fù)性的工作,規(guī)律性的工作甚至創(chuàng)造性的工作,正是因為如此,Office開發(fā)在軟件開發(fā)中顯得越來越重要,已經(jīng)成為商業(yè)軟件開發(fā)的一個重要領(lǐng)域。
為了支持Office開發(fā),無論是從上層的二次開發(fā)語言VBA,還是底層的Office開發(fā)工具VSTO(Visual Studio Tools for Office),微軟都給予了大力的支持。我們這里按下VBA不表,單說這Visual Studio 2010 Office開發(fā)的支持。
有道是“櫻桃好吃樹難栽,Office好用開發(fā)難”。做過Office開發(fā)的程序員常常會有這樣的抱怨:
“這個垃圾C#,連個可選參數(shù)都不支持!”
“COM接口太復(fù)雜繁瑣啦,我都快被折磨死了!”
“告訴客戶,他的機器上必須也安裝Office 2003!Office 2007不支持?。。。?!”
這是因為Office整個系統(tǒng)本身非常龐雜,Office對象模型難于全部掌握,開發(fā)語言對Office開發(fā)支持不夠等等,這些都使得Office開發(fā)就像一頭笨重的大象,雖然穩(wěn)定,但是行動卻有些遲緩,開發(fā)效率不高。
不過這些抱怨很快就會成為歷史了。在Visual Studio 2010 CTP中,它提供了很多新的特性,來解決上述的這些Office開發(fā)中的主要問題,以更好地支持Office開發(fā)。當(dāng)然,這些特性也可以應(yīng)用在其他場合。這些新的特性包括:
◆動態(tài)編程
在前面的文章中我們曾經(jīng)介紹過,C# 4.0中引入了一種新的靜態(tài)類型dynamic,這使得我們在使用COM進行Office開發(fā)的時候,無需再進行復(fù)雜而繁瑣的對象類型轉(zhuǎn)換。
◆可選參數(shù)
Office提供的函數(shù)往往有很多參數(shù),在大多數(shù)情況下,很多參數(shù)使用默認(rèn)值就可以了,無需全部指定。但是在C# 3.0中,因為它不支持可選參數(shù),導(dǎo)致每次調(diào)用函數(shù)都必須給定全部參數(shù),代碼繁瑣而臃腫。C# 4.0通過對可選參數(shù)的支持,很好地解決了這一問題。
◆No-PIA部署
以前的Office開發(fā),都要求目標(biāo)機器(用戶機器)上同樣安裝了Office,有時甚至對Office的版本還有特殊的要求。這給Office程序的部署帶來了極大的困難:目標(biāo)機器千差萬別,有的安裝了Office,有的沒有安裝,安裝了Office的機器,Office版本又各不相同。在Visual Studio 2010中,因為有了No-PIA部署的支持,這些問題都得到了很好的解決。
有了上述特性的支持,Visual Studio 2010 Office開發(fā)開始變得簡潔而自然。