.NET Core简介
这是大佬老a写的一篇介绍asp.net core框架的文章
2001年,微软推出了asp.net ,2009年,推出了asp.net mvc .net framework,2016年推出了asp.net core .net core。因为之前是.net framework4.5的版本,最初想命名为.net 5.0,最后定下来为.net core。在2019年9月23日,net core3.0正式版发布了,之前一直是.net core3.0预览版的。
asp.net core特点
1、跨平台的开源的框架
2、windows、linux、mac平台运行和开发,跨平台性
3、性能优化,至少3倍
4、可托管在iis中或者自主主机托管kestrel
c#:开发语言,规则,进行了各种封装,就成了.net frameworkwork的框架
clr:common language runtime
framework:是一个框架,包含了clr、vs编译器、bcl(基础类库)
.net core:主要是wie了跨平台,因为.net framework是向下兼容的,所以还做了减重功能。
使用.net core创建一个控制台程序
貌似和之前没什么区别,但是有没有注意到上面引用的命名空间,之前默认引入一大推的程序集,现在仅引用了system,后面需要什么自己去引用。这是做了减重的功能。
在以往,创建一个项目,比如mvc项目,会有一个web.config文件,去配置一些信息,还会有一个global.asax的全局的文件,还有一个路由的类。这些,在.net core下面全都不存在了。我们在.net core2.2下面新建一个.net core mvc的项目来看下。(.net core3.0会有一些不同,后面再去介绍)
wwwroot,这里面放一些静态的文件,比如.js文件,.css文件等。appsettings.json文件,代替了之前web.config文件。
web.config是xml文件,是通过configurationmanager类型来进行读取的。
appsettings.json,是键值对,通过xpath语法来读取配置文件的数据
针对appsettings.json配置的api设计三个对象,
它们分别是configuration、configurationbuilder和configurationprovider。(后面在进行详细解释)。
在这里面,多出了两个类,program.cs和starup.cs,我们来看看里面有些什么。
framework下程序从global开始执行,网站寄宿在iis上,iis监控端口,做转发,有framework站点做业务逻辑处理,响应请求。core,其实就是一个控制台,程序从main进入。
asp.net,网站托管子啊iis,iis负责监听,转发请求,响应客户端
.net core,控制台,createwebhostbuilder(内置了服务器)--启动了服务器--负责监听-转发请求--响应客户端。
总结:
kestrelserver,跨平台的服务器,iis只能做反向代理,不再做啥监听。
asp.net,不负责请求的监听,转发和响应,封装了处理模型,只写业务处理逻辑
asp .net core,是个控制台,请求监听,转发和响应都是自己完成的,包括管道模型也是自定义的(中间件middleware),这里不再像以前那样,什么都封装好了,开发者什么也不知道。封装的少,东西就少。
上一篇: Nginx实现静态资源的反向代理实例