Admin.NET源码学习(4:基于Furion的后台服务启动方式浅析)

  Admin.NET为前后端分离架构,后台服务的入口项目为Admin.NET.Web.Entry,其与其它项目的依赖关系如下图所示。
在这里插入图片描述
  由于项目采用Furion框架,后台服务启动方式、注册方式、配置方式等方面与常规的asp.net core项目差异明显,初步接触可能很不习惯,需要学习furion的基本用法才能看明白后台服务启动方式。
  首先是配置文件,Furion支持获取任何项目层根目录下的json文件,然后自动合并所有分散的配置文件。除此之外,还支持在启动项目的appsettings.json文件中配置ConfigurationScanDirectories参数,指定配置文件目录集合,Furion启动时会自动导入并合并这些文件夹中的配置文件信息。
在这里插入图片描述
  其次为启动方式,基于Furion框架,只需在启动项目的program.cs文件中调用Serve.Run即可达到常规启动文件的效果,按照Furion帮助文档的说法:“Serve.Run() 已经包含了基本的 WebAPI 功能,包含动态 WebAPI,跨域 等等”。Admin.NET项目的program.cs文件中使用了组件化启动方式,如下图所示。启动时调用的WebComponent组件继承自IWebComponent接口,该接口的Load函数等效于调用WebApplicationBuilder注册中间件。
在这里插入图片描述
  最后是Startup文件,除了Admin.NET.Web.Entry和Admin.NET.Core项目,每个项目都包含继承自AppStartup的Startup类。Furion框架支持AppStartup启动,也即所有启动项目直接引用或间接应用的项目中继承自AppStartup类的Startup类都会被自动加载运行,所在的项目层没有被启动层直接或间接添加引用。Furion帮助文档的解释是避免集中配置或修改启动项目中的Startup类,而是每个项目只需关系自身项目中所需注册及使用的服务即可。
  最后一点是GlobalUsings机制。从.NET6开始,微软新增了 GlobalUsings 机制,Admin.NET的不少项目根目录下都存在GlobalUsings.cs文件,其内是一组项目各代码文件共用的using语句,项目内其它cs文件不需要再次添加using声明,可以减少代码量。
  关于上述内容更详细的说明请见参考文献3,本文仅是学习Furion的粗浅理解。

参考文献:
[1]https://github.com/zuohuaijun/Admin.NET
[2]http://101.43.53.74:5050/introduce/
[3]https://furion.net/docs/

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

初识C语言指针(5)

目录 1. 回调函数 2. qsort函数 2.1 qsort函数的基本参数 2.2 qsort函数的使用 2.3 qsort排序结构体类型数据 结语 1. 回调函数 什么是回调函数呢?回调函数就是⼀个通过函数指针调⽤的函数。 如果你把函数的指针(地址)作为参数传递给另…

如何使用ssm实现铁岭河医院医患管理系统+vue

TOC ssm077铁岭河医院医患管理系统vue 系统概述 进过系统的分析后,就开始记性系统的设计,系统设计包含总体设计和详细设计。总体设计只是一个大体的设计,经过了总体设计,我们能够划分出系统的一些东西,例如文件、文…

《黑神话:悟空》中的实景三维建模

这几天,国产游戏《黑神话:悟空》终于面世,迅速引爆了全球游戏市场。作为一款以《西游记》为背景的3A级动作角色扮演游戏,《黑神话:悟空》不仅在文化表达上极具吸引力,其背后的技术实力更是令人瞩目。本文将深入探讨,3A…

UEditor百度富文本后端上传文件接口

