2.2.0更新的内容有
- 重构依赖注入容器
- 使用无锁算法
- (可能导致不兼容) 使用 ContainerFactoryData 创建实例
- (可能导致不兼容) 删除静态的 ContainerFactoryCache 简化代码
- (可能导致不兼容) 更新接口 IMultiConstructorResolver
- (可能导致不兼容) 更新接口 IRegistrator
- 更新 Web服务器
- (可能导致不兼容) 不再要求使用异常表示请求结束
- 不再保证
HttpManager.CurrentContext.Response.End
会抛出异常 - 检查请求是否结束可以读取
HttpManager.CurrentContext.Response.IsEnded
属性
- 不再保证
- (可能导致不兼容) 不再要求使用异常表示请求结束
- 更新测试
- 添加更多的函数到 Assert 类
- 移动测试到单独的程序集,不再随框架发布
- 改进测试失败时的提示信息
- 添加 Scenario 类用于支持 BDD 风格的测试
- 重写部分测试到 BDD 风格
- 更新帮助类
- 在 RandomUtils 类中使用线程本地随机生成器防止多线程导致的问题
- 在 MemoryCache 类使用无锁数据结构
- 在 LazyCache 类使用内存屏障
- 从 SimpleDisposable 类删除析构函数
- 更新项目模板
- 使得项目模板可以原地更新依赖
- 修改 ASP.NET Core 模板基于 .NET Core 2.2
- 更新 ORM
- 针对 NHibernate 重新使用官方的 System.Data.SQLite,因为添加了 .NET Core 支持
- 更新依赖包
- Microsoft.CodeAnalysis.CSharp 2.10.0
- Newtonsoft.Json 12.0.1
- System.Drawing.Common 4.5.1
- Microsoft.DiaSymReader.PortablePdb 1.5.0
- Microsoft.AspNetCore.Hosting.Abstractions 2.2.0
- Microsoft.AspNetCore.Http.Abstractions 2.2.0
- Microsoft.Extensions.DependencyInjection 2.2.0
- Microsoft.Extensions.DependencyInjection.Abstractions 2.2.0
- System.Net.Http 4.3.4
- Dapper.FluentMap 1.7.0
- Dapper.FluentMap.Dommel 1.6.0
- Microsoft.Data.Sqlite 2.2.0
- Npgsql 4.0.3
- MySqlConnector 0.47.1
- Microsoft.EntityFrameworkCore 2.2.0
- Microsoft.EntityFrameworkCore.Design 2.2.0
- Microsoft.EntityFrameworkCore.InMemory 2.2.0
- Microsoft.EntityFrameworkCore.Sqlite 2.2.0
- Microsoft.EntityFrameworkCore.SqlServer 2.2.0
- Npgsql.EntityFrameworkCore.PostgreSQL 2.1.2
- Pomelo.EntityFrameworkCore.MySql 2.1.4
- MongoDB.Driver 2.7.2
- NHibernate 5.2.0
- MySql.Data 6.10.8
- System.Data.SQLite 1.0.109.2
因为最近几个月时间比较少,上个版本承诺的功能 (EFCore懒加载,APM对接) 这个版本仍然没有实现,并且部分 Asp.NET 与 Owin 的项目模板仍然停留在 2.0.0 的状态,明年二月之后会有更多的时间,希望到时候可以发力准备 ZKWeb 3.0 的更新。