自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dotnethello的博客

微软MVP,持续分享.net编程技术

  • 博客(103)
  • 收藏
  • 关注

原创 .NET高性能内存管理

你是不是还不了解spanMemeoryArrayPool这些用法,随着.net的不断升级,像这些提高性能的用法也层出不穷,本文重点介绍一些能够提升.net性能的用法开篇之前,先说下提高性能的宗旨,无非就是。

2025-11-12 11:42:11 312

原创 GC模式识别与调试

总结来说,CorDebugGCType 不光是调试时的一个枚举,更是理解和洞察 .NET 运行时垃圾回收机制的入口。它无形中帮助团队把握住了性能优化的主动权,让我们能够更有信心地写出高质量、环境适应性强的服务端应用。“开发者只有了解了系统底层的运行逻辑,才能在平时写代码和排查问题时游刃有余”,这是我一直坚持的技术理念。

2025-11-07 10:15:14 460

原创 7HTMLCSS高级

作用:为元素添加动态效果,一般与过渡配合使用概念:改变盒子在平面内的形态(位移、旋转、缩放、倾斜)平面转换也叫 2D 转换,属性是transform。

2025-09-18 16:13:49 1060

原创 7.WPF事件

声明并注册路由事件,使用EventManager的RegisterRoutedEvent方法进行注册为路由事件添加包装器,目的是把路由事件暴露的像一个传统直接事件,并仍然可以使用+=或者-=操作符。创建可以激发事件的方法案例:当点击按键时,报告事件发生的时间//用于承载事件消息的时间参数get;//声明和注册事件//参数1:路由事件名称,和事件包装器的名称相同//参数2:路由事件的策略,wpf路由事件的策略有3种。

2025-09-18 11:14:17 1012

原创 7.WokflowCore之持久化及在ASP.NETCORE中的使用

【代码】7.WokflowCore之持久化及在ASP.NETCORE中的使用。

2025-09-18 07:01:49 213

原创 7.6中间件

ASP.NET Core只是完成了HTTP请求调度、报文解析等必要的工作,像检查用户身份、设置缓存报文头等操作都是在中间件中完成,中间件就是ASP.NET Core的一个组件,由前逻辑、next、后逻辑3部分组成,多个中间件组成一个。建议能使用中间件的情况尽量使用中间件,如果中间件和过滤器同时使用,则会先执行完所有的中间件前逻辑,然后执行过滤器,最后执行中间件的后逻辑。建议能使用中间件的情况尽量使用中间件,如果中间件和过滤器同时使用,则会先执行完所有的中间件前逻辑,然后执行过滤器,最后执行中间件的后逻辑。

2025-09-17 17:38:12 537

原创 7.5筛选器(过滤器)

筛选器运行开发人员在ASP.NET Core特定的位置执行我们自己的代码,比如在控制器的操作方法之前执行数据检查,或者在ActionResult执行的时候向响应报文头中加入自定义数据。next:用来指向下一个操作器的委托,一个项目可以有多个操作筛选器,如果当前操作筛选器是最后一个筛选器则next就是要执行的操作方法。控制器中操作方法执行的时候,操作筛选器就会被执行,通常可以在操作方法执行之前或者之后执行一些代码。数据库事务保证了我们对数据的操作要么全部成功,要么全部失败,我们可以使用。

2025-09-17 13:19:37 259 1

原创 7.4缓存

尝试获取键为key的缓存值,如果有,则返回true否则返回false || 删除键为key的缓存值 || 设置缓存键key的缓存值为value || 获取键为key的缓存值,如果缓存中没有,则调用factory指向的函数从数据源获取数据,创建缓存并返回值 |

2025-09-17 08:45:45 910

原创 7.3EFCore与ASP.NETCore集成

set;set;set;

2025-09-16 07:01:53 194

原创 7.2配置系统与ASP.NETCore集成

ASP.Net Core会先从appsettings.json下加载配置,然后从appesttings.Environment.json加载配置,可以是appsettings.Development.json、appsettings.Staging.json、appsettings.Production.json。一般我们在appsettings.json下编写所有环境共有的配置,在appesttings.Environment.json中编写对应于环境的配置。读取到运行环境的名字,而且可以通过。

