.NET周刊【6月第1期 2024-06-02】
国内文章
一文带你了解.NET能做什么?
https://www.cnblogs.com/Can-daydayup/p/18214473
.NET是一个免费、开源、跨平台的开发平台框架,广泛应用于桌面、Web、移动、云服务、游戏、物联网、大数据和人工智能等领域开发。它支持C#、Visual Basic、F#等多种编程语言,其中C#最为常用,通过提供全栈开发支持、安全代码优先等设计亮点,促进了开发人员的工作效率。本文除介绍.NET各领域应用外,还推荐了多个有关它的学习资源和工具,有助于开发者掌握和应用.NET技术。
Gradio.NET是什么,怎么用以及工作原理
https://mp.weixin.qq.com/s/msyta3O8vNRxXjZQTkI31g
文章介绍了Gradio.NET,一个允许.NET开发者无需前端经验即可创建专业Web应用的开源框架。它基于Python库Gradio,使得构建和部署交互式Web界面变得简单。Gradio.NET适合快速展示机器学习模型或其他功能的场景。文章还详细说明了如何使用Gradio.NET,包括创建项目、安装NuGet包,以及编写少量代码来启动应用。最后,它强调了Gradio.NET社区的价值,鼓励.NET开发者加入并贡献。
记一次 .NET某工控WPF程序被人恶搞的 卡死分析
https://www.cnblogs.com/huangxincheng/p/18217252
本文讲述了作者分析窗体程序卡死问题的经历。作者表示分析dump是免费的,但不希望别人滥用其时间。通过WinDbg工具分析,作者找到主线程在等待一个事件时卡死了。具体来说,是在处理GetMessageW获取的消息时,主线程被coreclr的WaitSuspendEventsHelper方法阻塞,等待一个事件。作者还展示了该方法的源码,其中用到了InterlockedCompareExchange函数保证状态更新的原子性。
记一次 .NET某企业数字化平台 崩溃分析
https://www.cnblogs.com/huangxincheng/p/18215055
文章描述了如何使用WinDbg工具分析软件崩溃问题,通过查看dump文件来定位和分析发生栈溢出的异常。文中演示了如何判断栈溢出、查看栈的界限和哨兵页,并解释了在.NET环境下,如何通过源码将Win32的STACK_OVERFLOW异常映射为.NET的StackOverflowException异常。最后,通过查看调用栈来尝试定位导致异常的代码。
.NET 6+Semantic Kernel快速接入OpenAI接口
https://www.cnblogs.com/edisonchou/p/-/semantic_kernel_quick_start_demo
本文介绍如何在.NET6环境中利用Semantic Kernel SDK快速集成OpenAI,以创建一个简单的AIGC应用。文中提供了详细的步骤,包括创建.NET6控制台应用程序,配置appsettings.json,安装必要的NuGet包,以及编写代码用于配置及向LLM API发送请求。本文假设读者具有一定的开发背景,主要面向.NET开发者。
Visual Studio 智能代码插件:CodeGeeX
https://www.cnblogs.com/1312mn/p/18211377
CodeGeeX是一款为Visual Studio设计的免费智能编程助手,运用深度学习技术支持代码补全、错误检测、重构等,可无缝集成到多个IDE。它支持超过100种编程语言,具备代码生成、注释添加、智能问答、代码翻译等多功能。用户通过自动模式和交互模式使用CodeGeeX,在Visual Studio 2022安装插件后即可登录使用,提升编码效率。
【译】使用 .NET Aspire 和 Visual Studio 开发云原生应用
https://www.cnblogs.com/MeteorSeed/p/18221465
.NET Aspire 是一个为开发人员提供的简化 .NET 云原生应用程序构建和管理的框架和工具集。通过集成工具、模式和特殊的 NuGet 包,.NET Aspire 支持分布式应用程序开发,实现了自动配置,简化了部署过程,并内置了服务发现功能。可以通过 Visual Studio 或命令行安装 .NET Aspire,并使用 .NET Aspire 项目模板快速创建应用。它支持深度遥测与分布式跟踪,并简化了将应用程序部署到 Azure Container Apps 的流程,提高了开发效率。
分享5款.NET开源免费的Redis客户端组件库
https://www.cnblogs.com/Can-daydayup/p/18223341
大姚分享了5款.NET开源、免费的Redis客户端组件库,包括StackExchange.Redis、csredis、FreeRedis、NewLife.Redis和BeetleX.Redis,它们具有多节点支持、异步编程模型等特性。这些项目都收录在C#/.NET/.NET Core优秀项目和框架精选中,DotNetGuide技术社区为.NET开发者提供学习资料、技术分享和咨询等,旨在建立积极和谐的交流平台。
StackExchange.Redis跑起来,为什么这么溜?
https://www.cnblogs.com/bossma/p/18214702
StackExchange.Redis是一个在.NET环境下与Redis服务器高效通信的客户端库,支持多种Redis功能。文章通过分析StackExchange.Redis的同步和异步调用,阐述了它使用System.IO.Pipelines优化网络IO,采用生产者/消费者模式进行异步处理,实现高效率的数据交换和跨线程通信。同步API负责将操作封装成消息并发送至Redis,然后通过Monitor等待异步结果来同步线程行为。文章深入探讨了消息发送、结果获取及线程同步的具体实现。
微软在Microsoft Build 2024 上 发布了.NET 9 预览版4
https://www.cnblogs.com/shanyou/p/18214692
Microsoft Build 2024上,虽然.NET不是会议的中心议题,但微软依旧发布了一系列旨在提高.NET开发效率和便利性的新功能和工具。这些更新集中在.NET 9 Preview 4中,包括为提升性能和优化而增强的支持。主要改进了生成式人工智能应用、基于云的Web应用的构建体验。此外,微软也正式推出了.NET Aspire,旨在简化.NET的云原生开发。在Build2024会议中与.NET相关的实时会话包括C# 13.0、Entity Framework Core的MongoDB数据库驱动程序,以及ASP.NET Core 9.0与Blazor 9.0的讨论。
C#开发的应用升级更新服务器端工具 - 开源研究系列文章 - 个人小作品
https://www.cnblogs.com/lzhdim/p/18212987
笔者开发了一款名为LUAgent的应用升级管理器,主要解决每个应用都需要单独编写更新代码的问题。LUAgent侧重服务器端,能生成和上传升级更新文件,目前已开源。软件包括多个组成部分如主窗体、上传窗体和FTP操作类,支持添加应用名称、版本号、生成更新文件和上传至FTP。源码可在CSDN下载。客户端应用仍在开发中。
WPF使用事件聚合器,实现任意页面跨页通信
https://www.cnblogs.com/weskynet/p/18221240
本文介绍了如何使用prism框架里的事件聚合器在WPF应用中进行页面间消息传递,并给出了主页面打开对话框、消息发布与接收以及对话框参数接收的实现方法。作者还提供了一个示例,演示了如何传递消息参数,并验证了页面间通信的功能,详细代码可以通过作者公众号获取。
公众号5月C#/.NET热文一览
https://www.cnblogs.com/Can-daydayup/p/18216921
DotNetGuide是一个关于C#/.NET/.NET Core的学习、工作和面试指南知识库,该项目在GitHub上获得了5k+ Star并荣获C#中文Trending榜第一。文章内容包括.NET的应用范围、C#实现多线程的方式、.NET异步编程的实现方式、推荐的.NET定时任务调度框架、在ASP.NET Core Web中使用AutoMapper进行对象映射的方法、介绍.NET开源的AI和LLM相关项目框架、Garnet这款微软官方基于.NET高性能分布式缓存数据库,以及.NET图表库、WinForm UI控件库的介绍和dnSpyEx使用教程。
SQLServer如何监控阻塞会话
https://www.cnblogs.com/tianqing/p/18217020
文章介绍了如何在SQL Server数据库中查询阻塞会话及其根源,并展示了如何用C#编写程序来监控阻塞,定时终止根源会话并记录日志。第一部分通过SQL查询展示了如何查找被阻塞及阻塞会话的详细信息;第二部分提供了查询被阻塞会话的具体SQL文本的方法;第三部分则是C#程序代码,该程序可定期检查并处理数据库阻塞问题。
微服务新体验之Aspire初体验
https://www.cnblogs.com/shiningrise/p/18222147
文章介绍了如何在Visual Studio中安装并配置Aspire项目。首先确认Visual Studio的版本是否支持Aspire,若不支持需要更新至支持版本。然后演示了如何创建Aspire项目,并对项目配置文件进行了修改,以支持不安全传输。接着阐述了如何运行Aspire项目,并分析了项目各组件的关系和功能。前端项目AspireApp1.Web会调用后端AspireApp1_ApiService服务,通过HttpClient与后端服务进行通信,获取天气预报数据。
用.NET代码生成JSON Schema 验证器
https://www.cnblogs.com/dotnet-diagnostic/p/18224293
对于不熟悉JSON Schema的开发者,可以使用Lateapexearlyspeed.Json.Schema库的fluent schema builder模式来构建JSON Schema验证器。此接口设计允许开发者以“强类型”风格配置JSON验证规则,提高代码的安全性和可读性。支持多种验证方法,如IsJsonString、IsJsonNumber等,以及HasCustomValidation方法进行自定义验证。但使用扩展关键字的Build方法将不支持生成标准JSON Schema文本。
深入探讨Function Calling:在Semantic Kernel中的应用实践
https://www.cnblogs.com/ruipeng/p/18221666
本章节主要讲解了OpenAI的function calling如何在Semantic Kernel中应用。OpenAIPromptExecutionSettings中的ToolCallBehavior可以设置为EnableKernelFunctions或AutoInvokeKernelFunctions,前者需要显式发起函数调用请求,后者会自动处理函数调用。推荐使用OpenAI的最新模型以提高工具调用的性能。作者还展示了如何通过Azure OpenAI的服务结合自定义方法获取北京天气的实例,并解释了在开启EnableKernelFunctions时如何手动处理函数调用请求。
记一次 .NET某工业设计软件 崩溃分析
https://www.cnblogs.com/huangxincheng/p/18224311
一位朋友的软件出现崩溃,并抓取了dump文件。分析发现是ExecutionEngineException灾难性异常,原因是接口Stub调用失败,this指针为null。进一步分析clr源码发现问题出在VirtualCallStubManager对象为null,调用管理器无法正确解析调用站点的stub前缀。作者通过具体的代码段和汇编指令解释了问题的原因。
.NET开源、跨平台、使用简单的面部识别库
https://www.cnblogs.com/Can-daydayup/p/18226029
FaceRecognitionDotNet是一个.NET开源、免费、跨平台的面部识别库,它是Python人脸识别库face_recognition的C#移植版本,能够进行人脸检测和识别。它基于dlib和OpenCV开发,提供高级接口,适用于Windows、MacOS和Linux。同时,该项目已被收录到C#/.NET/.NET Core优秀项目和框架精选中,并且有一个面向.NET开发者的DotNetGuide技术社区。
微服务实践Aspire项目发布到远程k8s集群
https://www.cnblogs.com/shiningrise/p/18226058
Aspirate是用于将Aspire项目发布到k8s集群的工具。需要先安装Aspirate,然后在AppHost项目目录下进行初始化,生成aspirate.json配置文件,随后生成k8s配置文件和配置状态文件aspirate-state.json。接着进行构建操作,修改k8s的部署和服务配置文件,例如image的镜像文件地址,最后需要重新应用配置。还提供了如何将远程k8s集群增加至Win11本地的说明。
来自多彩世界的控制台——C#控制台输出彩色字符画
https://www.cnblogs.com/webenh/p/18216734
本文介绍了如何在C#中生成字符画,包括黑白和有限彩色两种方法。首先展示了黑白字符画的生成:加载图像、根据像素明度映射字符。接着尝试了利用Console.ForegroundColor和Colorful.Console库来增加颜色,但由于Windows控制台限制只能显示16种颜色,彩色字符画效果不佳。文章的最后作者表示不甘心,希望能找到全彩字符画的解决方案。
谁说爬虫只能Python?看我用C#快速简单实现爬虫开发和演示!
https://www.cnblogs.com/weskynet/p/18216738
文章介绍了如何使用C#结合HtmlAgilityPack库开发简单的网络爬虫,并演示了如何爬取文本、图片以及视频的基本方法。首先创建一个处理文本的函数将爬取的数据写入text.txt文件,在Main函数中调用相关方法进行操作。同时演示了图片数据的爬取方法和视频数据的爬取,虽然没有实际演示视频爬取,但提供了代码参考。
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
https://www.cnblogs.com/lulight/p/18219072
本文介绍了在Azure App Service中使用TLS/SSL证书的两种方法:通过文件和系统证书库。文中首先展示如何使用PowerShell创建自签名证书,并提供修改参数的选项。接着,给出了两段.NET代码,分别演示如何通过文件路径和指纹加载证书。文末指出,若通过指纹查找证书失败,需检查证书是否添加到App Service及配置参数,并在实验中通过API调用证明了方法的有效性。
XML Web 服务技术解析:WSDL 与 SOAP 原理、应用案例一览
https://www.cnblogs.com/xiaowange/p/18225328
XML Web服务是基于标准和协议(如WSDL、SOAP、RDF、RSS等)来发布、发现和使用网络应用程序组件的技术。WSDL用于描述Web服务的接口和操作,SOAP用于Web服务间通信的XML协议,RDF用于描述资源的属性和关系,RSS用于网站内容发布。XML Web服务的优势包括自描述性、开放协议支持、组件可重用性及促进现有软件系统间的连接。WSDL文档通过定义数据类型、消息、操作和端口类型等元素来描述Web服务。WSDL操作包括单向操作和请求-响应操作。
【OpenVINO™】在C#中使用 OpenVINO™ 部署 YOLOv10 模型实现目标
https://www.cnblogs.com/guojin-blogs/p/18215648
YOLOv10是YOLO家族新成员,特色是无NMS训练且在推理延迟和性能贡献上有显著提升。文章详述了用OpenVINO™ C# API部署YOLOv10模型的方法。OpenVINO™是英特尔的工具套件,2024年4月更新版本,加快了AI模型在多平台的推理速度,加强了模型压缩和性能改进。本文不仅介绍了YOLOv10模型的优点,还提供了C# API的下载链接和全部源码,帮助开发者在不同操作系统和硬件平台上使用C#实现模型部署和加速推理。
C#中接口的显式实现与隐式实现及其相关应用案例
https://www.cnblogs.com/TonyCode/p/18223431
C#中接口显式实现限制类直接调用方法,像“密封”类接口方法,增加调用成本。通过显式实现降低方法误用,子类重写抽象类中对应接口的默认行为,显式实现方法子类无法直接访问,降低递归调用风险。文章通过示例展示隐式和显式实现的区别,以及静态类扩展对接口方法访问修饰的应用。
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Linux/Linux Container)
https://www.cnblogs.com/lulight/p/18225557
本文讲述在.NET 8环境下,应用如何在Linux系统或容器中读取SSL证书(X509),主要有两种方式。第一种将证书文件包含在源文件中,并直接通过相对路径读取;第二种上传证书至App Service Linux后,系统将证书保存于/var/ssl/文件夹中,可以通过SSH方式查看。文中提供了读取私有证书(.pfx)的.NET 8代码示例,并指出需要WEBSITE_LOAD_CERTIFICATES配置以及添加证书后需要重启站点才能在目录中看到证书文件。
使用 TestContainers 进行数据库集成测试
https://www.cnblogs.com/kklldog/p/18216903/TestContainers
TestContainers是一个开源工具,旨在简化集成测试中的容器管理,可以自动下载启动容器镜像,保证了测试的隔离性与可重复性,并能实现真实环境测试。用户通过API创建并启动容器实例,执行测试,最后销毁容器释放资源。本文使用PostgreSQL容器实例进行单元测试示例,展示如何使用TestContainers进行集成测试,并强调了其在搭建测试环境、保证测试质量方面的优势。
微服务实践k8s&dapr开发部署实验(3)订阅发布
https://www.cnblogs.com/shiningrise/p/18218164
文章介绍了在自托管模式下运行dapr的过程,包括创建订阅webapi项目、修改配置文件、使用Dapr进行发布与订阅,并且介绍了如何在k8s环境下部署。最终通过命令行和网页发布订阅的方式验证了整个流程。
oidc-client.js踩坑吐槽贴
https://www.cnblogs.com/tibos/p/18225177
这篇文章探讨了在使用vue2.0和.net core 6.0工作的环境中,将IdentityServer4认证授权基础框架的demo迁移到vue工程的挑战。作者因为前端技能限制和vue3的复杂性选择了vue2.0,并在迁移过程中遇到了PKCE(Proof Key for Code Exchange)不兼容的问题。文中还详细解释了PKCE的概念和作用,以及oidc-client.js停止维护带来的困扰和潜在解决方案,如关闭PKCE认证或直接取Localstorage中的code_verifier值。
Web Service和Web API理解和使用场景
https://www.cnblogs.com/dotnetw/p/18215365
Web Service是重量级的网络服务,使用SOAP和XML,适用于需安全性和事务处理的企业系统集成。Web API是基于HTTP的轻量级接口,多用JSON,便于快速开发和移动应用后端服务。具体选择取决于项目需求、安全性、性能和团队熟悉度等。
gRPC入门学习之旅(九)
https://www.cnblogs.com/chillsrc/p/18225606
这篇文章介绍了gRPC入门学习之旅的一些关键步骤,包括客户端的编译生成GRPC类、如何进行gRPC服务的https调用及解决相关错误。具体内容包括在Demo.Grpc.Common项目重新生成中生成GRPC类文件、通过Visual Studio 2022设置服务端监听端口和客户端请求地址、添加并编写User类以及MainWindow,以及删除项目中的Protos目录和添加项目引用解决依赖问题。
NET工控,上位机,Modbus485网口/串口通讯(鸣志步进电机,鸣志伺服电机,松下伺服电机,华庆军继电器模块)
https://www.cnblogs.com/Gao1234/p/18096175
文章介绍了两个Modbus帮助类,并重点讨论了在多线程环境下的一些问题。提供了不安全版的代码及实现串口和网口TCP连接的详细步骤。通过示例代码显示了如何设置串口参数并处理串口和TCP连接中的异常。
主题
Microsoft Build 2024:.NET 开发人员的基本会议 - .NET 博客
在 Build 2024 上为 .NET 开发人员介绍视频。
发布版本 v2.63.0 · grpc/grpc-dotnet
https://github.com/grpc/grpc-dotnet/releases/tag/v2.63.0
grpc-dotnet v2.63.0 已发布。
此版本修复了内存泄漏和竞争条件等多个问题。
MAUI 版 LibVLCSharp 简介
https://dev.to/mfkl/introducing-libvlcsharp-for-maui-naj
发布 .NET MAUI 兼容版本的 LibVLCSharp。
此初始版本支持 Android 和 iOS,收到反馈后将考虑支持 WinUI。
引入 .NET API 文档源代码链接 - .NET 博客
https://devblogs.microsoft.com/dotnet/dotnet-docs-link-to-source-code/
已实现 learn.microsoft.com 上 .NET API 文档的源代码链接以及实现的幕后说明。
文章、幻灯片等
使用 podman 运行 .NET 测试容器
https://zenn.dev/k_maru/articles/testcontainersdotnet_podman
了解如何使用 Podman 而不是 Docker 来通过 Testcontainers for .NET 运行容器。
现代扩展管理器随 Visual Studio 17.10 一起到来 - Visual Studio 博客
https://devblogs.microsoft.com/visualstudio/visual-studio-extension-manager-17-10/
介绍 Visual Studio 2022 17.10 中引入的新扩展管理器。
关于 JetBrains Rider 的 NuGet 支持您不知道的 9 件事 | .NET 工具博客
介绍有关 JetBrains Rider 中 NuGet 支持的 9 点。
工具窗口、包源代码控制、缓存管理、在 Assembly Explorer 中打开包、预发布复选框、Checkmarx 的安全性、查找依赖代码、在一处更新包、配置等。
初学者!使用 WPF 进行下一步!
https://zenn.dev/luxiar/articles/f25596cd1876a2
介绍将帮助您创建 WPF 应用程序的配置和技术。
为您的 C# 项目选择最佳的不可变字典
https://goatreview.com/choosing-best-immutable-dictionary-csharp-projects/
关于immutable Dictionary,比较解释了ReadOnlyDictionary、ImmutableDictionary、FrozenDictionary的性能和特点。
VisualStudio.Extensibility 17.10:使用诊断资源管理器调试扩展 - Visual Studio 博客
https://devblogs.microsoft.com/visualstudio/visualstudio-extensibility-17-10/
17.10 中新的 Visual Studio 扩展性模型 VisualStudio.Extensibility 的新增功能。
使用诊断资源管理器进行调试,选择 XAML 资源、文件,跟踪项目查询的结果等等。
在 xUnit 单元测试中实现 ILogger 输出 - Qiita
https://qiita.com/higege-amdeker/items/4e2adfcc1b57628d2c71
如何使用 xUnit 将 ILogger 的输出输出到单元测试中的测试输出。
使用 Roslyn 分析器阻止主构造函数成员捕获
https://andrewlock.net/blocking-primary-constructor-member-capture-using-an-analyzer/
如何使用分析器阻止从 Roslyn.Diagnostics.Analyzers 捕获主构造函数或实现您自己的分析器。
在 Github Actions 中发布并查看 MSTest 测试结果
https://medium.com/@ma11hewtomas/publish-and-view-mstest-test-results-in-github-actions-35f11d97a259如何使用 .NET 的 CTRF 报告器和 github-actions-ctrf 将 MSTest 结果输出到 GitHub Actions 报告。
当作者不在时如何更新 NuGet 库 – The Reformed Programmer
https://www.thereformedprogrammer.net/how-to-update-a-nuget-library-once-the-author-isnt-available/
关于患有痴呆症的作者在他无法更新图书馆时做了什么,以使其他人能够更新图书馆。
.NET Aspire 正式发布!介绍介绍了 Aspire 的 Build 2024 会议
https://zenn.dev/jtechjapan_pub/articles/adf174ff96d3cb
介绍 Build 2024 上涵盖 .NET Aspire 的会议。
[C#] 异步处理和 async/await - Annulus Games
https://annulusgames.com/blog/async-await/
对.NET异步的解释,包括C#的async/await、cancel、IAsyncEnumerable等机制。
Avalonia UI:通过 FluentAvalonia 主题定制增强您的应用程序
https://medium.com/@faruk.akyapak/avalonia-ui-enhance-your-app-with- Fluentavalonia-theme-customization-0e8b9bdb4b16
了解如何为 Avalonia 自定义 FluentAvalonia 主题。
我想在 C# (.NET) 中将字节转换为 KB、MB、GB
https://zenn.dev/hirosukekayaba/articles/77d3ae2d90956a
将文件大小格式化为以 KB、MB、GB 等为单位的字符串的技术。
使用 dotnet-fullgc 触发您的 GC!
https://chnasarre.medium.com/trigger-your-gcs-with-dotnet-fullgc-c51bc3e364dc
了解工具以及如何实现它们以对从命令行运行的 .NET 进程执行 GC。
在.NET 8 中使用 Blazor 创建 WASM + gRPC 项目
https://zenn.dev/microsoft/articles/aspnetcore-blazor-dotnet8-wasm-with-grpc
了解如何在 .NET 8 的 Blazor WebAssembly 项目中使用 gRPC (Web) 进行通信。
Re:从零可观察性开始 - 尼诺的花园。
https://blog.neno.dev/entry/2024/05/25/164314
什么是 Observability、OpenTelemetry 的术语、如何在 C#/.NET 中使用它以及如何使用 Collectors。
ColorPalette 类中出现了公共构造函数!
https://zenn.dev/sayurin/articles/2700249955ee48
.NET 9 公开了 System.Drawing.Imaging.ColorPalette 类的构造函数。
这缓解了传统调色板在调查时难以处理的问题。
活动
Microsoft Build Japan (2024/06/27 10:00~)
https://msdevjp.connpass.com/event/320534/
使用 Blazor+ 低代码实现 .NET 资产现代化 (2024/07/04 13:30~)
https://codeer.connpass.com/event/319762/
网站、文档等
功能域建模 通过领域驱动设计和 F# 解决软件复杂性
https://www.kadokawa.co.jp/product/302405003608/
一本介绍使用函数式编程 F# 进行领域驱动开发的建模和构造方法的书。
版权声明
- 国内板块由 InCerry 进行整理 : https://github.com/InCerryGit/WeekRef.NET
- 其余内容来自 Myuki WeekRef,由InCerry翻译(已获得授权) : https://github.com/mayuki/WeekRef.NET
由于笔者没有那么多时间对国内的一些文章进行整理,欢迎大家为《.NET周刊-国内文章》板块进行贡献,需要推广自己的文章或者框架、开源项目可以下方的项目地址提交Issue或者在我的微信公众号私信。
格式如下:
- 10~50字左右的标题
- 对应文章或项目网址访问链接
- 200字以内的简介,如果太长会影响阅读体验
https://github.com/InCerryGit/.NET-Weekly
.NET性能优化交流群
相信大家在开发中经常会遇到一些性能问题,苦于没有有效的工具去发现性能瓶颈,或者是发现瓶颈以后不知道该如何优化。之前一直有读者朋友询问有没有技术交流群,但是由于各种原因一直都没创建,现在很高兴的在这里宣布,我创建了一个专门交流.NET性能优化经验的群组,主题包括但不限于:
- 如何找到.NET性能瓶颈,如使用APM、dotnet tools等工具
- .NET框架底层原理的实现,如垃圾回收器、JIT等等
- 如何编写高性能的.NET代码,哪些地方存在性能陷阱
希望能有更多志同道合朋友加入,分享一些工作中遇到的.NET性能问题和宝贵的性能分析优化经验。目前一群已满,现在开放二群。
如果提示已经达到200人,可以加我微信,我拉你进群: ls1075
另外也创建了QQ群,群号: 687779078,欢迎大家加入。