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
- ZKWeb.System.Drawing 4.0.1
- ZKWeb.Fork.FluentNHibernate 2.1.1
- MongoDB.Driver 2.5.0
- Microsoft.EntityFrameworkCore 2.0.2
- Microsoft.EntityFrameworkCore.Design 2.0.2
- Microsoft.EntityFrameworkCore.InMemory 2.0.2
- Microsoft.EntityFrameworkCore.Sqlite 2.0.2
- Microsoft.EntityFrameworkCore.SqlServer 2.0.2
- Npgsql.EntityFrameworkCore.PostgreSQL 2.0.1
- Pomelo.EntityFrameworkCore.MySql 2.0.1
- System.Security.Cryptography.Algorithms 4.3.1
- Microsoft.CodeAnalysis.CSharp 2.7.0
- Microsoft.DiaSymReader.Native 1.7.0
- Microsoft.DiaSymReader.PortablePdb 1.4.0
- Microsoft.CSharp 4.4.1
- Microsoft.Extensions.DependencyModel 2.0.4
- Microsoft.CodeAnalysis.CSharp 2.6.1
- Microsoft.AspNetCore.Hosting.Abstractions 2.0.2
- Microsoft.AspNetCore.Http.Abstractions 2.0.2
- MySql.Data 6.10.6
- Microsoft.Data.Sqlite 2.0.1
- Microsoft.Owin 4.0.0
- Newtonsoft.Json 11.0.1
- 修复Bug
- 修复重用EFCore上下文没有重置状态的问题(前一个上下文失败的提交会影响后面的上下文)
- 改进插件系统
- 支持禁止自动重新加载插件
- 提供判断加载哪些插件的函数
- 改进ORM
- 修改dapper的mysql提供器到MySqlConnector (之前是Pomelo.Data.MySql)
- 让ZKWeb.ORM.NHibernate支持.Net Standard 2.0 (除了Sqlite以外的数据库都可用)
- 支持记录SQL语句或命令, 详细查看下面的简介或文档记录原始SQL语句或命令
- 改进路由系统
- 支持隐式注册Action
- 详细查看下面的简介或文档控制访问路径
- 添加基于electron的项目创建器 (感谢@hunjixin的贡献)
如何使用基于electron的项目创建器
Linux:
从Github的Release页面下载并解压缩 'ProjectCreator.Gui-linux-x64.zip'到'ZKWeb/Tools', 然后打开'ProjectCreator.Gui'.
Windows:
从Github的Release页面下载并解压缩 'ProjectCreator.Gui-win32-x64.rar'到'ZKWeb/Tools', 然后打开'ProjectCreator.Gui.exe'.
记录SQL语句或命令
记录原始SQL语句或命令
从ZKWeb 2.1开始, 你可以通过提供IDatabaseCommandLogger
来记录原始的SQL语句或命令.
添加[ExportMany]
属性注册到容器会全局记录, 例如:
[ExportMany]
public class Mylogger : IDatabaseCommandLogger {
public void LogCommand(IDatabaseContext context, string command, object metadata) {
Console.WriteLine(command);
}
}
如果只想记录某个上下文的语句, 则不要添加[ExportMany]
而是设置Context.CommandLogger = new Mylogger()
.
目前支持记录SQL语句或命令的ORM有:
- Dapper: 支持记录insert, update, delete, select
- EFCore: 支持记录insert, update, delete, select
- MongoDB: 支持记录json格式的命令
- NHibernate: 支持记录insert, update, delete, select, 但不支持记录参数
隐式注册Action
从ZKWeb 2.1开始, 通过在控制器类上标记[ActionBase]
属性, 或者在方法上标记[Action]
属性可以控制访问路径.
例如:
[ExportMany]
public class ExampleController : IController {
// 不标记[ActionBase]也不标记[Action]
// 访问路径是 "/Example/PlainText"
public IActionResult PlainText() {
return new PlainResult("some plain text");
}
}
[ExportMany]
[ActionBase("/MyExample")]
public class ExampleController : IController {
// 标记[ActionBase]但不标记[Action]
// 访问路径是 "/MyExample/PlainText"
public IActionResult PlainText() {
return new PlainResult("some plain text");
}
}
[ExportMany]
[ActionBase("/MyExample")]
public class ExampleController : IController {
// 同时标记[ActionBase]和[Action]
// 访问路径是 "/MyExample/MyPlainText"
[Action("MyPlainText")]
public IActionResult PlainText() {
return new PlainResult("some plain text");
}
}
[ExportMany]
public class ExampleController : IController {
// 不标记[ActionBase], 只标记[Action] (兼容2.0之前的版本)
// [Action]标记的就是完整路径
// 访问路径是 "/MyPlainText"
[Action("/MyPlainText")]
public IActionResult PlainText() {
return new PlainResult("some plain text");
}
}
Core支持
因为NHibernate 5.1支持.Net Core, 基于NH编写的商城系统(http://demo.zkweb.org)已经可以在Linux上运行, 99%的功能都可用.
如果你使用ZKWeb框架创建新的项目,强烈推荐使用NHibernate而不是EFCore, 因为NHibernate的功能和.Net Framework上的一样完整.
下个版本
下个版本预计会做的事情
- 更换EFCore到2.1版本(支持懒加载, 自定义列类型和部分复杂查询)
- 对接柠檬的APM系统, 提供网页查询性能和数据库查询性能的监控
ZKWeb网页框架2.1正式发布的更多相关文章
- ZKWeb网页框架2.0正式发布
2.0.0更新的内容有 更新框架要求 框架要求从 netstandard 1.6 升到 netstandard 2.0 框架要求从 netcoreapp1.1 升到 netcoreapp2.0 更新引 ...
- ZKWeb网页框架2.2正式发布
2.2.0更新的内容有 重构依赖注入容器 使用无锁算法 (可能导致不兼容) 使用 ContainerFactoryData 创建实例 (可能导致不兼容) 删除静态的 ContainerFactoryC ...
- ZKWeb网页框架1.8正式发布
1.8.0更新的内容有 破坏性更新 更新ZKWeb.System.Drawing到3.0.0 请修改源代码中的System.Drawing到System.DrawingCore 现在已经不再需要使用D ...
- ZKWeb网页框架3.0正式发布
3.0 更新的内容有 更新 .NET 框架 替换项目模版的 netcoreapp2.2 到 netcoreapp3.0 目前支持的 .NET 框架有: net461, netcoreapp2.0, n ...
- ZKWeb网页框架1.2正式发布
发行日志 https://github.com/zkweb-framework/ZKWeb/blob/master/ReleaseNotes/ReleaseNote.1.2.md 主要改动 更新 ZK ...
- ZKWeb网页框架1.1正式发布
发行日志 https://github.com/zkweb-framework/ZKWeb/blob/master/ReleaseNotes/ReleaseNote.1.1.md 主要改动 添加EFC ...
- ZKWeb网页框架1.9正式发布
1.9.0更新的内容有 更新项目工具 更好的支持Linux 添加工具函数 Exception.ToDetailedString (获取例外的详细信息) Exception.ToSummaryStrin ...
- ZKWeb网页框架1.7正式发布
1.7.0更新的内容有 更新项目格式到新的csproj 更新项目模板 打开新创建的Asp.Net Core项目将需要VS 2017,Asp.Net和Owin项目仍可以用VS 2015 补上插件模板的P ...
- ZKWeb网页框架1.6正式发布
1.6.0更新的内容有 Dapper改进 更换Dapper.Contrib到Dommel 支持自定义列名的设置 支持忽略未映射的成员 支持插入Guid类型到MySQL数据库 支持JSON序列化类型 遇 ...
随机推荐
- js实现接口隔离
昨天公司培训了接口隔离,简单说一下 接口隔离:类间的依赖关系应该建立在最小的接口上.接口隔离原则将非常庞大.臃肿的接口拆分成更小具体的接口,这样客户讲会只需要知道他们感兴趣的方法. 接口隔离原则的目的 ...
- ajax获取数据中文显示问号
技术交流群:816227112 问题: 解决 : 在 response.getWriter() 之前加上 response.setContentType("text/html;charset ...
- C#多线程--信号量(Semaphore)[z]
百度百科:Semaphore,是负责协调各个线程, 以保证它们能够正确.合理的使用公共资源.也是操作系统中用于控制进程同步互斥的量. Semaphore常用的方法有两个WaitOne()和Releas ...
- Kafka的安装及与Spring Boot的集成
安装JDK 下载jdk-8u202-ea-bin-b03-linux-x64-07_nov_2018.tar.gz 解压 配置 $ vi /etc/profile,在最后加入下面两行 export J ...
- sql server版本、组件和管理工具
以下信息由何问起收集,希望有帮助. SQL Server 版本 定义 Enterprise 作为高级版本, SQL Server Enterprise 版提供了全面的高端数据中心功能,性能极为快捷.虚 ...
- java 多线程的唤醒
package TestThread.ThreadSynchronized.TestInterruptedException; public class InterruptDemo { public ...
- 文件比较命令(fc)
fc命令: // 描述: 比较两个文件或文件集,并显示它们之间的差异.相对于 comp 命令来说,这个 fc 命令显示的界面就好看多了.用起来也舒服些. fc: (file comparison) f ...
- Vue 去掉#号,让网址像正常的一样
vue利用hash模式让页面不刷新,但是有时候看起来觉得怪怪的,也可以去掉#,并像#模式一样不刷新页面. 1.在路由里面添加 mode: 'history' 这样就去掉了#号,但是点击页面会发 ...
- mui getJSON实现jsonp跨域
//刚开始做APP的时候,后台给的方式是jsonp,然后就百度mui框架的jsonp跨域,看了好多文章,都说可以支持,但是大部分都是直接把别人复制来的,都不知道是不是真的能支持,做好打包完的时候,下载 ...
- IntelliJ IDEA 控制台中文乱码解决方案
配置Intellij的配置文件(在idea安装目录bin目录下) 打开Intellij的根目录,找到下图的两个文件(根据你的系统是32位或64位选择其中一个配置文件),在配置文件中添加: -Dfile ...