<?xml version="1.0" encoding="utf-16"?><rss version="2.0"><channel><title>HueiFeng</title><description>冯辉,HueiFeng,.NET,.NET Core,Docker,k8s</description><link>https://hueifeng.azurewebsites.net/</link><pubDate>Tue, 07 Apr 2026 21:07:51 GMT</pubDate><copyright>(c) {year} Moonglade</copyright><generator>Moonglade v11.2-preview</generator><item><title>【Azure DevOps系列】Azure DevOps构建.NET EFCore应用程序</title><link>https://hueifeng.azurewebsites.net/post/2021/5/30/azure-devopsazure-devopsnet-efcore</link><description>本章我们将看到如何通过Azure DevOps使用EFCore CLI工具将我们的EFCore应用程序进行数据库重建，当然这种操作我不建议使用，建议使用CLI生成sql脚本形式进行发布并迁移。
设置代理服务器sdk
- task: UseDotNet@2
  inputs:
    packageType: 'sdk'
    version: '3.x'
安装dotnet-ef
安装Entity Framework Core CLI工具，用于后面对数据库的操作
- task: CmdLine@2
  displayName: 'install dotnet-ef'
  inputs:
    script: 'dotnet tool install -g dotnet-ef'
删除数据库
 dotnet ef database drop --project &lt;path to your …</description><author>695979933@qq.com</author><category>.NET</category><category>.NET5</category><category>ASP.NET CORE</category><category>Azure</category><category>ASP.NET Core 5.0</category><guid isPermaLink="false">6B08EC4E-24A5-4BB3-ADF7-F8D07619F5C1</guid><pubDate>Sun, 30 May 2021 04:46:38 GMT</pubDate></item><item><title>.NET RulesEngine（规则引擎）</title><link>https://hueifeng.azurewebsites.net/post/2021/4/29/dotnetnet-rulesengine</link><description>一次偶然的机会，让我拿出RulesEngine去完成一个业务，对于业务来说主要是完成一个可伸缩性（不确定的类型，以及不确定的条件，条件的变动可能是持续增加修改的）的业务判断。比如说完成一个成就系统，管理员可创建，对于成就来说有一次性解锁、日常、周常式，还有随时重置，每次达成都触发的，面对着成就任务的增加，那对于程序员来说，如果每次都去增加修改这些成就任务简直是太头疼了。好了，对此大家应该有一个简单的了解了，那跟着笔者往下走，我们看看如何在.NET中使用非常少的代码去完成一个简单的动态逻辑处理。