2025-09-15 16:10:17 298

原创 7.1ASP.NETCore中的依赖注入

如果一个类中有多个操作方法,这些操作方法用到的服务都要使用构造函数来注入(所有的服务都得包含进来,不管用不用)。如果一个操作方法用到的服务特别耗费资源并且使用频率低,则可以在操作方法中通过参数注入的方式,实现在执行某个方法的时候才注入特定的服务。一个解决方案中会包含多个项目,并且解决方案中会引用各个项目,每个项目都会用到很多被注入的服务,所以我们需要在解决方案中把设计到的服务都要注册进去,这样就会很麻烦。现在开发一个案例来简化这些操作。类型,也就是容器接口,一般把服务都注册到这个Service属性里面。

2025-09-15 11:51:56 217

原创 6SemanticKernel的FunctionCalling

假设代码中已经定义了一个函数。

2025-09-15 07:01:24 571

原创 6HTMLFlex布局

标准流也叫文档流,指的是标签在页面中默认的排布规则,例如:块元素独占一行,行内元素可以一行显示多个。作用:让块元素水平排列。属性名:float属性值特点:html结构css样式效果:完整写法 清除浮动场景:浮动元素会脱标,如果父级没有高度,子级无法撑开父级高度(可能导致页面布局错乱)解决方法:清除浮动(清除浮动带来的影响)如果不设置.top 的height属性则会出现这种情况在父元素内容的最后添加一个块级元素,设置 CSS 属性 clear: both ,clear属性为指定一个 元素是否必须

2025-09-14 20:35:11 726

原创 6.WPF属性

依赖属性就是一种自己可以没有值,并能通过Binding从数据源获取值的属性。拥有依赖属性的对象被称为依赖对象。传统开发中,一个对象占用的内存空间在使用new进行实例化的时候已经确定了,而WPF允许对象在创建的时候不包含用于存储数据的空间,而是拥有。这种对象叫做依赖对象,这种获取数据的能力叫做依赖属性。依赖对象要由来实现,该类中具有GetValue和SetValue方法,这两个方法都是以对象为参数。

2025-09-14 16:15:13 631

原创 6.WokflowCore之Elasticsearch搜索

nuget安装。

2025-09-14 11:45:25 362

原创 6-3ASPNETCoreWebAPI技术选择

启动服务后,发现浏览器没有反应,这是因为前端和后端不在同一个域名下(不同的端口也认为是不同的域名),浏览器默认是禁止AJAX跨域。来获取,如果操作方法的参数名字和QueryString的名字一致,只需要为参数添加[FromQuery],否则,就要设定[FromQuery]的name属性指定名字。ASP.NET Core Web API中的操作方法返回值如果是普通数据类型,则返回值默认被序列化为JSON格式的响应报文体返回。对于失败的请求,一般要统一响应报文体的格式以便在客户端进行处理。

2025-09-14 07:01:17 462

原创 6-2Restful

在web API开发中,有两种风格:面向过程(RPC)和面向REST。

2025-09-13 20:28:00 968

原创 6-1ASPNETCoreWeb入门

ASP.NET Core中,严格来讲只有一个Asp.net Core MVC一个框架,Asp.net Core MVC既支持基于视图的MVC开发,也支持Web API和Razor Pages开发。

2025-09-13 15:35:59 688

原创 6 对话框与多窗体设计

/设置为SplashScreen, 窗口无边框,不在任务栏显示。//无边框,但是在任务显示对话框标题。

2025-09-13 11:07:52 316

原创 5计算机图形学OpenGL

OpenGL(Open Graphics Library)是用于渲染 2D、3D 矢量图形的跨语言、跨平台的应用程序编程接口(API),在图形学领域具有极其重要的地位。

2025-09-09 16:22:44 766

原创 5SemanticKernel使用其他模板引擎

备注: 在读取对象属性时,需要将属性转换为小写的下划线分割(下划线命名法)形式。比如对象中的FirstName属性,在liquid 模板中要使用first_name方式读取。

2025-09-09 11:19:39 252

