Avalonia的模板控件(Templated Controls)
摘要:在Avalonia的UI框架中,TemplatedControl是一个核心组件,它提供了一种强大的方式来创建可重用且高度可定制的控件。 本文将深入探讨TemplatedControl的概念、其带来的优势以及它在实际开发中的应用场景,并通过一个示例代码来展示其用法。 什么是TemplatedContr
阅读全文
posted @
2024-04-08 14:05
chester·chen
阅读(3521)
推荐(2)
Avalonia的自定义用户组件
摘要:Avalonia中的自定义用户控件 Avalonia是一个跨平台的.NET UI框架,它允许开发者使用C#和XAML来构建丰富的桌面应用程序。 自定义用户控件(UserControl)是Avalonia中一种重要的组件,它允许我们将多个控件组合成一个可重用的单元。 本文将介绍如何在Avalonia中
阅读全文
posted @
2024-04-07 11:47
chester·chen
阅读(3218)
推荐(2)
Avalonia的UI组件
摘要:Avalonia是一个强大的跨平台UI框架,允许开发者构建丰富的桌面应用程序。 它提供了众多UI组件、灵活的布局系统、可定制的样式以及事件处理机制。 在这篇博客中,我们将详细解析Avalonia的UI组件、UI组件的生命周期、布局、样式和事件处理。 一、UI组件 Avalonia提供了丰富的UI组件
阅读全文
posted @
2024-04-06 08:03
chester·chen
阅读(5026)
推荐(3)
Avalonia的Window生命周期
摘要:Avalonia中的Window 在Avalonia中,Window是一个基本的UI元素,它代表了一个应用程序的窗口。每个Window都可以包含其他的UI元素,如按钮、文本框等,并可以响应各种用户输入事件。 在下面的例子中,制定了当前应用的Window是MainWindow public parti
阅读全文
posted @
2024-04-05 13:00
chester·chen
阅读(2303)
推荐(3)
探索Avalonia:C#跨平台UI框架的力量
摘要:随着跨平台应用的需求不断增长,开发人员需要一种能够在不同操作系统上运行的用户界面(UI)框架。 Avalonia 是一种引人注目的选择。在本文中,我们将深入了解 Avalonia 是什么,它与 WPF 的区别,以及它的 UI 绘制引擎和原理、优点,以及一个简单的示例代码。 Avalonia 是什么?
阅读全文
posted @
2024-04-03 10:19
chester·chen
阅读(13101)
推荐(3)
.NET分布式Orleans - 5 - 持久化
摘要:在分布式系统中,数据的持久化是至关重要的一环。 Orleans 7 引入了强大的持久化功能,使得在分布式环境下管理数据变得更加轻松和可靠。 本文将介绍什么是 Orleans 7 的持久化,如何设置它以及相应的代码示例。 什么是 Orleans 7 的持久化? Orleans 7 的持久化是指将 Or
阅读全文
posted @
2024-03-27 09:02
chester·chen
阅读(995)
推荐(4)
C# 12 拦截器 Interceptors
摘要:拦截器Interceptors是一种可以在编译时以声明方式替换原有应用的方法。 这种替换是通过让Interceptors声明它拦截的调用的源位置来实现的。 您可以使用拦截器作为源生成器的一部分进行修改,而不是向现有源编译添加代码。 演示 使用 .NET 8 创建一个控制台应用程序。并在Propert
阅读全文
posted @
2024-03-20 09:27
chester·chen
阅读(2040)
推荐(5)
.Net Core 使用 TagProvider 与 Enricher 丰富日志
摘要:TagProvider [LogProperties] 与 [LogPropertyIgnore] 如果用在DTO不存在任何问题,如果用在Domain实体上,可能有点混乱。 您可能不希望因日志记录问题而使您的域模型变得混乱。对于这种情况,可以使用[TagProvider]属性来丰富日志。 我们仍然使
阅读全文
posted @
2024-03-19 07:59
chester·chen
阅读(537)
推荐(3)
使用 LogProperties source generator 丰富日志
摘要:Nuget包 Microsoft.Extensions.Telemetry.Abstractions 包含的新的日志记录source generator,它支持使用[LogProperties]将整个对象作为State与日志一起记录。 我将展示一种方法来控制如何使用[LogProperties]对象
阅读全文
posted @
2024-03-18 09:03
chester·chen
阅读(439)
推荐(3)
.NET Core使用 CancellationToken 取消API请求
摘要:您是否曾经访问过一个网站,它需要很长时间加载,最终你敲击 F5 重新加载页面。 即使用户刷新了浏览器取消了原始请求,而对于服务器来说,API也不会知道它正在计算的值将在结束时被丢弃,刷新五次,服务器将触发 5 个请求。 为了解决这个问题,ASP.NET Core 为 Web 服务器提供了一种机制,就
阅读全文
posted @
2024-03-17 08:11
chester·chen
阅读(2329)
推荐(10)
.Net Core 你必须知道的source-generators
摘要:源生成器是 C# 9 中引入的一项功能,允许在编译过程中动态生成代码。 它们直接与 C# 编译器集成(Roslyn)并在编译时运行,分析源代码并根据分析结果生成附加代码。 源生成器提供了一种简化的自动化代码生成方法,无需外部工具或单独的预编译步骤。 通过无缝集成到编译过程中,源生成器可以提高生产力、
阅读全文
posted @
2024-03-16 08:30
chester·chen
阅读(1779)
推荐(7)
LoggerMessageAttribute 高性能的日志记录
摘要:.NET 6 引入了 LoggerMessageAttribute 类型。 使用时,它会以source-generators的方式生成高性能的日志记录 API。 source-generators可在编译代码时,可以提供其他源代码作为编译的输入。 LoggerMessageAttribute依赖于
阅读全文
posted @
2024-03-15 09:50
chester·chen
阅读(848)
推荐(1)
DiagnosticSource DiagnosticListener 无侵入式分布式跟踪
摘要:ASP.NET Core 中的框架中发出大量诊断事件,包括当前请求进入请求完成事件,HttpClient发出收到与响应,EFCore查询等等。 我们可以利用DiagnosticListener来选择性地监听这些事件,然后通过自己的方式组织这些日志,实现无侵入的分布式跟踪。 下面我们通过Diagnos
阅读全文
posted @
2024-03-14 09:14
chester·chen
阅读(654)
推荐(3)
.Net Core中使用DiagnosticSource进行日志记录
摘要:System.Diagnostics.DiagnosticSource 可以丰富地记录程序中地日志,包括不可序列化的类型(例如 HttpResponseMessage 或 HttpContext)。 System.Diagnostics.DiagnosticSource 通过订阅发布模式运行,我们可
阅读全文
posted @
2024-03-12 14:52
chester·chen
阅读(841)
推荐(4)
多个 .NET Core SDK 版本之间进行切换 global.json
摘要:由于同一台电脑可以安装多个版本的.NET Core SDK。 当安装了许多不同版本的.NET Core SDK 之后,要如何才能使用旧版dotnet 命令,执行dotnet new 或dotnet build 之类的命令? 这部分其实并不困难,只要设定global.json 即可。 首先要查询目前电
阅读全文
posted @
2024-03-12 07:30
chester·chen
阅读(1795)
推荐(8)
HttpClientHandler VS SocketsHttpHandler
摘要:.NET Framework 和 .NET Core 2.0 及更低版本中由 HttpClient 使用的默认消息处理程序为HttpClientHandler。 从 .NET Core 2.1 开始,类SocketsHttpHandler提供了更高级别的 HTTP 网络类(例如HttpClient
阅读全文
posted @
2024-03-10 18:11
chester·chen
阅读(718)
推荐(1)
用AI在本地给.NET设计几张壁纸
摘要:AI是当今和未来非常重要的技术领域之一,它在各个行业都有广泛的应用,如医疗保健、金融、教育、制造业等。学习AI可以让你了解和掌握未来技术发展的核心,并为未来的职业发展做好准备。现在有很多开源的Model可以让我们使用,使用这些开源Model在低成本下,我们也能完成自己的任务。 现在我的需求是给公众号
阅读全文
posted @
2024-01-10 15:46
chester·chen
阅读(1543)
推荐(6)
将 .NET Aspire 部署到 Kubernetes 集群
摘要:使用Aspirate可以将Aspire程序部署到Kubernetes 集群 工具安装 dotnet tool install -g aspirate --prerelease 注意:Aspirate 正在开发中,该软件包将作为预览版进行版本控制,--prelease 选项将获得最新的预览版。 容器注
阅读全文
posted @
2023-12-07 10:51
chester·chen
阅读(1400)
推荐(1)
C#12中的Collection expressions(集合表达式语法糖)
摘要:C#12中引入了新的语法糖来创建常见的集合。并且可以使用..来解构集合,将其内联到另一个集合中。 支持的类型 数组类型,例如 int[]。 System.Span<T> 和 System.ReadOnlySpan<T>。 支持常见泛型集合,例如 System.Collections.Generic.
阅读全文
posted @
2023-11-20 10:24
chester·chen
阅读(2493)
推荐(9)
.NET8 Blazor新特性 流式渲染
摘要:什么是SSR Blazor中的流式渲染结合了SSR(服务端渲染),服务端将HTML拼好返回给前端,有点像我们熟知的Razor Pages 或 MVC 。 当已经有了 Razor Pages 或 MVC 时,为什么还要选择使用 Blazor 来实现这一点?这里有几个原因。 首先,Razor Pages
阅读全文
posted @
2023-11-19 07:56
chester·chen
阅读(3240)
推荐(12)