随笔分类 - .net
.net 系列文章
摘要:FluentValidation在asp.net core中怎么使用?先安装包。 Install-Package FluentValidation.AspNetCore 和上一篇的实体类和验证类一样。 实体类: public class Person { public int Id { get; s
阅读全文
摘要:把数据错误扼杀在早期,那就是在数据的入口处,一般数据都是打包成一个实体的方式进传递,FluentValidation就以实体类为单位进行属性验证的集合。 Install-Package FluentValidation 下面看一个例子吧。 实体类: public class Person { pub
阅读全文
摘要:从前,用asp.net core写了一个给客户发交易明细的应用,每天发一次,因为是csv格式,当时用的是StringBuilder来一行一行组装数据,组装完后,EMali或SFTP给客户。 后来,为节省服务器资源,需要把服务从windows server迁移到Linux上,经过反复测试,都没有发现B
阅读全文
摘要:string string是常用的类型,它具有不可变性:就是一旦赋值,就不可变,如果再赋值 ,就重新开辟内存空间;保留性:如果一个字符串存在,另一个与其相同,他们会指向同一个地址,不会再开辟新内存空间; 下面的Demo作个证明: public unsafe void Run() { string a
阅读全文
摘要:首先声明,Bogus是一个Nuget包的名称,Faker是它内部的一个类,这个库的作用就是模拟生成实体类的数据,特别适合测试时的场景,不用苦思冥想,辛辛苦苦来造不同的实体类了。当然,造出来的都是虚假的(Bogus),骗人的(Faker)。它家在这里:https://github.com/bchave
阅读全文
摘要:OneOf——其中之一,这是一个泛型类,意思就是这里泛型中的任何一个类都可以,还是看代码吧。 引入包 install-package OneOf 实现一个产品查询,有三种情况,查询到返回;查询不到;查询出错。 [ApiController] [Route("[controller]")] publi
阅读全文
摘要:csrobot为开发提高效率,增加乐趣! https://github.com/axzxs2001/CSRobot 安装命令: dotnet tool install --global CSRobot --version 0.0.4 Nuget地址:https://www.nuget.org/pac
阅读全文
摘要:下面的数据库类型和c#类型的映射关系,只是我个人的想法,应该不同的业务场景对应可能不一样,比如json,xml,line,polygon结构化的数据,如果在C#中有对应的实体类,可以很友好的转换,如果没有,可以用现有的类型存储,再作转换,比如json,xml都可以用string来接收。 mysql字
阅读全文
摘要:CSRobot的gen命令,有一个参数--map,是指数据库字段类型到实体类型映射,本例是sql server到csharp的类型映射: SQL Server C# bigint Int64 binary Byte[] bit Boolean char String,Char[] date Date
阅读全文
摘要:CSRobot https://github.com/axzxs2001/CSRobot gen命令是用来从数据库,生成实体类,前一篇文章说到要实现两个接口,其中一个是从数据库中查询出库,表,字段的信息,转成实体类。 首先说一下gen命令的属性 csrobot gen [options] 命令参数选
阅读全文
摘要:写代码很久了了,时不时想把这些年学到的,用到的,或自己感悟到的,汇总一下,形成一个东西,或资料,或工具。但每当开始时就一片空白,总是觉得这些大家都会,这些只是自己片面的观点,这些拿不出手…… 转念又想,再不写就更老了,再说社区的力量是伟大的,在写的过程中,可以集大家之思想,来完善,优化。 所以,在这
阅读全文
摘要:应用是演进的,通常我们用版本号来管理。api也是演进的,这篇博文就说说asp.net web api演进时的版本管理。 asp.net web api的版本管理是通过微软的一个包来实现的。 Install-Package Microsoft.AspNetCore.Mvc.Versioning 通过u
阅读全文
摘要:dotnet tool对应的工具,本质上是一个控制台应用,在调用这个应用时,会根据传入的参数,执行应用内部的逻辑。 关于dotnet tool命令使用,参照https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet-tool-install 下
阅读全文
摘要:在.net core发布之初,dotnet cli就诞生了,dotnet cli的作用是什么呢?主要是用来创建,还原,构建,发布,测试等一系统管理功能,本来,visual studio中是有这些功能的,那为什么还另外再提供一套呢? 【注:其实在windows下的.net应用,也是可以通命令行来实现一
阅读全文
摘要:Union就是把不相干的一些数据实体,合并起来,一起供外部查询。不用像webapi,完成查询不同的数据,需要多次请求。一次请求,获取多样数据,减少请求次数,这也是GraphQL的优势之一。怎么弄,来来来,代码看过来: using HotChocolate; using HotChocolate.Ex
阅读全文
摘要:向对象的继承,是个好东西;GraphQL也是个好东西;怎么能有机的结合起来,发挥彼此的能量?Hot Chocklate实现了.net和GraphQL的灵活组合,一起来看看,这是接口和子类的实现: class Program { static void Main(string[] args) { In
阅读全文
摘要:越权 越权是非常严重的安全漏洞,通常状态是开发人员对请求的限制逻辑不严格导致的。 如果系统中有角色的概念,越权可能出现不同角色间的越权和同角色间的越权。 相同角色: A用户,B用户是相同的角色。 A用户和B用户都可以调用 /photo/{id}。 这个url,如果在后端不判断这个phtoto的id属
阅读全文
摘要:上传文件 上传文件是造成风险的很大因素,所以对上传文件进行处理是重要的,首先要处理的是:a、上传文件大小限制;b、上传文件类型(能过扩展或,或文件头)限制;c、上传的名称要替换掉;d、上传的文件要在专用区域(如果能设置权限最好)最好。 [HttpPost("/files")] public asyn
阅读全文
摘要:隐藏web服务端信息 创建一个asp.net core mcv web项目,运行,F12查看返回信息,如下图,会清晰看到服务端的类型是kestrel. 有时安全检测要求不能显示服务端信息,这样在一定程度上能降低被 攻击的风险,具体代码如下: public class Program { public
阅读全文
摘要:web应用相对desktop应用就要复杂一些,桌面应在一个时间点是为单访问服务,web应用,在一个时间点,设计的是为多人服务;桌面应用UI和后面代码是一体的,在一台设备上动行表示,但web服务,通常是前后端分离,后端很多时候还是很多个服务协同工作,所以web服务就要复杂一些。 web框架 这里说的w
阅读全文

浙公网安备 33010602011771号