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正式发布相关推荐

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

    本次更新的内容有 更新引用包版本 Microsoft.AspNetCore.Hosting.Abstractions 1.1.0 Microsoft.AspNetCore.Http.Abstracti ...

  2. ZKWeb网站框架的动态编译的实现原理

    ZKWeb网站框架是一个自主开发的网页框架,实现了动态插件和自动编译功能. ZKWeb把一个文件夹当成是一个插件,无需使用csproj或xproj等形式的项目文件管理,并且支持修改插件代码后自动重新编 ...

  3. php网站用框架与不用的区别,做前端网页是不是必须要用网页框架

    做前端网页是不是必须要用网页框架 2017-09-15 做前端网页是不是必须要用网页框架?个人感觉这分为两种情况,一种是能力超强,时间够用的情况,另外一种就是用前端网页框架,可以节约开发时间和减少工作 ...

  4. 网页框架布局设计_实用的网页设计-框架和框架用法介绍

    网页框架布局设计 Ah, frames. We hated them when Netscape first offered them up around 1995; we deplored them ...

  5. 火山视窗CEF浏览器用网页框架操作实现取本机IP、地址

    本源码转载自利快云https://www.lkuaiy.com/ 火山视窗CEF浏览器用网页框架操作实现取本机IP.地址   一.准备工作 在网页中存在一种名叫"框架"的元素,具体 ...

  6. html网页div框架代码,div层仿网页框架布局特效代码

    脚本代码(For Alixixi.com)如下: div层仿网页框架布局特效代码 - by 阿里西西 js.alixixi.com * { margin:0; padding:0; list-styl ...

  7. dreamweaver的php框架,Dreamweaver设计网页框架集

    Dreamweaver设计网页框架集 您可以通过向窗口添加"拆分器",在 Dreamweaver 中设计您自己的框架集. 提示在创建框架集或使用框架前,通过选择"查看&q ...

  8. 网页框架·flask

    网页框架·flask 基于Web网站落地的项目 Flask 是一个使用 Python 编写的轻量级 Web 应用程序框架. Flask教程链接Flask教程 基于Web网站落地的项目 Flask:Fl ...

  9. 使用div+css编写网页框架

    使用div+css编写如下网页框架: 代码: html文件: <!DOCTYPE html> <html lang="en"> <head>&l ...

最新文章

  1. PHP学习笔记 第八讲 Mysql.简介和创建新的数据库
  2. Java垃圾回收总结
  3. go程序开发注意事项
  4. 应用数学软件测试题,高等数学第六章定积分应用综合测试题
  5. OpenStack 之vmware机器迁移到openstack集群
  6. 服务器搭建维护,服务器搭建维护方法
  7. 详解JVM内存管理与垃圾回收机制5 - Java中的4种引用类型
  8. vcenter6.7许可证企业版_本地的公司看过来,增值电信业务许可证如何办理!
  9. 项目人力资源管理重点梳理
  10. careercup-链表 2.7
  11. js转php,js代码转php代码可行吗?
  12. unity图片模糊处理
  13. java 获取已有字体,java获取本机所有可用字体
  14. 使用阿里云接口进行银行卡四要素实名认证
  15. epoll底层原理深究
  16. WordPress 前端投稿/编辑插件 DJD Site Post(支持游客和已注册用户)
  17. 低代码架构,内容赋能业务的最后一块拼图?
  18. 企业上云是什么?有什么优点
  19. 自动装箱和自动拆箱的陷阱
  20. 手把手教你从零跑一个Skynet

热门文章

  1. 无主之地kill ajax,阿克斯顿 - 无主之地中文维基 - 灰机wiki
  2. vivado ip xdc 和user xdc 编译顺序
  3. mysql在缺省状态下_MYSQL面试题
  4. flowable 查询完成的流程_中注协正在调试注册会计师成绩查询系统?
  5. idea 代码自动补全突然失效
  6. matlab中平方根法,平方根法和改进的平方根法解线性方程组(Matlab程序)
  7. shell进入特权模式_GRUB引导下进Linux单用户模式的三种方式,修改root密码
  8. 简述开发Android2D图形,2D图形开发(一)(高级).pdf
  9. php if k 1,PHP实现大数字格式化成K/M/B结尾的简短形式
  10. 电脑打字学习_新手如何学会电脑打字 走上盲打之路