2.0.0更新的内容有

  • 更新框架要求

    • 框架要求从 netstandard 1.6 升到 netstandard 2.0
    • 框架要求从 netcoreapp1.1 升到 netcoreapp2.0
  • 更新引用类库
    • Microsoft.AspNetCore.Hosting.Abstractions 2.0.0
    • Microsoft.AspNetCore.Http.Abstractions 2.0.0
    • Microsoft.Extensions.DependencyInjection 2.0.0
    • Microsoft.Extensions.DependencyInjection.Abstractions 2.0.0
    • Microsoft.Extensions.DependencyModel 2.0.0
    • Microsoft.Data.Sqlite 2.0.0
    • Npgsql 3.2.5
    • Microsoft.EntityFrameworkCore 2.0.0
    • Microsoft.EntityFrameworkCore.Design 2.0.0
    • Microsoft.EntityFrameworkCore.InMemory 2.0.0
    • Microsoft.EntityFrameworkCore.Sqlite 2.0.0
    • Microsoft.EntityFrameworkCore.SqlServer 2.0.0
    • Npgsql.EntityFrameworkCore.PostgreSQL 2.0.0
    • Pomelo.EntityFrameworkCore.MySql 2.0.0
    • MongoDB.Driver 2.4.4
    • ZKWeb.Repack.SQLite 1.0.104
    • Microsoft.CSharp 4.4.0
    • Microsoft.CodeAnalysis.CSharp 2.3.0
    • Newtonsoft.Json 10.0.3
    • ZKWeb.Fork.DotLiquid 2.3.0
    • ZKWeb.Fork.FastReflection 2.3.0
    • Dommel 1.9.0
    • Dapper.FluentMap 1.6.0
    • Dapper.FluentMap.Dommel 1.5.0
    • 删除NSubstitute
  • 改进IoC容器
    • 支持区域(Scoped)重用
    • 支持注册开放泛型(注册Implement<>到Service<>)
    • 支持从IServiceCollection注册服务
    • 提供IServiceProvider接口
    • 改变选择构造函数的规则
      • 首先, 使用标记了[Inject]的构造函数
      • 然后, 使用唯一的公开的构造函数
      • 最后, 使用IMultiConstructorResolver在运行时解决, 如果解决失败则抛出异常
    • 改变注入构造函数的规则
      • 支持注入Func<T>
      • 支持注入Lazy<T>
      • 支持注入List<T>, ICollection<T>, IEnumerable<T>
      • 支持注入Lazy<List<T>>, Func<List<T>> 等等
      • 如果参数有默认值, 则解决失败时使用默认值, 否则解决失败时抛出异常
  • 在Asp.Net Core项目中默认使用ZKWeb的IoC容器替换默认的IServiceProvider
    • 目前Asp.Net Core和ZKWeb注册的服务已可以共通互联
  • 改进控制器和路由
    • 遵从控制器注册时使用的重用规则, 在之前的版本控制器会是单例
    • 支持手动重载请求参数, 设置Request.CustomParameters可以影响获取当前请求参数的值
    • 支持Url参数, 例如[Action("get/{id}")]
  • 改进ORM
    • 支持在构建数据库上下文时手动传入实体类型列表, 在一个项目使用多个数据库上下文时可以用到
    • 添加EFCoreDatabaseContextPool, 改进EFCore数据库上下文的创建性能
    • 在NHibernate保存实体失败时取消对该实体的跟踪, 防止影响后面的保存

本次更新要求.Net Standard 2.0, 旧版本的项目需要先修改框架目标再使用nuget升级.
本次更新删除了NSubstitute的引用, 如果原有插件有使用NSubstitute请手动安装到web项目.

因为NHibernate官方尚未发布.Net Core版本, 这一个版本的NHibernate仍然只能用在.Net Framework上, 下个版本会争取让使用NHibernate的代码支持.Net Core.

此外, ZKWeb 2.0重写了文档, 新的文档可以在以下地址查看:

http://zkweb-framework.github.io

