广州.NET培训
达内广州.NET培训中心

18087159764

热门课程

ASP.NET开发改动背后的原因是什么?

  • 时间:2017-05-15
  • 发布:IT
  • 来源:IN

没错,对于ASP.NET Core 2而言,大部分库主要是以.NET Core 2为目标的,这是为了能顺利地使用.NET Standard TFM中暂不可用的新增API。对于需要以诸如Microsoft.Extensions.*、Entity Framework Core,以及其他少数库等多个平台为目标的代码,需要继续使用.NET Standard。

在询问微软为何不直接开发包含必要API的.NET Standard 2.1后,Kévin Chalet继续问到:

我的问题很简单:RTM之前,你们是否由可能重新调整/撤销这些改动,让用户能够继续在.NET Desktop上使用ASP.NET Core 2.0软件包,还是说.NET Desktop上的ASP.NET Core 2.0已经彻底没戏了?(这对包括我在内的很多人都是个很不利的因素)。

虽然不打算全文引用,但很多开发者均对此表达了类似的顾虑。

Scott Hanselman试图通过自己对于在.NET Framework中继续使用ASP.NET Core的主要理由安抚开发者:

AD –老实说,如果希望直接调用LDAP,这方面还存在比较大的问题。虽然目前依然可以通过Windows Auth进行身份验证,但我们计划今年夏天针对Core 2.0提供更具体的DirectoryServices名称空间。

Drawing –这也是个问题。我们计划今年夏天为Core 2.0提供相关能力,但在此之前,这些Netstandard选项也广泛存在于ImageSharp、ImageResizer、Mono等选项中。

COM自动化–这一特性在Core 2.0中从未实现过,如果希望自寻烦恼,开发者当然可以使用PInvoke,如果这样的烦恼还嫌不够,还可以为net461+进程使用本地WebAPI。

与WFP应用实现代码共享–没错,这在Netstandard2.0中是完全可行的。

随后Scott Hanselman重申说:

.NET Core正在经历快速的并行发展,发展速度远远超过了完整版.NET Framework,其实这是好事。通过基于.NET Core 2.0(别忘了,这可是.NET Standard的超集)构建ASP.NET Core 2.0应用,这意味着可以用远超NetFx甚至Netstandard的速度进行开发。

虽然.NET Core 2.0是.NET Standard的超集,但并不是.NET Framework的超集。Kévin Chalet写到:

很多被重新引入.NET Core 2.0的“古老的”API实际上都是历史残余,(从功能上来看)从来未能正常使用过。更不用提.NET Core目前依然缺乏很多API,甚至特意省略了对很多领域的支持(IdentityModel、WCF服务器、远程、完整的AppDomain支持等)。

试图劝说大家可以“安全地”将自己使用.NET Desktop开发的ASP.NET Core 1.0应用迁移至使用.NET Core开发的ASP.NET Core 2.0应用,在我看来这是彻头彻尾的谎言。

谈到该技术的发展速度,他又补充说:

我觉得(大部分)人们关心的并不是这个。很多人根本不需要发展速度如此快的库,他们更想要稳定的库,借此按自己的节奏将其集成于老应用,同时无需担心兼容性风险。

包括Allan Lindqvist在内,很多开发者还担心此举可能造成社区产生嫌隙。

很多真心认可Asp.NET Core 1.1的开发者感觉自己被背叛了,他们现在可能会不愿意切换至没有了Core的2.0版。这么说也许显得不合理,但我想说的是,很多人都会产生这样的感觉,同时他们将不得不应对其他更保守的同事提出的各种问题。

这些重要吗?Asp.NET Core2/.NET Core2会因此而“亡”吗?不会,但会拖累用户的接受速度,让整个生态系统支离破碎,在我看来这才是最大的悲哀。我希望大家都能使用2.0版所包含的所有出色技术,但是将交叉编译能力限制为只能用于.NET Standard无疑会对此产生影响。当然,对大部分固守原有代码库的普通开发者来说这不算是个问题,但只不过是将问题转嫁给了他们的经理。

另一个顾虑在于,这个决定是内部私下做出的,并没有公示或公开讨论。Demis Bellot认为:

由于官方事先并未公布这一消息或听取用户反馈,也没有进行意见征集或给出合理的理由,这个决定“似乎”是完全与社区无关的,也没有对现有.NET生态可能产生的影像进行任何分析,可能导致整个生态系统在未来几年内变得支离破碎。取消对.NET v4.x的支持,意味着很多企业无法通过足够平滑的方式将现有代码迁移至ASP.NET的全新开发模型。这一举措不能让他们加速接受.NET Core,反而会打消他们这样做的念头,严重的碎片化会进一步导致整个.NET生态一分为二。我觉得最终的结果将会与Python 2/3的情况差不多,不可避免得受到碎片化的伤害,造成十几年都无法挽回的后果。

上一篇:新增的ASP .NET功能包括什么?
下一篇:有关.NET Framework的其他顾虑有哪些?

广州.Net培训:.Net培训有什么特色?

广州.Net培训:学习.Net的几个基本步骤

达内海归硕士高薪入职软通动力外派华为

女生适合做程序员吗?美女程序员用技术征服IT名企

选择城市和中心
贵州省

广西省

海南省