Fork me on GitHub
摘要: 在开发asp.net core时,通常会在appsettings.json中配置信息,这些信息都是以一个json的格式存储,在程序中通过Options的方式来绑定实体类使用,如下面的APIConfig和实体类。 配置文件: { "Logging": { "LogLevel": { "Default" 阅读全文
posted @ 2023-08-14 21:32 桂素伟 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 这节我们主要介绍ASP.NET Core Identity认证,认证是决定用户是否能够成功登录应用程序的一个过程,用户通过提供自己的用户名和密码来证明他们自己是真实用户,当登录成功时, Identity 认证用户并且赋予访问ASP.NET Core 应用程序安全资源 1、ASP.NET Core I 阅读全文
posted @ 2023-08-14 21:20 桂素伟 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 在这节中我们将研究ASP.NET Core Identity中用户名、邮件、密码策略,解释一下Identity默认提供的策略以及如何实现自定义策略,最后我们针对用户名、邮件、密码实现客户自定义策略 1、ASP.NET Core Identity密码策略 ASP.NET Core Identity默认 阅读全文
posted @ 2023-08-06 14:22 桂素伟 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 这节我们主要演示在ASP.NET Core Identity中创建、修改、删除、查询用户 1、ASP.NET Core Identity UserManager 类 UserManager类位于Microsoft.AspNetCore.Identity命名空间中,我们可以使用该类管理数据库中的用户。 阅读全文
posted @ 2023-08-06 13:54 桂素伟 阅读(152) 评论(0) 推荐(0) 编辑
摘要: ASP.NET Core Identity提供给我们一组工具包和API,它能帮助我们应用程序创建授权和认证功能,也可以用它创建账户并使用用户名和密码进行登录,同时也提供了角色和角色管理功能。ASP.NET Core Identity使用SQL Server/第三方数据库存储用户名和密码,角色和配置数 阅读全文
posted @ 2023-07-25 21:25 桂素伟 阅读(162) 评论(0) 推荐(0) 编辑
摘要: .NET8的第一个预预览版发布了,又开启了一波新技术的学习和研究。简单过了一下.NET8 Preview1,中间有两个功能是我的痛点,先睹为快。 在项目中,数据从前端UI到后端(后端也分为好几层),再到数据库端,每个端或层的命名规则不尽相同,所以在端之间的数据项命名转换就个痛点,C#中,帕斯卡命名与 阅读全文
posted @ 2023-07-25 21:00 桂素伟 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 很多时候,会判断一个值是否为数值类型,数值类型是可以进行算术运算的,表示格式也比较统一,所以在做通用功能时会用到。下面给出了几种用法。 第一版:通用用法,设置具体类型逐一进行判断,这种做法可以灵活设置类型,缺点也是想增加类型,也得人工增加。 bool IsDig(object t) => t swi 阅读全文
posted @ 2023-02-15 20:42 桂素伟 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 使用特性,可以有效地将元数据或声明性信息与代码(程序集、类型、方法、属性等)相关联。 将特性与程序实体相关联后,可以在运行时使用反射这项技术查询特性。 https://learn.microsoft.com/zh-cn/dotnet/csharp/programming-guide/concepts 阅读全文
posted @ 2023-02-15 20:18 桂素伟 阅读(55) 评论(0) 推荐(0) 编辑
摘要: string是开发过程中,使用频度最高的类型之一,所以在构建类型时作了很多处理,如“不可变性”,“保留性”等特点。 string的常量是在""引号中进行赋值的。 var str1 = "这是一段文字"; Console.WriteLine(str1); 之后,为了字符串的格式化,引入了$""定义方式 阅读全文
posted @ 2023-02-11 16:52 桂素伟 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 访问修符,是OOP中一个很重要的知识点。在C#中,class(类)的访问修饰符有public和internal两种。 类成员(属性,方法,字段,事件等)的访问修饰符public,internal,protected,private,internal protected,protected priva 阅读全文
posted @ 2023-02-11 15:16 桂素伟 阅读(64) 评论(0) 推荐(0) 编辑
摘要: 从System.Text.Json诞生,就在努力增加功能和提升性能,在.NET7中,又带来了多态的适配。 下面是一个父类Customer,两个子类,WechatCustomer和LineCustomer。 public class Customer { public string Name { ge 阅读全文
posted @ 2023-02-11 15:03 桂素伟 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 在C#中,有int16,用short来定义;有int32,用int定义;用int64,用long来定义。在.NET7中,添加了int128,和unint128,位数更大的整型。 var i16 = short.MaxValue; Console.WriteLine($"Int16(short):{i 阅读全文
posted @ 2023-02-09 20:51 桂素伟 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 还是先看看C#中属性的这定义,在初始化和访问上有哪些方式,就能看出required属性有什么不一样的地方了。 属性,是封装字段的,通过get和set访问器可以很好地验证数据的有效性。 public record Order_00 { public Guid Id { get; set; } priv 阅读全文
posted @ 2023-02-09 20:46 桂素伟 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 下面汇总了一些VisualStudio“靓点”,有的可能你已经天天在用,用来提升生产力了,不过仍希望本篇对你有所收获。 数值类型格式化 为了看大数值类型方便,C#可以用下划线来分隔一组一组,方便查看。 转时间格式提示 当把时间转成一种格式时,ToString()的参数可以提示这些格式的具体含义。 正 阅读全文
posted @ 2023-02-09 20:39 桂素伟 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 本文是“.NET Conf China 2022”上我的一个分享,这里更细化的分享出来。 分享分为四个部分: 制定指示 设计应用 正确测试 性能优化 高性能:不一定是架构出来的,但一定是优化出来的。 制定指标-收集首先把项目中的热路径API和核心API找出来,然后分析每个API是CPU密集型的,还是 阅读全文
posted @ 2023-02-08 20:10 桂素伟 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 在WinForm中,有很多添加和修改数据的场景,一般的做法是当点击“添加”按钮时,收集各控件的值,然后赋值给实体类的各个属性,然后再完成保存工作。在修改时,首先把实体的原值,一个个赋值给控件,修改保存时,再反过来把值赋给实体,最后持久化保存。 除了这种做法,用绑定也是可以完成数据的分发和收集,绑定可 阅读全文
posted @ 2023-02-08 20:02 桂素伟 阅读(99) 评论(0) 推荐(0) 编辑
摘要: 在很多WinForm的程序中,会有客户端之间相互通信的需求,或服务端与客户端通信的需求,这时就要用到TCP/IP的功能。在.NET中,主要是通过Socket来完成的,下面的例子是通过一个TcpListerner作为监听,等待TcpClient的连接,连接成功后就可以利用NetStream进行信息互通 阅读全文
posted @ 2023-02-07 21:29 桂素伟 阅读(69) 评论(0) 推荐(0) 编辑
摘要: 在桌面程序里,一般日志记录到文件里就可以了,但有的时间,也需要在窗体上动态滚动显示,这时,就需要引入日志框架了。 这里引入的依旧是NLog(在我的Mini API系统里,用的也是NLog)。首先要从Nuget中引入NLog.Windows.Forms,然后添加NLog.config,设置“始终复制” 阅读全文
posted @ 2023-02-07 21:23 桂素伟 阅读(75) 评论(0) 推荐(0) 编辑
摘要: WebView是WinForm框架中一个控件,用来对网页信息交互,有时Web自己开发的,有时Web是三方的。 下面通过一个例子来看看WebView2的使用。 首先看Web的逻辑,是一个商品添加页面,用AlpineJS和BootStrap来开发的,业务上点击添加按钮,弹出modal框窗,然后保存结果, 阅读全文
posted @ 2023-02-07 21:18 桂素伟 阅读(542) 评论(0) 推荐(0) 编辑
摘要: 在.NET中,画图主要是通过Graphics类实现的,这个类主要通过两类方法完成画图,一类是DrawXXX,画各种线条图形;另一类是FillXXX,用各种形状,填充各种图形。Graphics是画板,Draw各个方法是各种盏笔(不过在调用Draw方法时,参数需要一个Pen对象),Fill的各个方法就是 阅读全文
posted @ 2023-02-07 21:11 桂素伟 阅读(69) 评论(0) 推荐(0) 编辑