ZKWeb网页框架2.0正式发布的更多相关文章

  1. ZKWeb网页框架3.0正式发布

    3.0 更新的内容有 更新 .NET 框架 替换项目模版的 netcoreapp2.2 到 netcoreapp3.0 目前支持的 .NET 框架有: net461, netcoreapp2.0, n ...

  2. ZKWeb网页框架2.1正式发布

    2.1.0更新的内容有 更新引用类库 NHibernate 5.1.0 Npgsql 3.2.7 MySqlConnector 0.37.0 Dapper 1.50.4 Dommel 1.10.1 Z ...

  3. ZKWeb网页框架1.6正式发布

    1.6.0更新的内容有 Dapper改进 更换Dapper.Contrib到Dommel 支持自定义列名的设置 支持忽略未映射的成员 支持插入Guid类型到MySQL数据库 支持JSON序列化类型 遇 ...

  4. ZKWeb网页框架1.5正式发布

    本次更新的内容有 明显的改进了IoC容器在部分情况下的性能, 当前的性能和Grace, DryIoC同等 添加IHttpResquestHandlerWrapper接口让重载Http上下文更容易 添加 ...

  5. ZKWeb网页框架2.2正式发布

    2.2.0更新的内容有 重构依赖注入容器 使用无锁算法 (可能导致不兼容) 使用 ContainerFactoryData 创建实例 (可能导致不兼容) 删除静态的 ContainerFactoryC ...

  6. ZKWeb网页框架1.8正式发布

    1.8.0更新的内容有 破坏性更新 更新ZKWeb.System.Drawing到3.0.0 请修改源代码中的System.Drawing到System.DrawingCore 现在已经不再需要使用D ...

  7. ZKWeb网页框架1.2正式发布

    发行日志 https://github.com/zkweb-framework/ZKWeb/blob/master/ReleaseNotes/ReleaseNote.1.2.md 主要改动 更新 ZK ...

  8. ZKWeb网页框架1.1正式发布

    发行日志 https://github.com/zkweb-framework/ZKWeb/blob/master/ReleaseNotes/ReleaseNote.1.1.md 主要改动 添加EFC ...

  9. ZKWeb网页框架1.9正式发布

    1.9.0更新的内容有 更新项目工具 更好的支持Linux 添加工具函数 Exception.ToDetailedString (获取例外的详细信息) Exception.ToSummaryStrin ...

随机推荐

  1. SSM 五:Spring核心概念

    第五章:Spring核心概念 一.Spring Ioc 优点: 1.低侵入式设计 2.独立于各种应用服务器 3.依赖注入特性将组建关系透明化,降低耦合度 4.面向切面编程的特性允许将通用性任务集中式处 ...

  2. 一款基于vue2.0的分页组件---写在页面内

    通过 Vue2.0 实现的分页 可自由设置分页显示的多少.上一页.下一页.省略号等,也可直接输入跳转到的页码进行跳转,分页的样式可自由调整 // 1.页面的 head 部分,需要设计好页面的样式 .p ...

  3. 新的开始,hello world!

    开始使用博客一年多来,在各位大神的博客上找了很多学习需要的资料,受益匪浅.一直来自己也想过开始写自己的博客,但是一直没有开始.一来是懒,懒的整理,懒的打字排版,二来是那段时间加入实验室,自我感觉一直有 ...

  4. 一款很便捷很实用的框架——vue.js

    Hello,大家好!今天给大家带来一款十分好用的框架--vue.js! Vue.js是一套构建用户界面的渐进式框架.它 只关注视图层, 采用自底向上增量开发的设计. Vue 的目标是通过尽可能简单的 ...

  5. 使用Docker跑MySQL 作为Django的存储后端

    Docker的好处不科普了,用过的都说好. 不想污染自己开发机器上的文件环境,本萌新使用Docker运行Mysql,Redis来作为Django的存储后端和缓存. 在第一次安装过程中,我遇到了一些问题 ...

  6. 《java.util.concurrent 包源码阅读》17 信号量 Semaphore

    学过操作系统的朋友都知道信号量,在java.util.concurrent包中也有一个关于信号量的实现:Semaphore. 从代码实现的角度来说,信号量与锁很类似,可以看成是一个有限的共享锁,即只能 ...

  7. memcached内存管理

    前言 memcached默认情况下采用了名为Slab Allocator的机制来管理内存.在该机制出现以前,内存的分配是通过对所有记录简单地进行malloc和free来进行的.但是,这种方式会导致内存 ...

  8. Ali OSS 服务端签名并设置回调,客户端上传文件

    一.最近做阿里云oss文件上传开发,一点收获分享给大家,帮助大家绕过一些坑.关于阿里云oss服务的介绍,我这里不做赘述了,可以查看阿里云OSS开发api文档. 在这里我主要介绍下,文件上传流程比较复杂 ...

  9. layer,Jquery,validate实现表单验证,刷新页面,关闭子页面

    1.表单验证 //获取父层 var index = parent.layer.getFrameIndex(window.name); //刷新父层 parent.location.reload(); ...

  10. JAVA技术图谱