.NET中文官方博客

免费、 跨平台、 开源。一个用于构建所有应用程序的开发人员平台

Latest posts

使用 Dependabot 管理 .NET SDK 更新
Dec 19, 2024
0
0

使用 Dependabot 管理 .NET SDK 更新

Eddie Chen
Eddie Chen

本文翻译自微软高级软件工程师 Jamie Magee 的Using Dependabot to Manage .NET SDK Updates 保持 .NET SDK 处于最新版本对维护安全高效的应用程序至关重要。现在,Dependabot 可以更新 global.json 中的 .NET SDK 版本,这使您可以比以往更轻松地确保自己的应用程序始终运行最新的安全补丁和改进。 定期的更新 SDK非常重要,因为它们包含: 使用 global.json 管理 SDK 版本 要管理您的 .NET SDK 版本,您通常会在项目中使用 global.json 文件。此文件会指定项目应使用哪个版本的 SDK。以下是一个简单的 global.json 文件示例: 如果您正在使用 GitHub Actions以及 dotnet/setup-dotnet ,此文件将确保在您的 CI/CD 管道中使用了正确的 SDK 版本。 配置 Dependabot 以进行 .NET SDK 更新  添加一个文件到您代码仓库默认分支的路径下。如果您希望始终接收最新更新,最简单的配置如下所示: 但是 .NET SDK 更新通常在“补丁星期二”(每月的第二个星期二)发布,因此您可能希望调整更新计划以每周仅检查一次更新。您可以通过添加部分来实现: 此外,如果您只想关注安全补丁,可以忽略主要和次要...

dotnet scaffold – .NET的下一代内容创建工具
Dec 12, 2024
0
0

dotnet scaffold – .NET的下一代内容创建工具

Eddie Chen
Eddie Chen

本文翻译自微软首席产品经理Sayed Ibrahim Hashimi的dotnet scaffold - Next Generation Content Creation for .NET 。  在Visual Studio中,用于ASP.NET Core项目的Scaffolding是一个已经存在很久的功能,它在ASP.NET Core发布之后不久就已经添加。我们多年来也一直支持从命令行里进行Scaffolding。从命令行的使用体验中,我们听到了许多用户的反馈,他们希望我们为Scaffolding提供一个交互式的命令行界面 (CLI)。为此目标,我们一直在开发一个新的交互式CLI工具 。这个工具现在已经做为预览版发布。在这边文章中,我们将描述如果获取和使用这个新的命令行工具。此工具是开源的,您可以在scaffolding存储库 中查看代码。该存储库包含了 工具的代码以及其他scaffolding相关的代码。 安装dotnet scaffold 我们将使用 dotnet tool 命令来安装此工具。您可以执行以下的命令来安装最新发布的版本: 如需安装特定的版本,请访问nuget.org上的软件包。有关如果管理dotnet工具的更多信息,请参阅 .NET 工具 – .NET CLI | Microsoft Learn 上的文档。在上面的命令中,我们正在全局安装该工具,但是您也可以将工具安装到本地文件夹...

.NET 9 中System.Text.Json 的新增功能 
Nov 3, 2024
0
0

.NET 9 中System.Text.Json 的新增功能 

Mia Wu
Mia Wu

本篇翻译于Eirik Tsarpalis的 What's new in System.Text.Json in .NET 9 - .NET Blog  System.Text.Json的9.0 版本包含许多功能,主要侧重于 JSON 架构和智能应用程序支持。它还包括一些备受期待的增强功能,例如可空引用类型支持、自定义枚举成员名称、无序元数据反序列化和自定义序列化缩进。  获取最新信息  您可以通过引用 System.Text.Json NuGet 包的最新版本或 .NET 9 的最新 SDK 来尝试新功能。  JSON 架构导出器  新的 JsonSchemaExporter 类可以使用 JsonSerializerOptions 或 JsonTypeInfo 实例从 .NET 类型中提取 JSON 架构文档:  生成的模式为该类型提供了JSON序列化契约的规范。从这个例子中可以看出,它区分了可空属性和不可空属性,并根据构造函数参数是否可选来填充“required”关键字。模式的输出可以通过在 JsonSerializerOptions 或 JsonTypeInfo 实例中指定的配置进行影响:  用户可以使用 JsonSchemaExporterOptions 配置类型进一步控制生成的模式:  最后,用户可以通过指定 TransformSchemaNode 委托, 对生成的架构节点应用自己的转...

