.NET 3.5发布于11/07 .NET 3.0发布于11/06. 为什么大多数人仍在使用.NET 2.0?
人们一直在为以下问题开发自己的解决方案:
- 用于远程信息交换的一致消息框架(webservices,rpc等)
- 用于状态管理(例如有限状态机和工作流)的SDK
- 认证框架
- 以及更多。
两年多来,Microsoft提供了.NET 3.0,其中包含一致且有据可查的所谓工作流,通信,身份验证基础,以及构建Web应用程序的新方法。
但是,人们仍在使用统一的对象关系映射构建自己的框架来解决他们的数据库,在运行时动态扩展类和方法的自身技术(例如,客户能够自定义应用程序行为)。
一年多来,Microsoft提供了.NET 3.5,其中除其他外还包含LINQ,因此,它是一个出色的ORM和绝佳的手段,可以扩展代码并使编写代码变得更加容易。
但是环顾四周……似乎大多数人仍在使用.NET 2.0。网站是在纯ASP.NET中创建的。结合CSS,JavaScript和HTML仍可实现桌面体验。可执行文件使用的是普通的旧WinForm,工作流使用委托,事件,do / while和switch / case来实现。
无需过多讨论,我很高兴看到以下问题的具体原因:
在我们看来:为什么人们没有跳上.NET 3.5火车?
解决方案
出于同样的原因,我知道仍然使用Java 1.4-change进行编码的Java开发人员非常昂贵,而且对于公司内部人员来说,"完成它"比使用新技术重要得多,而且通常是毫无意义的。
对于许多内部工作,几乎没有理由将较旧的应用程序升级以在较新的环境中工作。
此外,大型公司不喜欢出于各种稳定性问题而进行的任何形式的更改,我们仍然会发现,他们只是因为他们认为新技术不够稳定,对它的了解不足或者未做出决定而决定在新解决方案中使用较旧的技术。他们所依赖的软件还不足以支持它。
而且,我从未使用过它,所以我不能说,但是可能是.NET 2足够满足人们的需求,并且.NET 3.5不足以警告学习/更改。甚至对于那些拥有更前沿优势的公司也是如此。
因为它没有得到很好的网络托管公司的支持。
我正在开发一个新的Web应用程序,但是我的托管公司仅提供ASP.NET 2.0支持。
2.0有效,对不对?我认为更新的内容很棒而且很酷,我喜欢保持最新状态,但是到最后,如果可行的话,通常的决定就是坚持拥有的东西。我支持一家商店运行DOS 6.2x程序已有多年(直到2004年),而我常常为此挠头。但是最终,在这种情况下,没有任何令人信服的商业理由花任何钱来前进。
我敢肯定还有其他原因。
对于所有新项目,我尝试使用3.5(或者任何最新框架)。但是,所有旧站点,为什么客户在升级时需要付费进行升级?
如果我们想在3.5中使用特定技术,则可以升级,但除非如此;否则,请升级。不要修复没有坏的东西。
- 需要学习新知识,许多"只是工作"的LOB开发人员都不会被打扰。
- 遗留代码投资,可能不需要自定义系统,但是它们可以工作,如果不破坏现有系统,则重新编码内容以使用基于Framework的系统是浪费时间。
- 开发人员软件成本。在.net 3.x中有效编码确实需要VS2008. 从2005年起将整个开发人员团队升级到该团队可能会花费很多。
- 稳定。 2.0是1.1框架的发展。 3.0和3.5包括新的v1技术(我们列出的技术)。开发人员喜欢看到技术证明自己,然后才可以向经理证明它的价值是值得的。与采用Windows一样,我们可能会看到从VS2005到VS2010,从.net 2.0到.net 4.0的更多人,因为它们将包含3.x技术的v2.
如果要Windows 2000支持,则必须保留.NET 2.0。反正还不错。
.NET 3.0包含对新项目非常有用的内容,但是许多现有项目不想为了更新而采用它们,因此需要进行大量的返工才能集成其中的任何一个。
至于:
For over one year now, Microsoft offers .NET 3.5
一年前的2007年11月采用哪种方式?是的,.NET 3.5很棒,我喜欢LINQ(尤其是LINQ to Objects)和C3.0的好处,但是更改总是要花钱。首先,有推出Visual Studio 2008的成本。然后有针对.NET 3.5(以及现在的.NET 3.5SP1)重新测试所有内容的成本。然后就是将.NET 3.5部署到所有服务器上的成本,或者是在所有客户端上都需要.NET 3.5的成本。哦,更不用说实际学习以生产性方式使用所有新技术的成本了。
它会发生,但是我们不应该期望它很快。
要进一步说明@SCdF所说的话,任何拥有大量IT员工而不是以开发人员为中心(即多数人)的公司通常都对新技术有很强的抵抗力。
IT部门从开发人员的角度看往往会落伍,因为他们看不到升级到新系统/硬件的商业价值只是为了保持领先地位。 IT部门忙于处理安全性和维护(无论是实际的还是刚刚发现的),无法与试图使他们升级到.Net 3.5的开发人员打交道。
众所周知,开发人员也不擅长与其他部门就业务价值进行沟通。当开发人员尝试获取IT或者升级到.Net 3.5的业务时,他们开始谈论自动化的工作流程,XML和Web服务,而不是谈论金钱和美分。
微软的布莱恩·普林斯(Brian Prince)在"软件技能"方面做了一个非常好的演讲,介绍了其中的一些内容。如果你很好地问他,他可能会来你公司并出席:)
我可以为自己和我的公司说话。我们仍然不使用它。
为什么?出色地
1我们的大多数用户已经安装了NET 2.0框架。无需安装其他框架。
2我们不会因为新事物而改变。它必须增加一些价值。
3要真正还清这项变更,就意味着要付出大量的工作,同样,它也必须得到回报。
4就漏洞和新问题而言,现在说它是否值得(一年还不够)还为时过早。不过,这似乎值得。
我问一个前雇主的经理为什么他还没有做出改变,答案是"我不想支持三个框架",意思是1.1、2.0、3.5.
我解释说,升级到3.5与从1.1切换到2.0并不相同(3.5是使用不同的dll(Core.dll)的2.0的扩展,而不是像1.1到2.0一样的更新的dll)。
我可以看到很多经理都在使用这种思路,因此我们可以让他们知道!
我很想知道2.0在获得"多数市场份额"之前已经推出了多长时间-我的意思是,一两年对于我们我来说听起来可能很长,但是我们必须记住新语言已经要发布,则人们必须对其进行培训,然后他们必须足够了解它,才能将其"出售"给管理层。而且,VS2005对很多人来说"足够好",升级到VS2008以支持较新的语言版本涉及成本–不仅是金钱,而且是时间。
大多数人仍然使用Windows XP的原因相同!
对于政府处理,3.5框架尚未在某些环境中获得批准,因此我们不得不使用2.0或者3.0。
最大的挑战是为业务升级辩护,尤其是在我们正处于全球低迷时期。
3.5中必须有一项特定的优势或者技术,而项目(可能是未开发的项目)绝对不能没有它来推动它。
我正在尝试为一个大公司解决这个问题,因此商业利益必须超过现状。在当前的气候下,"留住人才"也不会削减人才,尤其是随着越来越多的候选人涌现。
几份工作之前,我的处境很有趣。作为该公司ASMX Web服务的原始作者,有人问我有关对其进行版本控制的信息。特别令人担忧的是,我基于手工制作的XSD提供了服务,而没有其他人真正真正了解XSD。
我建议使用WCF,因为它们不需要自定义XML格式,也不必使用XSD:只需在代码中定义数据协定即可。
即使在我解释说.NET 3.5 SP1相当于.NET 2.0的几个Service Pack以及一些新程序集之后,它们仍然看着我,就像我将要变得暴力一样。显然,升级.NET版本是一个漫长而昂贵的过程。 .NET 1.1到.NET 2.0迁移的经验教训。
在向WCF迁移方面,朝着正确的方向迈出了很小的一步:请参阅ASMX Web服务是一项传统技术。