VSTO开发 - VS2010 / .NET 4.0中的关键改进是什么?

4
我正试图向我的上司说明为什么我们应该在即将到来的Excel Workbook VSTO应用程序中使用VS2010。我以前没有使用过VSTO,但使用过VBA。随着2010年的到来,我想了解改进之处,看看是否值得使用2010来开发此应用程序。
到目前为止,我已经阅读了两个主要改进:部署的便利性调试/COM互操作改进...
我只是想知道是否还有其他我不知道的东西,或者这里是否有人实际上正在开发VSTO并已经使用了2010以及2008,可以帮助我提出论据/提供信息。
我的老板的主要关注点是在Citrix服务器上部署.NET 4.0运行时...然而,似乎使用3.5,我们必须部署VSTO运行时和PIA等...所以,使用2010部署会更容易,因为安装仅4.0运行时比必须安装“VSTO运行时”以及PIA等更好?或者我错过了什么?这里有人在企业中部署VSTO应用程序并可以谈论这个问题吗? 另外,我也试图争取在此应用程序中使用C#而不是VB.NET。除了我对语法偏好的偏见之外,是否有任何关键原因可以说明为什么使用C#比VB更好?VB VSTO开发缺少任何关键功能吗?我已经阅读了VSTO Power Tools,其中之一描述了Excel对象模型类的LINQ启用-但它说“一组C#类”...是否意味着他们真的是C#-所以这将无法与VB.NET一起使用,还是他们只是指代码是用C#编写的?有人曾经用VB使用过这些工具吗?我现在要下载并尝试使用它,但再次获得任何帮助都将非常感激。
非常感谢提供的任何信息。
3个回答

2

我还没有使用过VS2010进行Office开发,但我已经用过VS2008进行Word插件和Ribbon的开发,我使用的是VB.NET。

部署取决于您对安全性的严格程度。我曾在美国空军基地工作,那里需要最高安全设置,这需要签名程序集,并通过C++的一些技巧来完美地解决问题,因为VSTO和Office存在一些限制。我听说他们在新版本中解决了大部分问题。

我发现的另一个问题是当时没有任何关于VS2008/Office/Addins的书籍,这使得事情变得困难。此外,网络上充斥着各种版本的VSTO、Visual Studio的示例,使得找到可行的示例非常困难。

VB有/曾经有一个优势,因为它支持可选参数。C#正在获得它们,不确定是否是4.0版本。如果您已经有VBA或VB的现有代码,我建议继续使用VB。Power Tools将与两种语言一起使用。

至于在Citrix上部署.NET4.0,我认为这不会成为问题,但我认为您需要使用特殊的Installer配置文件登录。

您可以构建一个小型原型来尝试一些东西...


好的答案。此外,更好地支持设计师浮现自定义任务窗格。将类型嵌入程序集中(这意味着您可以删除额外的 PIA 依赖项)。 - Anonymous Type

2
我已经部分地让一个VSTO插件在Citrix XenApp5上与RES PowerFuse配合使用Outlook 2007正常工作。该插件由Outlook加载,在安全中心中可见并活动。我学到的一个重要事情是,你必须创建一个自定义安装程序,因为你需要将应用程序安装到本地机器(HKLM),以便Citrix环境可以拾取Office插件。这似乎是Office 2010支持的(链接1),对于启用此功能的Office 2007,有一个热补丁(KB976811通过KB976477提供)。

我仍然在努力解决的问题是,当从Citrix运行时,Outlook不会加载任何我们的自定义视图。该插件是基于PRISM库构建的WPF应用程序。


请将以下与编程有关的内容从英语翻译为中文。仅返回已翻译的文本:也许将第二段转化为单独的问题会有更好的回答机会。可能需要将第二段分解成问题形式以获得更好的答案。 - Anonymous Type

2
部署VSTO 3.0到企业环境:
这没有什么特别棘手的地方。我强烈建议您使用公司的打包系统,例如Altiris或SCCM进行部署。在打包时,请确保添加CustomInclusionList项目(并根据MSDN文档进行自定义),如果您有代码签名证书,则可以选择对程序集进行签名。
如果您处于被锁定的环境中,则需要一种打包技术来允许以管理员身份安装软件包。否则,部署将是一场噩梦。当让打包人员重新制作Visual Studio生成的软件包时要小心。您需要确保所有注册表键、自定义操作等都得到保留。您可能会部署到HKCU hive,这意味着用户将无法自行卸载插件(除非他们是管理员)。
请注意,如果用户在打开办公应用程序时收到提示,询问“是否要安装/不安装此插件等”,则表示CustomInclusionList项目未正确配置或缺少注册表键。
在Citrix上:
这似乎很好用。主要是确保Citrix服务器已完全更新到最新的Office版本,并在部署之前安装了所有先决条件。如果您有一个良好维护的补丁系统,则这很简单。如其他回答者所说,在Citrix上没有什么特别的。它会正常工作,应该安装到HKCU以避免任何问题。
VSTO的PowerToys:
是的,这些很棒。无论是从VB还是C#都能很好地工作,它们是语言不可知的,我认为您所提到的声明只是指它们是用C#编写的。在部署时,请确保包括Extensions程序集,可以本地或在GAC中安装。即使用户已经安装了Office 2007 PIA组件,它也不会被安装到用户机器上。
关于使用C#而不是VB.net:
没有评论!是的,我会选择C#,尽管有些人抱怨它比VB在VSTO项目中更冗长,但我认为这大多是过时的。现在你有多种处理这种情况的方法。编写自己的扩展方法或大多数时间使用Excel.Extensions和Word.Extensions命名空间中可用的方法。此外,您可以在静态帮助器类中编写重载,并仅调用诸如Open之类的方法,其中只使用参数。最终,您必须根据大多数程序员擅长的领域做出决策,并且因此要考虑您的组织在程序员资源方面的优势所在。如果您精通C#,但其他9个人都是VB.net专家,则使用VB.net进行项目是有意义的。尝试转换他们,但真正的决策取决于技术领导/经理而不是代码开发人员。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接