当前位置: 首页 > 科技观察

ASP.NETCore值得学习吗?

时间:2023-03-11 22:01:20 科技观察

「我的天,微软又出新东西了?」  「WebForm完了吗?」  「我还没开始玩ASP.NETMVC,不用学吗?it?」  简单回答以上问题:  是的,ASP.NETCore是下一代ASP.NET,可以跨平台执行,有望成为未来的主流。确实是两年前推出的新东西,但在信息领域,整天学新东西也不过如此好吗?如果你体验过前端框架的“烟花生命周期”,这根本不算什么。  WebForms,再战个十年二十年应该不成问题。大型企业或组织寻求稳定而不是创新。系统越大越复杂,创新的速度就越慢。不过,预计他们不会再投入资源扩大发展。相关的工作机会注定会越来越少,因为没有新人来投资这个领域。在外地,会演变成留守老兵靠文笔快或收入少或娶老板女儿来争夺难得的维修岗位的局面。  如果您即将或正在学习ASP.NETMVC5,请继续学好它。大多数相关知识和技能都可以在ASP.NETCore中使用。如果企业没有强烈的跨平台需求,ASP.NETMVC5对Windows和第三方库的支持相对完善和成熟,稳定性和技术资源也优于尚处于起步阶段的ASP.NETCore.现阶段开发网站还是不错的选择。选择(根据官方文档,ASP.NET和ASP.NETCore是备选方案,开发者可以根据自己的需要进行选择)。  回到主题,如果ASP.NETMVC5仍然是主力军,那么ASP.NETCore值得学习吗?看最近写了很多ASP.NETCore笔记,当然投了。我个人的看法如下:  跨平台优势流畅的编程语言,结合表面上最先进的VisualStudioIDE,犹如削铁如泥。可惜早年封于Windows,错失了与Java争夺主流开发语言霸权的机会。直到.NETCore终于正式跨平台,虽然晚了十几年,但终于让我等了。  跨平台有什么好处?有选择很酷!  据Netcraft统计,2018年7月全球排名前100万的网站使用的Web服务器中,Apache占比35.2%,nginx占比24.9%(市场份额持续扩大),微软占比9.4%。各操作系统和网站服务器的成本、性能、稳定性、管理便利性等各有优缺点,各有各的拥趸。作为网站开发者,ASP.NETCore可以和Apache、Nginx、IIS一起使用,甚至可以丢进NASDocker里面运行。您不必为网站主机限制而与客户端、操作系统和服务器作斗争。(谜底:之前被抢的频率是多少?)  试想一下,精打细算的老板说网站可以用Linux主机,VPS或Cloud运行,租金减半,老板是对你的加薪感到高兴。  性能优势  ASP.NETCore使用轻量级的KestrelWebServer来处理核心的HTTP通信(甚至可以换成更注重性能的服务器来调整极端情况),一般配合Nginx、Apache、IIS和其他反向代理服务器(ReverseProxyServer)补充了安全、负载平衡、静态内容缓存、压缩、HTTP认证等需求。ASP.NET受限于IIS,功能丰富但繁琐。在一些评估(12)中,ASP.NETCore的性能数字(RPS,每秒请求数)至少比IIS上的ASP.NET好3-4倍。  当然,单纯的IIS与Kestrel的比较,“徒手跑vs武装跑”的对比还是有些区别的。实际情况下,Kestrel配合反向代理服务器使用后,差距应该会缩小,但不可否认的是,在不考虑成本的情况下,在压榨性能方面,ASP.NETCore有过之而无不及。  trendtrendtrend  ASP.NETMVC5仍然是桌面上的主流选项,但不出意外的话ASP.NETCore将是未来的王者。两条线索:  ASP.NET5已死-介绍ASP.NETCore1.0和.NETCore1.0-ScottHanselman  下一代的ASP.NETMVC5不是ASP.NETMVC6,而是ASP.NETCore1.0,命名非常混乱,但Scott他们尽力了。ASP.NETMVCNuGet包的当前版本是5.2.6;而ASP.NETCore近两年从1.0跃升至2.1,3.0预计今年下半年发布预览版,2019年推出正式版,正处于快速上升的青春期。  ComparingEFCorevsEF6-官方MicrosoftDocs  文档提到EF6仍然是受支持的产品,将来仍会看到错误修复和小的改进。EFCore的API和EF6类似,但是核心被重写了,所以没有继承EF6的所有功能,成熟度也不如EF6,但是会增加一些EF6没有的新功能未来(替代键、批量更新、LINQ查询混合客户端和数据库操作)。  由此推断,微软会继续支持ASP.NET/EF6,但新特性会出现在ASP.NETCore和EFCore中。  开源万岁  .NETCore/ASP.NETCore完全开源,开发社区的每一位成员都可以报告问题,提供建议,帮助修复错误,添加新功能,使平台更紧密以自己的需要。就算最后不采纳,还有个大招,改成自己不喜欢的,技巧的极限就是系统功能和性能的极限:P(呃,所以你以后不能告诉老板,“这是平台限制吗?方式”......Orz)  结论  我的意见总结:如果你打算靠ASP.NET谋生未来五到十年,你必须学习ASP.NETMVC,写WebForm的工作机会会变得很少,只有掌握MVC技能的人才有资本和年轻人竞争工作。MVC知识比例高迁移到ASP.NETCore还是有用的,毫不犹豫的投资是对的。  至于ASP.NETCore,我个人认为3.0虽然迫在眉睫,但其稳定性和成熟度还有待实战验证,并且第三方组件的支持还没有完全跟上。转向前需要检查风险,但时间会消除这些疑虑。我建议stthatyoucangetearlynowcontactandtrytopracticeonsmallnewprojects.它应该是一个很好的进入角度。现在积蓄力量,等以后市场接受度变高,对提供竞争力有很大的帮助。建议尽早投资。