Radzen Blazor Studio 脚手架框架解读

背景

组织管理管理准备使用Blazor这个工具实现,因为其有对应的 scaffold 脚手架,先构建数据库,然后通过向导,生成CRUD以及对应的接口,那么有必要看一下,其内部的代码结构是什么样的。

结构

接口层

有两类接口,一类是继承Controller,一类ODataController,常用的api接口,导出以及登录权限的使用,这里需要了解一个概念就是ODtata, OData是什么?

OData - Open Data Protocol,是一个设计和使用RESTful API的标准。REST本身只是一个构建web服务的思想和理念,其没有规定一个统一的标准来限制开发人员该如何设计RESTful API。其实我们实际开发中的确也没有遵循某个统一的标准去设计WebAPI。因为大多数场景下,遵循一个统一的标准并不是必要的。但在某些场景下,有这样一个标准却能带来很大的好处。

OData的理想是, 无论哪个组织构建的RESTful API,只要其符合OData标准。其他组织就可以按照OData标准中定义的方式去使用这个API获取/修改资源。这个可以类比SQL标准之于RDBMS关系。无论什么关系型数据库,如果其声称支持SQL 标准,任何人就可以使用标准SQL查询语句来查询数据。

标准化的另一个好处:可以将Odata协议实现到一个通用的类库中,通过这个类库去创建和访问RESTful API可以减少开发人员的工作量。官网上有很多这样的组件。

这是微软开放的一种api的标准,后期,将会对这个接口进行改造,工具上使用该接口,抛出的其他服务,会使用 FastEndpoints 这个包。

Data 数据层

直接使用 EntityFrameworkCore,另外数据迁移也使用该工具,在开发过程中很有价值。

过滤层 安全

AuthorizeFilter,这个重写OnAuthorizationAsync,安全方面使用了Microsoft.AspNetCore.Identity这一系列内容,然后重写了一部分方法注入,这个地方会像java的安全一样,会有专门的章节来探讨安全的实现问题。

Model层

这个就是根据数据库直接生成,并没有目录区分,也没有view中的model。

Page层

生成的CRUD页面,没有目录分类。

Service层

也就是业务层,这里也没有分类,需要手工分类,生成CRUD的基本方法。

Share层

就是母版。

总结

  1. 全部放在一个项目中,够高效,但是面临大的问题,就是功能增多,太乱。
  2. 用的内容比较简介,容易维护。
  3. 需要在这个基础上进一步的把各类项目分开,各类服务分开,第一个版本可以先以功能开发为主,第二个版本进行各类重构。
  4. 总体上该工具的架构安排不够专业,不过毕竟是脚手架,完成脚手架的功能即可。
  5. 详细代码可以下载阅读组织管理: 组织结构管理,包括成员,机构,岗位,部门等。

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

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

相关文章

L1-024 后天(Java)

