我正在开发一些生产软件,在 .NET 框架上使用 C#。我真的很希望能够在项目中使用 LINQ。我相信它需要 .NET 3.5 版(如果我错了,请纠正我)。此应用程序是一个商业软件应用程序,需要在客户的工作 PC 上运行。假设他们有 .NET 3.5,或者假设他们不介意升级到最新版本是否合理?
我只是想了解强制框架升级以运行应用程序的共识是什么。
我正在开发一些生产软件,在 .NET 框架上使用 C#。我真的很希望能够在项目中使用 LINQ。我相信它需要 .NET 3.5 版(如果我错了,请纠正我)。此应用程序是一个商业软件应用程序,需要在客户的工作 PC 上运行。假设他们有 .NET 3.5,或者假设他们不介意升级到最新版本是否合理?
我只是想了解强制框架升级以运行应用程序的共识是什么。
我会说假设他们拥有 .NET 3.5 是不安全的。
由于升级时他们非常非常不可能遇到任何问题,因此更改任何内容总是存在风险。我知道我不介意升级,但我是一名开发人员。
我认为这是可以采取任何一种方式的事情之一,他们要么不会三思而后行,只是升级,要么他们可能会因此而出问题。我认为这取决于您的客户,“低技术”客户可能会三思而后行,因为他们可能无法完全理解它,这会让他们感到紧张。
如您所说,要使用 LINQ,您需要拥有 .NET 3.5。为了确认这一点,LINQ 的维基百科页面说:
语言集成查询(LINQ,发音为“链接”)是一个 Microsoft .NET Framework 组件,它使用类似于 SQL 的语法向 .NET 语言添加本机数据查询功能。LINQ 引入的许多概念最初是在 Microsoft 的 Cω 研究项目中测试的。 LINQ 于 2007 年 11 月 19 日作为 .NET Framework 3.5 的一部分发布。
由于机器可能已经安装了一些以前版本的 .NET,您可能会发现Scott Hanselman(Microsoft 员工)的Smallest Dot NET这个站点很有用。它计算出您需要更新的最小更新(当前为 3.5 SP1)。
至于在客户的机器上期待它是否合理,我想这取决于你正在创造什么。我的感受是:
小型低成本应用程序 =
可能还没有 以低成本出售的小型应用程序(可能以 3.5 为目标)有点早,并且由于烦恼因素可能会减少您的受众规模。
带有安装程序的大型商业应用程序 = YES
如果它是一个大型商业应用程序(您的基线规范已经是 WInXP 或在 .NET 2.0 上运行的更新版本),我认为客户不会在意。将可再发行组件放在安装程序磁盘上!
请记住,出于多种原因,应该采用任何新技术。您对使用 LINQ 有什么需求,它是否难以复制?如果 LINQ 为您提供了您真正需要的功能,您的成本和时间表可能会从选择它中受益。您的公司可以通过以更低的价格出售产品或增加利润来获得收益。
正如Nescio所指出的,最后一个选择是,如果您只需要 Linq to Objects(例如,您不需要 Linq to SQL 或 Linq to XML),那么LinqBridge可能是一种选择。
由于 .NET Framework 本身是免费分发的,因此人们很少反对升级它。但是,系统管理员的可用性或安装可能存在问题。
签出:LinqBridge
与您的销售副总裁交谈。严重地。如果 3.5 是最前沿的(老实说我不知道),那么他/她很可能不会非常喜欢这个想法。如果是几年前,那么他们会更容易接受。作为一个强制升级第三方软件的产品,不是不可逾越的短板,但也无济于事。
这取决于您的目标受众和您的应用程序的重要性。一般来说,此时您可能无法假设您的受众已经拥有 .NET 3.5。安装它可能需要很长时间,如果他们还没有 .NET 3.5 的其他先决条件,可能会非常乏味。
因此,除非它是一个相当全面和/或重要的企业软件,否则我强烈建议不要使用它。
您应该阅读这个 Hanselman 的条目:http ://www.hanselman.com/blog/SmallestDotNetOnTheSizeOfTheNETFramework.aspx 如果涉及到安装并因此最小化 .NET 框架的安装大小,这真的很有趣。它应该以某种方式回答您的问题。
只要您知道您不需要支持 Windows 2000 或任何旧版本的 Windows,那么需要最新和最好的框架版本就不会觉得太繁重。
一些不太幸运的开发人员被旧的框架版本卡住了,因为他们需要支持旧的操作系统版本。
.Net 3.5 尚未在 Windows PC 上自动更新,我不会打赌标准客户“按原样”拥有它。
请注意,您可能必须决定是否使用 .Net3.5 SP1,因为在 3.5 和 3.5SP1 之间存在一个小的 DataSet 向后不兼容(可能还有一些我没有看到的)。
如果您的客户是一家大公司,您可能要考虑他们通常非常保守(我的客户仍然是 XP/IE6,有时甚至是 W2K/IE6)。
注意 Windows 2000 不支持 2.0 以上的任何框架。因此,您的应用程序将仅支持以下操作系统:
祝你好运!