Visual Studio有很多值得学习的地方,这里我们主要介绍Visual Studio 2010 Office开发,包括介绍Office对象模型等方面。本人很喜欢Visual Studio,在工作中也很喜欢总结关于XX的经验教训,下面就这个问题来详细说说吧。一位漂亮的OL把Word当做文字处理软件来使用,这无可厚非;但是如果一位帅气的Developer也仅仅把Word当做文字处理软件来使用,恐怕会被同行耻笑。在程序员的眼中,Office不仅仅是一套非常流行的办公软件,更是一个成熟的开发平台。
#t#Office的应用是如此广泛,几乎深入到企业信息化和个人文档处理的每个角落。通过Visual Studio 2010 Office开发,可以帮助企业或者个人完成很多重复性的工作,规律性的工作甚至创造性的工作,正是因为如此,Office开发在软件开发中显得越来越重要,已经成为商业软件开发的一个重要领域。
为了支持Office开发,无论是从上层的二次开发语言VBA,还是底层的Office开发工具VSTO(Visual Studio Tools for Office),微软都给予了大力的支持。我们这里按下VBA不表,单说这Visual Studio 2010 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开发开始变得简洁而自然。