原创 5ModeView结构

Q_OBJECTpublic://自定义代理组件必须继承以下4个函数//创建编辑组件//从数据模型获取数据,显示到代理组件中//将代理组件的数据,保存到数据模型中//更新代理编辑组件的大小{ //创建代理编辑组件//创建一个QSpinBox//设置为无边框//返回此编辑器{//从数据模型获取数据,显示到代理组件中//获取数据模型的模型索引指向的单元的数据//强制类型转换//设置编辑器的数值{ //将代理组件的数据,保存到数据模型中//强制类型转换。

2025-09-09 07:01:31 178

原创 5HTML盒子模型

使用方法:创建项目 → 输入 项目名称、项目类型 Web → 单击按钮【创建项目】 → 单击按钮【添加】,导入设计稿。默认情况:盒子尺寸 = 内容尺寸 + border 尺寸 + 内边距尺寸。结论:给盒子加 border / padding 会撑大盒子。属性值:边框线粗细 线条样式 颜色(不区分顺序)属性值:边框线粗细 线条样式 颜色(不区分顺序)/* -n+5 选择第5个以前的 包含第5个 *//* n+5 选择第5个以后的 包含第5个 */清除标签默认的样式,比如:默认的内外边距。

2025-09-08 15:56:43 935

原创 5.WokflowCore之中间件

工作流可以在工作流开始或者完成之前或者之后使用中间件进行扩展。

2025-09-08 11:21:28 236

原创 5-3表达式树

表达式树对应可以看到,编译器自动将Lambda表达式编译为Expression类型Expression和Func的区别:Expression中存储了运算逻辑,而Func没有。简单来讲,Expression类似于代码,而Func类似于编译后的程序。可以看出,Func输出结果中,只有参数和返回值,内部没有运算逻辑。而Expression中存储了运算逻辑,要使用EF Core必须使用带运算逻辑的Expression。

2025-09-08 07:01:54 397

原创 5-3Binding对数据的转换和校验

Binding作为Source和Target之间的桥梁,可以在桥梁上设置校验,如果桥梁两端要求的数据类型不同时,还可以设置类型转换器。

2025-09-07 16:05:52 772

原创 5-2EFCore性能优化

当根据Id获取数据的时候,这两个方法会在上下文查找这个对象是否已经被跟踪,如果被跟踪,直接返回被跟踪的对象,不需要访问数据库。EF Core内置了使用并发令牌列实现乐观并发控制,并发令牌列通常就是被并发操作影响的列,比如上面的house类,其中owner属性就可以作为并发令牌列。有时候,无法确定到底那个属性适合作为并发令牌,这种情况下,可以设置一个额外的并发令牌属性,例如使用GUID。但是,在对象被跟踪之后,数据库中对应的数据被其他程序修改,如果使用Find方法则可能返回旧数据。只需要在配置类中做设置。

2025-09-07 11:13:10 327

原创 5-2.Binding指定源

DataContext是WPF控件的基类属性,也就是WPF树形结构都具有这个属性,当一个Binding只有Path而没有Source时,会沿着UI元素树一路向树的根部搜索过去,看哪个节点的DataContext具有Path所指向的属性,如果有就把这个对象作为自己的Source,如果没有就一直找下去。只要为一个ItemsControl对象设置了ItemsSource,就会自动迭代其中的数据元素,并为每个元素准备一个条目容器(条目容器就是数据的外衣),并使用Binding在条目容器和数据元素之间建立联系。

2025-09-07 07:02:23 718

原创 5-1EFCore原理

IQueryable继承自IEnumberable,对于普通集合,Where方法会在内存中对数据进行过滤,但是EF Core如果把数据表中的所有元素加载到内存然后再过滤的话,会导致占用内存过大。EF Core采用“快照更改跟踪”实现实体类改变的检测,当执行SaveChanges方法的时候,把存储在快照中的值与实体类的当前值进行比较,已确定哪些属性被更改。对于IQueryable接口,调用“非立即执行”方法不会立刻执行查询,调用“立即执行”方法才会立刻执行查询。只有立即执行方法才有对应的异步方法。

2025-09-06 20:25:07 629

