自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(145)
  • 资源 (1)
  • 收藏
  • 关注

原创 激情碰撞,智慧融汇 .NET Conf China 2023 JiNan圆满技术!

2024年3月3日,温暖的阳光洒在山东财经大学的校园里,这一天,我们在这里共同见证了一场科技与智慧的盛宴——“.NET Conf China 2023 JiNan Watch Party:走进山财大—AI驱动下的应用智能化开发”活动。在现场,我们欢来了社区的数十名成员的参与,首先进行的是签到环节。活动也在下午14:00拉开了帷幕,首先由我们的山财大管理科学与工程学院院长刘位龙教授发表开场...

2024-03-07 10:47:00 440

原创 理解并掌握C#的Channel:从使用案例到源码解读(一)

引言在C#的并发编程中,Channel是一种非常强大的数据结构,用于在生产者和消费者之间进行通信。本文将首先通过一个实际的使用案例,介绍如何在C#中使用Channel,然后深入到Channel的源码中,解析其内部的实现机制。使用案例一:文件遍历和过滤在我们的使用案例中,我们需要遍历一个文件夹及其所有子文件夹,并过滤出具有特定扩展名的文件。在此,我们使用了C#的Channel来实现这个任务。...

2023-09-24 23:35:00 231

原创 .NET对象的内存布局

