认识.Net Core

今天我们来了解下.Net Core,介绍了它的基本概念、发展趋势。

.NET Core可以用来构建可伸缩的、高性能的跨平台的软件应用程序,包括构建Web应用、移动应用、桌面应用、云服务、微服务、人工智能、游戏和物联网等等等等。

而.Net Core的最核心特征就是开源、跨平台、轻量级,并且.Net Core提供了最先进、也是最广泛使用各种开发工具,比如Visual Studio和Visual Studio Code 等等。

.NET 平台的历史

2002年年初的,微软为完善桌面应用开发推出了第一代 .NET Framework,那还是win 98,win me,win2000, win xp的年代。

相隔4年以后,在2006年,微软在半年内相继推出了第二代和第三代 .NET,随着.NET Framework 3.0的问世,微软也进入了黄金时代时代,几乎称霸了整个开发市场。

但是好景不长,也就三年时间,市场风起云涌,web开发大行其道,java的崛起,LAMP架构咸鱼翻身,.NET Framework也陷入了困境,尤其是asp开发,已经处于被市场淘汰的边缘了。

这个情况一直持续到2015年,随着.NET Framework 4.6的推出,微软也终于决定向市场妥协,也就是这一年,微软开始热情拥抱开源与跨平台,决定另起炉灶,开启一条全新的开源跨平台产品线,从底层开始重新设计 .NET 框架,这就是今天的.NET Core。

2016年一月,.NET Core 1.0正式推出。然后,.NET Core就以几乎每年一个版本的速度开始迅速迭代。2017年,.NET Core 2.0上线。而传统的.NET Framework也没闲着,它也在这一年升级到了4.7。

2019年9月,.NET Core 3.0问世了,这个版本也代表着.NET Core已经完全、彻底的稳定下来了,而生态与社区发展也已经非常成熟了。而.NET Framework 4.8也在同年4月推出了,不过此时,.NET Framework也已经落魄了,无人问津了。说实话,要不是为了这么课程查了相关资料,老师根本就不知道.NET Framework居然还与4.8。但也就是在这一年,传统.NET Framework也即将成为绝唱,4.8是它的最后一个版本了,因为微软已经决定要关闭这条产品线了,取而代之是.NET Core产品线。

于是,迷之存在 .NET 5也就诞生了。实际上 .NET 5已经和传统.NET Framework没有半毛钱关系了,它沿用的就是.NET Core的产品线。而未来,新的 .NET 产品线也将会以每年一更的速度推出未来版本。不过目前 .NET 5还没有完全稳定下来,老师不建议进入产生环境。所以,我们的课程选择了目前最稳定的版本.NET Core 3.1。

NET Core又要废了?

最近,网上老是风言风语,听说 .NET5了吗?.NET Core又要废了!”对于这种说法,我只能表示”呵呵“。

其实 .NET 5就是在挂羊头买狗肉,为什么这么说呢?

首先,消失的不是.NET Core而是传统的.NET Framework。
因为 .NET5的内核是基于.NET Core的,只不过沿用了传统.NET Framework的名称而已。

.NET 5 == .NET Core。 所以,这就给大家造成了困惑,经常会有人来问我,应该使用用 .NET 5呢还是用.NET Core呢。在这里,老师明确给出答案,.NET 5就是.NET Core,你要是愿意,也可以叫.NET Core 5。

这么做的目的就是为了统一名称,微软自己也知道,现在 .NET 框架的命名混乱到令人发指。所以他们决定合并.NET Core与 传统 .NET 这两条产品线,以后统一叫做 .NET,而版本则跳过4.0,直接从5.0开始。

.NET Core的特点: 开源

.NET Core从属于.NET基金会,有微软官方的支持,使用最宽松的MIT和Apache开源协议。啊,说句人话,就是任何人、任何组织、任何企业都可以随意使用.NET Core,包括复制,修改,合并,发表,分发,再授权,以及销售。所以,大家就放心去使用.NET Core吧。

不过,这倒令我想到了前段时间闹得沸沸扬扬的java收费事件,虽然这最终被证实为Java 8和openJDK依然免费,但还是要给所有java开发的程序猿提个醒,开发前注意要看清授权协议啊。

.NET Core的特点: 跨平台


微软推出.NET Core的最主要目的就是为了跨平台,所以使用ASP.NET Core所开发的程序将能够运行在所有主流系统中,包括Windows, Linux, Mac os 以及 Unix。

.NET Core的特点: 性能
目前,微软正在把工作重心转移到.NET Core上面来,.而Net core非常轻量级的,无论是编译、部署还是运行都非常轻便,很适合微服务架构和容器化。不过,很遗憾,.NET Core并不向后兼容,如果想把项目从1.0升级到3.0 版本,需要重构。而想把旧的.NET Framework换成.NET Core,呵呵,那基本上得重写啦。

C#
C#是.NET Framework的旗舰语言,它具有许多强大的功能,比如语言集成查询linq,牛掰的异步构造await async,这些功能对程序员来说简直就是福音啊。相较于保守的java,C#也在不断创新,甚至支持函数式语言的写法、推出更简洁的语法糖。当然,如果有人非要抬杠说语法糖不算语言创新,我也没办法,我就问问你,c++算不算汇编语言的语法糖呢?最后,c#的编译器是完全模块化的,开发人员也可以自己扩展编译器的功能。

ASP .NET Core MVC
接下来, 我们来简单了解一下课程将会使用的应用框架,ASP .NET Core MVC, 接下来我就简称ASP Mvc了。MVC是一种开发架构,全程为model view controller

Model(数据模型)是用来处理程序中数据结构与业务逻辑的部分,通常模型对象负责在数据库中存取数据。

Controller(控制器)则在系统中处理用户交互,如监听用户输入,负责从视图读取数据,控制用户输入,并向模型发送数据。

View(视图)是用来处理数据的显示,可以被看作为UI的部分。

MVC的分层有助于管理复杂的应用程序,同时也简化了开发流程,使不同的开发人员可协同开发不同的组件。

而Asp MVC 实际上是一个基于 .NET 框架所实现的应用,与java的sping mvc框架非常类似。Asp MVC按照MVC模式要求,把代码按特征与功能分离,同时在框架内部也内建了很多方便的脚手架,让我们的开发更加简单,代码更加健壮,而系统也更加容于测试与维护。

程序猿该如何选择使用那种开发技术呢?
其实,现在随着跨平台、云计算、以及容器化的发展,应用层面的开发使用那种语言、那个编辑器、那个操作系统已经变得越来越不重要了。

正所谓,天下乌鸦一般黑,天下文章一般抄,当一个使用java多年的同学打开c#,会惊奇的发现这俩简直就是一个妈生的,而c#程序员也基本上可以做到无缝衔接java开发。

所以,未来的软件开发将会越来越重视开发思维、代码过程、设计模式、以及系统架构,而这些才是我们程序员真正应该掌握的,以不变应万变才能让我们程序员立于不败之地。

 

 

 

 

 

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值