
【开源】NET Core 跨平台
文章平均质量分 92
Microi风闲
三天不学习
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
一文快速了解.NET项目文件(.csproj) ,基础而重要的文件【代码之美系列】
作为.NET开发者,我们每天都会与.csproj文件打交道,但很多人对其内部机制并不完全了解。本文将系统性地剖析.csproj文件的各个组成部分,帮助开发者掌握项目配置的核心原理。原创 2025-07-21 16:35:27 · 776 阅读 · 33 评论 -
ImageSharp.Web 使用指南:高效处理ASP.NET Core中的图像
在现代Web开发中,图像处理是一个不可或缺的功能。无论是调整大小、裁剪、添加水印还是格式转换,高效的图像处理能显著提升用户体验和网站性能。ImageSharp.Web作为Six Labors团队推出的ASP.NET Core中间件,为开发者提供了强大而灵活的图像处理解决方案。原创 2025-06-13 16:37:24 · 1040 阅读 · 10 评论 -
.NET 8集成阿里云短信服务完全指南【短信接口】
在当今的互联网应用中,短信验证码、通知等功能已成为必不可少的部分。阿里云短信服务(SMS)作为国内领先的短信平台,提供了稳定可靠的短信发送能力。本文将详细介绍如何在.NET 8应用中集成阿里云短信服务,实现短信发送功能。原创 2025-06-05 23:09:39 · 1916 阅读 · 61 评论 -
ASP.NET Core 主机模型详解:Host、WebHost与WebApplication的对比与实践【代码之美】
在开发中,主机(Host)是应用程序的入口和运行环境。随着版本的迭代,ASP.NET Core提供了不同的主机模型,包括HostWebHost和。许多开发者对这些概念容易混淆,本文将深入解析它们的区别,并通过实际代码演示各自的用法。主机在应用程序的启动和生命周期管理依赖注入容器的配置应用程序配置的设置日志系统的初始化中间件管道的构建(针对Web应用)理解的不同主机模型对于构建高效应用程序至关重要。随着.NET的演进,已成为最简单、最直接的Web应用构建方式。✅建议新项目直接采用。原创 2025-04-24 23:24:16 · 4264 阅读 · 45 评论 -
.NET 8 实现大文件分片上传:本地存储解决方案【代码之美】
在当今互联网应用中,大文件上传是一个常见需求,尤其是对于云存储、视频网站、企业文档管理系统等场景。传统的单次文件上传方式在面对大文件时往往会遇到网络不稳定、内存占用高、上传失败需重传整个文件等问题。本文将介绍如何在.NET 8中实现高效稳定的大文件分片上传方案。本文详细介绍了在.NET 8中实现大文件分片上传的完整方案,包括前端分片处理、后端分片接收与合并、断点续传等高级功能。高效稳定,适合大文件上传场景内存占用低,使用流式处理支持断点续传,提升用户体验。原创 2025-04-22 21:50:28 · 1254 阅读 · 53 评论 -
.NET Core 中获取各种路径的的方法汇总【代码之美】
在.NET Core开发过程中,正确处理文件路径是每个开发者都会遇到的常见需求。无论是读取配置文件、写入日志,还是管理上传的文件,都需要准确地获取各种路径信息。与传统的k相比,.NET Core在路径处理上有许多变化和改进,特别是在跨平台支持方面。本文将全面介绍.NET Core中获取各种路径的方法,帮助开发者避免常见的"坑"。掌握.NET Core中的路径处理是开发健壮应用程序的基础技能。在各种环境中正确获取所需路径编写跨平台兼容的代码避免常见的安全问题处理特殊的部署场景。原创 2025-04-10 00:04:56 · 1767 阅读 · 41 评论 -
【C#实战】动态模板替换:根据Model字段名称自动匹配替换值【代码之美】
在日常开发中,我们经常遇到需要根据数据模型动态生成文本内容的需求,比如邮件模板、报告生成、消息通知等场景。传统的方式是为每个字段硬编码替换逻辑,但当模板或模型变更时,维护成本很高。本文将介绍如何使用C#反射机制实现一个灵活的模板引擎,能够根据Model字段名称自动匹配并替换模板中的占位符。提示:以下是本篇文章正文内容,下面案例可供参考灵活性:模板与代码解耦,修改模板无需重新编译可维护性:添加新字段只需修改模板和模型扩展性:支持格式控制、嵌套对象等高级功能性能优化:通过缓存和预编译提升执行效率。原创 2025-04-02 14:34:55 · 1439 阅读 · 10 评论 -
.NET 集成 Velocity 模板引擎实现动态代码生成(高性能+易扩展)
在软件开发中,动态生成HTMLXMLSQL或代码文件是常见需求。是一款高性能的模板引擎,而 .NET 可以通过NVelocity(Velocity 的 .NET 实现)轻松集成。本文将详细介绍 .NET + Velocity 模板引擎 的集成方法,并提供最佳实践和完整代码示例。Velocity是Apache动态HTML生成(邮件模板、报表)代码生成(自动生成C#Java类)配置文件动态渲染(SQLXMLWeb视图引擎(替代Razor✔ 高性能(编译后缓存,执行快)✔ 语法简单(类似。原创 2025-03-29 20:21:23 · 1102 阅读 · 55 评论 -
JSON Schema 入门指南:如何定义和验证 JSON 数据结构
🌈JSON Schema 是一种用于描述JSON数据结构的规范。它允许你定义JSON数据的格式、类型、约束条件等,从而确保JSON数据符合预期的结构。原创 2025-02-26 14:32:50 · 3132 阅读 · 25 评论 -
在 .NET 8/9 中使用 AppUser 进行 JWT 令牌身份验证
🔎JSON Web令牌(JWT)是一种开放标准(RFC 7519),它定义了一种紧凑且自包含的方式,用于将信息作为JSON对象在各方之间安全地传输。此信息是经过数字签名的,因此可以验证和信任。可以使用密钥(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对对JWT进行签名。在其紧凑形式中,JSON Web令牌由三个部分组成,由点(页眉有效载荷签名因此,JWT。原创 2025-02-19 21:52:40 · 1232 阅读 · 2 评论 -
.NET8 中间件与过滤器的对比:深入解析与应用场景
💎在 .NET 8 中,中间件(Middleware)和过滤器(Filters)是两种常用的机制,用于处理请求和响应的管道。尽管它们在某些功能上有重叠,但它们的设计初衷、使用场景和执行顺序有所不同。本文将深入探讨中间件和过滤器的区别、优缺点以及适用场景,帮助开发者更好地理解和使用这两种机制。💯原创 2025-02-14 16:51:41 · 1377 阅读 · 3 评论 -
C# 泛型中的协变和逆变
💎协变和逆变都是术语,前者指能够使用比原始指定的派生类型的派生程度更大(更具体的)的类型,后者指能够使用比原始指定的派生类型的派生程度更小(不太具体的)的类型。泛型类型参数支持协变和逆变,可在分配和使用泛型类型方面提供更大的灵活性。在引用类型系统时,协变、逆变和不变性具有如下定义。这些示例假定一个名为Base的基类和一个名为Derived的派生类。Covariance使你能够使用比原始指定的类型派生程度更大的类型。你可以将的实例分配给类型的变量。原创 2025-01-07 22:38:09 · 1305 阅读 · 5 评论 -
C# LINQ 查询基础篇【代码之美系列】
语言集成查询(LINQ) 是一系列直接将查询功能集成到C#语言的技术统称。数据查询历来都表示为简单的字符串,没有编译时类型检查或支持。SQL数据库、XML文档、各种Web服务等。借助LINQ,查询成为了最高级的语言构造,就像类、方法和事件一样。对于编写查询的开发者来说,LINQ最明显的“语言集成”部分就是查询表达式。查询表达式采用声明性查询语法编写而成。使用查询语法,可以用最少的代码对数据源执行筛选、排序和分组操作。可使用相同的基本查询表达式模式来查询和转换SQL数据库、ADO .NET数据集、XML。原创 2024-12-30 21:07:07 · 1134 阅读 · 6 评论 -
C#高级篇 反射和属性详解【代码之美系列】
🤖反射当您必须访问程序元数据中的属性时。有关更多信息,请参阅检索存储在属性中的信息。用于检查和实例化程序集中的类型。用于在运行时构建新类型。使用中的类。为了执行后期绑定,访问在运行时创建的类型的方法。请参阅动态加载和使用类型一文。可通过定义特性类创建自己的自定义特性,特性类是直接或间接派生自Attribute的类,可快速轻松地识别元数据中的特性定义。假设希望使用编写类型的程序员的姓名来标记该类型。可能需要定义一个自定义Author} }} }} }} }原创 2024-12-30 20:32:36 · 1509 阅读 · 1 评论 -
C# 异步编程模型【代码之美系列】
通过使用异步编程,你可以避免性能瓶颈并增强应用程序的总体响应能力。但是,编写异步应用程序的传统技术可能比较复杂,使它们难以编写、调试和维护。C#支持简化的方法,即异步编程,它利用.NET运行时中的异步支持。编译器可执行开发人员曾进行的高难度工作,且应用程序保留了一个类似于同步代码的逻辑结构。因此,你只需做一小部分工作就可以获得异步编程的所有好处。本主题概述了何时以及如何使用异步编程,并包括指向包含详细信息和示例的支持主题的链接。原创 2024-12-25 22:11:57 · 1183 阅读 · 11 评论 -
C# 中的记录类型简介 【代码之美系列】
C#中的记录是一个类或结构,它为使用数据模型提供特定的语法和行为。record修饰符指示编译器合成对主要角色存储数据的类型有用的成员。这些成员包括支持值相等的ToString()和成员的重载。记录声明中提供的每个位置参数的公共自动实现属性。对于record和t 类型,为record属性。对于类型,为读写属性。主构造函数,它的参数与记录声明上的位置参数匹配。对于类型,则是将每个字段设置为其默认值的无参数构造函数。一个方法,对记录声明中提供的每个位置参数都有一个out参数。原创 2024-12-25 21:07:00 · 1270 阅读 · 0 评论 -
C# 强大无匹的模式匹配,让代码更加优雅【代码之美系列】
long long ago , 我们在处理复杂的业务逻辑时可能会写很多if else语句,看着堆叠如山的屎山代码自己都心虚。以前没办法,因为没有更强大的语法糖🍬做背书,巧妇难为无米之炊啊。自从C#匹配模式增强之后,我看了很多官方的案例,太巧妙了,太优雅了。今天就来一起看看有哪些优雅的模式。使用表达式switch语句和is将输入表达式与任意数量的特征匹配。C#支持多种模式,包括声明、类型、常量、关系、属性、列表、var和弃元。可以使用布尔逻辑关键字andor和not组合模式。is表达式switch语句。原创 2024-12-24 20:54:48 · 832 阅读 · 6 评论 -
浅析 C# Async 和 Await 【代码之美系列】
🎯在C#中,async和await关键字是用于实现异步编程的强大工具。它们的引入极大地简化了异步代码的编写,使得开发人员能够更容易地创建响应式和高性能的应用程序。但是,要真正理解它们的工作原理,我们需要深入探讨它们在底层到底在做什么。原创 2024-12-12 13:00:01 · 4521 阅读 · 47 评论 -
Web应用程序体系结构原则 【代码之美系列】
💎本章内容理解起来还是比较有难度的,一些名词听起来比较拗口。没关系,细细的品,慢慢的消化,待时机成熟,你自然会理解其中的奥妙。原创 2024-12-10 20:35:01 · 666 阅读 · 0 评论 -
常用 Web 应用程序体系结构【代码之美系列】
💎“如果你认为好的体系结构很昂贵,试试糟糕的体系结构吧。”- Brian Foote 和 Joseph Yoder原创 2024-12-10 16:16:57 · 1129 阅读 · 0 评论 -
C# 一文讲透 类型参数约束 【代码之美系列】
🎖️约束告知编译器类型参数必须具备的功能。 在没有任何约束的情况下,类型参数可以是任何类型。 编译器只能假定 System.Object 的成员,它是任何 .NET 类型的最终基类。原创 2024-12-08 19:22:15 · 961 阅读 · 1 评论 -
C# 代码约定 【代码之美系列】
🎯对于在开发团队中维护代码可读性、一致性和协作至关重要。遵循行业实践和既定准则的代码更易于理解、维护和扩展。大多数项目通过代码约定强制要求样式一致。和项目并不例外。在本系列文章中,你将了解我们的编码约定和用于强制实施这些约定的工具。你可以按原样采用我们的约定,或修改它们以满足团队的需求。🎀拥有良好的编码习惯和规范可以让代码更赏心悦目。团队中的每一个人,对规范的理解是不统一的,任何团队开发中都需要规范,有统一的代码规范,肯定会事半功倍,方便维护。拒绝屎山代码从你做起,对,是从你做起。🤣。原创 2024-12-06 21:47:44 · 966 阅读 · 6 评论 -
C# 命名规则和约定 【代码之美系列】
🎀拥有良好的编码习惯和规范可以让代码更赏心悦目。团队中的每一个人,对规范的理解是不统一的,任何团队开发中都需要规范,有统一的代码规范,肯定会事半功倍,方便维护。拒绝屎山代码从你做起,对,是从你做起。🤣。原创 2024-12-06 20:51:46 · 785 阅读 · 0 评论 -
ASP.NET Core SignalR 入门
📢 SignalR的主要功能是提供服务器和客户端之间的实时通信。当连接的客户端变得可用时,服务器可以立即向其推送内容,而不是等待客户端发起请求。这种功能特别适合需要实时更新数据的应用场景,如聊天应用、实时数据分析、多人协作编辑工具等。原创 2024-12-04 20:16:03 · 1380 阅读 · 0 评论 -
ASP.NET Core 9.0 静态资产传递优化 (MapStaticAssets )
MapStaticAssets是ASP.NET Core中的一个新功能,用于优化应用中的静态资产传递。该功能通过使用静态资产清单( manifest )来管理静态文件,从而减少不必要的网络请求,提高应用性能。原创 2024-12-04 17:18:31 · 1386 阅读 · 0 评论 -
ASP.NET Core 和 MongoDB 创建 Web API
🏆本文创建对MongoDBNoSQL 数据库运行创建、读取、更新和删除 (CRUD) 操作的 Web API。配置 MongoDB创建 MongoDB 数据库定义 MongoDB 集合和架构从Web API执行 MongoDBCRUD操作自定义JSON序列化。原创 2024-12-03 21:47:37 · 1235 阅读 · 7 评论 -
ASP.NET Web UI 框架 Razor Pages/MVC/Web API/Blazor
🎯ASP.NET Web应用中的 Razor Pages/MVC/Web API/Blazor 的区别,如何选择web应用开发框架。原创 2024-12-03 17:51:44 · 1711 阅读 · 2 评论 -
ASP.NET Core SignalR 双工通信
🔥ASP.NET Core SignalR 是一个开放源代码库,它简化了向应用添加实时 Web 功能的过程。 实时 Web 功能使服务器端代码可以在服务器上激发事件时将事件推送到连接的客户端。 使用 SignalR,客户端也可以将消息发送到服务器,从而实现双工通信。🕸️原创 2024-12-03 15:06:01 · 1282 阅读 · 1 评论 -
MiniProfiler WebAPI 分析工具
🛠️MiniProfiler是一款简单但有效的.NET、RubyGo和Node.js微型性能分析器。不会将自身附加到每个方法调用;那会太具有侵入性,并且不会专注于最大的性能问题。原创 2024-12-02 23:32:55 · 1135 阅读 · 0 评论 -
实现PDF文档加密,访问需要密码
📑pdf 加密,实现打开pdf需要密码验证效果。✨原创 2024-11-30 20:10:54 · 997 阅读 · 0 评论 -
C#.Net筑基 - 常见类型
UTC(Coordinated Universal Time)世界标准时间(协调时间时间),简单理解就是 0时区的时间,是国际通用时间。它与0度经线的平太阳时相差不超过1秒,接近格林尼治标准时间(GMT)。**格林尼治标准时间(Greenwich Mean Time,GMT)**是指位于伦敦郊区的皇家格林尼治天文台的标准时间,因为本初子午线被定义在通过那里的经线。理论上来说,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时的时间。📢 由于地球在它的椭圆轨道里的运动速度不均匀,因此GMT是不稳定的。原创 2024-11-26 20:46:06 · 1124 阅读 · 0 评论 -
C#.Net筑基-类型系统
⁉️什么时候需要自定义相等比较?提高比较速度,多用于自定义结构体。修改相等比较的语义,基于实际业务需要自定义相等的规则,如System.Url、String.String 都是引用类型,只要字符值相同则相等(== 和 Equals)。⁉️如何自定义相等比较?重写和Equals()方法。这两个一般是一起配对重写,需注意 二者的一致性。(可选)重载!和==。(可选)实现 IEquatable接口。📢是基类 Object 的一个虚方法,该方法用于获取一个对象的 Int32 类型的散列码。原创 2024-11-26 20:37:07 · 894 阅读 · 0 评论 -
C#.Net 筑基-运算符
C#内置了丰富的运算符操作类型,使用方便,极大的简化了编码,同时还支持多种运算符重载机制,让自定义的类型也能支持运算符行为。原创 2024-11-26 20:27:20 · 729 阅读 · 0 评论 -
.NetCore 过滤器和拦截器 的区别
ASP.NETCore 过滤器和拦截器的区别原创 2024-11-24 13:19:09 · 1048 阅读 · 1 评论 -
【过滤器】一文了解 .NET Core 中各种 Filter
ASP.NET Core中,Filter(过滤器)是一种强大的机制,允许你在请求处理管道中的特定阶段运行代码。这些过滤器提供了在请求的不同阶段执行逻辑的能力,比如授权、日志记录、异常处理等。ASP.NET Core 提供了多种类型的过滤器,每种类型都在请求处理管道的不同阶段运行原创 2024-11-24 12:55:01 · 1122 阅读 · 0 评论 -
从0起手后端框架你需要了解的知识点 java/.netcore
从0起手后端框架你需要了解的知识点 java/.netcore原创 2024-11-22 21:12:51 · 838 阅读 · 0 评论 -
C# AutoMapper 10个常用方法总结
AutoMapper 是一个强大的对象映射库,用于简化和自动化复杂对象之间的转换。原创 2024-11-20 09:27:47 · 1270 阅读 · 0 评论 -
.NET Core 使用IOptions 优雅地读取配置、注入依赖、配置日志
在.NET Core中,控制台程序不仅是简单的命令行应用,它也可以是一个功能强大的、可配置和可扩展的应用程序。是.NET Core项目中的标准配置文件,用于存储应用程序的设置。在控制台应用程序中,您可以轻松地读取这个文件中的值。使用依赖注入(DI)模式,您可以轻松地将服务注入到控制台应用程序中。方法中,您可以注册服务并指定它们的作用域(例如,单例、作用域或瞬态)。到服务容器中,这样我们就可以在应用程序的任何地方注入。然后,在您的控制台应用程序中,创建一个配置类来映射。到您的项目中,并填充必要的配置信息。原创 2024-11-15 00:37:27 · 598 阅读 · 0 评论 -
ASP.NET Core 中利用环境变量动态加载多个 appsettings.json 文件
然而,根据不同的环境(如开发环境、测试环境、生产环境),这些配置信息可能会有所不同。ASP.NET Core 提供了灵活的方式来支持多个配置文件,并可以根据环境变量动态加载不同的配置。文件,ASP.NET Core 提供了灵活的方式来管理不同环境下的配置信息。来确定当前运行环境。文件包含所有环境共通的配置信息,然后为每个环境创建特定的配置文件来覆盖或添加特定于该环境的配置。提供了灵活的方式来读取配置信息,支持按键名直接访问,也支持使用路径来访问嵌套的配置信息。文件只包含开发环境中特定的配置,如日志级别等。原创 2024-11-15 00:31:10 · 506 阅读 · 0 评论 -
C#.Net筑基-解密委托与事件
委托是一种用来包装方法的特殊类型,可以将方法包装为对象进行传递、调用,类似函数指针。delegate关键字用来定义一个委托类型,语法类似方法申明,可以看做是一个“方法签名模板”,和方法一样定义了方法的返回值、参数。用delegate定义的委托是一个类,继承自 System.MulticastDelegate、System.Delegate,“方法名”就是委托类型的名称。委托的使用同其他普通类型,实例指向一个方法的引用,该方法的申明和委托定义的“方法签名模板”须匹配(支持协变逆变。原创 2024-11-14 00:43:35 · 1066 阅读 · 0 评论