Blazor前後端框架Known功能介紹:系統安裝啟用及自定義

2023-07-07 12:07:00

本章介紹系統安裝與啟用及其自定義功能。

概述

  • 框架內建簡單的系統安裝功能。
  • 錄入企業編碼、名稱、系統名稱、產品金鑰、管理員密碼資訊完成安裝。
  • 可自定義高階安裝功能,如安裝資料庫等您產品所需的安裝資訊。
  • 框架預設無需註冊產品金鑰,若產品需要安裝產品金鑰進行啟用,可進行自定義。
  • 若產品金鑰到期,所有模組頁面自動顯示授權啟用元件。

自定義安裝

若需自定義系統安裝功能,則完成如下步驟即可。

1. 構建安裝模組

//自定義安裝頁面類
class MyInstall : Form
{
    private InstallInfo? info;
    private readonly List<MenuItem> items = new()
    {
        new MenuItem{Icon="fa fa-home",Name="步驟一"},
        new MenuItem{Icon="fa fa-home",Name="步驟二"},
        new MenuItem{Icon="fa fa-home",Name="步驟三"}
    };
    //安裝成功後回撥
    [Parameter] public Action<CheckInfo>? OnInstall { get; set; }
    
    protected override void BuildRenderTree(RenderTreeBuilder builder)
    {
        //使用內建Steps元件構造分步表單
        builder.Component<Steps>()
               .Set(c => c.Items, items)
               .Set(c => c.OnChanged, OnChanged)
               .Set(c => c.OnFinished, OnFinished)
               .Set(c => c.Body, BuildStep)
               .Build();
    }
    //建造步驟內容
    private void BuildStep(RenderTreeBuilder builder, MenuItem item)
    {
        builder.Span(item.Name);
    }
    //每一步儲存
    private void OnChanged(MenuItem item)
    {
        //在此非同步請求各步驟的後端邏輯
        UI.Tips($"儲存{item.Name}");
    }
    //最後一步完成
    private void OnFinished()
    {
        //呼叫內建儲存安裝資訊方法
        SubmitAsync(data => Platform.System.SaveInstallAsync(info), result =>
        {
            if (result.IsValid)
                OnInstall?.Invoke(result.DataAs<CheckInfo>());
        });
    }
}

2. 重寫Index的BuildInstall

public class Index : Known.Razor.Pages.Index
{
    protected override void BuildInstall(RenderTreeBuilder builder)
    {
        //Build自定義Install
        builder.Component<MyInstall>().Set(c => c.OnInstall, OnInstall).Build();
    }
}

自定義產品ID

  • 產品ID預設識別主機的MAC地址。
  • 若需自定義ID格式及識別方式,在後端初始化方法中註冊自定義方法即可。
public class AppCore
{
    public static void Initialize()
    {
        //註冊自定義產品ID
        PlatformHelper.ProductId = MyCheck.GetProductId;
        ...
    }
}

自定義產品金鑰

  • 框架預設不驗證產品ID和金鑰。
  • 若產品需要安裝金鑰才能使用,在後端初始化方法中註冊驗證方法即可。
public class AppCore
{
    public static void Initialize()
    {
        //註冊安裝頁面自動重新整理產品金鑰
        PlatformHelper.UpdateKey = MyCheck.UpdateKey;
        //註冊產品金鑰驗證
        PlatformHelper.CheckSystem = MyCheck.CheckSystem;
        //註冊使用者數限制
        PlatformHelper.CheckUser = MyCheck.CheckUser;
        ...
    }
}

效果圖

Known是基於C#和Blazor開發的前後端分離快速開發框架,開箱即用,跨平臺,一處程式碼,多處執行。

  • Gitee: https://gitee.com/known/Known

  • Github:https://github.com/known/Known

  • 基於C#和Blazor實現的快速開發框架,前後端分離,開箱即用。

  • 跨平臺,單頁應用,混合桌面應用,Web和桌面共用一處程式碼。

  • 包含模組、字典、組織、角色、使用者、紀錄檔、訊息、工作流、定時任務等功能。

  • 程式碼簡潔、易擴充套件,讓開發更簡單、更快捷!

如果對您有幫助,點選⭐Star⭐關注 ,感謝支援開源!