我的应用程序使用2.0。在将来的某个时候,我可能想要开始使用在以后的框架版本中添加的更新功能。我应该等到那时候吗?或者现在更新到最新的.NET 3.5是否有优势?
我想当我准备好迎接下一个春天的4.0版本时,它将会被淘汰。也许我应该坚持使用2.0以获得我的秋季版本并为我的客户节省高清空间并安装另一个框架版本的时间?
答案 0 :(得分:8)
在我看来,您应该随附应用程序所需的内容。否则,您将无缘无故地延长安装时间,并且因为您没有理由再次使用客户的高清空间。
答案 1 :(得分:7)
如果您计划升级到3.5 SP1,则应考虑使用the New .NET Framework Client Profile Setup Package。
.NET 3.5 SP1为构建.NET客户端应用程序的开发人员引入了一个新的安装程序包选项,称为“.NET Framework客户端配置文件”。这提供了一个新的安装程序安装程序,可以在尚未安装.NET Framework的计算机上为.NET客户端应用程序提供更小,更快,更简单的安装体验。
.NET Framework客户端配置文件设置仅包含.NET Framework中通常用于客户端应用程序方案的那些程序集和文件。例如:它包括Windows窗体,WPF和WCF。它不包括ASP.NET以及主要用于服务器方案的库和组件。我们希望这个安装包的大小约为26MB,并且可以比完整的.NET Framework安装包快速下载和安装。
.NET Framework Client安装程序包中的程序集和API与完整.NET Framework安装程序包中的程序集和API完全相同(它们实际上是相同的二进制文件)。这意味着应用程序可以同时定位客户端配置文件和.NET 3.5 SP1的完整配置文件(无需重新编译)。所有使用.NET Client Profile设置工作的.NET应用程序都可以自动使用完整的.NET Framework。
答案 2 :(得分:2)
我总是使用最新版本的Framework。这对用户来说可能是一个很小的前期负担,但是应用程序在升级之间的使用寿命要长得多。这可能对你很重要,也可能不重要,但请考虑:
如果您在2005年使用.NET 1.1发布了一个应用程序,那么您的应用程序运行的框架现在已不在主流支持范围内,并且可能存在未修补的安全漏洞或Microsoft可能无法处理的其他严重问题,以及您在你自己的代码中无法弥补。您在2008年唯一的选择是让您的用户立即升级他们的框架版本。而且,众所周知,让用户及时更新内容可能会有问题。
同样,请考虑一下2011年的情况。如果您现在为.NET 3.5编程,那么您的应用程序(如果已发货)将更长久可行。如果您现在为.NET 2.0发货,那么在几年后您将不得不说服您的用户升级他们的框架(代码对他们没有任何好处,请记住),以便您可以正确支持这个应用程序。
此外,如果您计划实施3.5级功能(例如明年的LINQ to SQL),那么现在为您提供3.5而不是2.0,这对您来说是有意义的,因为它会使部署后来不再是问题。你。
答案 3 :(得分:1)
您应该使用任何版本的.Net分发您的应用程序。您测试的版本最多。如果您在.Net 2.0中进行了所有开发和测试,那么请使用2.0。
但是你可能欠你的客户测试3.5并发送它,相反,为了自2.0发布以来在框架中修复的任何错误。该框架已经非常庞大,以至于分发早期版本可能没有任何好处,即使它是在WCF,WPF等之前,除非您支付带宽成本来分发它,或者目标设备的存储空间有限空间。
答案 4 :(得分:1)
请记住,对用户来说“轻微负担”可能意味着接受和拒绝您的申请之间存在差异。
我为一家公司运营IT。我们公司的标准不是3.5。您必须拥有一个非常灵活的应用程序才能让我将每个人升级到.NET 3.5,以便您的应用程序可以运行。换句话说,可能没有发生。我会发现另一个应用程序不会给已经超载的IS部门增加额外的“小负担”。
其他人评论了您真正要使用的功能。如果1.1或2.0具有真实的功能集,则需要坚持使用它。
答案 5 :(得分:0)
我很欣赏.NET 3.5中的新语言功能,但在您使用它们之前,我会避免升级到最新的运行时,因为它是您的用户可能需要处理的更大的文件/安装。
答案 6 :(得分:0)
Linq to SQL的功能,以及Linq Extensions一般非常值得升级。
至于您对高清空间和安装时间的担忧,IMO与大多数新系统的现代系统无关。较新版本的框架(3.0和3.5)实际上只是“刷新”2.0框架。除非您的客户/市场是旧PC,否则我认为您将在开发团队的功能和生产力方面做出良好的权衡,而不是因为他们无法冒险在他们的硬盘上添加另外20Mb的风险而失去客户的风险(我弥补了20mb的号码,有人可以打电话给BS。
答案 7 :(得分:0)
wiki article很好地展示了新功能。
答案 8 :(得分:0)
我同意EBGreen和Chris,但我想补充一点,您可能要考虑针对较新版本的框架测试您的应用程序,并允许您的应用程序针对您认为的那些版本运行能够很好地对抗(这可以使用一些配置技巧来完成,但不幸的是,我找不到它的引用)。这样,您的应用程序可能会对客户端可能已安装的版本起作用。
我建议这样做是因为:
尽管如此,我缺少一些您可能拥有的信息,例如分发方式,客户机器的分析等等。
答案 9 :(得分:0)
我发现2.0版本是最容易定位和部署的版本,因为很多人已经安装了它,如果你的客户群有相当大一部分使用Vista,你可以考虑升级到3.0。 上面的版本几乎总是需要安装,这对某些用户来说可能是一种痛苦。
编辑:“框架版本不支持”参数不含水,因为3.0是2.0的扩展,3.5是它的扩展。根据定义,只要3.5是支持2.0。 1.1版是唯一一个完全独立的运行时版本,不再受支持。
答案 10 :(得分:0)
我想问的一个问题是你想使用.NET 3.5的哪些功能?许多大肆宣传的功能实际上是C#3.0功能,而不是特定于.NET 3.0 / 3.5的功能,并且由于C#3.0使用与.NET Framework 2.0相同的CLR,因此您也可以在2.0应用程序中自由使用它们。这只需要VS 2008。
例如:
我在自己的.NET 2.0项目中使用了很多这些项目而没有任何问题。
如果你想要的框架特定功能(如Linq,WPF等),那么你必须升级。
答案 11 :(得分:0)
我同意您应该使用您的应用程序所需的内容,但您还应该为将来的应用程序做好准备。
如果您有一些备用周期,您可以在运行3.5 Runtime的SCM中迁移应用程序的单独分支,当您实际需要升级时,您有一个工作分支(假设您继续使用它)与一些双周合并的最新日期。)
答案 12 :(得分:0)
不要忘记.Net 4.0与以前版本的框架略有不同。 .Net 4.0将并排安装(SxS).Net 3.5并返回。如果您升级您的应用程序以使用.Net 4.0,那么您的长期用户(也称为以前的版本)最终将不得不安装该框架的全新版本。
如果您考虑使用您的应用和框架在客户端计算机上消耗多少磁盘空间,那么不要忘记这种额外空间的“隐藏”使用。如果您现在将应用程序从2.0升级到3.5,那么您的应用程序可能能够以更完整的功能存在更长时间,而不会强迫用户安装耗尽另外20多MB空间的第二个框架。
答案 13 :(得分:0)
.net 3.5sp1 bootstrapper太慢了,特别是如果你使用的是asp.net应用程序(与windows窗体相比),在只有.net 2.0的机器上,它会加载整个框架,这就意味着你很关注在适度的互联网连接和机器速度下下载20-30分钟+安装时间。