Blazor实战——Known框架快速开始

news2024/12/25 7:48:49

Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行。
开源地址: https://gitee.com/known/Known

1. 安装项目模板并创建新项目

  • 打开命令行输入如下命令安装和创建。
-- 安装模板
dotnet new install KnownTemplate
-- 创建项目
dotnet new known --name=KIMS

说明:KIMS为测试项目名称

  • 安装和创建成功后,项目文件夹自动生成如下内容
├─KIMS          ->项目前后端共用库,客户端和实体类等。
├─KIMS.Client   ->Web前端,Blazor WebAssembly。
├─KIMS.Core     ->项目后端库,控制器、服务、数据访问等。
├─KIMS.Razor    ->项目前端库,模块页面和表单。
├─KIMS.Server   ->Web后端。
├─KIMS.WinForm  ->WinForm窗体及Razor页面。
├─KIMSAlone     ->桌面exe程序。
├─KIMS.db       ->默认SQLite数据库。
├─KIMS.sln      ->VS解决方案文件。

2. 打开解决方案配置应用

  • 使用 VS2022 打开 KIMS.sln 文件,打开 KIMS 项目下 AppConfig.cs 文件,配置App名称,示例代码如下:
public class AppConfig
{
    public static void Initialize()
    {
        Config.AppId = "KIMS";                           //系统ID,自动生成,默认项目名称
        Config.AppName = "Known管理系统";                 //在此配置你的系统名称
        Config.SysVersion = "1.0.0";                     //系统版本号
        Config.AppAssembly = typeof(AppConfig).Assembly; //实体模型程序集,用于模块管理配置列表字段

        PagingCriteria.DefaultPageSize = 20;             //默认分页大小
        DicCategory.AddCategories<AppDictionary>();      //自动加载数据字典类别,在AppDictionary中增加类别
        Cache.AttachCodes(typeof(AppConfig).Assembly);   //自动加载CodeTable特性类常量进入缓存
        //在此配置你的系统其他全局配置
    }
}

3. 配置后端数据库连接

  • 打开 KIMS.Server 项目文件,添加你的系统使用的数据库访问包,常用数据库包如下
-- SQLite
<PackageReference Include="Microsoft.Data.Sqlite" Version="7.0.5" />
-- Access
<PackageReference Include="System.Data.OleDb" Version="7.0.0" />
-- MySQL
<PackageReference Include="MySqlConnector" Version="2.2.5" />

– 打开项目下 AppServer.cs 文件修改数据库连接,示例代码如下:

class AppServer
{
    internal static void Initialize(WebApplicationBuilder builder)
    {
        //配置环境目录
        KCConfig.WebRoot = builder.Environment.WebRootPath;
        KCConfig.ContentRoot = builder.Environment.ContentRootPath;
        //读取appsettings.json配置
        var configuration = builder.Configuration;
        var dbFile = configuration.GetSection("DBFile").Get<string>();//数据库配置
        var uploadPath = configuration.GetSection("UploadPath").Get<string>();//上传文件存储路径
        Initialize(dbFile, uploadPath);
    }

    internal static void Initialize(string? dbFile, string? uploadPath)
    {
        //初始化配置
        AppConfig.Initialize();
        AppCore.Initialize();
        //转换绝对路径
        var path = KCConfig.ContentRoot;
        dbFile = Path.GetFullPath(Path.Combine(path, dbFile));
        uploadPath = Path.GetFullPath(Path.Combine(path, uploadPath));
        //注册数据访问提供者和初始化数据库连接
        Database.RegisterProviders(new Dictionary<string, Type>
        {
            ["SQLite"] = typeof(Microsoft.Data.Sqlite.SqliteFactory)
        });
        var connInfo = new Known.Core.ConnectionInfo
        {
            Name = "Default",
            ProviderName = "SQLite",
            ConnectionString = $"Data Source={dbFile};"
        };
        KCConfig.App = new AppInfo
        {
            Connections = new List<Known.Core.ConnectionInfo> { connInfo },
            UploadPath = uploadPath
        };
    }
}

