Visual Studio 2010特性支持Office
一位漂亮的OL把Word當做文字處理軟件來使用,這無可厚非;但是如果一位帥氣的Developer也僅僅把Word當做文字處理軟件來使用,恐怕會被同行恥笑。在程序員的眼中,Office不僅僅是一套非常流行的辦公軟件,更是一個成熟的開發平臺。Office的應用是如此廣泛,幾乎深入到企業信息化和個人文檔處理的每個角落。通過Office開發,可以幫助企業或者個人完成很多重復性的工作,規律性的工作甚至創造性的工作,正是因為如此,Office開發在軟件開發中顯得越來越重要,已經成為商業軟件開發的一個重要領域。
為了支持Office開發,無論是從上層的二次開發語言VBA,還是底層的Office開發工具VSTO(Visual Studio Tools for Office),微軟都給予了大力的支持。我們這里按下VBA不表,單說這Visual Studio 2010 CTP中新特性對Office開發的支持。
有道是“櫻桃好吃樹難栽,Office好用開發難”。做過Office開發的程序員常常會有這樣的抱怨:“這個垃圾C#,連個可選參數都不支持!”
“COM接口太復雜繁瑣啦,我都快被折磨死了!”“告訴客戶,他的機器上必須也安裝Office 2003!Office 2007不支持!!!!!”
這是因為Office整個系統本身非常龐雜,Office對象模型難于全部掌握,開發語言對Office開發支持不夠等等,這些都使得Office開發就像一頭笨重的大象,雖然穩定,但是行動卻有些遲緩,開發效率不高。
不過這些抱怨很快就會成為歷史了。在Visual Studio 2010 CTP中,它提供了很多新的特性,來解決上述的這些Office開發中的主要問題,以更好地支持Office開發。當然,這些特性也可以應用在其他場合。這些新的特性包括:
- 動態編程
在前面的文章中我們曾經介紹過,C# 4.0中引入了一種新的靜態類型dynamic,這使得我們在使用COM進行Office開發的時候,無需再進行復雜而繁瑣的對象類型轉換。 - 可選參數
Office提供的函數往往有很多參數,在大多數情況下,很多參數使用默認值就可以了,無需全部指定。但是在C# 3.0中,因為它不支持可選參數,導致每次調用函數都必須給定全部參數,代碼繁瑣而臃腫。C# 4.0通過對可選參數的支持,很好地解決了這一問題。 - No-PIA部署
以前的Office開發,都要求目標機器(用戶機器)上同樣安裝了Office,有時甚至對Office的版本還有特殊的要求。這給Office程序的部署帶來了極大的困難:目標機器千差萬別,有的安裝了Office,有的沒有安裝,安裝了Office的機器,Office版本又各不相同。在Visual Studio 2010中,因為有了No-PIA部署的支持,這些問題都得到了很好的解決。
有了上述特性的支持,Visual Studio 2010中Office開發開始變得簡潔而自然。為了讓大家有更加深刻的體會,下面我們以一個實際的例子,來看看這些新特性是如何更好地支持Office開發的。在這個例子中,我們將創建一個表示銀行賬號的類,然后用這個類的數據填充一個Excel表格,最后將這個表格嵌入到一個Word文檔中。(這里需要說明的是,雖然有了No-PIA部署的支持,目標機器上無需安裝Office,但是開發機器上還是需要安裝Office的。)
1. 創建Office開發項目OfficeDev
啟動Visual Studio 2010 CTP,我們創建一個基于Visual C#的控制臺應用程序(Console Application),同時確保目標平臺是“.NET Framework 4.0”:
圖1 創建Office開發項目