RulesEngine 概述
RulesEngine是Microsoft推出的一个规则引擎项目，用于系统中抽象出的业务逻辑/规则/策略。在我们开发的过程中，避免不了的是跟这种反反复复的业务逻辑进行处理，而对于这种动态的规则来说的话，它是比较优雅的一种方式，使用我们减少了对我们代码或者说项目的修改。 …</description><author>695979933@qq.com</author><category>.NET</category><category>.NET5</category><guid isPermaLink="false">41F9E03F-7E43-4184-BA3C-B771401053C4</guid><pubDate>Thu, 29 Apr 2021 15:13:59 GMT</pubDate></item><item><title>在ASP.NET Core中使用ViewComponent</title><link>https://hueifeng.azurewebsites.net/post/2021/4/10/using-viewcomponents-in-asp-net-core</link><description>前言
在之前的开发过程中，我们对于应用或者说使用一些小的组件，通常使用分布页（partial view），再往前在Web Form中我们会进行应用WEB Control，好吧提及一个关键性代码TagPrefix：TagName，通过这种的标记我们便可以在我们web form中进行引入我们的组件，当然自从.NET MVC之后呢，就已经没有了WebControl，而对于.NET Core后，又多了一个特性ViewComponent。
对于ViewComponent看起来它类似于小的控制器，而对于我们小的组件或者小部分通用型功能，可通过ViewComponent进行实现，比如说留言栏、菜单等等。
ViewComponent是由两部分组成，一部分是类（通常该类集成与ViewComponent），而另外一部分是视图（Razor和普通的View一样），当然ViewComponent同样也支持POCO， …</description><author>695979933@qq.com</author><category>ASP.NET MVC</category><category>.NET</category><category>ASP.NET CORE MVC</category><category>.NET5</category><category>ASP.NET CORE</category><category>ASP.NET Core 5.0</category><guid isPermaLink="false">A4118DBF-0C7B-4658-9017-F8498E038D60</guid><pubDate>Sat, 10 Apr 2021 03:40:30 GMT</pubDate></item><item><title>.NET初探源代码生成（Source Generators）</title><link>https://hueifeng.azurewebsites.net/post/2021/3/16/generating-code-in-dotnet</link><description>前言
Source Generators顾名思义代码生成器，可进行创建编译时代码，也就是所谓的编译时元编程，这可让一些运行时映射的代码改为编译时，同样也加快了速度，我们可避免那种昂贵的开销，这是有价值的。
实现ISourceGenerator
集成ISourceGenerator接口，实现接口用于代码生成策略，它的生命周期由编译器控制，它可以在编译时创建时创建并且添加到编译中的代码，它为我们提供了编译时元编程，从而使我们对C#代码或者非C#源文件进行内部的检查。
    [Generator]
    class CustomGenerator: ISourceGenerator
    {
        public void Initialize(GeneratorInitializationContext context)
        {
            throw …</description><author>695979933@qq.com</author><category>.NET</category><category>.NET5</category><category>ASP.NET CORE</category><guid isPermaLink="false">88056697-3937-49EA-9257-07B3FEA3F28F</guid><pubDate>Tue, 16 Mar 2021 12:43:48 GMT</pubDate></item><item><title>.NET探索模型路由约定实现伪静态</title><link>https://hueifeng.azurewebsites.net/post/2021/2/19/dotnet-implement-url-rewrite</link><description>概述
IPageRouteModelConvention接口用于自定义PageRouteModel，这个对象在Microsoft.AspNetCore.Mvc.ApplicationModels命名空间中，
代表着Razor Page路由设置，换句话说我们可以通过实现该接口覆盖默认的实现。
该接口需要实现一个成员void Apply(PageRouteModel model)。通过这个方法，我们可以访问有关当前路由设置的元数据，并根据需要对其内容进行修改。
下面示例，将解决提供一个伪静态的解决方案，因此我们可以通过index.html about.html....去访问我们的页面，也就是说我们可以从Index-Index.html的支持
    public class HtmlExtensionPageRouteModelConvention : …</description><author>695979933@qq.com</author><category>.NET</category><category>.NET5</category><category>ASP.NET CORE</category><category>ASP.NET Core 5.0</category><guid isPermaLink="false">7946ECA2-A86C-4CE0-AB9E-0FCC73CBDFA6</guid><pubDate>Fri, 19 Feb 2021 10:49:28 GMT</pubDate></item><item><title>.NET中使用DebuggerDisplay轻松定制调试</title><link>https://hueifeng.azurewebsites.net/post/2021/2/12/debugging-your-dotnet-application-more</link><description>前言
对于调试的方式有多种，不过在今天我们将看到的监视窗口对变量的监视，当然在这里我们是定制内部的变量值，或者说变量的显示与计算的内容。
注：监视窗口在调试时可以一次显示多个变量。“快速监视”对话框一次显示一个变量。
file
DebuggerDisplayAttribute
在下面示例中，我们在类上添加DebuggerDisplay，添加字符串：("Name={Name},Age={Age}")：
 class Program
    {
        static void Main(string[] args)
        {
            Student student = new Student()
            {
                Name = Mr.A,
                Age = 18
            }; …</description><author>695979933@qq.com</author><category>.NET</category><category>.NET5</category><guid isPermaLink="false">67B3E5EA-90EC-45AD-9266-9A3D0AA8A13E</guid><pubDate>Fri, 12 Feb 2021 12:46:59 GMT</pubDate></item><item><title>探索.NET平台中的SIMD内在函数Vector</title><link>https://hueifeng.azurewebsites.net/post/2020/12/1/netsimdvector</link><description>概述
Vector（向量）是一种序列式容器，事实上和数组差不多，但它比数组更优越。一般来说数组不能动态拓展，因此在程序运行的时候不是浪费内存，就是造成越界。而Vector刚好弥补了这个缺陷，它的特征是相当于可分配拓展的数组（动态数组），它的随机访问快，在中间插入和删除慢，但在末端插入和删除快。
什么是SIMD？
SIMD是Single Instruction Multiple Data的缩写，通常中文译为单指令多数据流，通俗来讲的话是：对多个数据执行同一个CPU指令，以达到平行运算的目的.
在GPU之前我们会通过CPU来运行该项技术来增加图片的运算速度，例如Intel的MMX、SSE、SSE2、AVX，AMD的3DNow!等等，都是来使用SIMD
为基础的概念，在GPU技术突飞猛进的今天，CPU的SIMD技术很少用在了图片运算方面了，更多的是在资料库或者其他用途上。
SIMD
它适用于机器 …</description><author>695979933@qq.com</author><category>.NET</category><category>.NET5</category><guid isPermaLink="false">2E963547-9B39-46BD-B93A-8AEC8FFA127D</guid><pubDate>Tue, 01 Dec 2020 02:57:11 GMT</pubDate></item><item><title>.NET必知的EventCounters性能指标监视器</title><link>https://hueifeng.azurewebsites.net/post/2020/11/14/dotnetnet-eventcounters-performance-monitor</link><description>在.NET我们对于性能指标监控，其实常见的有两个方法，一个是CLI工具dotnet-counters而另一个是代码级别的EventListener.
使用dotnet-counters
dotnet-counters是一个性能指标监视工具，用于临时运行状态监视和初级性能调查。它可以观察通过 EventCounter API发布的性能计数器值。例如，可以快速监视 CPU 使用情况或 .NET Core 应用程序中引发的异常率，以了解在使用 PerfView 或 dotnet-trace 深入调查更严重的性能问题之前是否有任何可疑操作。
-- 摘自 dotnet-counters
命令
dotnet-counters collect
dotnet-counters list
dotnet-counters monitor
dotnet-counters ps
安装dotnet- …</description><author>695979933@qq.com</author><category>.NET</category><category>.NET5</category><category>ASP.NET CORE</category><category>ASP.NET Core 5.0</category><guid isPermaLink="false">58CB71A2-CEB8-4440-9E9E-07402CB850AF</guid><pubDate>Sat, 14 Nov 2020 03:03:26 GMT</pubDate></item><item><title>在.NET中使用DiagnosticSource</title><link>https://hueifeng.azurewebsites.net/post/2020/10/5/net-using-diagnosticsource</link><description>前言
DiagnosticSource是一个非常有意思的且非常有用的API，对于这些API它们允许不同的库发送命名事件，并且它们也允许应用程序订阅这些事件并处理它们，它使我们的消费者可以在运行时动态发现数据源并且订阅与其相关的数据源。
DiagnosticSource在AspNetCore、EntityFrameworkCore、HttpClient、SqlClient中被使用，在我们实际的开发过程中他使我们能够进行拦截请求与响应的http请求、数据库查询、对HttpContext、DbConnection、DbCommand、HttpRequestMessageand等对象的访问，甚至说在需要的时候我们可以进行修改这些对象来处理我们的业务。
下面我们将通过如下的简单示例来了解它.
DiagnosticSource和EventSource区别
DiagnosticSource和 …</description><author>695979933@qq.com</author><category>.NET</category><category>.NET5</category><guid isPermaLink="false">428F424C-7675-4BFB-9737-4CE0E5A66373</guid><pubDate>Mon, 05 Oct 2020 04:52:18 GMT</pubDate></item><item><title>【Azure DevOps系列】Azure DevOps构建并发布.NET5应用程序</title><link>https://hueifeng.azurewebsites.net/post/2020/9/24/azure-devopsazure-devopsnet5</link><description>Azure App Service
独立部署
在Azure App Service中我们可以通过独立部署进行部署我们的.NET5应用程序，因为它不会依赖目标系统上的环境，并且所有组件（包括librarys和运行时）都与该应用程序一起使用，并且与其他应用程序进行隔离，这样其实我们更好的去控制应用程序运行的版本。
1、选择要发布的项目，鼠标右键单击项目，然后选择发布，会出现如下内容:
file
2、接下来我们可以选择Linux应用服务或Windows应用服务
file
3、最后我们点击完成后选择部署模式此处选择独立模式
file
接下来我们发布应用程序即可
框架依赖
目前在Azure App Service中并没有为我们提供默认的.net5运行时环境，那么我们如何以框架依赖的形式使用.net5呢？看如下步骤
1、点击左侧的扩展
file
2、选择.NET5运行时，如下图所示
file
这样我们 …</description><author>695979933@qq.com</author><category>.NET5</category><category>DevOps</category><category>ASP.NET Core 5.0</category><guid isPermaLink="false">BC9BC236-E12C-4543-9A4D-EED64487CD3A</guid><pubDate>Thu, 24 Sep 2020 14:44:54 GMT</pubDate></item><item><title>【翻译】.NET 5 Release Candidate 1中的ASP.NET Core更新</title><link>https://hueifeng.azurewebsites.net/post/2020/9/15/asp-net-core-updates-in-net-5-release-candidate-1</link><description>.NET 5 Release Candidate(RC1)版本现在可以进行使用了，以下是发布的新功能：
Blazor WebAssembly性能改进
Blazor组件虚拟化
Blazor WebAssembly预渲染
Blazor WebAssembly的浏览器兼容性分析器
Blazor JavaScript隔离和对象引用
Blazor文件输入支持
Blazor中的自定义验证类属性
Blazor对ontogle事件的支持
模型绑定DateTime为UTC
控制Startup类的激活
ASP.NET Core API项目中的默认开放式API规范（Swagger）
ASP.NET Core API项目提供更好的F5体验
SignalR并行集线器调用
在SignalR Java客户端中添加了对Messagepack支持
Kestrel终端可进行特定的选项配置
Get started
如果要在. …</description><author>695979933@qq.com</author><category>.NET5</category><category>ASP.NET Core 5.0</category><guid isPermaLink="false">208C8E8E-24B3-4068-B4AE-2346FB2FF327</guid><pubDate>Tue, 15 Sep 2020 10:47:43 GMT</pubDate></item><item><title>【翻译】.NET 5 RC1发布</title><link>https://hueifeng.azurewebsites.net/post/2020/9/15/announcing-net-5-0-rc-1</link><description>9月14日，.NET5发布了(Release Candidate)RC1版本，RC的意思是指我们可以进行使用，并且RC版本得到了支持，该版本很接近.NET5.0的最终版本，也是11月正式版本之前两个RC版本中的其中一个。目前，开发团队正在寻找在.NET5发布之前剩余的bug，当然他们也希望我们的反馈以帮助他们顺利的完成.NET5的开发计划。
开发团队在今天还发布了ASP.NET Core和EF Core的RC1版本。
现在我们可以进行下载用于Windows、macOS和Linux的.NET5
Installers and binaries
Container images
Snap installer
Release notes
Known issues
GitHub issue tracker
如果要使用.NET5，我们需要使用最新的Visual Studio预览版(包括Visual …</description><author>695979933@qq.com</author><category>.NET5</category><category>ASP.NET Core 5.0</category><guid isPermaLink="false">9F66696E-FA52-4663-8329-F45D66B74A95</guid><pubDate>Tue, 15 Sep 2020 07:04:56 GMT</pubDate></item><item><title>【翻译】.NET 5 Preview8发布</title><link>https://hueifeng.azurewebsites.net/post/2020/8/26/net-5-preview8</link><description>今天，.NET 5预览8发布了，对于.NET5.0的功能开发已经完成了，这必须要排除待处理的bug，预览8是最后一次预览版本。预计11月正式的.NET5.0版本发布之前还将发布两个正式之前的候选版本，这篇文章描述了.NET5.0版本中的一系列功能。&lt;br /&gt;You can download .NET 5.0, for Windows, macOS, and Linux:
Installers and binaries
Container images
Snap installer
Release notes
Known issues
GitHub issue tracker
今天同时也发布了ASP.NET Core 和 EF Core 。&lt;br /&gt;要使用.NET5我们需要最新版本的 Visual Studio (包括 Visual Studio for Mac) 才能使用 .NET 5 …</description><author>695979933@qq.com</author><category>.NET5</category><category>ASP.NET CORE</category><category>ASP.NET Core 5.0</category><guid isPermaLink="false">235AD741-1314-485C-8BEB-C9528510E2FB</guid><pubDate>Wed, 26 Aug 2020 06:53:31 GMT</pubDate></item></channel></rss>