dommel mysql_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系统, 提供网页查询性能和数据库查询性能的监控

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值