[转贴]使用VS.NET 2003 快速开发MS Office Add-In
来源:http://www.microsoft.com/china/community/chat/chatrecord/chat20030703.mspx
主持人和专家介绍
Banian_MS : 大家好!欢迎大家参加聊天
Banian_MS : 今天的聊天主题是: 使用VS.NET 2003 快速开发MS Office Add-In
Banian_MS : 今天我们请到了微软全球技术中心的工程师张广辉
Zhang : 大家下午好
Banian_MS : 聊天正式开始了,大家可以开始提问了
提问和回答QA
Q: 能讲讲MS Office Add-In 的概况吗
A: Microsoft Office Add-In 是实现了某一个标准接口的COM组件.
Q: 用IE6 SP1看到的是乱码,怎么回事?
A: IE 的View--Encoding菜单选的是什么encoding方法?如果你访问的网页的HTTP Header没有明确指出正确的encoding方法,会出现这个问题。
Q: 请问用vs.net 2002开发与2003 的有什么区别?
A: 有很大的改进。详细的可以参考VS.NET自带文档,相信会在很靠前的章节找到。最大的却别我认为一个针对.NET Framework 1.0, 一个针对1.1.
Q: 请问张工程师,我们现在用什么语言来开发MS Office Add-In
A: 在VS.NET中,我们一般是做成.NET 的Assembly. 所以跟语言无关。
A:好的,主持人
下面向大家介绍一个例子。用过Outlook的人相信会非常熟悉Contact的管理。
朋友的联系方式会放在里面。当然,里面也会包括邮政编码的信息。在下面的Office Add-In例子中,我们可以在Outlook中使用这个Add-In, 通过Web Service, 来验证邮政编码的正确与否:
msdn_lib你好,其实你可以使用VB.NET, 没有必要一定用C#
根据我的经验,Office Add-Ins是一块很大的开发天地。
它可以在很大程度上提高我们的工作效率。譬如说,在一个企业环境下面,把Office Add-In, Word Smart-Tag等结合在一起。
Q: 可是对于vs.net与数据库的沟通,是不是每个页面都要进行连接,关闭这种无状态的方法
A: 如果你是指ASP.NET, 相信这样的情况不是VS.NET导致的,原因是HTTP协议本身是一个无状态的协议。
Q: office SDK 可以用来开发office2003的ADD-in吗?
A: Office Add-Ins是一个实现了IDTExtensibility2街口的COM标准组件,然后通过Office提供的Library, 调用Office的对象,跟Office SDK没有直接的联系。
Q: msdn_lib : vs2003的混淆器可以有效避免代码的反编译吗?
A: 世界上没有绝对安全的概念,相信没有任何专业的人士会说自己的代码永远不会被crack. 但是相信VS.NET 2003的混淆器对保护你的代码很有帮助。
Q: maomao : 那保持有状态的连接用什么办法可以实现呢
A: 考虑使用.NET 的Remoting技术,但是它不是我们今天聊天的主题。
Q: msdn_lib : office的vba还会存在下去吗,还是被.net的替代
A: 下一个版本的Office会与.NET和Web Service 更紧密地集成。我用过内部的试用版,功能非常强大。VBA是内置的Script引擎,相信还会存在。
Q: derek : 有沒有比較系統的講述這一問題的url
Q: Hank : 用.NET开发了Addin后,怎么发布? Hank : 能不带.NET发布我的Addin么?
A: 很好的问题!:)
A: 事实上,你在VS.NET 中生成一个Add-Ins项目的时候,VS.NET会自动为你生成一个Setup项目,所有的依赖都会自动包括进去。
Simon你好,能把你的问题解释的更清楚一点么?
Q: 辣椒 : 如何在没有.NET运行环境的系统里运行.NET开发的程序?
A: 你需要安装.NET framework, 二十多兆。但是Setup程序会自动判断是否需要在目标机器上安装。
Q: Hank : 我很喜欢.NET的开发环境,可就是因为发布包太大问题,就不得不改用vs6来开发
A: VB6也是需要Runtime Libray 的支持。
Q: 辣椒 : 我是说除了安装.NET framework,又没有其他方法?
A: 没有
Q: msdn_lib : 你所指的office下一个版本是2003吗,其中的RTC Server是否真的替代掉现在Exchange中的IM Service
A: 产品没有发布,不能这么下最终结论。
Q: msdn_lib : 因为exchange2003已经没有IM service了
A: 这个服务现在是一个新的服务器,Instant Messenger Server
Q: Hank : 提个问题,开发Outlook的Add-In, 怎样访问Outlook的状态条?
Q: 辣椒 : 在发布.NET开发的应用程序的时候,能不能将程序所使用的那部分.NET framework整合到发布的安装程序中?
A: 事实上,VS.NET会为我们做这些事情
Q: Simon : vs2002能开发office add-ins吗
A: 可以
Q: msdn_lib : 关于企业内部IM的部分,也是很头疼的,有相关资源吗
A: 很抱歉,我们今天的主题不是IM. 你可以参考一下TechNet,看有没有你要的资料
Q: Simon : 好像在新建项目里没有Office add-ins的选项?
A: 不会的,Other Projects -> Extensibility Projects
Q: Banian_MS : harvey,使用vs2003和vs2002开发office add-in ,有什么不同吗?
A:主持人的问题很好。 两者没有大的区别,但是.NET Framework的版本不同
Q: Hank : 用.NET开发Office Add-in, 比用vs6开发有什么优越之处?
A: 很多。丰富的统一的.NET library这一点,就足以说服我们使用.NET
Q: 辣椒 : 那么你的意思是不是,用VS.NET开发的程序可以在没有安装.NET framework的系统上安装使用?
A:你开发的程序作成一个安装包,他会自动判断目标机器上是否有.NET Framework, 如果没有,先部署.NET Framework, 然后安装你的程序。
Q: Simon : 哪里能找到开发office addin 的文档,看样子用她在excel做自动报表有戏
A: MSDN Library里面有Office Development章节, 你可以参考。
目前很多Add-Ins我们都已经在使用,比如说金山词霸的Office Add Ins
Q: Samantha : 为什么用VC开发Office-add-ins很困难
A: 不会
Q: dotnet : 用.NET开发Office Add-in时,如何访问word中的公式编辑器?
A: 在Add-Ins中,你可以向在VBA中一样,去访问Word的Object models
Q: Samantha : 你的意思是说金山词霸是用.net开发的吗?
A:不是。
A:但是金山词霸有一个Office Add-Ins
Q: Simon : 那就是说用.net开发,最终还是调用COM?
A: 通过Interop
dotnet你好,具体的示例,建议你到Google上面搜索一下。
Q: Ariel : 怎么往Word文档中插入水印?
A: 建议你研究一下Word Libray 的Object Models
结束语
Banian_MS : 感谢大家的参与
Banian_MS : 今天的聊天马上要结束了
Banian_MS : 如果大家还有问题,请到微软新闻组提问:www.microsoft.com/china/community/newsgroup.asp
Banian_MS : 欢迎大家继续关注每周四的在线聊天
Banian_MS : 聊天纪录大家可参见www.microsoft.com/china/community/chat/oldchat.asp
Zhang : 感谢大家的积极参与。 再见。
Banian_MS : 谢谢大家!