C# VSTO开发-VS2010/.NET 4.0中的关键改进?

C# VSTO开发-VS2010/.NET 4.0中的关键改进?,c#,.net,visual-studio-2010,.net-4.0,vsto,C#,.net,Visual Studio 2010,.net 4.0,Vsto,我正试图向我的老板说明为什么我们应该在即将推出的Excel工作簿VSTO应用程序中使用VS2010。我以前没有使用过VSTO,但使用过VBA。随着2010年的临近,我想了解一下所做的改进,看看是否值得使用2010来开发这个应用程序 到目前为止,我已经阅读了两个主要的改进是,而且 我只是想知道是否还有什么我不知道的,或者这里是否有人真的在VSTO中开发,并且使用了2010年和2008年,并且可以帮助我做一个案例/用信息武装我 我老板最关心的是在Citrix服务器上部署.NET4.0运行时。。。然而

我正试图向我的老板说明为什么我们应该在即将推出的Excel工作簿VSTO应用程序中使用VS2010。我以前没有使用过VSTO,但使用过VBA。随着2010年的临近,我想了解一下所做的改进,看看是否值得使用2010来开发这个应用程序

到目前为止,我已经阅读了两个主要的改进是,而且

我只是想知道是否还有什么我不知道的,或者这里是否有人真的在VSTO中开发,并且使用了2010年和2008年,并且可以帮助我做一个案例/用信息武装我

我老板最关心的是在Citrix服务器上部署.NET4.0运行时。。。然而,似乎在3.5中,我们必须部署VSTO运行时和PIA,等等。。。因此,2010年的部署真的会更容易吗?因为只安装4.0运行时比安装“VSTO运行时”和PIA等更好还是我在这里遗漏了什么?这里的任何人都可以在企业中部署VSTO应用程序,并可以与此对话?

另外,我也在努力争取在这个应用程序中使用C#over VB.NET有人知道为什么(除了我对语法偏好的偏见)使用C#而不是VB更好吗?VB VSTO开发中缺少哪些关键功能?我读过,其中一个介绍了Excel对象模型类的LINQ启用,但上面说的是“一组C#类”。。。有人知道他们的字面意思是C#-所以这在VB.NET中不起作用,还是他们只是说代码是用C#编写的有人用VB使用过这些电动工具吗?我现在要下载并使用它,但再次提供帮助将不胜感激


非常感谢您提供的任何信息。

我还没有将VS2010用于Office开发,但我已经将VS2008用于Word加载项和Ribbon,我还使用了VB.NET

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

我发现的另一个问题是,当时没有针对VS2008/Office/Addins的书籍,这使事情变得困难。此外,web上充斥着各种版本的VSTO、Visual Studio中的示例,这使得查找工作示例非常困难

VB有一个优势,因为它支持可选参数。C#得到了他们,不确定他们是不是得到了4.0。如果您有VBA或VB中的现有代码,我建议您继续使用VB。电动工具可以使用两种语言

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


您可以构建一个小型原型来进行尝试…

我已经获得了一个VSTO加载项,用于在Citrix Xenap5和RES PowerFuse之间运行Outlook 2007。加载项由Outlook加载,并且在安全中心可见并处于活动状态。我学到的一件重要事情是,您必须创建一个自定义installera,因为您需要将应用程序安装到本地计算机HKLM上,以便Citrix Environment获取Office插件。看起来是这样的,Office 2007有一个热修复程序来启用此功能(KB976811可通过KB976477获得)


我仍在纠结的问题是,当从Citrix运行时,Outlook会加载非自定义视图。加载项是一个WPF应用程序,构建在PRISM库之上,将VSTO 3.0部署到企业:

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

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

请注意,如果用户在打开office应用程序时收到提示,询问“是否要安装/不安装此加载项等”,则custominclusionlist项目未正确配置,或者您缺少注册表项

在Citrix上:

这似乎很有效。最主要的是让citrix服务器完全更新到最新的Office版本,并在部署之前安装所有必备组件。如果您有一个维护良好的修补系统,那么这是微不足道的。正如另一位回答者所说,Citrix没有什么特别之处。它将只工作,应该安装到香港大学,以避免任何问题

VSTO的PowerToys:

是的,这些很棒。无论是VB还是C#,它们都能同样出色地工作。他们是语言不可知论者,我认为你提到的说法只是意味着他们是用C语言写的。 在部署时,请确保在本地或GAC中包含扩展程序集。即使用户已经安装了Office 2007 PIA组件,也不会将其安装到用户计算机上

在VB.net上使用C#时:

无可奉告!是的,我会选择C#,尽管有些人抱怨VSTO项目比VB更冗长,我认为这大部分是遗留问题。寻找那些有30个可选参数的非常糟糕的方法,你现在有多种方法来处理这个问题。自己编写一个扩展方法,或者大部分时间使用可用的扩展方法