VSTO开发 - VS2010 / .NET 4.0的主要改进?

时间:2010-03-29 14:44:03

标签: c# .net visual-studio-2010 .net-4.0 vsto

我试图向我的老板说明为什么我们应该将VS2010用于即将推出的Excel Workbook VSTO应用程序。我之前没有使用过VSTO但是使用过VBA。随着2010年即将来临,我想了解一下改进,看看是否值得使用2010来开发此应用程序。

到目前为止,我已阅读了两项主要改进,ease of deployments以及debugging / com interop improvements ...

我只是想知道是否还有其他任何我不知道的事情,或者是否有人在VSTO实际开发并使用了2010年和2008年都可以帮助制作一个案例/给我提供信息。

我的老板主要担心的是在Citrix服务器上部署.NET 4.0运行时...但是看起来有了3.5,我们将不得不部署VSTO运行时和PIA等......所以真的不会2010年部署更容易,因为只安装4.0运行时比安装'VSTO Runtime'以及PIA等更好? 或者我在这里缺少什么?这里的任何人都可以在企业中部署VSTO应用程序,并且可以与之对话吗?

另外 - 我也试图在这个应用程序上使用C#而不是VB.NET。 有没有人知道任何关键原因(除了我对语法偏好的偏见)最好使用C#over VB来做到这一点? VB VSTO开发中缺少哪些关键功能?我已经阅读了VSTO Power Tools,其中一个描述了Excel对象模型类的LINQ enalbment - 然而它说的是“一组C#类”。 ..有没有人知道它们是否真的意味着C# - 所以这对VB.NET不起作用,或者它们只是意味着代码是用C#编写的? 有人曾经使用过这些电动工具吗?我打算下载&现在玩它,但任何帮助再次非常感谢

非常感谢任何信息。

3 个答案:

答案 0 :(得分:2)

我还没有使用VS2010进行Office开发,但是我使用了VS2008 for Word addins和Ribbon,我使用了VB.NET。

部署全部取决于您对安全性的严格程度。我在美国空军的网站上,由于VSTO和Office的限制,它需要最高的安全设置,这需要签名的程序集,以及一些使用C ++的黑客攻击,以使工作完美。我听说他们修复了新版本中的大部分问题。

我发现的另一个问题是当时没有任何针对VS2008 / Office / Addins的书籍,这让事情变得困难。此外,各种版本的VSTO,Visual Studio中的网页都混杂着,这使得查找工作示例变得非常困难。

VB具有优势,因为它支持可选参数。 C#正在获取它们,不确定它是否是4.0,他们得到它们。如果你有VBA或VB中的现有代码,我建议你继续使用VB。 Power Tools可以使用这两种语言。

至于在Citrix上部署.NET4.0;我看不出这是一个问题,但我认为你确实需要使用那个特殊的安装程序配置文件登录。

你可以建立一个小型原型来试试......

答案 1 :(得分:2)

我已部分获得VSTO插件,以便与使用RES PowerFuse从Citrix XenApp5运行的Outlook 2007一起使用。插件由Outlook加载,并且从安全中心可见并处于活动状态。我学到的一件重要事情是,您必须创建自定义安装程序,因为您需要将应用程序安装到本地计算机HKLM,以便Citrix环境获取Office插件。这看起来像supported with Office 2010,并且有一个Office 2007的修补程序可以启用此功能(KB976811可通过KB976477获得)。

我还在讨论的问题是,从Citrix运行时,Outlook中没有加载我们的自定义视图。 addin是一个构建在PRISM库之上的WPF应用程序

答案 2 :(得分:2)

将VSTO 3.0部署到企业版:

没有什么特别棘手的。我肯定会建议你使用你公司的包装系统,如Altiris或SCCM进行部署。打包时确保添加CustomInclusionList项目(并根据MSDN docos自定义)+如果您有代码签名证书,则可选择签署程序集。

如果您处于锁定环境中,则需要使用打包技术才能将该软件包安装为管理员。否则部署将是一场噩梦。 在让包装商重新编写Visual Studio生成的包时要小心。您需要确保保留所有注册表项,自定义操作等 您可能正在部署到HKCU配置单元,这意味着用户将无法自行卸载插件(除非他们是管理员)。

请注意,如果用户在打开办公室应用程序时收到提示,询问“您是否要安装/不安装此插件等”,则无法正确配置custominclusionlist项目或缺少注册表项。

在思杰:

这似乎工作正常。最重要的是让Citrix服务器完全更新到最新的Office版本,并在部署之前安装所有先决条件。如果你有一个维护良好的补丁系统,这是微不足道的。正如另一位回答者对Citrix没什么特别的说法。它会起作用,应该安装到HKCU以避免任何问题。

VSTO的PowerToys:

是的,这些都很棒。它们在VB或C#中同样运行良好。它们与语言无关,我认为你所引用的语句只是意味着它们是用C#编写的。 部署时,请确保在本地或GAC中包含Extensions程序集。它将不会安装到用户计算机上,即使它们已经安装了Office 2007 PIA组件。

在VB.net上使用C#:

没有评论!是的,我会去C#,虽然有些人抱怨它比VSTO项目的VB更冗长,我认为大部分都是遗产。寻找具有30个可选参数的非常糟糕的方法,你现在有多种处理方法。自己编写扩展方法或大部分时间使用Excel.Extensions和Word.Extensions命名空间中可用的扩展方法。您还可以在静态助手类中编写重载,并使用您将要使用的参数调用Open等方法。 最终,你必须根据大多数程序员更好的方式做出决定,结果是你的程序员资源的优势所在。你可能是C#的大师,但如果其他9个人都是VB.net wizs那么在VB.net做项目是有意义的。仍然尝试转换它们,但真正的决定是使用techlead / manager而不是代码猴子。