当前位置: 移动技术网 > IT编程>开发语言>.net > 【春华秋实】.NET Core之只是多看了你一眼

【春华秋实】.NET Core之只是多看了你一眼

2019年03月29日  | 移动技术网IT编程  | 我要评论

我爱兼职网,搬运机械,任雪案

感官初体验

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

.net core作为.net计划的跨平台开源版本,也是下一代.net的主力版本,现在的微软越来越开放,作为其平台技术从业者,没有理由不持续跟进。也希望通过大家的努力,打造一个庞大而又健全的.net生态体系。


补充一下,在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 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个报错

这是2018年10月30日关于plaintext的测试统计,可以看到.net core进步明显,排在了第7名,没有报错,而且跟前面的测试结果很接近

但这并不意味着.net core的性能已经很不错了,事实上,.netcore在性能方面还有很多工作要做。虽然在techempower“纯文本”基准测试中,asp.net core的web服务器kestrel表现极佳;但在涉及数据库查询等的高级测试中,kestrel则表现不佳。在性能方面上,很多从.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团队,每周都会举行一次社区直播会议,直播地址

最后奉上两张图用以展示.net core架构及其扩展组成。

下图是其扩展组成

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网