本章介绍系统安装与激活及其自定义功能。

概述

  • 框架内置简单的系统安装功能。
  • 录入企业编码、名称、系统名称、产品密钥、管理员密码信息完成安装。
  • 可自定义高级安装功能,如安装数据库等您产品所需的安装信息。
  • 框架默认无需注册产品密钥,若产品需要安装产品密钥进行激活,可进行自定义。
  • 若产品密钥到期,所有模块页面自动显示授权激活组件。

自定义安装

若需自定义系统安装功能,则完成如下步骤即可。

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关注 ,感谢支持开源!

Blazor前后端框架Known功能介绍:系统安装激活及自定义的更多相关文章

  1. ASP.NET Core模块化前后端分离快速开发框架介绍之4、模块化实现思路

    源码 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:https://nm.iamoldli.com 账户:admin 密码:admin 前 ...

  2. ASP.NET Core模块化前后端分离快速开发框架介绍之2、快速创建一个业务模块

    源码地址 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:https://nm.iamoldli.com 账户:admin 密码:admin ...

  3. 快速web开发中的前后端框架选型最佳实践

    这个最佳实践是我目前人在做的一个站点,主要功能: oauth登录 发布文章(我称为"片段"),片段可以自定义一些和内容有关的指标,如“文中人物:12”.支持自定义排版.插图.建立相 ...

  4. ASP.NET Core模块化前后端分离快速开发框架介绍之1、开篇

    源码地址 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:https://nm.iamoldli.com 账户:admin 密码:admin ...

  5. com.panie 项目开发随笔_前后端框架考虑(2016.12.8)

    (一) 近日和一同学联系,说了我想要做一个网站的打算.她很感兴趣.于是我们协商了下,便觉得一起合作.她写前端,我写后台.因为我对于前端样式设计并不怎么熟悉. (二) 我们决定先做一个 个人博客. 网上 ...

  6. layui框架部分功能介绍

    注意:代码的所有功能都没有导入layui的css样式 一,分页功能 layui框架分页使用,其实layui分页非常简单只需要传入一个总页数就可以很好运用这个功能 下面就看一下我对layui框架分页的介 ...

  7. VSCode 完美整合前后端框架(angular2+.NET core)

    首先打开命令行查看本地.NET版本. 通过命令行安装模板. dotnet new --install Microsoft.AspNetCore.SpaTemplates::* 创建demo目录,并用v ...

  8. ASP.NET Core模块化前后端分离快速开发框架介绍之3、数据访问模块介绍

    源码 GitHub:https://github.com/iamoldli/NetModular 演示地址 地址:https://nm.iamoldli.com 账户:admin 密码:admin 前 ...

  9. Vue2+Koa2+Typescript前后端框架教程--03后端路由和三层模式配置

    昨天将Koa2的基础框架和自动编译调试重启服务完成,今天开始配置路由和搭建基础的三层架构模式. 路由中间件:koa-router,即路由导航,就是我们平时使用最广泛的get/post方法执行的URL路 ...

  10. web前后端框架整理

    nodejs <——> Express <———> bootstrap <———> angularJS <————> jquery <—————& ...

随机推荐

  1. 定时器中断_PWM输出_STM32第三课

    1.TIM2中断,需求:实现LED间隔0.5秒闪烁 1.使用CubeMX设置系统时钟.RCC.LED灯.时钟树等基础操作. 2.配置TIMER2,使能为全局变量,设置优先级.并生成代码. 3.代码编写 ...

  2. RDIFramework.NET WinForm版新增报表管理功能模块

    在Web版本中有报表管理功能模块,非常实用的功能,重量级推荐.在WinForm应用中,我们也增加了支持."报表管理"模块主要用于对日常常用的报表做定制展示,可以自动发布到模块,同时 ...

  3. 2021年蓝桥杯python真题-路径(数论+动态规划)(LCM、GCD和DP详细介绍)干货满满~

    欢迎大家阅读本文章 如果大家对LCM和GCD不是很熟悉,这篇文章将对你有帮助! 本文章也会把动态规划做一定的介绍 题目: GCD和LCM的讲解: GCD的实现-辗转相除法: 在数学中,辗转相除法,又称 ...

  4. day05-优惠券秒杀01

    功能03-优惠券秒杀01 4.功能03-优惠券秒杀 4.1全局唯一ID 4.1.1全局ID生成器 每个店铺都可以发布优惠券: 当用户抢购时,就会生成订单,并保存到tb_voucher_order这张表 ...

  5. java无效发源版本xx

    这三个地方统一一下 就可以解决了

  6. java Builder模式

    Builder 模式也叫建造者模式,builder模式的作用将一个复杂对象的构建与他的表示分离,一步一步创建一个复杂对象的创建型模式.在不知道内部建造细节的情况下,可以更精细的控制对象的构造流程.目的 ...

  7. [C++核心编程] 4.6、继承

    文章目录 4.6 继承 4.6.1 继承的基本语法 4.6.2 继承方式 4.6.3 继承中的对象模型 4.6.4 继承中构造和析构顺序 4.6.5 继承同名成员处理方式 4.6.6 继承同名静态成员 ...

  8. 【OpenAI】私有框架代码生成实践

    作者:京东零售 牛晓光 根据现有调研和实践,由OpenAI提供的ChatGPT/GPT-4模型和CodeX模型能够很好的理解和生成业界大多数编程语言的逻辑和代码,其中尤其擅长Python.JavaSc ...

  9. 2020-08-31:描述HTTP的版本之间的区别,主要是1.0/1.1/2.0三个版本的区别。

    福哥答案2020-08-31: HTTP1.0与HTTP1.1的主要区别 1.长连接HTTP1.0:需要使用keep-alive参数来告知服务器端要建立一个长连接.HTTP1.1:默认支持长连接.2. ...

  10. React笔记-生命周期(七)

    React笔记-生命周期(七) 生命周期值React组件从装载到卸载的全过程 在这个过程中React提供了多个内置函数供开发者在不同阶段执行需要的逻辑 状态组件由3个阶段组成 挂载阶段(MOUNTIN ...