Features:
- Dynamic plugins
- Csscript + Codedom
- Auto compile after modification
- Code first database auto migration
- NHibernate
- Auto migration without any handwrite command
- Simple and high performance Ioc container
- Simple and extendable template sysetm
- DotLiquid
- Template overriding like django
- Mobile specialized templates
- Dynamic contents (area + widget pattern)
- Per widget render result cache (perform extremely fast rending)
- Multi language support
- Multi timezone support
- Unit test support
- Console and web test runner
- Ioc container overridden
- Http context overridden
- Temporary database
- Form generation
- Supported by plugin
- Scaffolding
- Supported by plugin
- Pesudo static
- Supported by plugin
- Visual page editor
- Prepared and planned
Version: 0.9.6 testing (backward compatibility is not provided yet)
Plugins: http://github.com/zkweb-framework/ZKWeb.Plugins
Document: http://zkweb-framework.github.io (Chinese only)
References: http://zkweb-framework.github.io/cn/references/zkweb/html/annotated.html
Demo Website: http://zkwebsite.com/admin
Demo Account: demo 123456
This framework is inspired by django
All comments are written in chinese at this moment because main developers are chinese.
MIT License
Copyright © 2016 303248153@github
If you have any license issue please contact [email protected].
a. How to getting start?
- Download ZKWeb and ZKWeb.Plugins from github
- Put ZKWeb and ZKWeb.Plugins in same folder
- Edit config.json under ZKWeb\App_Data change Database and ConnectionString
- Example for mssql
"Database": "mssql", "ConnectionString": "Server=127.0.0.1;Database=test_db;User Id=test_user;Password=123456;",
- Example for postgresql
"Database": "postgresql", "ConnectionString": "Server=127.0.0.1;Port=5432;Database=test_db;User Id=test_user;Password=123456;",
- Example for sqlite
"Database": "sqlite", "ConnectionString": "Data Source={{App_Data}}/test.db;Version=3;",
- Example for mysql
"Database": "mysql", "ConnectionString": "Server=127.0.0.1;Port=3306;Database=test_db;User Id=test_user;Password=123456;",
- Once database configuration completed, you can run ZKWeb project from visual studio.
b. How to add my own plugin?
-
Add folder "Example" under "ZKWeb.Plugins"
-
Plugin folder struction:
Example bin: compiled assembly src: source files for automatic compilation in developement static: static files template: default html templates template.mobile: mobile specialized html templates template.desktop: desktop specialized html templates
-
Create "ExampleController.cs" under "Example\src"
[ExportMany] public class ExampleController : IController { [Action("example")] public IActionResult Example() { return new TemplateResult("example/test.html", new { message = "hello world" }); } }
-
Create "test.html" under "Example\template\example"
<div>{{ message }}</div>
-
Edit "ZKWeb\App_Data\config.json", add "Example" to "Plugins" list
-
Open browser and visit http://localhost:port/example