Known快速開發框架

Known是一個基於.NET開發的快速開發框架,前後端分離,使用極少的第三方組件,開發簡單快速,大部分程式碼可通過程式碼生成工具自動生成,非常適合單兵作戰和小團隊開發。前端UI是一個基於JQuery開發的框架,支援單頁和多Tab頁的iframe應用程式,有PC端和移動端兩個版本,支援目前主流的基於Chromium項目的瀏覽器。後端使用ASP.NET MVC框架,三層(Controller、Service、Repository)。

主介面預覽
前端主要組件
後端主要組件
增刪改查示例程式碼
中後台功能介面
移動端介面

主介面預覽


前端主要組件


  1. Layer:彈出層,支援Modal對話框、alert、confirm、tips、loading等。
  2. Router:路由,支援多級路由,回退等。
  3. ListBox:列表框,支援data和url綁定和單擊回調等。
  4. Tree:樹,依賴ztree,支援data和url綁定,支援簡單list數據等。
  5. Tabs:標籤頁。
  6. Query:查詢組件,支援查詢條件欄位綁定和查詢按鈕等。
  7. Form:表單組件,支援普通表單和多Tab頁表單、欄位欄位綁定、非空欄位驗證和操作按鈕等。
  8. Input:輸入組件,支援hidden、text、textarea、select、date、radio、checkbox、editor、picker等,其中date依賴datepicker,editor依賴wangEditor。
  9. Picker:彈出選擇組件,支援查詢和選擇回調等。
  10. Grid:網格組件,支援toolbar、query、import、export等,支援編輯。
  11. Chart:圖表組件,依賴echarts。
  12. View:視圖組件,支援左右布局,欄位一次定義,多處使用(Query、Grid、Form)。

後端主要組件


  1. Database:資料庫訪問組件,支援MySql、SQLite、SqlServer、Oracle等。
  2. Container:對象容器,用於快取註冊的對象實例。
  3. Config:配置組件,提供App相關配置資訊。
  4. Logger:日誌組件,提供Info、Error和遠傳運維api。
  5. Platform:平台組件,提供用戶登錄、日誌、數據字典、配置、編號生成、產品激活等功能。
  6. Flow:工作流組件,提供提交、通過、退回、撤回、指派等流程功能。
  7. Job:定時作業組件,提供多執行緒和Timer作業,定時作業調度。
  8. IoT:IoT組件,提供物聯網設備在線實時數據監測。

增刪改查示例程式碼


前端程式碼

function SysDemo() {
    //fields
    var url = {
        QueryModels: baseUrl + '/System/QueryDemos',
        DeleteModels: baseUrl + '/System/DeleteDemos',
        SaveModel: baseUrl + '/System/SaveDemo'
    };
 
    var view = new View('Demo', {
        url: url,
        columns: [
            { field: 'Id', type: 'hidden' },
            { title: '隱藏欄位', field: 'Hidden', type: 'hidden', required: true },
            { title: '文本欄位', field: 'Text', query: true, sort: true, import: true, export: true, type: 'text', required: true },
            { title: '整型欄位', field: 'IntVal', import: true, export: true, type: 'text', required: true },
            { title: '數值欄位', field: 'DecVal', import: true, export: true, type: 'text' },
            { title: '日期欄位', field: 'Date', placeholder: 'yyyy-MM-dd HH:mm:ss', import: true, export: true, type: 'date' },
            { title: '單選欄位', field: 'Radio', import: true, export: true, type: 'radio', code: 'YesNo' },
            { title: '複選欄位', field: 'Check', import: true, export: true, type: 'checkbox', code: 'YesNo' },
            { title: '下拉欄位', field: 'Select', import: true, export: true, type: 'select', code: ['暫存','已發布'] },
            { title: '備註欄位', field: 'Note', import: true, export: true, type: 'textarea' }
        ]
    });
 
    //methods
    this.render = function(dom) {
        view.render().appendTo(dom);
    }
 
    this.mounted = function() {
        view.load();
    }
}

後端程式碼

//Controller
public class DemoController : BaseController
{
    private DemoService Service => new DemoService();
 
    [HttpPost]
    public ActionResult QueryDemos(CriteriaData data)
    {
        return QueryPagingData(data, c => Service.QueryDemos(c));
    }
 
    [HttpPost]
    public ActionResult DeleteDemos(string data)
    {
        return PostAction<string[]>(data, d => Service.DeleteDemos(d));
    }

    [HttpPost]
    public ActionResult SaveDemo(string data)
    {
        return PostAction<dynamic>(data, d => Service.SaveDemo(d));
    }
}

//Service
class DemoService : BaseService
{
    private IDemoRepository Repository => Container.Resolve<IDemoRepository>();
 
    internal PagingResult<SysDemo> QueryDemos(PagingCriteria criteria)
    {
        return Repository.QueryDemos(Database, criteria);
    }
 
    internal Result DeleteDemos(string[] ids)
    {
        var entities = Database.QueryListById<SysDemo>(ids);
        if (entities == null || entities.Count == 0)
            return Result.Error("請至少選擇一條記錄進行操作!");
 
        return Database.Transaction("刪除", db =>
        {
            foreach (var item in entities)
            {
                db.Delete(item);
            }
        });
    }
 
    internal Result SaveDemo(dynamic model)
    {
        var entity = Database.QueryById<SysDemo>((string)model.Id);
        if (entity == null)
            entity = new SysDemo();
 
        entity.FillModel(model);
        var vr = entity.Validate();
        if (!vr.IsValid)
            return vr;
 
        Database.Save(entity);
        return Result.Success("保存成功!", entity.Id);
    }
}

//Repository
public interface IDemoRepository
{
    PagingResult<SysDemo> QueryDemos(Database db, PagingCriteria criteria);
}
 
class DemoRepository : IDemoRepository
{
    public PagingResult<SysDemo> QueryDemos(Database db, PagingCriteria criteria)
    {
        var sql = "select * from SysDemo";
        db.SetQuery(ref sql, criteria, QueryType.Contain, "Text");
        return db.QueryPage<SysDemo>(sql, criteria);
    }
}

中後台功能介面


個人中心

資源管理

程式碼生成

數據字典

組織架構

角色管理

用戶管理

編號規則

移動端介面