UEditor百度富文本后端上传文件接口 直接上代码 接口: RequestMapping("/UEditorConfig")public String list(HttpServletRequest request, HttpServletResponse response) throws IOException {String config environment.getProperty("ueditor.c…

C/C++逆向:寻找main函数(Debug-x86)

在程序的逆向分析中,寻找main函数在逆向分析中是非常重要的,它是程序的核心执行点,从这里开始,程序的主要逻辑开始展开;在这边我们需要明确两个概念:用户入口(User Entry Point) 和 …

【HarmonyOS】鸿蒙应用蓝牙功能实现 (三)

【HarmonyOS】鸿蒙应用蓝牙功能实现 (三) 前言 今天整理蓝牙Demo代码,查看官网时发现自己帐号没有登录,竟然也可以访问最新的API文档,真是喜大奔普。看来华为已经开始对外开放最新的API文档,不再有白名单…

《机器学习》—— 使用过采样方法实现逻辑回归分类问题

文章目录 一、什么是过采样方法?二、使用过采样方法实现逻辑回归分类问题三、过采样的优缺点 本篇内容是 基于Python的scikit-learn库中sklearn.linear_model 类中的 LogisticRegression()逻辑回归方法实现的,其内容中只是在处理…

使用Java进行中小学违规教育培训数据采集实践-以某城市为例

目录 前言 一、违规教育信息 1、内容管理 2、转换后的内容 二、数据库设计 1、空间数据库 三、字符地址位置转换空间信息 1、实现时序图 2、后台实体类的设计与实现 3、数据持久化操作 四、总结 前言 时间来到2024年8月24日,时间过得很快,2024…

芯片后端之 PT 使用 report_timing 产生报告 之 -include_hierarchical_pins 选项

今天,我们再学习一点点 后仿真相关技能。 那就是,了解 report_timing 中的 -include_hierarchical_pins 选项。 如果我们仅仅使用如下命令,执行后会发现: pt_shell> report_timing -from FF1/CK -to FF2/d -delay_type max 我们使用命令 report_timing 报出的如上路…

C++篇:C向C++迈进(上)

引言 C语言作为编程基石,其高效与直接性深受开发者喜爱。然而,随着软件复杂度的增加,C以其面向对象及高级特性成为了新的选择。我们接下来将学习C,从C语言迈向C。 什么是C C 是一种高级语言,由 Bjarne Stroustrup 于…

python测试框架之Pytest

初识Pytest Pytest1.Pytest的特点:2.Pytest的基本使用规则3.pytest安装1)使用编译器安装2)使用命令安装 4.pytest规则 Pytest Pytest是python的一个第三方单元测试库,它的目的是让单元测试变得容易,并且也能扩展到支持…

VSCode插件 live Server

普通打开 安装live Server 包含端口 说明内置了服务器

视频插帧—— RIFE 和 IFNet 的机制和应用

介绍 最近,数字和模拟技术开始加速融合。我们生活在一个人工智能技术能够显著提高质量的时代,只要模拟材料能够数字化。 例如,讨论中涉及到的纸艺软件,纸龙的移动模型被时间锁定,以大约 3 fps(每秒帧数&a…

一元四次方程求解-【附MATLAB代码】

目录 前言 求解方法 MATLAB验证 附:一元四次方程的故事 前言 最近在研究机器人的干涉(碰撞)检测,遇到了一个问题,就是在求椭圆到原点的最短距离时,构建的方程是一个一元四次方程。无论是高中的初等数学…

Flink1.18 同步 MySQL 到 Doris

一、前言 使用Apache Flink实现数据同步的ETL(抽取、转换、加载)过程通常涉及从源系统(如数据库、消息队列或文件)中抽取数据,进行必要的转换,然后将数据加载到目标系统(如另一个数据库…

【Node】【1】node和nvm安装

安装nvm、node、npm 安装node 18 ,最简单的办法是使用nvm,就不用手动安装了,那么就得先安装nvm。 NVM 是Node Version Manager,用于管理 Node.js 版本。你设备上的不同项目可能使用不同版本的 Node.js。通过 nvm,用户…

HTTP与HTTPS:数据安全性的差异与风险分析

在现代互联网通信中,HTTP(HyperText Transfer Protocol,超文本传输协议)和HTTPS(HyperText Transfer Protocol Secure,超文本传输安全协议)是两种常见的网络协议,它们都在浏览器和服…

Telegram mini app 本地开发配置

前言: 为了能在telegram里本地调试mini app,参考了网上很多方案,踩了不少坑。最后整了一个适合自己的方案,记录一下。 这个方案一定不是最好的,不过是目前适合我上手开发的方案了。 本文章适合需要在 telegram 本地…

拼多多20家店铺登满了怎么办

解决拼多多多店铺管理难题:河鱼浏览器的妙用! 在电商领域,拼多多已经成为许多商家的重要销售渠道。然而,对于同时管理多个拼多多店铺的商家来说,如何高效地运营这些店铺成为了一大挑战。特别是当你的店铺数量达到20家…

简化登录流程,助力应用建立用户体系

随着智能手机和移动应用的普及,用户需要在不同的应用中注册和登录账号,传统的账号注册和登录流程需要用户输入用户名和密码,这不仅繁琐而且容易造成用户流失。 华为账号服务(Account Kit)提供简单、快速、安全的登录功…