locked
FAQs: 共享外接程序和VSTO应用程序级外接程序之间的相同点和不同点有哪些? RRS feed

  • 问题

  • 为了帮助大家更好地学习 VSTO 技术,微软论坛技术支持团队编辑了一些列的 "VSTO 常见问题及解答" 精华帖。

    本帖的主题是:共享外接程序和VSTO应用程序级外接程序之间的相同点和不同点有哪些?

    如果您觉得这个帖子对您的学习、工作有所帮助,请再把这个帖子分享给你的同学、同事和朋友。

    如果您想阅读更多的 "VSTO 常见问题及解答",请打开索引页面:
    http://social.msdn.microsoft.com/Forums/zh-CN/vstudiozhchs/thread/ed10f3de-40bb-4f16-81f9-25ace1f152ba


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们。
    2011年2月28日 7:28

答案

  • 共享外接程序和VSTO应用程序级外接程序之间的相同点有:

    1.       它们都是注册在宿主应用程序的注册表键值中的,比如HKCU\Software\Microsoft\Office\Word\Addins. 这些外接程序被Office 加载后,都会出现在COM Add-in 对话框。

    2.       基于COM接口上编译它们。这些外接程序通过利用Office对象模型来进行Office的延伸。可以想Office应用程序添加可扩展性的界面,比如自定义任务窗格 功能区,Outlook窗体区域。

    因为在共享外接程序和VSTO应用程序级外接程序之间有很多的不同点,所以我们仅列出其中的关键点。

    1.       正如名字所提示的,一个共享外接程序可以被很多不同的Office应用程序所共享。所以,共享外接程序需要额外的代码分辨宿主应用程序。 然而在VSTO外接程序中,一个外接程序只能服务一个宿主应用程序。所以,在我们的外接程序中,我们正在工作的是强类型的宿主应用程序。我们再也不需要把这个应用程序对象转换为另外的, 或者用晚绑定来调用它的方法。

    2.       为了在共享外接程序中建立可扩展性的界面,比如功能区,自定义任务窗格Outlook窗体区域, 开发人员须实现三个接口: Office.IRibbonExtensibilityOffice.ICustomTaskPaneConsumerOutlook.FormRegionStartup。无论建立那种可扩展性的界面,都需要手动地写大量的代码。然而,如果用VSTO,这些工作都被封装起来了。我们仅需要想项目添加一个新的RibbonUserControl,或者FromRegion 条目,这是因为现在支持在VSTO的设计器中设计这三种用户界面。我们所需要做的就是拖拽控件,设置属性,像在Windows窗体设计器右击产生事件处理程序。

    3.       另外一个重要的不同点就是模型的安全性。对于IDTExtensibility2 共享外接程序,一直以来都没有拥有任何的代码访问安全性策略这种需求。所以,在Office加载共享外接程序时,我们没有必要调用caspol.exe 外接程序的程序集授予完全信任权限。对于VSTO,直到版本2008,我们都用的是.NET安全性策略。然而,VSTO 2008 用的是ClickOnce部署和验证码模型。

    4.       VSTO建立一个新的应用程序域用来加载一个VSTO外接程序。所以,它们相互都不会影响。开发人员没有必要担心 Outlook 不会关闭”的问题。当VSTO 外接程序关闭时,相应的应用程序域也会卸载,同时回收分配应用程序使用的资源。

    5.       VSTO外接程序默认是被安装到HKCU (单个用户)下的,但是共享外接程序可以被部署到HKLM。所以,如果我们想要把VSTO外接程序部署给所有的用户,我们须做一些额外的手动工作。更多的信息,请参考:http://blogs.msdn.com/mshneer/archive/2008/04/24/deploying-your-vsto-add-in-to-all-users-part-iii.aspx

    相关的论坛帖子:http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/3f97705a-6052-4296-a10a-bfa3a39ab4e7/

    更多的有关VSTOFAQ请看:

     http://social.msdn.microsoft.com/Forums/zh-CN/vstudiozhchs/thread/ed10f3de-40bb-4f16-81f9-25ace1f152ba

     


    如果您对我们的论坛在线支持服务有任何的意见或建议,请通过邮件告诉我们

    2011年2月28日 7:30