Skip to content

Latest commit

 

History

History
115 lines (98 loc) · 5.21 KB

README.md

File metadata and controls

115 lines (98 loc) · 5.21 KB

ZKWeb

Codacy Badge Build Status Build status NuGet MyGet Pre Release

ZKWeb is a flexible web framework for .NET Framework and .NET Core.

Why created this framework?

  • I want a better plugin system, one folder one plugin just like django
  • I want an independent mvc framework, because MS change their architecture too often
  • I want a powerful template system enough to implemente a visual page editor

Features

  • .NET Core Support
    • Support both .NET Framework and .NET Core
  • Plugin System
    • One folder one plugin, each contains everything it needs
    • Automatic compile and reload after source code has changed
    • Based on Roslyn compiler
  • Template System
    • Django style overlapping template file system
      • One plugin can just override other plugin's template
    • Template specialization for mobile or pc
    • Area-Widget style dynamic contents system
      • Able to implement a visual page editor based on this feature
    • Per-widget render cache
      • Most times it's better than cache the whole page
    • Based on DotLiquid
  • IoC Container
    • Fast
    • Provide IServiceProvider integration
    • ZKWeb own implementation
  • Multiple Host Environment
    • Support Asp.NET
    • Support Asp.NET Core
    • Support Owin
    • Use the common abstraction layer can make a plugin support all of this without different code
  • Multiple ORM
    • Support Dapper
    • Support EntityFramework Core (with full automatic database migration)
    • Support InMemory
    • Support MongoDB
    • Support NHibernate (with full automatic database migration)
    • Use the common abstraction layer can make a plugin support all of this with less different code
  • Localization
    • Multi-language support, with gettext style translation
    • Multi-timezone support
  • Caching
    • Policy based isolated cache
      • Isolated by device, request url, and more...
    • Abstraction layer for key-value cache
  • File Storage
    • Abstraction layer for file storage
  • Testing
    • Console and web test runner
    • Support IoC container overridden
    • Support Http context overridden
    • Support temporary database
  • Project Toolkits
    • Project Creator
    • Website Publisher
  • Linux support
    • Ubuntu 16.04 LTS 64bit
    • CentOS 7.2 64bit
    • Fedora 24 64bit

Features from the default plugin collection

  • Form generation and validation
  • Ajax table generation
  • CRUD page scaffolding
  • Scheduled Tasks
  • Captcha
  • Admin Panel
  • Automatic pesudo static
  • Multi-Currency and Region
  • And More...

Getting Started

In Short:
Open 'Tools\ProjectCreator.Gui.Windows\ZKWeb.Toolkits.ProjectCreator.Gui.exe' and create the project.

project creator

You can read README.md under Tools first, for more information please see the documents.
For now there only chinese documents, if you can't read chinese please ask the questions in 'Issues'.
For those chinese software engineers, is recommended to join QQ group 522083886 for further discuss.

Packages

  • ZKWeb: NuGet
  • ZKWeb.Hosting.AspNet: NuGet
  • ZKWeb.Hosting.AspNetCore: NuGet
  • ZKWeb.Hosting.Owin: NuGet
  • ZKWeb.ORM.Dapper: NuGet
  • ZKWeb.ORM.EFCore: NuGet
  • ZKWeb.ORM.InMemory: NuGet
  • ZKWeb.ORM.MongoDB: NuGet
  • ZKWeb.ORM.NHibernate: NuGet

Links and License

Plugins: https://github.com/zkweb-framework/ZKWeb.Plugins
Documents: https://zkweb-framework.github.io (Chinese)
References: https://zkweb-framework.github.io/cn_v2.0/references/zkweb/ZKWebReferences.chm

MIT License
Copyright © 2016~2019 303248153@github
If you have any license issue please contact [email protected].