ZKWeb是什么

ZKWeb是一个轻量的, 支持模块化的网页框架, 支持.Net Framework和.Net Core.

为什么创建这个框架

  • 我需要更简单和灵活的插件系统, 和Django一样, 创建文件夹就可以作为一个新的模块
  • 我需要一个独立的MVC框架, 可以保证即使微软的MVC框架再次换代也不需要重写业务代码
  • 我需要一个强大的模板系统, 足够让我实现网页的可视化编辑

ZKWeb的主要功能

  • 同时支持.Net Framework和.Net Core
  • 提供简单和灵活的插件系统
    • 一个文件夹一个插件, 文件夹下包含该插件需要的所有代码和资源文件
    • 插件下的源代码改变后可以自动重新编译和加载
    • 基于Roslyn实现
  • 提供强大的模板系统
    • 可以像Django一样, 在一个插件重载其他插件的模板
    • 可以根据访问来源是PC或者移动端使用不同的模板
    • 提供区域-部件风格的动态内容系统, 可以基于这个功能实现页面的可视化编辑
    • 支持缓存页面中某个部分的描绘结果, 而不需要缓存整个页面
    • 基于DotLiquid实现
  • 提供自主开发的IoC容器
    • 性能非常快, 接近DryIoC
    • 提供微软DI抽象层的整合, 可以跟Asp.Net Core融合在一起
  • 支持多个托管环境
    • 支持基于Asp.Net, Asp.Net Core, Owin运行
    • 同一份代码使用抽象层可兼容以上的所有运行环境, 代码不再需要跟着框架重写
  • 支持多个ORM
    • 支持Dapper, EntityFramework Core, InMemory, MongoDB, NHibernate
    • 其中EntityFramework Core和NHibernate支持全自动的数据表迁移
    • 代码可以使用抽象层, 但仍需注意ORM之间的功能差异(例如是否支持导航属性和懒加载)
  • 提供多语言和多时区支持
  • 提供缓存的抽象层, 可用于对接Redis
    • 还支持按当前访问设备, 请求URL等策略隔离缓存内容
  • 提供文件系统的抽象层, 可用于对接分布式文件系统
  • 提供测试支持
    • 支持从控制台或者网页执行单元或集成测试
    • 支持重载当前使用的IoC容器和Http上下文
    • 支持使用临时数据库
  • 提供创建项目和发布项目的工具, 支持命令行和跨平台
  • 提供Linux支持, 已在多个发行版上测试可用

演示站点

ZKWeb目前有两个Demo项目, 一个是多页面的商城系统, 另一个是单页面的管理系统.

多页面的商城系统:

http://demo.zkweb.org/admin/login.html
用户名是demo, 密码是123456.

单页面的管理系统:

http://mvvmdemo.zkweb.org/admin
用户名是admin, 密码是123456.

项目和文档链接

ZKWeb的项目首页:

http://www.zkweb.org
包含了ZKWeb的项目介绍.

ZKWeb的源代码:

https://github.com/zkweb-framework/ZKWeb
这个项目仅包含类库, 如何创建一个ZKWeb项目并启动请参考创建项目.

多页面商城系统的源代码:

启动项目: http://github.com/zkweb-framework/ZKWeb.Demo
插件项目: http://github.com/zkweb-framework/ZKWeb.Plugins
启动项目仅用于启动网站, 插件项目包含业务代码, 您可以创建自己的项目然后引用插件项目.

单页面管理系统的源代码:

http://github.com/zkweb-framework/ZKWeb.MVVMDemo
这个项目同时包含了网站项目和插件, 启动前需要使用NodeJS编译前端页面.

ZKWeb 2.0的文档地址:

http://zkweb-framework.github.io
就是您现在看的文档, 内容还在补充, 如果有需要可以查看下面1.0的文档.

ZKWeb 1.0的文档地址:

http://zkweb-framework.github.io/cn_v1.0/site/index.html
ZKWeb 1.0~1.9的文档.

单页面管理系统的文档:

https://github.com/zkweb-framework/ZKWeb.MVVMDemo/tree/master/docs/cn
单页面管理系统(MVVMDemo)的文档不在这里, 请参考上面的地址.

ZKWeb的索引文档:

CHM格式, 点击这里下载

ZKWeb.Plugins的索引文档:

CHM格式, 点击这里下载

开源协议

ZKWeb基于MIT协议开源, 可以自由的修改源代码并免费用于商业项目.

QQ群

欢迎加入ZKWeb的官方QQ群: 522083886