技术学习是一件系统性的事情,如果拒绝学习,那么自己就会落后以至于被替代。.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未来的发展方向:

通过上图我们可以知道,.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团队,每周都会举行一次社区直播会议,直播地址http://live.asp.net

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

下图是其扩展组成

原文地址:https://www.cnblogs.com/edison0621/p/10616738.html

.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

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

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

    技术学习是一件系统性的事情,如果拒绝学习,那么自己就会落后以至于被替代..NET也是一样,当开源.跨平台成为主流的时候,如果再故步自封,等待.NET的就是死路一条,幸好.NET Core问世了,社区反 ...

  2. 只是因为多看了你一眼

    不得已的选择 高考,应该是每个学生心中最难忘的一场考试了,在过去十二年里有无数场大大小小的考试,无论你过去是多么的优秀,还是多么的差劲,只要这一次你,赢了就是赢了,输了就是输了. 当高考成绩下来后,高 ...

  3. 只因,在人群中多看了你一眼 (小说)

    <p>静静置身于一帘幽梦中,低眉的思念,借何日的流云话心中凄迷?玫瑰,随风凋零,渐渐失去了归途的方向.</p> <p>--题记</p> <p> ...

  4. java基础篇_java基础篇1

    JAVA基础篇1 注释 单行注释 //这是一个单行注释,由两个斜杠组成,不能嵌套多行注释 多行注释 /*这是一个 多行注释 ,//里面不能嵌套多行注释, 但是可以嵌套单行注释*/ 文档注释 /**ja ...

  5. 2019公众号总结之——Top100 技术文章汇总

    大家好,我是张善友.新年伊始,我们在欢送10年代的同时迎来了20年代.在这个崭新的时代,感谢各位朋友一直关注"dotnet跨平台".一晃5年有余,关注公众号的粉丝6万,相对于.NE ...

  6. 只是因为在人群中多看了HoloSens下一代摄像机一“眼”

    点击上方关注我们! 只是因为在人群中多看了你一眼, 从此,智能世界中 便多了一双神奇的智能感知的"眼睛". 它让被动的传统安防 快速走向城市治理.智慧民生等广阔天地. 站在未来看未 ...

  7. 如何评价英伟达9月2日凌晨发布的最强消费级显卡RTX 3090?

    点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要15分钟 Follow小博主,每天更新前沿干货 本文整理自知乎问答,仅用于学术分享.如有侵权,请联系后台作删文处理. 编辑|极市平台 导读 就 ...

  8. 如何评价英伟达9月2日凌晨发布的30系列新显卡?

    本文整理自知乎问答,仅用于学术分享.如有侵权,请联系后台作删文处理. 编辑|极市平台 导读 就在昨天,NVIDIA创始人黄仁勋正式发布了新一代RTX 30系列显卡.这三款显卡的性能均超过上一代旗舰产品 ...

  9. 我眼中的 NCC,WTM 寻亲之旅

    峥嵘岁月如谢花流水,三朝五帝如散雾云海.开发语言更迭如此.我们所坚持的,只是那最初的感动,那"只是在人群中多看了你一眼"的惊艳.三十年河东,三十年河西,不忘初心,方得始终! 嗯,我 ...

最新文章

  1. Python系列教程之学生信息管理系统
  2. 【数据库】将Excel导入达梦数据库,并执行表合并
  3. linux 安全相关
  4. 可视化图形(一):散点图-scatter()
  5. P3197 [HNOI2008]越狱(快速幂)
  6. java隐藏与覆盖_Java 隐藏和覆盖
  7. python soup findall_Python之BeautifulSoup常用详细使用
  8. 操作系统系统用c语言写,用C语言写关于操作系统的一个问题。
  9. ssh免密码远程执行sudo命令
  10. java判断是否为5的倍数,如何用编程实现“判断输入的正整数是否既是5又是7的正倍数,若是,则输出yes,否则输出no”?...
  11. fdtd安装在服务器系统可以么,并行FDTD结合服务器分析电大电磁问题
  12. ZigBee与Android的智能家居控制系统设计
  13. 体验经济:互联网生存的秘密
  14. Android的性能优化
  15. Linux服务器常见运维性能测试(2)内存测试mbw、stream
  16. React学习的小总结(一)
  17. 2021年上海理工大学《高等代数》试卷和答案(蔡宇编辑)
  18. 智能窗帘定时程序c语言,基于单片机智能窗帘控制系统设计
  19. Web server failed to start.Port 8082 was already in use端口被占用
  20. Android源码是这样搞到的(图解)

热门文章

  1. geek_Ask How-To Geek:营救受感染的PC,安装无膨胀iTunes和驯服疯狂的触控板
  2. 如何在Mac上设置FaceTime
  3. LinkedHashMap的实现原理
  4. QML的import目录爬坑记录
  5. 【2】开发环境的搭建,Ubuntu14.04
  6. PHP中 对象自动调用的方法:__set()、__get()、__tostring()
  7. dmidecode常用的查询
  8. go方法的深入探究(7.21增补)
  9. Android之应用APN、WIFI、GPS定位小例子
  10. 如果把整个因特网都印出来 你认为会怎么样