Asp.net core 还是基于.net framework 开发的,但是代码设计采用的是.net core的风格.
主要特点:
1>原理以及环境部分.
1.分为了WebHost 和GenericHost
2.启动方法为Main方法,并在build方法中注册StartUp类(默认的)来实现服务启动
3.自带了依赖注入(DI:depencyInject,写在StartUp类)
4.webconfig文件不再使用,现在使用appsetting.json代替,而appsetting.json还可以根据环境区分不同的配置.需要在代码中选择搭载的环境,而其中具体的配置读取是通过section获取json中的节点来实现.
5.管道机制修改,现在的管道通过自己注册实现,可以自定义管道,而不是像以前一样必须走完所有的事件
6.MVC框架也显示作为管道的一环,可以用过代码决定是否使用MVC
7.管道的处理顺序.假设管道中一共要执行1,2,3,4四个步骤.
以前在asp.net 管道中是按1 begin 1return 2begin 2return 3begin 3return 4begin 4return的顺序来执行.
在asp.net core中是按 1begin 2begin 3begin 4begin 4return 3return 2return 1return 的顺序来执行
8.不在有httphandler和httpmodule的区别.都是通过一个通过在注册在管道中的处理类来实现.区别是module对应的处理类的实现中.处理结束以后需要调用next()方法去到下一个在管道中注册的处理类.而handler对应的处理类的实现作为管道的终点,不要调用next()方法.(以第7点为例子,这时就会开始按4return 3return 2return 1return 步骤执行了)
9.大部分的方法都是在接口上通过扩展方法来实现的.
10.以来注入的类生命周期根据调用的方法不同而不同.singleton,scope,transit分别对应全局都用一个(单例),每次来了请求才创建一个对象,每次使用创建一个对象.
且根据创建的写法不同会决定是否会使用完成后会自动释放的区别.
几个比较中的接口:IServiceCollection, IApplicationBulider等等
2>MVC框架部分
asp.net core 的mvc 框架现在都是继承自BaseController类,而不是像以前一样继承自ApiController类.
而其他的一些功能需要通过加上[ApiController]这个attribute实现.其他Route,FromBody,FromHead等等Attribute用法和以前一样.
其他部分使用也和以前类似.
以上所有均为针对个人使用情况概括所以不完整,具体文档参见https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-2.2