原创 5-1.Binding的方向、数据更新和Path

Binding可以看做是数据源和目标对象之间的桥梁,源为逻辑层的对象,目标对象则是UI层的控件对象。

2025-09-06 16:13:15 513

原创 4计算机图形学渲染管线

在电脑绘图中,是指以软件由模型生成图像的过程。模型是用语言或者数据结构进行严格定义的三维物体或虚拟场景的描述,它包括几何、视点、纹理、照明和阴影等信息。图像是数字图像或者位图图像。计算机上显示的图像都是经过CPU、GPU计算最终的渲染到屏幕上,由我们人眼所接收到,所以我们要让一个物体呈现出不同的颜色和形状,这就要求我们对它们的位置顶点和颜色信息进行代码的干涉修改,那这个修改过程是如何进行的呢,这就涉及到了图形渲染流水线渲染流水线的工作任务在于,由一个三维场景触发、渲染一张二维图像。

2025-09-06 11:14:08 611

原创 4SemanticKernelpromote

在以上的内联提示词中我们使用的是字符串拼接的方式构造的提示词,但在SK中其提供了特定的语法请使用 Emoji 风格编辑以下段落,该风格以引人入胜的标题、每个段落中包含表情符号和在末尾添加相关标签为特点。请确保保持原文的意思。""";// 参数配置TopP = 1,9月6日16时20分,今年第11号超强台风“摩羯”在海南文昌沿海登陆。超强台风“摩羯”风力有多大?记者只能“抱团”出镜。""";

2025-09-06 07:01:27 2451

原创 4HTMLCSS进阶

小技巧: 后代选择器执行代码的时候,先执行孩子,后执行父亲。选择器写法:选择器1选择器2 { CSS 属性},选择器之间连写,没有任何符号。经验:工作中,一个 a 标签选择器设置超链接的样式, hover状态特殊设置。选择器写法:父选择器 > 子选择器 { CSS 属性},父子选择器之间用。选择器写法:父选择器 子选择器 { CSS 属性},父子选择器之间用。注意:如果交集选择器中有标签选择器,标签选择器必须书写在最前面。作用:布局网页的时候,根据标签的显示模式选择合适的标签摆放内容。

2025-09-05 16:20:52 542

原创 4.控件与布局

内部采用流式布局,使用Orientation属性来控制流延伸的方向,使用HorizontalAlignment和VerticalAlignment两个属性控制内部控件的对齐。,这个集合不会直接个给ItemsControl使用,而是先使用条目容器进行包装,这样的好处是允许程序员向ItemsControl提交各种类型的数据集合。该类控件会自动使用相应的条目容器对提交给它的内容进行包装,合法的ItemsControl内容一定是。内容属性为Items、ItemsSource、Header。类似于Winform。

2025-09-05 11:55:28 615

原创 4.WokflowCore之Saga事务

Saga可以封装一系列步骤,并可以为每个步骤进行补偿操作。

2025-09-04 07:01:44 283

原创 4-4关系配置

set;set;} //对应的文章set;生成两张表如下,注意在T_Comments表中生成了ArticleId外键,指向T_Articles中的Id。

2025-09-03 20:27:41 420

原创 4-3数据库迁移

Nuget安装Microsoft.EntityFrameworkCore.Tools上一节中讲到,使用和第一类文件中,有数字+迁移名字.cs文件和数字+迁移名字.Designer.cs文件。

2025-09-03 11:21:37 355

原创 4-2EFCore的实体类配置

本文主要讨论实体类和数据表是如何映射的,以及实体类中的属性是如何与数据表中的列映射的。

2025-09-03 07:01:48 549

原创 4-1EFCore

EF Core是微软官方的ORM框架,ORM即对象关系映射,也就是我们可以直接操作C#中的对象就可以完成数据库的操作。

2025-09-02 16:18:39 374

原创 4 常用界面设计组件

/是否显示垂直表头。

2025-09-02 11:59:14 238

python的可携带版本已经解决pip安装问题

python的可携带版本已经解决pip安装问题 直接在目录下使用python.exe -m pip 就可以直接安装包

2025-09-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除