抽一根烟的时间学会.NET Core 操作RabbitMQ

什么是RabbitMQ? RabbitMQ是由erlang语言开发的一个基于AMQP(Advanced Message Queuing Protocol)协议的企业级消息队列中间件。可实现队列,订阅/发布,路由,通配符等工作模式。 为什么要使用RabbitMQ? 异步处理:比如发送邮件,发送短信等不 ... »

聊聊Dotnet的垃圾回收

最近在做一个项目,用到了大量的非托管技术,所以垃圾回收变得很重要。 在说垃圾回收之前,先说说两个概念: 托管代码,是由CLR管理的代码 非托管代码,是由操作系统直接执行的代码 在早期C++的时候,内存分配和释放都是由我们手动处理的,而在公共语言进行时CLR中,多了一个垃圾收集器GC,来充当自动内存管 ... »

通过 .NET NativeAOT 实现用户体验升级

前言 TypedocConverter 是我先前因帮助维护 monaco-editor-uwp 但苦于 monaco editor 的 API 实在太多,手写 C# 的类型绑定十分不划算而发起的一个项目。 这个工具可以将 typedoc 根据 TypeScript 生成的 JSON 文件直接生成对应 ... »

NLog整合Exceptionless

前言 在实际的.Net Core相关项目开发中,很多人都会把NLog作为日志框架的首选,主要是源于它的强大和它的扩展性。同时很多时候我们需要集中式的采集日志,这时候仅仅使用NLog是不够的,NLog主要是负责代码中日志的落地,也就是收集程序中的日志。类似的使用ELK(Elasticsearch+Lo ... »

.NET 6 Preview 1 发布

前言 2021 年 2 月 17 日微软发布了 .NET 6 的 Preview 1 版本,那么来看看都有什么新特性和改进吧,由于内容太多了因此只介绍一些较为重点的项目。 统一和扩展 .NET 6 在 .NET 5 的统一的基础之上,继续借助 Xamarin 扩展到 Android、iOS 和 ma ... »

Dotnet中Span, Memory和ReadOnlySequence之浅见

> 过年啦,写个短点的。同时,提前给大家拜个年。   总有小伙伴们跑过来讨论关于Span和Memory的使用,眼瞅是最近关于Span的文章有点多,看飞了。 今天写这个,就是往回拉一拉。 写之前,先声明一下。这些内容是我自己使用的一些经验,并不代表这些类的全部内容就是这些,只是说,我是这么用 ... »

在.NET中体验GraphQL

前言 以前需要提供Web服务接口的时候,除了标准的WEBAPI形式,还考虑了OData、GraphQL等形式,虽然实现思路上有很大的区别,但对使用方来说,都是将查询的主动权让渡给了前端,让调用方能够更加自由地发挥或者符合自己要求的数据。其中,OData作为传统REST WEBAPI的拓展,对外还是W ... »

.NetCore快速上手Consul,留给自己一点思考的空间

互联网热潮下,“微服务”技术架构成为了一种高大上的技术,其顾名思义就是将传统的大的业务服务拆分成独立的小服务,当拆分的服务慢慢多起来的时候,我们会发现服务地址很难管理,传统的方式一般会通过配置文件或者数据库存储,这种手动的维护的方式显然不够灵活,如果某个服务挂了,系统得不到及时的通知,只能等维护人员 ... »

ABP设置管理模块: Abp.SettingUi

开源地址: https://github.com/EasyAbp/Abp.SettingUi 一直想宣传一下SettingUi, 因为 懒 工作比较忙, 所以才拖到今天. 关于ABP就不需要我再多废口舌了, 已经是一个非常出名的.NET Core的框架, 在国内也已经有很多企业在正式项目中广泛使用了 ... »

C#脚本引擎RulesEngine

当编写应用程序时,经常性需要花费大量的时间与精力处理业务逻辑,往往业务逻辑的变化需要重构或者增加大量代码,对开发测试人员很不友好。 之前在这篇文章说过,可以使用脚本引擎来将我们需要经常变化的代码进行动态编译执行,自由度非常大,不过对应的需要资源也多。如果只是针对非常具体业务逻辑的变化,可以尝试使用R ... »

Dotnet的局部函数和委托的对比

上一篇说了一下委托,这篇来说说局部函数和委托的对比。 把委托和局部函数放成前后篇,是因为这两个内容很像,用起来容易混。 需要了解委托相关内容,可以看这一篇 【传送门】 使用委托表达式(Lambda) 假设一个场景:我们有一个订单列表,里面有售价和采购价。我们需要计算所有物品的毛利率。 public ... »

武装你的WEBAPI-OData常见问题

本文属于OData系列 目录 武装你的WEBAPI-OData入门 武装你的WEBAPI-OData便捷查询 武装你的WEBAPI-OData分页查询 武装你的WEBAPI-OData资源更新Delta 武装你的WEBAPI-OData之EDM 武装你的WEBAPI-OData使用Endpoint ... »

Asp.net core通过自定义特性实现双端数据验证的一些想法

asp.net core集成了非常方便的数据绑定和数据校验机制,配合操作各种easy的vs,效率直接高到飞起。 通过自定义验证特性(Custom Validation Attribute)可以实现对于数据校验规则的极大扩展。 最近在写前后端自定义验证的时候,尝试换了一种思路,这里做简单记录: > 一 ... »