在.NET中,理解对象的内存布局是非常重要的,这将帮助我们更好地理解.NET的运行机制和优化代码,本文将介绍.NET中的对象内存布局。.NET中的数据类型主要分为两类,值类型和引用类型。值类型包括了基本类型(如int、bool、double、char等)、枚举类型(enum)、结构体类型(struct),它们直接存储值。引用类型则包括了类(class)、接口(interface)、委托(del...

2023-08-10 23:18:00 1149

原创 C#抽象静态方法

抽象静态方法在C# 11中,引入了对抽象静态接口成员的支持。这个特性可以让你在接口中定义静态抽象方法、属性、或事件。具体来说,一个接口可以定义一个或多个抽象静态成员,这些成员没有具体的实现。任何实现该接口的类或结构必须提供这些成员的静态实现。这就像实现普通接口成员一样,只不过是静态的。当然,你也可以基于它来实现一些设计模式,本文将展开介绍。单例模式:静态抽象成员可以用于实现单例模式。在这...

2023-08-06 22:19:00 1002

原创 .NET Native AOT的静态库与动态库

.NET不仅可以使用 C静态库与动态库,也可以将.NET实现的函数导出为C静态库与动态库。在没有Native Aot之前,.NET只能通过P/Invoke享受C/C++生态,而在Native Aot之后,不仅可以享受这些生态,还可以开发SDK供其他语言调用。.NET Native AOT的NativeLib参数用于指定本机库的类型。在.NET 7中,该参数有两个选项:Static和Shared...

2023-07-15 22:17:00 2125

原创 使用dotnet-monitor分析在Kubernetes的应用程序:Sidecar模式

dotnet-monitor可以在Kubernetes中作为Sidecar运行,Sidecar是一个容器,它与应用程序在同一个Pod中运行,利用Sidecar模式使我们可以诊断及监控应用程序。如下图所示,这是我们最终要实现的目标,通过可视化界面查看应用程序的指标信息。应用服务创建dotnetmonitor.yaml文件,如下所示。apiVersion: apps/v1kind: Dep...

2022-08-17 23:30:00 157

原创 wsl2 内存限制

在C:\Users\<UserName>\.wslconfig创建一个文件,配置如下所示。[wsl2]memory=4GBswap=8GBswap类似于Windows的虚拟内存,从硬盘中划分出一个分区,在物理内存不够时,就会将硬盘空间虚拟成内存使用,用于解决内存不足的情况。配置格式:[wsl2]memory=<size> pr...

2022-07-27 23:20:00 2935

原创 利用Windbg分析Magicodes.IE一次错误编写导致内存剧增

由于这近一年时间一直忙于写书和工作,一直没有水文,但是近期有几位朋友使用我们的Magicodes.IE反馈在导出过程中内存暴涨...好吧,不管怎样,不能苦了我们朋友,接下来我们通过windbg来看一下什么原因导致的。接下来我们先通过address -summary来看一下当前应用内存占用量。0:000> !address -summary--- Usage Summary ----...

2021-12-12 22:29:00 559

原创 .NET虚拟文件系统

TinyVFS TinyVFS 是一个虚拟文件系统,受ABP vNext框架的启发。它可以将js、css、image、cshtml等文件嵌入到程序集中,并在运行时可以将它们像物理文件一样去使用。特点在单体应用中,它可以将前端和后台(管理系统)分到单独项目工程中在开发中它可以让开发人员同时进行开发不同的业务或者模块它可以让我们将系统功能模块拆分后组装到一起快速入门1、通过Nu...

2021-10-13 23:35:00 324

原创 运行 Jenkins 的 Docker 容器中拒绝了 dotnet 构建权限

设置环境变量environment { DOTNET_CLI_HOME = "/tmp/DOTNET_CLI_HOME"}或者export DOTNET_CLI_HOME="/tmp/DOTNET_CLI_HOME"

2021-09-18 21:38:00 240

原创 【Azure DevOps系列】Azure DevOps构建.NET EFCore应用程序

本章我们将看到如何通过Azure DevOps使用EFCore CLI工具将我们的EFCore应用程序进行数据库重建,当然这种操作我不建议使用,建议使用CLI生成sql脚本形式进行发布并迁移。设置代理服务器sdk- task: UseDotNet@2 inputs: packageType: 'sdk' version: '3.x'安装dotnet-ef安装E...

2021-05-30 12:48:00 158

原创 .NET RulesEngine(规则引擎)

一次偶然的机会,让我拿出RulesEngine去完成一个业务,对于业务来说主要是完成一个可伸缩性(不确定的类型,以及不确定的条件,条件的变动可能是持续增加修改的)的业务判断。比如说完成一个成就系统,管理员可创建,对于成就来说有一次性解锁、日常、周常式,还有随时重置,每次达成都触发的,面对着成就任务的增加,那对于程序员来说,如果每次都去增加修改这些成就任务简直是太头疼了。好了,对此大家应该有一个简...

2021-04-29 23:13:00 2126

原创 Magicodes.IE.ASPNETCore之多样化接口使用

1.安装包Install-Package Magicodes.IE.AspNetCore2.开始配置在Startup.cs的Configure()方法中,在UseRouting()中间件之后,注册如下中间件public void Configure(IApplicationBuilder app){ app.UseRouting(); app.UseMagiCodesI...

2021-04-22 21:06:00 236

原创 在ASP.NET Core中使用ViewComponent

前言在之前的开发过程中,我们对于应用或者说使用一些小的组件,通常使用分布页(partial view),再往前在Web Form中我们会进行应用WEB Control,好吧提及一个关键性代码TagPrefix:TagName,通过这种的标记我们便可以在我们web form中进行引入我们的组件,当然自从.NET MVC之后呢,就已经没有了WebControl,而对于.NET Core后,又多了一...

2021-04-10 11:44:00 477 1

原创 .NET初探源代码生成(Source Generators)

前言Source Generators顾名思义代码生成器,可进行创建编译时代码,也就是所谓的编译时元编程,这可让一些运行时映射的代码改为编译时,同样也加快了速度,我们可避免那种昂贵的开销,这是有价值的。实现ISourceGenerator集成ISourceGenerator接口,实现接口用于代码生成策略,它的生命周期由编译器控制,它可以在编译时创建时创建并且添加到编译中的代码,它为我们提供...

2021-03-16 20:45:00 802

原创 .NET探索模型路由约定实现伪静态

概述IPageRouteModelConvention接口用于自定义PageRouteModel,这个对象在Microsoft.AspNetCore.Mvc.ApplicationModels命名空间中,代表着Razor Page路由设置,换句话说我们可以通过实现该接口覆盖默认的实现。该接口需要实现一个成员void Apply(PageRouteModel model)。通过这个方...

2021-02-19 18:52:00 226

原创 .NET中使用DebuggerDisplay轻松定制调试

前言对于调试的方式有多种,不过在今天我们将看到的监视窗口对变量的监视,当然在这里我们是定制内部的变量值,或者说变量的显示与计算的内容。注:监视窗口在调试时可以一次显示多个变量。“快速监视”对话框一次显示一个变量。DebuggerDisplayAttribute在下面示例中,我们在类上添加DebuggerDisplay,添加字符串:("Name={Name},Age={Age...

2021-02-12 20:48:00 310

原创 .NET探索平台条件编译

前言今天偶然机会,翻了一下大学期间的书籍《C程序设计》,好吧,当我翻着翻着,翻到了符号常量(#define指令)中,是啊,这是一个预处理器指令,记得在Magicodes.IE中针对平台选择不同的库,哈哈,这是一个典型的根据平台进行条件处理,好吧,根据这些内容,让我感觉在今天,我需要对#define指令以及在.NET中的平台条件处理,以及平台的条件编译进行记录一下。define我们...

2021-01-17 22:40:00 493

原创 【Azure DevOps系列】Azure DevOps EFCore命令式脚本部署到SQL数据库

构建迁移脚本为了构建迁移脚本,我们将需要使用EF Tools for Command Line Interface。这些工具在Microsoft.EntityFrameworkCore.Tools提供。迁移脚本现在我们将通过 dotnet ef migrations script –p <path to your csproj with migrations> -o...

2020-12-09 21:22:00 260 1

原创 .NET 开源导入导出库 Magicodes.IE 2.5发布

今天我们发布了2.5版本,这当然也离不开大家对Magicodes.IE的支持,今天我也是跟往常一样列举了该版本一些重要的更新内容。当然也要说一下,在这个版本中我们设计了全新的LOGOExcel导出Excel导出支持HeaderRowIndex #164在ExcelExporterAttribute导出特性类中添加HeaderRowIndex属性,方便导出时去指定从第一行开始...

2020-12-08 07:56:00 139

原创 探索.NET平台中的SIMD内在函数Vector

概述Vector(向量)是一种序列式容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。而Vector刚好弥补了这个缺陷,它的特征是相当于可分配拓展的数组(动态数组),它的随机访问快,在中间插入和删除慢,但在末端插入和删除快。什么是SIMD?SIMD是Single Instruction Multiple Data的...

2020-12-01 10:59:00 324

原创 Vs编译时RazorTagHelper - DOTNET_HOST_PATH is not set

今天听朋友说遇到一个问题,打开一个aspnetcore2.2的项目工程,发现挺有意思,缺少环境变量DOTNET_HOST_PATH严重性 代码 说明 项目 文件 行 禁止显示状态错误 MSB4018 “RazorTagHelper”任务意外失败。System.InvalidOperationException: DOTNET_HOST_PATH is not set 在 M...

2020-11-17 20:31:00 1013 1

原创 .NET必知的EventCounters性能指标监视器

在.NET我们对于性能指标监控,其实常见的有两个方法,一个是CLI工具dotnet-counters而另一个是代码级别的EventListener.使用dotnet-countersdotnet-counters是一个性能指标监视工具,用于临时运行状态监视和初级性能调查。它可以观察通过 EventCounter API发布的性能计数器值。例如,可以快速监视 CPU 使用情况或 .N...

2020-11-14 11:06:00 1813 5

原创 Azure Storage Account 误删恢复

登陆Azure站点,导航到新支持请求工作流程中新建一个支持请求,信息可以按照如下这么去设置,当然要注意订阅账号别选择错点击图中圈起来的链接“恢复删除的存储帐户”请选择已删除的帐户, 并且单击恢复。恢复完成后,我们会看到一个通知success~,恢复成功...

2020-11-12 13:08:00 283

原创 【Azure DevOps系列】Azure DevOps多阶段构建

对于阶段的流水线其实是特别有用的,我们可以将构建、测试、或者说部署分为多个阶段进行处理。将您的应用程序部署到多个环境中,并从一个环境逐步过渡到另一个环境。例如,可以在CI中运行单元测试后自动部署到Dev环境,然后部署到运行集成测试的Test环境,然后手动部署到Production。管道任务这是一个最基础的管道任务,它在Microsoft托管代理上运行,同时他它采用ubuntu-16....

2020-10-28 09:38:00 360

原创 【Azure DevOps系列】Azure DevOps使用Docker将.NET应用程序部署在云服务器

Docker持续集成本章我们要实现的是通过我们往代码仓库push代码后,我们将每次的push进行一次docker自动化打包发布到docker hub中,发布到之后我将进行部署环节,我们将通过ssh方式将我们的.NET应用程序pull并run到我们的云服务器上。Dockerfile 如下所示:#See https://aka.ms/containerfastmode to under...

2020-10-22 13:04:00 516

原创 【Azure DevOps系列】如何在Azure DevOps上构建Docker镜像(一)

创建Pipelinetrigger:- masterpool: vmImage: 'windows-latest'steps:- task: DotNetCoreCLI@2 inputs: command: 'restore'- task: DotNetCoreCLI@2 inputs: command: 'build'- task: D...

2020-10-14 19:42:00 540

原创 在.NET中使用DiagnosticSource

前言DiagnosticSource是一个非常有意思的且非常有用的API,对于这些API它们允许不同的库发送命名事件,并且它们也允许应用程序订阅这些事件并处理它们,它使我们的消费者可以在运行时动态发现数据源并且订阅与其相关的数据源。DiagnosticSource在AspNetCore、EntityFrameworkCore、HttpClient、SqlClient中被使用,在我们实...

2020-10-05 12:56:00 403

原创 【Azure DevOps系列】Azure DevOps构建并发布.NET5应用程序

Azure App Service独立部署在Azure App Service中我们可以通过独立部署进行部署我们的.NET5应用程序,因为它不会依赖目标系统上的环境,并且所有组件(包括librarys和运行时)都与该应用程序一起使用,并且与其他应用程序进行隔离,这样其实我们更好的去控制应用程序运行的版本。1、选择要发布的项目,鼠标右键单击项目,然后选择发布,会出现如下内容:2、...

2020-09-23 13:10:00 300

原创 .NET Core开源导入导出库 Magicodes.IE 2.3发布

在2.3这一版本的更新中,我们迎来了众多的使用者、贡献者,在这个里程碑中我们也添加并修复了一些功能。对于新特点的功能我将在下面进行详细的描述,当然也欢迎更多的人可以加入进来,再或者也很期待大家来提issues或者PR,您的一个issue或者PR将是我们前进的动力。公式导出 #88公式导出目前已经在Excel模板导出中支持,我们可以通过如上代码片段的格式进行将公式应用到我们的E...

2020-09-21 21:44:00 311

原创 【翻译】.NET 5 Release Candidate 1中的ASP.NET Core更新

.NET 5 Release Candidate(RC1)版本现在可以进行使用了,以下是发布的新功能:Blazor WebAssembly性能改进Blazor组件虚拟化Blazor WebAssembly预渲染Blazor WebAssembly的浏览器兼容性分析器Blazor JavaScript隔离和对象引用Blazor文件输入支持Blazor中的自定义验证类属性B...

2020-09-15 18:45:00 298

原创 【翻译】.NET 5 RC1发布

9月14日,.NET5发布了(Release Candidate)RC1版本,RC的意思是指我们可以进行使用,并且RC版本得到了支持,该版本很接近.NET5.0的最终版本,也是11月正式版本之前两个RC版本中的其中一个。目前,开发团队正在寻找在.NET5发布之前剩余的bug,当然他们也希望我们的反馈以帮助他们顺利的完成.NET5的开发计划。开发团队在今天还发布了ASP.NET Core...

2020-09-15 14:43:00 170

原创 【Azure DevOps系列】使ASP.NET Core应用程序托管到Azure Web App Service

使用Azure DevOps Project设置ASP.NET项目我们需要先在Azure面板中创建一个Azure WebApp服务,此处步骤我将省略,然后点击部署中心如下图所示:此处我选择的是Azure Repos,当然大家也可以选择Github、Local Git、FTP我们需要提前在Azure DevOps中提前创建好应用程序,我这边已经提前创建好了名称为Blog.创...

2020-09-11 12:58:00 184

原创 【Azure DevOps系列】Azure DevOps构建并发布Nuget程序包

在Azure DevOps中,管道可以用来构建解决方案,O(∩_∩)O哈哈~快万能了,本章主要介绍如何创建Nuget包并且将其发布到Nuget服务器的过程。前面我创建了一个非常简单的类库,这边我不做过多叙述,接下来我们需要进行编辑csproj文件,当我们创建Nuget包时,我们将使用dotnet pack命令。这于传统的Nuget cli稍微有点不同,在传统的Nuget CLI中,我们...

2020-09-07 09:03:00 210

原创 【Azure DevOps系列】Azure DevOps生成代码覆盖率

前言在做单元测试时,代码覆盖率可以作为我们衡量代码质量的一个指标,本章我们将使用Azure DevOps帮助我们生成代码覆盖率的结果.Azure DevOps构建管道还是具有代码覆盖率选项的,在Visual Studio测试平台在已经集成了Coverlet格式的数据收集器,它其实并不难,它是可以开箱即用的。获取Coverlet格式报告几乎都是可以拿命令行参数去解决的。在单元测试项目中...

2020-08-31 11:00:00 339

原创 【翻译】.NET 5 Preview8发布

【翻译】.NET 5 Preview8发布今天,.NET 5预览8发布了,对于.NET5.0的功能开发已经完成了,这必须要排除待处理的bug,预览8是最后一次预览版本。预计11月正式的.NET5.0版本发布之前还将发布两个正式之前的候选版本,这篇文章描述了.NET5.0版本中的一系列功能。You can download .NET 5.0, for Windows, macOS, an...

2020-08-26 14:42:00 238

原创 【Azure DevOps系列】开始第一个Azure DevOps应用

前言在上一章中对Azure DevOps做了一个简单介绍,本章我们将开始我们的Azure DevOps.开启第一个DevOps应用我们需要先从Azure DevOps这边进行注册相关账号。注册账号打开Azure Pipelines,点击免费使用点击后进行注册或者登录Microsoft账号创建项目根据我们刚才创建的组织,然后访问组织页面进行创建项目https:/...

2020-08-25 17:41:00 523

原创 .NET Core SameSite cookie问题

异常提示This setcookie was blocked because it had the "samesite=none" attribute but did not have the "secure" attribute, which is required in order to use "same=none"SameSiteSameSite 有3个可选值 :Str...

2020-08-20 00:03:00 961

原创 MSIL入门(二)通过对象看IL

前言上一篇文章主要介绍了IL的概念以及基础的示例代码,在这一篇文章中我们将通过对象调用看IL。创建对象与调用方法class Program{ static void Main(string[] args) { var obj = new MyClass(); Console.WriteLine(obj.Say()); }}class MyClass{ private const string Str = "Hello";

2020-08-17 11:55:35 147

原创 【Azure DevOps系列】什么是Azure DevOps

DevOpsDevOps是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化,它促进开发和运营团队之间的协作,以自动化和可重复的方式更快地将代码部署到生产中。DevOps有助于提高组织提供应用程序和服务的速度。它使组织能够更好地为客户服务,并在市场中更有竞争力。简而言之,DevOps可以定义为开发和IT运营的一致性,以及更好的沟通和协作。Azu...

2020-08-16 20:11:00 5283

购物商城数据库表

购物商城数据库表

2016-05-17

空空如也

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

TA关注的人

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