4. 配置完成运行项目

  • 到此简单配置已完成,现在可以点击VS运行 KIMS.Server 项目啦,运行效果如下:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/549779.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能Python-pythonformat的用法小数点位数

Python中的format函数和小数点位数 介绍 Python中的format函数是一种格式化输出字符串的方法&#xff0c;允许你使用占位符来指定输出的格式。你可以使用format函数来格式化字符串&#xff0c;比如确定字符串的长度、插入变量或按特定格式输出字符串。 在本文中&#xff0c;…

Xubuntu22.04之自动调节亮度护眼redshift(一百七十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…

chatgpt赋能Python-pythonfib

Pythonfib&#xff1a;一个优秀的计算斐波那契数列的Python函数 斐波那契数列是一种非常有趣也非常常见的数列&#xff0c;它起源于数学但在计算机科学中也经常被用到。Pythonfib是一个优秀的Python函数&#xff0c;可以用来计算斐波那契数列。本文将对Pythonfib进行详细介绍&…

本地电脑搭建Plex私人影音云盘教程,内网穿透实现远程访问

文章目录 1.前言2. Plex网站搭建2.1 Plex下载和安装2.2 Plex网页测试2.3 cpolar的安装和注册 3. 本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 转发自CSDN远程穿透的文章&#xff1a;免费搭建Plex家庭影音中心 - 打造超级多媒体中心【公网远程访问…

【红队系列】外网信息收集(二)

红队系列 &#x1f525;系列专栏&#xff1a;红队系列 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; &#x1f4c6;首发时间&#xff1a;&#x1f334;2023年5月20日&#x1f334; &#x1f36d;作者水平很有限&#xff0c;如果发现错误&…

chatgpt赋能Python-pythondescribe

PythonDescribe&#xff1a;更快、更准确、更易用的Python文档生成工具 介绍 Python是一种在数据科学和Web开发等领域广泛应用的高级编程语言。但是&#xff0c;在编写Python代码时&#xff0c;文档的编写常常被忽视。文档的缺失会使代码难以理解、维护和重复使用。幸运的是&…

基于MAC地址的ACL配置

基于MAC地址的ACL配置 【实验目的】 掌握基于MAC地址的标准ACL的配置。验证配置。 【实验拓扑】 实验拓扑如图1所示。 图1 实验拓扑 设备参数如表所示。 表1 设备参数表 设备 接口 IP地址 子网掩码 默认网关 S1 e0/0 N/A N/A N/A e0/1 N/A N/A N/A PC1 N/…

chatgpt赋能Python-pythonfloat设置精度

Python float设置精度 在Python中&#xff0c;float是一种表示小数的数据类型。但是在某些情况下&#xff0c;我们可能需要设置float的精度&#xff0c;以避免舍入误差造成的问题。在本文中&#xff0c;我们将介绍如何在Python中设置float的精度。 为什么需要设置float的精度…

芯片设计全流程知识点总结

1、低功耗工具 功耗分析预测分析工具包括PowerArtist&#xff08;Ansys&#xff09;、Spyglass Power&#xff08;Synopsys&#xff09;、Prime Time PX&#xff08;Synopsys&#xff09;和Redhawk&#xff08;Ansys&#xff09;等。通过对实际项目中&#xff1b;不同工具的比…

单片机GD32F303RCT6 (Macos环境)开发 (二十二)—— FreeRTOS的移植

GD32F303RCT6 FreeRTOS的移植 1、在Application的Makefile中增加freertos的编译选项&#xff0c;如下&#xff1a; ENABLE_FREERTOS yes ifeq ($(ENABLE_FREERTOS), yes) APPLICATION_FLAGS \ -DENABLE_FREERTOS endif2、Application目录下增加FreeRtos目录&#xff0c;将下…

chatgpt赋能Python-pythoncuda

PythonCUDA:将Python与GPU相结合的高性能计算工具 介绍 Python是一种简单易学的高级编程语言&#xff0c;而NVIDIA CUDA是一种基于GPU的并行计算平台。两者结合&#xff0c;可以实现高性能计算&#xff0c;Python可以做到数据处理方便快捷&#xff0c;而CUDA则以其强大的并行…

【拼题A】 520 钻石争霸赛 2023 题解

520-1 520无尽爱 分数 5 作者 陈越 单位 浙江大学 《I Love You 1000 Times》是 The Platters 于 2019 年演唱的歌曲。在 520 这个日子里&#xff0c;拼题 A 请你实现一个小功能&#xff0c;把 1000 这个数字换成用户输入的任意一个数字&#xff0c;然后仿照歌名的句式输出表白…

三、Spring boot集成mongodb

文章目录 一、Spring boot集成mongodb1、集成简介2、搭建开发环境2.1 初始化工程2.2 引入依赖2.3 添加配置 3、基于MongoTemplate 开发CRUD3.1 添加实体3.2 实现3.3 添加测试类 4、基于MongoRepository开发CRUD4.1 实现4.2 添加Repository类4.3 添加测试类 一、Spring boot集成…

chatgpt赋能Python-pythondot

PythonDot - 一款强大的SEO工具 作为一名有10年Python编程经验的工程师&#xff0c;我一直在寻找一种能够大大简化我的SEO工作流程的工具。之前我试用了很多SEO工具&#xff0c;但它们要么太昂贵&#xff0c;要么功能太少。最终&#xff0c;我发现了PythonDot - 一款功能强大的…

chatgpt赋能Python-pythonend怎么用

Pythonend&#xff1a;什么是Pythonend以及如何使用它&#xff1f; 介绍 Pythonend是一个能够自动化处理网页和数据的Python框架。它能够处理各种数据来源&#xff0c;比如CSV、Excel、MySQL和SQL Server数据。它还可以从网页中提取数据并将其转换成易于分析的格式。 Python…

C++13-STL模板

C13-STL模板 在线练习&#xff1a; http://noi.openjudge.cn/ https://www.luogu.com.cn/ 大纲要求 【 3 】算法模板库中的函数&#xff1a;min、max、swap、sort 【 4 】栈 (stack)、队列 (queue)、链表 (list)、 向量&#xff08;vector&#xff09;等容器 1.函数模板 泛…

真题详解(求叶子结点数)-软件设计(七十九)

真题详解(数字签名算法)-软件设计&#xff08;七十八)https://blog.csdn.net/ke1ying/article/details/130771043 1、面向对象分析和设计中&#xff1a; 系统内对象和系统外参与者的联系媒介&#xff1a;边界类。 实体类&#xff1a;负责业务和数据逻辑。 控制类&#xff1…

Learn Git Branching 记录

Learning Git Branching 可以说是目前为止最好的教程了&#xff0c;地址 点击右下角问号显示常用命令 1.提交 git commit提交内容&#xff0c;并把这些修改保存成了一个提交记录 C3&#xff0c;C3 的父节点是 C2 修改提交信息 git commit --amend每次 git commit 后都会产生一…

波奇学Linux:指令,指令行解释器和Linux的权限

​ 目录 ​指令和命令行解释器 什么是指令&#xff1f; 什么是命令行解释器&#xff1f; 指令和命令行解释器的作用 Linux的权限 Linux的身份 Linux的权限 权限和身份有关&#xff1a;拥有者&#xff0c;所属组&#xff08;group&#xff09;&#xff0c;other。 权限…

互联网的出现为创业者提供了一个新的平台,使得创业门槛大大降低,同时也为更多的人提供了机会。然而,在互联网创业的道路上,成功者和失败者之间的差距可能会更加明显。

创意 创业的第一步是找到一个好的创意。这个创意应该是有市场需求的&#xff0c;且你有能力实现它。当然&#xff0c;这个创意不必是全新的&#xff0c;但它必须要有你的创新点。你需要考虑你的目标客户、他们的需求、你的产品或服务如何满足这些需求、竞争情况等因素。因此&a…