- 博客(83)
- 资源 (9)
- 收藏
- 关注
原创 ASP.NET Core 6.0 ServiceCollection 实现依赖注入
控制反转(Inversion of Control, IoC)是一种软件设计模式,其目的是降低代码之间的耦合度。在C#中,可以使用依赖注入(Dependency Injection, DI)来实现控制反转。
2024-08-21 20:57:20
1040
原创 ASP.NET Core 6.0 传统鉴权配置
为了保护我们的服务器资源,给被访问的资源或接口添加限制,让每一个请求不能随意访问 服务或 API 或 Action 方法。一般的过程是用户在客户端登录确认身份,向服务器发送登录信息从而验证这个人是否有登录权限。在ASP.NET中,授权(Authorization)是确定当前用户是否被允许访问特定资源的过程。授权通常在身份验证之后发生,确保用户具有执行某些操作的权限。
2024-08-21 20:56:28
631
原创 ASP.NET Core 6.0 角色授权 和 策略授权
在授权时,先要鉴权:找出用户信息,如果能找到用户信息,那就证明用户一定登录过。这里要求不仅需要用户信息,而且还要有符合某些条件的用户信息,这样才能让请求访问资源。可以在某个方法/控制器,标记角色,如果要访问这个方法,就必须登录。还要要求用户信息必须包含某个角色。
2024-07-27 22:30:38
1341
原创 ASP.NET Core 6.0 使用 ExceptionFilter
同步异常的执行特点:如果实现ActionFilterAttribute抽象父类,在执行的时候,只会执行异步版本的方法(在源码中他是直接判断了,如果有异步版本,同步版本就不执行了)。CustomExceptionFilterAttribute 同时实现 IExceptionFilter 和IAsyncExceptionFilter,会使用OnExceptionAsync 异步方法。
2024-07-07 08:01:22
602
原创 ASP.NET Core 6.0 使用 Result过滤器
ResultFilter 结果过滤器,是对执行的Action结果进行处理的一种过滤器(采用了 AOP思想),适用于任何需要直接环绕 View 或格式化处理的逻辑。结果过滤器可以替换或更改 Action 结果。在 IActionResult 执行的前后执行,使用它能够控制Action的执行结果,比如:格式化结果等。需要注意的是,它只有在Action方法成功执行完成后才会运行。 在项目中,一般很少使用结果过滤器。
2024-07-07 08:00:32
551
原创 ASP.NET Core 6.0 使用 Action过滤器
在ASP.NET Core中,Action过滤器用于在执行Action方法之前或之后执行逻辑。你可以创建自定义的Action过滤器来实现这一点。
2024-06-30 08:11:49
935
原创 ASP.NET Core 6.0 使用 资源过滤器和行为过滤器
AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在通过预定义的模式(即“切面”)对程序的横切关注点进行模块化。横切关注点是一个在多个应用模块中出现的概念,例如日志记录、事务管理、安全检查等。AOP允许开发者定义“切面”来跨方法、跨类甚至跨应用来操作这些关注点,从而提供了一种从业务逻辑代码中分离出横切关注点的机制。
2024-06-26 22:08:24
945
原创 ASP.NET Core 6.0 多种部署方式
配置IIS 需要配置 ASPNETCore 部署IS 程序包安装 (ASP.NET Core Module v2)配置本机模块,选中 AspNetCoreModuleV2,添加到模块里。安装 IIS,在搜索输入并打开。IIS部署和脚本启动的区别和联系。Linux 环境准备和部署。打开 IIS 的模块。
2024-06-21 22:19:19
3702
原创 ASP.NET Core 6.0 启动方式
进入 dll 文件所在的目录,然后输入:dotnet Learn.NET6.Project.dll --urls=http://localhost:9001;是一个专为开发人员优化的轻型独立版本的 IIS。_Layout.cshtml 文件调用 _Layout.cshtml.css 样式文件,如果以脚本方式。建议以dotnet run方式启动,因为它读取根目录,不存在文件丢失的问题。启动项目,在浏览器输入监听的地址,按F12可以发现:css、js 等资源文件未被加载。直接在浏览器输入监听的地址,监听的是。
2024-06-21 22:17:01
1290
原创 ASP.NET Core 6.0 使用 Log4Net 和 Nlog日志中间件
两年前,浅浅的学过 .NET 6,为啥要记录下来,大概是为了以后搭架子留下引线,还有抛砖引玉。
2024-06-21 22:16:01
1191
原创 BarTender 常见的使用要点
BarTender是由美国海鸥科技(Seagull Scientific)推出的一款条码打印软件,被广泛应用于标签、条形码、证卡和RFID标记的设计和打印领域。它在全球范围内拥有众多用户,被公认为标签打印方面的全球领先者。
2024-06-10 20:40:22
2555
原创 Windows 系统安装 VisualSVN Server
VisualSVN-Server 是 SVN 版本控制中服务器端要使用的软件,就是我们提交代码存在安装这个软件的电脑上,它将很多配置和服务直接帮你完成,简单好用容易上手。VisualSVN Server有三个版本,社区版免费但限15个用户,另有'一般'和‘企业’两个收费版本可免费试用45天。
2024-06-03 19:21:31
2259
1
原创 安装Subversion和配置 svn服务端
Subversion是一个免费/开源的版本控制系统(VCS),也被称为SVN。它能够对文件和目录以及它们的修改进行跨时间的管理,允许用户恢复数据的旧版本或检查数据的修改历史。Subversion建立在二进制文件区别算法基础上,对文本和二进制文件都有一致的操作方式,并将它们压缩存放在版本库中。
2024-06-03 19:20:43
1516
原创 .NET 快速重构概要2
当代码中充斥着若干条件判断时,代码的真正意图会迷失于这些条件判断之中。这时我喜欢将条件判断提 取到一个易于读取的属性或方法(如果有参数)中。
2024-06-01 10:30:00
1143
原创 .NET 快速重构概要1
重构是持续改进代码的基础。抵制重构将带来技术麻烦:忘记代码片段的功能、创建无法测试的代码等等。而有了重构,使用单元测试、共享代码以及更可靠的无 bug 的代码这些最佳实践就显得简单多了。
2024-06-01 10:15:00
1050
原创 【Redis】Widows 和 Linux 下使用 Redis
Redis 即远程字典服务,是一个开源的使用ANSIC语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的API。Redis支持多种数据结构类型,如 :字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 以及范围查询, bitmaps(位图), hyperloglogs (超级日志)和 地理空间(geospatial) 索引半径查询等等。
2024-05-27 21:55:25
904
原创 Microsoft.NET 框架程序设计 —— 通用对象操作
对于那些没有显式重写Equals方法的类型,Obiect(或者重写了Eauals方法的最近的那个基类)(译注:-个类型的基类的“近”或“远”是针对此基类在该类型所有的基类构成的继承体系中的相对位置而言的,越靠近 Object 的类型的位置越远,反之则越近)提供的实现将被继承。如果我们定义了自己的类型,并且希望比较它们中的字段是否相等,Object类型提供的默认实现对我们来说是不够的,我们必须重写Equals方法,提供自己的实现。前面的代码展示了根据字段类型的不同,所进行的两种不同的比较方式。
2024-05-25 10:30:00
883
原创 Microsoft.NET 框架程序设计 —— 基元类型、引用类型与值类型
本文讨论.NET 框架开发人员经常遇到的各种数据类型。熟悉这些类型的不同行为对于一个开发人员来说至关重要。当我刚开始接触.NET框架时,就没有完全理解基元类型、引用类型和值类型之间的一些差别。这种模糊的认识甚至无意间导致了一些难以査找的bug以及性能问题。我希望通过本章的解释,能够帮助大家在提升代码效率的同时避免我曾遇到的一些麻烦。
2024-05-23 19:05:20
1045
原创 Vue 深入汇总
JavaScript中的对象是引用类型的数据,当多个实例引用同一个对象时,只要一个实例对这个对象进行操作,其他实例中的数据也会发生变化。而在Vue中,我们更多的是想要复用组件,那就需要每个组件都有自己的数据,这样组件之间才不会相互干扰。所以组件的数据不能写成对象的形式,而是要写成函数的形式。数据以函数返回值的形式定义,这样当我们每次复用组件的时候,就会返回一个新的data,也就是说每个组件都有自己的私有数据空间,它们各自维护自己的数据,不会干扰其他组件的正常运行。
2024-05-03 09:23:40
1119
原创 Microsoft.NET 框架程序设计 —— 类型基础
本文主要介绍有关类型和通用语言运行时(CLR)的一些基础知识。特别地,我们将会讨论每个类型都具有的一组公共行为。另外,我们还会谈到类型安全、对象转型以及有关命名空间与程序集的些话题。
2024-05-02 21:27:09
904
原创 Vue 基础汇总
指令本质上是装饰器,是 vue 对 HTML 元素的扩展,给 HTML 元素添加自定义功能。vue 编译 DOM 时,会找到指令对象,执行指令的相关方法。自定义指令有五个生命周期(也叫钩子函数),分别是 bind、inserted、update、 componentUpdated、unbindbind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。inserted:被绑定元素插入父节点时调用。update:被绑定元素所在的模板更新时调用,而不论绑定值是否变化。
2024-05-02 21:24:42
871
原创 Microsoft.NET 框架程序设计 —— 共享程序集
文件版本是一个很难解决的问题。实际上,如果仅仅在一个文件中将其某一位从0改变到1、或者从1改变到0,我们便不能绝对保证使用原来文件的代码和它使用新版文件时的行为一样。这是因为许多应用程序都会有意或者无意地引入bug。如果一个文件的后续版本修复了一个bug,应用程序便不再如预期那样运行。这就存在一个问题:怎样在修复bug和增加特性的同时,还能保证不会损坏现有的应用程序?我曾经对这个问题思考了很久,并且得出了一个结论--那就是这是不可能的。很明显,这样的回答解决不了问题。
2024-05-01 23:14:28
1180
原创 Visual Source Safe 安装与使用教程
用户成员不能对该数据库中的文件进行直接的修改,而是由版本管理器将该项目的远程序或是子项目的程序拷贝到各个用户成员自己的工作目录下进行调试和修改,然后将修改后的项目文件作check 提交给 vss 来进行更新用户可以根据需要随时快速有效地共享文件,文件一旦被添加进vss,每次改动都会被记录下来,用户可以恢复文件的早期的版本源码文件,用户组也可看到其他成员的有关文档的最新版本,并对其进行修改,vss也同样会将新的改动记录下来。该模式下,只有你可以合法的编辑这文件,对这文件有最终的版本控制权。
2024-05-01 13:06:22
1443
1
原创 Microsoft.NET 框架程序设计 —— 应用程序与类型
当今的应用程序一般都包含着好几个类型。在.NET框架中,类型(type)又被称作组件(component)但本书将使用类型这个术语,而避免使用组件。通常情况下,应用程序既包括我们自己创建的类型,也包括微软和其他一些组织创建的类型。如果这些类型都采用支持CLR的语言开发,那么它们将可以无缝地在一起协作执行。我们甚至可以使用一种语言开发一个基类,然后再使用另一种语言开发它的子类。
2024-04-26 21:05:41
1310
原创 .NET 面向对象程序设计 —— 设计模式 详细版
到底如何去改良策略模式呢?”小菜恳切地问道。“你仔细观察过没有,你的代码,不管是用工厂模式写的,还是用策略模式写的,那个分支的 switch 依然去不掉。原因在哪里?”大鸟反问道。“因为程序里有下拉选择,用户是有选择的,那么程序就必须要根据用户的选择来决定实例化哪一个子类对象。无论是在客户端窗体类编程还是到工厂类里编程,这个 switch 总是少不掉的。问题主要出在这里。”小菜十分肯定的说。
2024-04-26 21:02:24
1339
原创 .NET 面向对象程序设计 —— 学习笔记 详细版
原先所写的程序,不容易维护,灵活性差,不容易扩展,更谈不上复用,因此面对需求变化,加班加点,对程序动大手术的那种无耐也就非常正常的事了。
2024-04-25 07:50:02
1148
原创 .NET/C#汇总 —— 数据库SQL查询(附建表语句)
⼀个叫 team 的表,⾥⾯只有⼀个字段name, ⼀共有4 条纪录,分别是a,b,c,d, 对应四个球对,现在四 个球对进⾏⽐赛,⽤⼀条sql 语句显示所有可能的⽐赛组合
2024-04-25 07:47:58
1967
原创 .NET/C#汇总 —— 数据库概念知识
关系是指多表在数据库中的关联。有4种关系。1对1,多对⼀,多对多,⼀对多。唯⼀标识⼀条记录,不能有重复的,不允许为空。表的外键是另⼀表的主键, 外键可以有重复的, 可以是空值。SQL(结构化查询语⾔)是⼀种设计⽤于检索和操作数据的数据库。它属于美国国家标准协会(ANSI) 的⼀种标准,可⽤于执⾏Select(选择)、Update(更新)、Delete(删除)和Insert(插⼊)等数据 任务。索引⽤于加速查询的性能。它可以更快地从表中检索数据。可以在⼀组列上创建索引。它是⼀个返回单个值的数学函数。
2024-04-22 08:10:21
1144
原创 .NET/C#汇总 —— 常⻅的算法
以往我们都是肯定绞尽脑汁,肯定什么循环,元素⼤⼩,什么因素都考虑进去。但是现在采⽤Linq可 以很好的解决这个问题。找出两个或多个数组的相同项。
2024-04-22 07:08:19
594
原创 .NET/C#汇总 —— ADO.NET、XML、HTTP、AJAX、WebService
unsafe:⾮托管代码。不经过CLR运⾏。RTTI:类型识别系统。代码后植。XML即可扩展标记语⾔。eXtensible Markup Language.标记是指计算机所能 理解的信息符号,通过此 种标记,计算机之间可以处理包含各种信息的⽂章等。如何定义这些标记,即可以选择国际通⽤的标记 语⾔,⽐如HTML,也可以使⽤象XML这样由相关⼈⼠⾃由决定的标记语⾔,这就是语⾔的可扩展性。XML是从SGML中简化修改出来的。它主要⽤到的有XML、XSL和XPath等。
2024-04-17 09:18:10
1226
原创 【笔记】ASP.NET Core 2.2 Web API —— 学习笔记
本文通过简单例子:实现 仓储模式 + 服务 + 抽象接口;使用 Sqlsuger Code first;读取 appsettings.json 文件;Cors跨域;使用Log4Net日志处理;JWT基于策略的授权;Swagger和JWT设置
2024-04-17 09:00:00
516
原创 【笔记】ASP.NET Core Web API之Token验证
在实际开发中,我们经常需要对外提供接口以便客户获取数据,由于数据属于私密信息,并不能随意供其他人访问,所以就需要验证客户身份。那么如何才能验证客户的身份呢?今天以一个简单的小例子,简述ASP.NET Core Web API开发过程中,常用的一种JWT身份验证方式。SON WEB Token(JWT,读作 [/dʒɒt/]),是一种基于JSON的、用于在网络上声明某种主张的令牌(token)。主要用于认证和保护API之间信息交换。JWT通常由三部分组成: 头信息(header), 消息体(payload)和
2024-04-16 11:43:18
2800
原创 .NET/C#汇总 —— ASP.NET MVC
这个引擎提供了数据绑定的显示模板。Partial view相当于传统⽹⻚表格中的user controls.它的主要⽬的是为了重复使⽤这些视图,他们⼀般被放在⼀个共享⽂件夹⾥⾯。HTTP是最常⽤的协议。过去的很多年,浏览器是我们使⽤HTTP⽅式公开数据的⾸选客户端。但是⽇新 ⽉异,客户端发展到多种形式。我们需要使⽤HTTP⽅式传递数据给不同的客户端,例如:移动⼿机、 Javascript,Windows应⽤等等。WebAPI是⼀个通过HTTP⽅式公开数据的技术,它跟随REST规则。
2024-04-16 07:29:59
1393
原创 .NET/C#汇总 —— WPF
WPF英⽂全称是Windows Presentation Foundation,中⽂为Windows表现层基础。是微软最初 在.NET Framework3.5平台推出的⼀个图形平台。1 XAML是eXtensible Application Markup Language的英⽂缩写,相应于中⽂称为可扩展应⽤程序标 记语⾔,它是微软公司为构建应⽤程序⽤户界⾯⽽创建的⼀种新的描述性语⾔。2 XAML是XML语⾔的⼀个衍⽣物,它的语法与XML语⾔完全⼀致,它的功能就是专⻔⽤来设计和实现 程序的UI。
2024-04-16 07:28:44
1003
原创 .NET/C#汇总 —— 多线程
不会发⽣死锁,(但有⼀点int是按值传递的,所以每次改变的都只是⼀个副本,因此不会出现死锁。但如果把int换做⼀个object,那么死锁会发⽣)。
2024-04-13 09:43:19
738
原创 .NET/C#汇总 —— 集合、异常、泛型、LINQ、委托、EF
IList 泛型接⼝是 Icollection 接⼝的⼦代,并且是所有⾮泛型列表的基接⼝。⽆法修改只读 Ilist。固定⼤⼩的 Ilist 不允许添加或移除元素,但允许修改 现有元素。是想创建⼀个List,⽽且需要使⽤到List的功能,进⾏相关操作。⽽只是想创建⼀个基于接⼝IList的对象的实例,只是这个接⼝是由List实现的。IList 是个接⼝,定义了⼀些操作⽅法这些⽅法要你⾃⼰去实现,当你只想使⽤接⼝的⽅法时,这种⽅式⽐ 较好.他不获取实现这个接⼝的类的其他⽅法和字段,有效的节省空间。
2024-04-13 07:14:35
980
原创 .NET/C#汇总 —— 常用的基础语法
⼀句话解释,扩展⽅法使你能够向现有类型“添加”⽅法,⽆需修改类型。条件:按扩展⽅法必须满⾜的条件,1.必须要静态类中的静态⽅法2.第⼀个参数的类型是要扩展的类型,并且需要添加this关键字以标识其为扩展⽅法。建议:通常,只在不得已的情况下才实现扩展⽅法,并谨慎的实现使⽤:不能通过类名调⽤,直接使⽤类型来调⽤。装箱就是隐式地将⼀个值类型转换成引⽤类型,如:int i=0;拆箱就是将引⽤类型转换成值类型,如:int i=0;(将obj拆箱。概念:构造函数的⽅法名与类型相同、没有返回类型。
2024-04-13 07:12:08
1344
原创 Java常见的知识点 学习笔记(详细整理版)
在 Java 里声明和定义能否分开?声明:一种把一个名称引入或者重新引入到某个作用域的构造。定义:它也是一种声明,但该声明必须给出被声明实体的细节。对于变量而言,这里的细节是指:为被声明实体保留存储空间。对于 class 类型和函数定义而言,指的是包含有一对花括号内容的声明。对于外部变量而言,指的是前面没有关键字 extern 或者在声明时就进行初始化。变量的声明有以下两种情况:一种是需要建立存储空间的。例如,int a 在声明的时候就已经建立了存储空间。
2024-04-11 21:46:02
1038
阿里巴巴Java开发规范整理版1.3.0
2023-09-23
MySQL8.0.25-Linux版
2023-04-08
MySQL5.7.28-Linux版
2023-04-08
Mysql经典40道面试题
2023-03-28
Entity FrameWork 6.0 Code First
2023-03-11
.Net快速使用Dapper框架
2023-03-10
DataTablesAjax源数据.rar
2023-03-06
DataTables非jQuery初始化.rar
2022-12-31
Datatables样式
2022-12-28
SonarLint是一个免费的开源IDE扩展,它可以识别并帮助您在编写代码时解决代码质量和代码安全问题,该版本支持vs2022
2022-11-19
datatable_基本初始化.rar
2022-07-23
datatable-基本初始化.rar
2022-07-23
InstallShield2015LimitedEdition.rar
2019-10-23
.NET 6 使用 Log4Net 和 Nlog日志中间件 Demo
2024-05-03
Visual Source Safe6.0.rar
2024-05-01
ASP.NETCore-WebAPI-Token.rar
2024-04-16
.NET 快速重构 - 学习笔记
2024-04-13
.NETC#汇总 -WPF.rar
2024-04-12
.NETC#汇总 -ASP.NET MVC.rar
2024-04-12
.NETC#汇总 -ADO.NET、XML、.rar
2024-04-12
LINQPad8Setup .NET 6.0 → .NET 8.0.rar
2024-04-12
LINQPad5Setup .NET Framework 4.6 → 4.8.rar
2024-04-12
.NET汇总 - 常用的基础语法.rar
2024-04-11
.NET性能优化方法 学习笔记 (详细整理版)
2024-04-08
Asp.NET Core WebAPI 入门学习笔记,超详细
2024-04-07
阿里巴巴Java开发规约(详细整理版)
2024-04-06
阿里巴巴Java开发手册整理版1.4.0
2023-09-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人