.NET 3.5 于 11/07 发布 .NET 3.0 于 11/06 发布。 为什么大多数人仍在使用 .NET 2.0?
人们一直在针对以下问题开发自己的解决方案:
- 用于远程信息交换的一致消息传递框架(Web 服务、rpc 等)
- 等状态管理的 SDK
- 用于有限状态机和工作流身份验证框架
- 等等。
两年多来,Microsoft 提供了 .NET 3.0,其中包含一致且有据可查的所谓工作流、通信、身份验证基础以及构建 Web 应用程序的新方法。
然而,人们仍在构建自己的框架,使用一致的对象关系映射来寻址他们的数据库,使用自己的技术在运行时动态扩展类和方法(以便客户能够自定义应用程序行为,例如)。
一年多以来,Microsoft 提供了 .NET 3.5,其中包含 LINQ,因此提供了出色的 ORM 以及扩展代码并使编写代码变得更加容易的绝佳方法。
但环顾四周……似乎大多数人仍然使用 .NET 2.0。 网站是用纯 ASP.NET 创建的。 桌面体验仍然是通过 CSS、JavaScript 和 HTML 的组合来实现的。 可执行文件使用普通的旧 WinForms,工作流程是通过委托、事件、do/while 和 switch/case 实现的。
无需太多讨论,我很高兴看到以下问题的具体原因:
在您看来:为什么人们不跳上.NET 3.5 火车?
People have been developing own solutions to the following problems:
- Consistent messaging frameworks for remote information exchange (webservices,rpc,...)
- SDK's for state managements for things such as Finite State Machines and Workflows
- Authentication Frameworks
- And much more.
For over two years now, Microsoft offers .NET 3.0 which contains consistent and well documented so called Foundations for Workflows, Communication, Authentication and a new way to build web apps.
However,... people were still building own frameworks with consistent object relational mapping to address their databases, own techniques to dynamically extend classes and methods at runtime (for customer to be able to customize application behaviour e.g.).
For over one year now, Microsoft offers .NET 3.5 which - amongst others - contain LINQ and therefor a great ORM and wonderful means to extend your code and make it much easier to write code after all.
But look around... it seems as if the majority still uses .NET 2.0. Websites are created in plain ASP.NET. Desktop experience is still achieved with a combination of CSS, JavaScript and HTML. Executables are using plain old WinForms, workflows are implemented with delegates, events, do/while and switch/case.
Without too much discussion, I would be glad to see concrete reasons for the following question:
In your opinion: Why is it that people don't jump onto the .NET 3.5 train?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(15)
出于同样的原因,我认识仍然使用 Java 1.4 进行编码的 Java 开发人员,更改的成本很高,而且对于在公司内部工作的人来说,完成工作比使用新技术要重要得多,更改通常毫无意义。
对于许多内部工作来说,没有理由升级旧的应用程序以在新的环境中工作。
此外,大公司不喜欢出于各种稳定性问题而进行任何形式的改变,您仍然会发现他们决定在新解决方案中使用旧技术,仅仅是因为他们认为新技术不够稳定,对此了解不够或他们所依赖的软件没有足够多的支持。
而且,我从未使用过它,所以我不能说,但情况可能是 .NET 2 足以满足人们的需求,而 .NET 3.5 没有提供足够的功能来保证学习/改变参与其中,即使对于那些愿意采用更前沿技术的公司也是如此。
For the same reason I know Java developers who still code in Java 1.4-- change is expensive and, to people doing work internal to companies where Getting It Done is so much more important than using new technologies, often pointless.
For a lot of internal work there is little justification for upgrading older applications to work in newer environments.
Also, large corperations are not fond of any sort of change for various stability concerns, you will still find them making decisions to use older technology in new solutions simply because they believe the new technology is not stable enough, not enough is known about it or not enough of the software they rely on support it.
And, I've never used it so I couldn't say, but it may be the case that .NET 2 is Good Enough for people's needs, and that .NET 3.5 doesn't offer enough to warrent the learning / changing that is involved, even for companies that are OK with the more cutting edge.
因为它没有得到网络托管公司的良好支持。
我正在开发一个新的 Web 应用程序,但我的托管公司仅提供 ASP.NET 2.0 支持。
Because it is not well supported web hosting companies.
I'm developing a new web application but my hosting company only provides ASP.NET 2.0 support.
如果您想要 Windows 2000 支持,则必须继续使用 .NET 2.0。 无论如何,情况并没有那么糟糕。
If you want Windows 2000 support, you'll have to stay with .NET 2.0. It's not that bad anyway.
我可以代表我自己和我的公司发言。 我们仍然不使用它。
为什么? 出色地
1- 我们的大多数用户已经安装了 NET 2.0 框架。 无需安装其他框架。
2-我们不会仅仅因为它是新事物而改变。 它必须增加一些价值。
3- 要真正获得改变的回报,意味着需要付出大量的工作。同样,它必须得到回报。
4 - 就错误和新问题而言,现在判断它是否值得(一年还不够)还为时过早。 不过,这似乎值得。
I can speak for myself and my company. We still don't use it.
Why? Well
1- Most of our users already have NET 2.0 framework installed. No need to install another framework.
2- We won't change just because it is the new thing. It has to add some value.
3- To really pay off the change would mean a huge amount of work.Again, it has to pay off.
4- It is still to early to tell if its worth it (one year is not nearly enough) in terms of bugs and new problems. It seems worth it, though.
.NET 3.0 包含的内容对于新项目来说非常有用,但许多现有项目不想为了更新而采用这些内容 - 集成它们中的任何一个都需要大量的返工。
至于这个:
2007 年 11 月与一年多前相比是怎样的呢? 是的,.NET 3.5 很棒,我喜欢 LINQ(特别是 LINQ to Objects)和 C# 3.0 的好处 - 但更改总是会带来成本。 首先,有推出 Visual Studio 2008 的成本。然后是针对 .NET 3.5(现在是 .NET 3.5SP1)重新测试所有内容的成本。 然后是向所有服务器部署 .NET 3.5 的成本,或者在所有客户端上要求 .NET 3.5 的成本。 哦,更不用说实际学习以高效的方式使用所有新技术的成本了。
它会发生,但你不应该指望它会非常很快。
.NET 3.0 contained things which were great for new projects, but which many existing projects wouldn't want to take for the sake of updating - it would require significant rework to integrate any of them.
As for this:
In what way is November 2007 over a year ago? Yes, .NET 3.5 is great and I love LINQ (particularly LINQ to Objects) and the benefits of C# 3.0 - but there's always a cost involved with change. To start with, there's the cost of rolling out Visual Studio 2008. Then there's the cost of retesting everything against .NET 3.5 (and now .NET 3.5SP1). Then there's the cost of deploying .NET 3.5 to all the servers, or the cost of requiring .NET 3.5 on all the clients. Oh, not to mention the cost of actually learning to use all the new technologies in a productive way.
It'll happen, but you shouldn't expect it to be very quick.
对 @SCdF 所说的再补充一点,任何拥有大量 IT 员工的公司都不是以开发人员为中心的(即大多数),通常对新技术有强烈的抵制。
从开发人员的角度来看,IT 部门往往会落后,因为他们看不到为了保持领先而升级到新系统/硬件的商业价值。 IT 部门太忙于处理安全和维护(真实的或只是感知的),无法与试图让他们升级到 .Net 3.5 的开发人员打交道。
众所周知,开发人员不善于与其他部门就业务价值进行沟通。 当开发人员试图让 IT 或业务部门升级到 .Net 3.5 时,他们开始谈论自动化工作流程、XML 和 Web 服务,而不是谈论金钱。
Microsoft 的 Brian Prince 有一个关于“软技能”的非常好的演讲,其中涵盖了其中的一些内容。 如果你善意地邀请他,他可能会来你的公司并出席:)
To add one more note to what @SCdF said, any company with a significant IT staff, that isn't developer centric (i.e. The Majority), is usually heavily resistant to new technologies.
IT departments tend to lag behind from the developers standpoint because they don't see the business value in upgrading to new systems/hardware just to stay ahead of the curve. IT is too busy dealing with security and maintenance (real or just perceived) to deal with developers trying to get them to upgrade to .Net 3.5.
Developers are also notoriously bad at communicating with other departments about business value. When a developer tries to get IT, or the Business on board with upgrading to .Net 3.5 they start talking about automated workflows and XML, and Web Services instead of talking dollars and cents.
Brian Prince of Microsoft has a really good presentation on "Soft Skills" that goes over some of this. If you ask him nicely he just might come to your company and present :)
我问前雇主的一位经理为什么还没有进行转换,答案是“我不想支持三个框架”,即 1.1、2.0、3.5。
我解释说,升级到 3.5 与从 1.1 切换到 2.0 不同(3.5 是使用不同 dll (Core.dll) 的 2.0 扩展,而不是像 1.1 到 2.0 那样更新的 dll)。
我看到很多经理都在使用这种思路,所以你可以让他们知道!
I asked a manager at a previous employer why he hadn't made the switch yet, the answer was "I don't want to have to support three frameworks," meaning 1.1, 2.0, 3.5.
I explained that upgrading to 3.5 was not the same as switching from 1.1 to 2.0 (3.5 is an extension of 2.0 using a different dll (Core.dll), not a updated dll like 1.1 to 2.0).
I can see a lot of managers using this line of thought, so its up to you to let them know!
2.0有效,对吧? 我认为新的东西很棒而且很酷,我喜欢关注最新的东西,但最终,如果它有效,通常会决定坚持使用你所拥有的东西。 我多年来一直支持一家运行 DOS 6.2x 程序的商店(直到 2004 年),对此我常常感到摸不着头脑。 但归根结底,在这种情况下,没有令人信服的商业理由需要花费任何钱来推进。
我确信还有其他原因。
2.0 works, right? I think the newer stuff is great and cool and I like to stay up on the latest, but at the end of the day if it works, often the decision is to stick with what you have. I supported a shop that ran DOS 6.2x programs for years (up until 2004) and I use to scratch my head about it. But at the end of the day, there was no compelling business reason in that case to spend anything to move forward.
I'm sure there are other reasons too.
对于所有新项目,我尝试使用 3.5(或任何最新的框架)。 但都是老网站,既然能用了,为什么客户还要花钱升级呢?
如果你想要3.5中的特定技术,那么升级,但除非; 不要修复没有损坏的东西..
For all new projects I try to use 3.5 (or whatever the newest framework is). But all the old sites, why would the customers pay for uppgrading when it works?
If you want specific technology in 3.5, then uppgrade, but unless; don't fix what isn't broken..
我很想知道 2.0 在获得“多数市场份额”之前发布了多久——我的意思是,1 或 2 年对你我来说可能听起来很长,但你必须记住新语言必须发布,然后人们必须对其进行培训,然后他们必须足够了解它才能将其“卖”给管理层。 另外,VS2005 对于相当多的人来说“足够好”,升级到 VS2008 以支持较新的语言版本需要成本——不仅仅是金钱,还有时间。
I'd be interested to see how long 2.0 was out before it got "majority market share" -- I mean, 1 or 2 years might sound like a long time to you and me, but you've got to remember the new language has to be released, then people have to train on it, then they have to know it well enough to "sell" it to management. Also, VS2005 was "good enough" for quite a few people, and there's cost involved in upgrading to VS2008 to support the newer language versions -- not just money, but time.
这与大多数人仍在使用 Windows XP 的原因相同!
The same reason most people are still using Windows XP!
几份工作之前,我的处境很有趣。 作为该公司 ASMX Web 服务的原始作者,有人问我有关版本控制的问题。 特别令人担忧的是,我的服务基于手工制作的 XSD,而没有其他人真正理解 XSD。
我建议使用 WCF,因为它们不需要自定义 XML 格式,也不需要使用 XSD:只需在代码中定义数据协定。
即使在我解释说 .NET 3.5 SP1 相当于 .NET 2.0 的几个服务包以及一些新程序集之后,他们仍然看着我,就像我即将变得暴力一样。 显然,升级 .NET 版本是一个漫长且昂贵的过程。 .NET 1.1 或 .NET 2.0 迁移的经验教训。
朝着正确方向迈出的一小步,就迁移到 WCF 而言:请参阅 ASMX Web 服务是一项“传统技术”。
A few jobs ago, I was in an interesting situation. As the original author of the company's ASMX web services, I was asked about versioning them. There was particular concern that I had based the services on a hand-made XSD and that nobody else really understood XSD that well.
I recommended to use WCF, as they won't need custom XML formats, and won't have to play with XSD, either: just define a data contract in code.
Even after I explained that .NET 3.5 SP1 amounts to a couple of service packs for .NET 2.0, plus some new assemblies, they still looked at me like I was about to become violent. Obviously, upgrading .NET versions is a lengthy and expensive process. Lessons from .NET 1.1 ot .NET 2.0 migration.
One small step in the right direction, as far as migration towards WCF: see ASMX Web Services are a “Legacy Technology”.
对于政府处理,3.5 框架尚未批准用于某些环境,因此您被迫使用 2.0 或 3.0。
For government processing, the 3.5 framework is not yet approved for some environments so you're forced to use 2.0 or 3.0.
最大的挑战是证明业务升级的合理性,尤其是现在我们正处于全球经济低迷时期。
3.5 中必须有您的项目(可能是未开发项目)绝对离不开的特定优势或技术,才能推动它。
我正试图在一家大公司中整理出一个案例,因此商业利益必须超过现状。 在当前环境下,“留住人才”也无法解决问题,尤其是在候选人数量不断增加的情况下。
The biggest challenge is justifying the upgrade to the business, especially now we're in a global downturn.
There would have to be a specific advantage or technology in 3.5 that your project (probably greenfield) absolutely cannot do without, to push for it.
I am trying to put together a case for it in a large corporation, so the business benefits must out-weigh the status quo. In the current climate, 'maintaining talent' just won't cut it either, especially with a growing pool of candidates at large.