加入 .NET 智能组件生态系统 
Oct 17, 2024
0
1

加入 .NET 智能组件生态系统 

Mia Wu
Mia Wu

本篇翻译于首席产品经理 Daniel Roth 的Join the .NET Smart Components ecosystem - .NET Blog (microsoft.com)  .NET 智能组件是一组示例嵌入式 UI 组件,使得在应用中轻松添加 AI 启用的功能变得更加简单,例如从剪贴板数据自动填写表单、智能文本补全以及语义搜索等场景。.NET 智能组件演示了如何将基于 AI 的功能预先打包成可重用的组件,从而更容易将这些功能集成到现有应用程序中。我们将 .NET 智能组件源代码作为参考示例实现提供,以帮助启动一个充满活力的可重用 .NET AI 驱动组件生态系统。  现已开源  .NET 智能组件在 GitHub 上的 dotnet/smartcomponents repo 中有了新家,其中包含实现源代码、文档和示例应用程序。库作者可以使用示例组件来获得灵感,并将其作为如何打包 AI 驱动功能以方便使用的参考实现。如果您对如何改进 .NET 智能组件有想法,或者对希望添加的新 AI 组件有想法,请通过在 GitHub 上提出问题与我们分享。  使用语义内核的局部嵌入  .NET 智能组件包含用于在您的服务器上本地计算嵌入 (LocalEmbeddings)的示例便捷 API。这些API可用于比较文本的语义相似性。这些 API 现已更新,以将基于 ONNX 的嵌入支持包装在语义内核...

推出适用于 .NET 的官方OpenAI库的稳定版本
Oct 17, 2024
0
0

推出适用于 .NET 的官方OpenAI库的稳定版本

Mia Wu
Mia Wu

本篇翻译于.NET 团队的Announcing the stable release of the official OpenAI library for .NET - .NET Blog (microsoft.com)  早在 6 月份,我们就推出了适用于 .NET 的OpenAI 库的第一个测试版,使开发人员能够将高级 AI 模型集成到他们的应用程序中。今天,我们很高兴地宣布,适用于.NET 的官方 OpenAI 库的稳定版本现已上线。此版本可确保开发人员在其 .NET 应用程序中使用 OpenAI 和 Azure OpenAI 服务时获得顺畅可靠的集成体验。  主要特点  适用于.NET 的官方 OpenAI 库提供了强大的工具,可简化将 OpenAI 的高级模型集成到 .NET 应用程序中的过程,从而为开发人员提供简洁流畅的体验:  此官方 .NET 库可确保与 OpenAI 和 Azure OpenAI 的顺利集成并获得支持。它还补充了 OpenAI 面向 Python 和 TypeScript/JavaScript 开发人员的官方库。  该库是开源的,在 GitHub 上开发和支持。它将与 OpenAI 的最新功能保持同步。  示例代码  以下是在 .NET...

使用 MSTest.Analyzers 增强您的测试体验
Aug 29, 2024
0
2

使用 MSTest.Analyzers 增强您的测试体验

Mia Wu
Mia Wu

本篇翻译于Jakub Jareš的Supercharge your testing experience with MSTest.Analyzers - .NET Blog (microsoft.com)  MSTest 附带一组分析器,用于检查您的测试代码并指出常见的错误和陷阱。这些错误可能很微妙,并导致测试框架完全忽略您的测试。  我们从 3.2.0 版本就开始提供这些分析器了,但在最新的 3.5.1 版本中,我们添加了一些我们认为您不应错过的分析器。  遗漏的测试  一个常见问题是当您忘记在类上添加 [TestClass] 时。MSTest 将无法知道类中有测试,也不会运行它们:  如果没有 MSTest.Analyzers,此代码在构建时不会出现警告或信息提示。运行测试时也不会出现测试失败的情况。由于类上没有 [TestClass] 属性,MSTest 会出于性能原因跳过整个类,并且您的测试将永远不会被找到。  但是使用分析器时您会在构建过程中收到一条信息提示:  我们建议将此信息提示升级为警告,甚至是构建错误。可以通过在 .editorconfig 文件中添加以下这行代码来实现  为什么默认情况下这不是警告?  您可能会问为什么 MSTEST0030 默认是一条信息提示而不是默认的警告。原因是我们不能在 MSTest v3 中引入重大变更,而上述代码是一个常见的...