如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。 输入格式: 输入第一行给出一个正整数D(1 ≤ D ≤…

布隆过滤器原理(易理解版)

当我们说布隆过滤器时,可以将其想象成一个特殊的盒子,这个盒子可以判断某个东西是否在里面。但是,这个盒子并不存储实际的东西,而是用一些特殊的方法来判断。 盒子(位数组): 有一个盒子&#xf…

Oracle sql sum函数返回null,默认值0

在Oracle SQL中,当你使用SUM函数对一组值进行求和时,如果这组值中包含NULL,那么SUM函数将忽略这些NULL值,并返回非NULL值的总和。 如果你希望在SUM函数返回NULL时有一个默认值,你可以使用COALESCE或NVL函数。 使用CO…

深度学习烦人的基础知识(1)---@在bash中的作用---positional parameter详解

文章目录 序Positional parameter练习题 Special parameter练习题 序 深度学习,反展到现在,真的是要融会贯通很多东西。遇到便补吧! 想直接知晓答案的,请到最后一个练习题,想补基础知识的,请按照顺序阅读…

Python——for循环的嵌套

用Python坚持表白一百天,每天都送10朵花,一百天表白成功! i1 for i in range(1,101):print(f"今天是表白的第{i}天,坚持ing")for j in range(1,11):print(f"送给你第{j}朵玫瑰花")print("小美我喜欢你&…

Hive 的 安装与使用

目录 1 安装 MySql2 安装 Hive3 Hive 元数据配置到 MySql4 启动 Hive5 Hive 常用交互命令6 Hive 常见属性配置 Hive 官网 1 安装 MySql 为什么需要安装 MySql? 原因在于Hive 默认使用的元数据库为 derby,开启 Hive 之后就会占用元数据库,且不与其他客户…

Mindspore 公开课 - prompt

prompt 介绍 Fine-Tuning to Prompt Learning Pre-train, Fine-tune BERT bidirectional transformer,词语和句子级别的特征抽取,注重文本理解Pre-train: Maked Language Model Next Sentence PredictionFine-tune: 根据任务选取对应的representatio…

算法通关村第十六关—滑动窗口经典问题(白银)

滑动窗口经典问题 一、最长子串专题 1.1 无重复字符的最长子串 LeetCode3给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。例如: 输入:s"abcabcbb" 输出:3 解释:因为无重复字符的最长子串是…

【Java万花筒】数据之舞:Java数据库连接与操作库全景视角

数据库连接与操作:Java 应用开发者的综合指南 前言 随着Java应用的不断发展,数据库连接与操作成为关键技能之一。本文将深入探讨主流Java库,涵盖了JDBC、Hibernate、MyBatis、Spring Data JPA、Apache Commons DBUtils、JOOQ以及Querydsl。…

牛客周赛 Round 28 F

以后需要使用map,set进行二分,并且需要知道二分位置的信息时,不妨考虑使用树状数组进行维护 因为简单版本保证了每个数都为正整数,所以前缀和保证了一定的递增的,即有序的,那么考虑固定左端点,去…

多线程并发与并行

📑前言 本文主要是【并发与并行】——并发与并行的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是听风与他🥇 ☁️博客首页:CSDN主页听风与他 🌄每日一句&…

自动化测试理论(1)—概述需要掌握的内容

要在自动化测试领域取得成功,需要掌握一系列技能和概念。以下是一些关键的内容: 编程语言: 了解并精通至少一种编程语言,如Python,Java,JavaScript等。编写自动化测试脚本通常需要编程技能。 自动化测试框…

SpringBoot3

有用的新特性 JDK8-19 新增了不少新特性,这里我们把实际常用的新特性,给大家介绍一下。包括以下几个方面: Java RecordSwich 开关表达式Text Block 文本块var 声明局部变量sealed 密封类 Java14 中预览的新特性叫做 Record ,在…

explorer.exe 作用

Explorer.exe是什么 在Windows操作系统中,Explorer.exe是桌面进程的意思,它负责显示用户桌面信息,如果用户将它结束掉就看不到桌面上的任何图标了,相当于Windows操作系统中的人机交互界面,其重要性不言而喻。如果用户发…

【算法笔记】分支限界专题

分支限界 整体结构 本质上感觉还是遍历解树剪枝,但是配合优先队列使用以后可以更好的找到最优解。 例题 P8011 ⾛迷宫 对于迷宫问题,某一节点的关联节点指的是它四个方向上相邻的节点。 要利用flag数组确保不会重复访问。 void bfs(){//1、初始化队…

重写equals方法为什么还要重写hashcode方法?

目录 什么是 hashcode(哈希码、散列码)? 为什么 equals() 方法要重写? hashCode() 与 equals() 的关系 重写equals方法为什么还要重写hashcode方法? 什么是 hashcode(哈希码、散列码)&#…

python爬虫之线程与多进程知识点记录

一、线程 1、概念 线程 在一个进程的内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”叫做线程 是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指…

DAY01_Spring—Spring框架介绍IOCSpring工厂模式

目录 1 什么是框架2 Spring框架2.1 Spring介绍2.2 MVC模型说明2.3 IOC思想2.3.1 问题说明2.3.2 IOC说明 3 Spring IOC具体实现3.1 环境准备3.1.1 关于JDK说明3.1.2 检查JDK环境配置 3.2 创建项目3.3 关于Maven 命令3.3.1 install 命令3.3.2 clean 命令 3.4 添加jar包文件3.4.1 …

flutter使用getx进行数据状态管理,实现页面响应式

无论是什么样的应用,都还是需要最基础的数据来支撑的,而且不同的页面之间可能需要共享数据状态,这就显得数据状态管理非常有必要了。因为我这里使用了get依赖库,所以就可以直接在项目中使用getx来管理状态,不想再使用别…

【笔记】软件下载链接汇总

🎈欢迎加群交流🎈 ✨✨✨https://ling71.cn/hmf.jpg✨✨✨ 浏览器历史版本下载 Firefox史版本下载:(官网) http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ Chrome历史版本、ChromeDriver历史版本&#x…