
C#
文章平均质量分 73
港港胡说
轻舟已过万重山
展开
-
wpf控件Expander集合下的像素滚动
VirtualizingPanel.VirtualizationMode原创 2024-01-24 19:46:16 · 1086 阅读 · 0 评论 -
2.1配置(AutoMapper官方文档翻译)
automapper configuration原创 2023-10-07 20:22:30 · 406 阅读 · 0 评论 -
1.1入门指南(AutoMapper官方文档翻译)
AutoMapper是一个对象-对象映射器。对象-对象映射的工作原理是将一种类型的输入对象转换为不同类型的输出对象。AutoMapper的有趣之处在于,它提供了一些有趣的约定,将如何将类型A映射到类型B的繁琐工作解决掉。只要类型B遵循AutoMapper的既定约定,映射两个类型几乎不需要任何配置。原创 2023-10-05 16:52:49 · 433 阅读 · 0 评论 -
在WPF Visual Tree中查找父控件
在WPF Visual Tree(可视化树)中查找父控件原创 2023-08-24 09:40:40 · 1528 阅读 · 0 评论 -
发件箱模式(The Outbox Pattern)
有时,在处理业务操作时,需要在即发即弃()模式下与外部组件通信。外部服务消息总线邮件服务器相同的数据库,但不同的数据库事务另一个数据库下单后发送电子邮件向消息传递系统发送关于新客户端注册的事件在不同的数据库事务中处理另一个DDD聚合-例如在下订单以减少库存产品数量之后由此产生的问题是从技术角度来看,我们是否能够保证业务操作的原子性?翻译 2023-01-24 21:33:45 · 767 阅读 · 1 评论 -
.NET Core中的旁路缓存模式(Cache-Aside Pattern)
通常情况下,我们需要专注于优化应用程序的性能。有很多方法可以做到这一点,其中一种方法是缓存一些数据。在这篇文章中,我将简要描述旁路缓存模式()及其在 .NET Core中的简单实现。在这篇文章中,我描述了旁路缓存模式及其在 .NET Core中的主要实现。我还提出了增强设计,以少量的工作实现更优雅的解决方案。缓存快乐!🙂。翻译 2023-01-24 20:04:58 · 348 阅读 · 1 评论 -
处理领域事件:缺失的部分
前段时间我写了一篇关于发布和处理域事件的文章。此外,在其中一篇文章中,我描述了发件箱模式(The Outbox Pattern),它在不使用2PC协议的情况下为我们提供了与外部组件/服务集成时至少一次的交付(这次我想结合这两种方法来完成之前的文章。我将提出一个完整的解决方案,考虑到事务边界,使系统以结构化的方式来可靠地进行数据处理。在这篇文章中,我描述了如何在深系统中以响应式方式处理命令和领域事件。用于事件分派和事务边界管理的装饰器模式用于在单独事务中处理事件的发件箱模式工作单元模式(翻译 2023-01-23 23:16:11 · 201 阅读 · 0 评论 -
如何发布和处理领域事件
领域事件是建模领域中过去发生的事件信息,是DDD方法的重要组成部分。发布和处理领域事件的方法有很多种——通过静态类、返回它们、通过集合公开。领域事件应该在现有事务中处理(我的建议)对于非事务性操作,引入了领域事件通知。翻译 2023-01-23 21:53:45 · 377 阅读 · 0 评论 -
领域模型验证
我们可以根据范围将领域模型的验证分为两种类型——聚合范围和限界上下文()范围.在这篇文章中,领域模型验证涉及了很多内容。我们有两种类型的领域模型验证——聚合范围和限界上下文范围领域模型验证通常有3种方法使用验证对象、延迟验证或始终有效(抛出异常)总是有效的方法是首选对于限界上下文范围验证,有两种验证方法——将所有需要的数据传递到聚合的方法/构造函数或者创建领域服务(通常是出于性能原因)。翻译 2023-01-23 20:36:26 · 396 阅读 · 0 评论 -
REST API数据验证
这一次,我将描述如何保护REST API应用程序免受包含无效数据的请求(数据验证过程)的影响。然而,不幸的是,仅仅验证我们的请求是不够的。除了验证之外,我们还负责将相关消息和状态返回给API客户端。我想在这篇文章中处理这两件事。什么是数据验证?我发现最好的定义来自UNECE数据编辑组(UNECE Data Editing Group):一种旨在验证数据项的值是否来自给定(有限或无限)的可接受值集的活动。根据这个定义,我们应该验证从外部源进入应用程序的数据项,并检查它们的值是否可接受。翻译 2023-01-23 13:23:02 · 291 阅读 · 0 评论 -
使用EF的领域模型的封装和持久化透明(PI)
在之前的文章中,我介绍了如何使用原始SQL(读模型)和领域驱动设计(写模型)实现简单的CQRS模式。我想继续介绍主要集中在DDD实施的例子。在这篇文章中,我将描述如何尽可能多地利用最新版本的Entity Framework 2.2(译者注:现在已不是最新版本)来支持纯领域建模。我决定在GitHub上不断开发我的例子。我将尝试逐步添加新的功能和技术解决方案。我还将尝试扩展领域,使应用程序与实际应用程序相似。在琐碎的领域中很难解释DDD的某些方面。不过,我强烈建议您关注(follow)我的代码库。翻译 2023-01-22 23:56:33 · 325 阅读 · 0 评论 -
简单的CQRS实现与原始SQL和DDD
我经常遇到关于CQRS模式实现的问题。甚至比我经常看到的"是在上下文中用ORM还是纯SQL访问数据库哪个更快”的讨论遇到的更多。在这篇文章中,我想向你展示如何使用. Net Core快速实现简单的REST API应用程序。开宗明义,这是CQRS最简单的版本——通过写模型()的更新立即更新了读模型(Read Model),因此我们在这里不保证最终的一致性(然而,许多应用程序不需要最终的一致性,因为推荐使用两个单独的模型对读写进行逻辑划分,这种做法在大多数解决方案中更加有效。翻译 2023-01-22 22:42:50 · 326 阅读 · 0 评论 -
WPF ListBox等ItemsControl交替(Alternation)变化效果
最近遇到一个需求,就是让表格等控件的内容显示交替变化。交替变化的内容,有利于缓解用户的视觉疲劳,个人感觉是一个很好的需求,要怎么实现呢?先看看效果吧!AlternationCount 属性指定了ItemsControl按AlternationCount 值轮换数量。如果这个值是2,那么内容(Item)相关每两个交替变化;如果这个值是3,则每三个交替变化;2.Xaml.cs总结总之,时显示方式就是ItemsControl的AlternationCount 属性搭配Trigger。另外,MSDN官方示原创 2022-12-04 20:28:18 · 1133 阅读 · 0 评论 -
C# 反射调用有参或无参方法
【代码】C# 反射调用有参或无参方法。原创 2022-11-20 15:39:20 · 732 阅读 · 0 评论 -
WPF 通过依赖属性Value更新长历史图表
最近在实现一些控件,诸如仪表盘和长历史图表等。这些控件对外的接口只有一个依赖属性Value。通过绑定,可以实时接收后台产生的数据。get {} set {对于一般的控件而言,如仪表盘,通过向提供更改通知的回调就可以实现仪表盘上的指针位置的更新。然而,对于长历史图表而言,它还有一个额外的要求保存历史的数据。这时,问题就出现了。如果后台产生了连续的相同的数据,那么的回调将不会被调用,进而导致长历史图只会保存连续变化的数据。这显然不是我们想要的效果。那如何解决这个问题呢?可以控件内部编写。原创 2022-11-20 11:52:20 · 529 阅读 · 0 评论 -
控件有多个事件时的命令的绑定
引入命名空间xmlns:i="http://schemas.microsoft.com/xaml/behaviors"Window的两个事件的命令绑定 <i:Interaction.Triggers> <i:EventTrigger EventName="Closing"> <i:InvokeCommandAction Command="{Binding ClosingCommand}"/> </i:E原创 2021-08-28 11:59:07 · 193 阅读 · 0 评论 -
C#图解教程(第五版)学习总结01
点击图片就可以清晰展示啦~原创 2021-07-17 15:16:10 · 1054 阅读 · 0 评论 -
C#中new的两种用法“public new“和“new public“
而在变量上 new要写在public前面,方法上 new写在public 后面 。1、public newpublic new void Method2(){ Console.WriteLine("Derived - Method2");}当基类和派生类都有Method2()时,派生类的对象会调用派生类的Method2()方法,而屏蔽基类的方法,不过编译器会warni...原创 2019-06-21 11:08:20 · 5806 阅读 · 0 评论