.NET 9 预览版 6:新功能抢先看
Aug 4, 2024
1
1

.NET 9 预览版 6:新功能抢先看

Amy Peng
Amy Peng

本篇翻译于.NET Team的.NET 9 Preview 6 is now available! 现在是了解最新 .NET 9 预览版的好时机!我们刚刚发布了第六个预览版,在之前预览版的基础上添加了一些很棒的功能,并对 .NET Runtime、SDK、库、C# 和框架(包括 ASP.NET Core、Blazor 和 .NET MAUI)进行了重大改进。请查看下面链接的完整发行说明并立即开始使用。                                                            下载 .NET 9 Preview 6                                                   此版本包含以下改进:  📚库:  ⏱️Runtime:  🛠️SDK  您可以在下面找到有关 .N...

C# 13:探索最新的预览功能 
Jul 23, 2024
0
0

C# 13:探索最新的预览功能 

Mia Wu
Mia Wu

本篇翻译于Kathleen Dollard 的C# 13: Explore the latest preview features - .NET Blog (microsoft.com)  C# 13 已初具雏形,其新特性侧重于灵活性、性能以及使您最喜欢的功能在日常中变得更容易使用。我们以公开的方式构建 C#,在今年的 Microsoft Build 大会上,我们会让您一睹 C# 13 的精彩之处。今天,我们想分享一下C# 13 当前的状态,以及您今天就可以尝试的新功能,并提供有关此版本及以后计划中的功能更新。让我们更详细地了解这些新功能。  立即试用 C# 13  在我们深入研究 C# 13 的每个新功能之前,您可能想知道如何使用它。  您可以在最新的 .NET 9 预览版(撰写本文时为预览版 6)和 Visual Studio 2022-17.11 的最新预览版中找到 C# 13 的最新预览版。若要访问预览功能,请在项目文件中将您的语言版本设置为preview:  params集合  C# 13扩展了 params关键字,使其适用于可以通过集合表达式构造的任何类型。无论是编写方法还是调用方法,都增加了灵活性。  当 params 关键字出现在参数之前时,对该方法的调...

C#12新功能合集四:使用默认 lambda 参数重构C#代码
Jul 21, 2024
0
0

C#12新功能合集四:使用默认 lambda 参数重构C#代码

Amy Peng
Amy Peng

本文翻译于David Pine的这篇文章:Refactor your code with default lambda parameters 。 本文是探讨 C# 12的各种功能的四篇系列文章中的最后一篇。在这篇文章中,我们将探讨“默认 lambda 参数”功能,使开发人员能够在 lambda 表达式中使用默认参数值。本系列涵盖了很多内容:  这些功能是我们不断努力提高代码可读性和可维护性的一部分。让我们详细探索它们!  默认 Lambda 参数🧮 默认 lambda 参数是 C# 12 中的一项新功能,允许开发人员在 lambda 中表达默认参数值。此功能是 C# 方法中现有默认参数功能的自然扩展。  C# 12 之前🕰️ 在 C# 12 之前,当您定义需要提供某种默认行为的 lambda 表达式时,您必须使用空合并运算符 (??) 或条件运算符 (?:)。请查看以下示例:  使用 C# 12 🤓  相反,使用默认 lambda 参数后,您可以直接在 lambda 表达式中定义 lambda 参数的默认值。默认 lambda 参数的语法类似于方法中默认参数的语法。默认值在参数名称和等号 (=) 后指定。请查看以下示例:  当涉及默认参数时,Lambda 表达式遵循与方法相同的规则。默认值必须是编译时常量,并...