OsharpNS轻量级.net core快速开发框架简明入门教程
教程目录
-
从零开始启动Osharp
1.1. 使用OsharpNS项目模板创建项目
1.2. 配置数据库连接串并启动项目
1.3. OsharpNS.Swagger使用实例(登录和授权)
1.4. Angular6的前端项目启动
-
Osharp代码生成器的使用
2.1 生成器的使用
-
Osharp部分模块使用
3.1 Osharp.Redis使用
3.2 Osharp.Hangfire使用
3.3 Osharp.Permissions使用
-
Osharp深度学习和使用
4.1 切换数据库(从SqlServer改为MySql)
4.2 多上下文配置(多个数据库的使用)
4.3. 自定义模块的定义(Senparc.Weixin的使用)
4.4. 继续学习中....
OsharpNS官方资源
项目地址:https://github.com/i66soft/osharp-ns20
演示地址:https://www.osharp.org 直接使用QQ登录可以查看效果
文档地址:https://docs.osharp.org 正在完善中....
发布博客:https://www.cnblogs.com/guomingfeng/p/osharpns-publish.html 大神看这个文档应该就能跑起来,从零开始启动Osharp基于此文档完成
VS生成器插件:https://marketplace.visualstudio.com/items?itemName=LiuliuSoft.osharp
官方交流QQ群:85895249
Osharp代码生成器的使用
目录
下载并安装生成器插件
生成器在线下载地址:https://marketplace.visualstudio.com/items?itemName=LiuliuSoft.osharp
也可以通过VS2017菜单栏
工具-扩展和更新
,检索Osharp
进行插件的安装
配置项目字段信息
- 通过菜单运行Osharp代码生成器,启动之后直接全屏
-
生成器使用流程
从生成器界面上可以看到,生成器包括
项目信息
、项目模块列表
、模块实体列表
、外键配置
、实体属性列表
配置流程:
-
配置项目信息:对项目整体信息进行配置
特别注意:在配置项目信息时,注意对
命名空间前缀
的配置,以下图解决方案为例,命名空间前缀就应该填写CanDoo.Test
,否则生成的时候会提示识别Osharp项目失败,影响生成 -
配置项目模块:一个系统往往有多个模块组成,本示例中配置两个模块
代码名称:生成后对应模块的命名空间和文件夹
显示名称:模块的中文含义,会体现在功能模块的名字上
-
配置模块实体:通过点击对应的项目模块进入模块的实体配置
代码名称:实体名称
显示名称:实体的中文名字
主键类型:表的主键类型,一般是int吧,根据实际选择
增:控制此实体是否生成新增的API,接口,实现
改:控制此实体是否生成编辑的API,接口,实现
删:控制此实体是否生成删除的API,接口,实现
数据权限:没折腾,不知道怎么用
锁定:生成IsLocked字段,具体的实现得自己实现
软删除:生成DeletedTime字段,用于标识删除时间
创建时间:生成创建时间
创建审计:生成创建时间,创建人Id字段 (包含前面的创建时间)
更新审计:生成更新时间,更新人Id字段
外键 按钮:点击进入外键配置
-
配置实体属性:
代码名称:实体的属性
显示名称:实体的注释
属性类型全名:实体的数据类型,特别注意:如果是实体集合,直接使用ICollection<>即可,如果是关联特定实体,比如关联User,需要填写User
只读:这个应该是生成界面时使用的属性
排序:这个应该是生成界面时使用的属性
编辑:这个应该是生成界面时使用的属性
过滤:这个应该是生成界面时使用的属性
必填:生成实体的时候会增加[IsRequired]属性
最小长度:这个应该是生成界面时使用的属性
最大长度:这个应该是生成界面时使用的属性
最小值:这个应该是生成界面时使用的属性
最大值:这个应该是生成界面时使用的属性
可空类型:对应int?,勾选了,数据类型会加"?"
外键:勾选了,说明当前属性是某个实体的外键
导航:勾选了,说明当前属性是某个实体的导航属性
关联实体:选择当前字段关联的实体,同一套“外键+导航”要选择相同的关联实体
输入DTO:勾选了,此属性会在实体的InputDto中生成对应属性
输出DTO:勾选了,此属性会在实体的OutputDto中生成对应属性
默认值:控制默认值
-
配置外键:
己方导航属性:配置实体属性时,勾选了
导航
的属性会在这里显示供选择己方外键属性:配置实体属性时,勾选了
外键
的属性会在这里显示供选择对方实体: 根据实际选择就行
对方导航属性:这里的具体设置看实例吧
外键关系:有一对多 多对一等选项 一般就用多对一和一对一就行,在外键配置部分详细说明
必须:是否必须的
删除行为:有多个选项,根据实际选择,建议使用Restrict
保存配置:配置过程中,顺手就去点一下,免得插件崩溃导致你奔溃
生成代码:所有配置完成后,点一下保存配置,然后再生成代码
-
多对一关系的配置
在本教程中,我们使用文章分类~文章~作者这3者来说明多对一关系的配置
从文章的角度出发,文章和文章分类是多对一,文章和用户也是多对一,文章分类和文章是双方都有对方的导航,文章和用户的导航只存在于文章中
文章分类:包含文章集合的导航
文章:包含文章分类和用户的导航
用户:不包含文章的导航
-
配置文章分类实体属性
配置
Articles
属性,属性类型全名为ICollection<>
,因为这个是导航属性,所以勾选导航
,关联实体中配置为关联的实体CanDoo.Test.CMS.Entities.Article
-
配置文章实体属性
配置文章分类关联:
配置
ArticleCategoryId
属性,属性类型全名为System.Int32
,因为这个是外键,所以勾选外键
,关联实体中配置为关联的实体CanDoo.Test.CMS.Entities.ArticleCategory
;配置
ArticleCategory
属性,属性类型全名为ArticleCategory
,因为这个是导航属性,所以勾选导航
,关联实体中配置为关联的实体CanDoo.Test.CMS.Entities.ArticleCategory
配置用户关联:
配置
UserId
属性,属性类型全名为System.Int32
,因为这个是外键,所以勾选外键
,关联实体中配置为关联的实体CanDoo.Test.Identity.Entities.User
;配置
User
属性,属性类型全名为User
,因为这个是导航属性,所以勾选导航
,关联实体中配置为关联的实体CanDoo.Test.Identity.Entities.User
-
配置外键
配置文章和文章分类的外键:己方导航属性
AritcleCategory
,己方外键属性AritcleCategoryId
,对方实体CanDoo.Test.CMS.Entities.ArticleCategory
,对方导航属性Articles
,外键关系ManyToOne
,必须就根据实际需要填写了,删除关系选择Restrict
,配置此属性,分类下如果存在文章,删除时会因为关联禁止删除配置文章和用户的外键:己方导航属性
User
,己方外键属性UserId
,对方实体CanDoo.Test.Identity.Entities.User
,对方导航属性不要填写,这里能和填写的做一下对比,外键关系ManyToOne
,必须就根据实际需要填写了,删除关系选择Restrict
,配置此属性,分类下如果存在文章,删除时会因为关联禁止删除
代码生成并查看效果
当配置完成之后,点一下“保存配置”
-
点一下“生成代码”按钮,系统会询问是否为Osharp解决方案,点"是"就行了
-
代码生成之后,已经将代码添加到项目中,可以执行编译,如果有错,主要就是配置问题或者是有些类库没有引用,我在生成之后发现User实体对应的类库没有引用,引用之后能正常编译(当然前端中也有代码生成,因为我不用这个前端,所以就没仔细去研究了)
在
程序包管理控制台
中运行add-migration -Context DefaultDbcontext initCMS
,生成数据库迁移代码(如果没有多上下文,执行add-migration initCMS
即可)-
在
程序包管理控制台
中运行update-database -Context DefaultDbcontext
,执行数据库迁移(如果没有多上下文,执行update-database
即可) -
运行项目,查看Swagger,会发现对应的5张表所有的增删改查API都已经生成,并能正常使用
OsharpNS轻量级.net core快速开发框架简明入门教程-代码生成器的使用的更多相关文章
-
OsharpNS轻量级.net core快速开发框架简明入门教程-Osharp.Redis使用
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
-
OsharpNS轻量级.net core快速开发框架简明入门教程-从零开始启动Osharp
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
-
OsharpNS轻量级.net core快速开发框架简明入门教程-基于Osharp实现自己的业务功能
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
-
OsharpNS轻量级.net core快速开发框架简明入门教程-Osharp.Hangfire使用
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
-
OsharpNS轻量级.net core快速开发框架简明入门教程-Osharp.Permissions使用
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
-
OsharpNS轻量级.net core快速开发框架简明入门教程-切换数据库(从SqlServer改为MySql)
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
-
OsharpNS轻量级.net core快速开发框架简明入门教程-多上下文配置(多个数据库的使用)
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
-
【开源】OSharpNS,轻量级.net core快速开发框架发布
OSharpNS简介 OSharp Framework with .NetStandard2.0(OSharpNS)是OSharp的以.NetStandard2.0为目标框架,在AspNetCore的 ...
-
[开源]OSharpNS - .net core 快速开发框架 - 快速开始
什么是OSharp OSharpNS全称OSharp Framework with .NetStandard2.0,是一个基于.NetStandard2.0开发的一个.NetCore快速开发框架.这个 ...
随机推荐
-
HTTP常见头域
近期没需求,也没什么心情去看书,就总结一下自己以前看的HTTP协议基础内容吧.(会很乱,可能不适合一点都没接触过HTTP协议的人观看) 一.HTTP Request header 1.Cache头域 ...
-
js对象详解
js自定义对象 一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在J ...
-
孙鑫视频学习:VS2010中找不到【Tab order】菜单项
在学习孙鑫视频中,修改Tab顺序时,找不到VC6.0中提到的[Layout]->[Tab order]菜单项,但VC2010中可以用Ctrl+D调出来Tab顺序,或者[格式]->[Tab键 ...
-
读书笔记——《图解TCP/IP》(4/4)
经典摘抄 第八章 应用层协议概要 1.应用协议是为了实现某种应用而设计和创造的协议. 2.TCP/IP的应用层包含了管理通信连接的会话层功能.转换数据格式的表示层功能,还包括与对端主机交互的应用层功能 ...
-
linux c 验证登录密码
#define _XOPEN_SOURCE #include <stdio.h> #include <unistd.h> int main(int argc, char *ar ...
-
N bulbs(规律)
N bulbs Accepts: 408 Submissions: 1224 Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 655 ...
-
关于HTML5新手应该知道的几点知识
随着移动互联网的快速发展,HTML5迅速崛起,我们的生活的方方面面都被HTML5渗透着.HTML5在PC端.移动端上均应用广泛,被称为Web的未来.而随着Google正式停止支持Swiffy,HTML ...
-
vmstat结果在不同操作系统上的解释
vmstat是各种unix上的通用工具,但在不同系统上,结果的解释却不同,最容易混淆的是结果的memory部分: 1.linux: vmstat输出结果中: memory: swapd:已用swap区 ...
-
【Visual C++】游戏编程学习笔记之九:回合制游戏demo(剑侠客VS巡游天神)
本系列文章由@二货梦想家张程 所写,转载请注明出处. 作者:ZeeCoder 微博链接:http://weibo.com/zc463717263 我的邮箱:michealfloyd@126.com ...
-
day 20 - 1 序列化模块,模块的导入
序列化模块 首先我们来看一个序列:'sdfs45sfsgerg4454287789sfsf&*0' 序列 —— 就是字符串序列化 —— 从数据类型 --> 字符串的过程反序列化 —— 从 ...