.NET Core之只是多看了你一眼

感官初体验

技术学习是一件系统性的事情,若是拒绝学习,那么本身就会落后以致于被替代。.NET也是同样,当开源、跨平台成为主流的时候,若是再故步自封,等待.NET的就是死路一条,幸亏.NET Core问世了,社区反响积极而又强烈,.NET Core的生态体系不断获得丰富。做为.NET技术人员,你必须去深刻了解.NET Core,做为非.NET技术人员,.NET Core也值得你去关注。css

.NET Core做为.NET计划的跨平台开源版本,也是下一代.NET的主力版本,如今的微软愈来愈开放,做为其平台技术从业者,没有理由不持续跟进。也但愿经过你们的努力,打造一个庞大而又健全的.NET生态体系。html

补充一下,在2019年6月27日以后,.NET Core补丁更新将再也不包含.NET Core 1.0和1.1的更新包或容器映像。咱们应该尽快从.NET Core 1.x升级到.NET Core 2.1或2.2及之后的版本。在.NET Core3.0版本中,.NET Core 将支持Winform和WPF。数据库

本系列文章以.NET Core2.2及之后的版本为基础。 编程

看了看

.NET Core最大和最具竞争力的特色就是跨平台,相较于.NET若是仅绑定于Windows并面向单一用户,那么其将难以在多用户服务器环境中建立高性能的应用,Core使得Microsoft得以将开发基础重置为以服务器为中心的模式。服务器

下图是.NET Core将来的发展方向:架构

k2iEg

经过上图咱们能够知道,.NET框架的内容丰富了,包括.NET Framework、.NET Core和XAMARIN微软使用.NET Standard Library来统一整个.NET框架,可是维护起来确是一个很是有成本的事情,因此有时候我会想,将来是否是只会保留.NET Core的内容,而移除.NET Framework。毕竟如今的处理只是过渡期的过渡方式,可是考虑到.NET Framework庞大的用户量,因此微软不敢轻易放弃对.NET Framework的支持。框架

目前的版本中,.NET Core主要面向Web开发,ASP.NET Core是一个跨平台的高性能开源框架,用于生成基于云且链接 Internet 的新式应用程序。asp.net

咱们先来看一下,ASP.NET Core的优势:模块化

  • 跨平台。
  • 内置依赖注入。
  • 生成 Web UI 和 Web API 的统一场景。
  • 针对可测试性进行构建。
  • Razor Pages 可使基于页面的编码方式更简单高效。
  • 可以在 Windows、macOS 和 Linux 上进行开发和运行。
  • 开放源代码和以社区为中心。
  • 集成新式客户端框架和开发工做流。
  • 基于环境的云配置系统。

举一个简单的例子,在传统的MVC下,咱们使用以下方式编程:工具

   1:  @Html.ActionLink(“这是啥参数”, “这又是啥”, “我靠,这边怎么还有一个”, new { @class = "晕了"})

而在.NET Core下,咱们能够这样:

   1:  <a asp-controller=”user” asp-action=”createuser” class=”mycss”>CreateUser</a>

是否是.NET Core下的编程更加优雅,更像是直接操做HTML,这种例子还有不少,须要本身多多深刻了解。

定睛看

若是只是跨平台,可能还不足以吸引广大开发者,毕竟一个新的语言或者框架的问世,更须要很强的开发效率和执行效率。

.NET Core拥有轻型的高性能模块化 HTTP 请求管道。可以在 IIS、Nginx、Apache、Docker 上进行托管或在本身的进程中进行自托管。使用.NET Core 时,可使用并行应用版本控制。目前的ASP.NET Core已是一个很是成熟的产品,从ASP.NET MVC/Web API转向很是简单。最显著的缘由在于.NET Core应用性能的提升和占用空间的减小,这意味着不管是对于云仍是私有数据中心,可真正作到在基础架构上的成本节省。

因为.NET Core的模块化设计,使得.NET Core能够更快的进行版本更新,并可以使用Docker和Kubernetes等容器编排工具跨平台开发和部署应用,这是一项真正的优点。同时.NET Core的模块化设计意味着您只包含所需的依赖关系,这就减小了项目的没必要要依赖,发布包也变小了。

咱们来看下TechEmpower的测试:

这是2018年2月14日关于Plaintext的测试统计,能够看到.NET Core的排名不是很让人满意,排在了17名,并且还有110个报错

QQ截图20190403155019

这是2019年3月25日关于Plaintext的测试统计,能够看到.NET Core进步明显,排在了第5名,没有报错,并且跟前面的测试结果很接近。Data updated历史性的占据了第3到第5,Fortunes .net core的排七、八、十、11,Multiple Queries 排第10,Single Query 排第18,Json排第20,查看连接(感谢20楼yywww的提醒)

QQ截图20190403154228

但这并不意味着.NET Core的性能已经很不错了,事实上,.NETCore在性能方面还有不少工做要作。TechEmpower以ASP.NET Core的Web服务器Kestrel为基准,在“纯文本”基准测试中,表现极佳,在涉及数据库查询等的高级测试中,也表现不错,但愿.NET Core能再接再砺,创造更大的辉煌。

另外在性能方面上,不少从.NET Framework迁移过来的代码还有很大的改进空间,相信微软也会进行深刻研究,挖掘这些性能问题,并提供更好的解决方案。

若是想要了解更详细的的信息,能够打开TechEmpower网站查看。

固然了,.NET Core也有不少不足的地方,好比AppDomain这块的设计,以前AppDomain基于Windows,是对当前.NET应用进程的逻辑分区,并对同一进程中的各AppDomain实现了隔离,因为其特殊性,.NET Core还没有提供AppDomain功能,但愿之后会出现基于AppDomain模型的解决方案。另外,.NET Core、.NET Standard和.NET Framework,仍是比较让人感到乱的。

再也忘不掉你容颜

.NET Core目前依然在快速发展中,不少API不断获得丰富,同时ASP.NET Core团队,每周都会举行一次社区直播会议,直播地址http://live.asp.net

最后奉上两张图用以展现.NET Core架构及其扩展组成。

20190328174622

下图是其扩展组成

.NET Core

相关文章
相关标签/搜索