.NET中文官方博客

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

Latest posts

.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 表达式遵循与方法相同的规则。默认值必须是编译时常量,并...

Visual Studio Code 的 .NET MAUI 扩展现已正式发布 
Jun 23, 2024
0
1

Visual Studio Code 的 .NET MAUI 扩展现已正式发布 

Mia Wu
Mia Wu

本篇翻译于Maddy Montaquila的The .NET MAUI Extension for Visual Studio Code is now Generally Available 今天,我们非常高兴地宣布 .NET MAUI VS Code 扩展插件结束了预览阶段,并将包含一些期待已久的新功能 - 包括 XAML IntelliSense 和 Hot Reload!  什么是 .NET MAUI 扩展插件?  .NET MAUI 扩展插件为您提供了在轻量级 Visual Studio Code 中开发 .NET MAUI 应用所需的工具。它基于C# Dev Kit 和 C# 扩展构建,提供了解决方案资源管理器、C# Hot Reload、强大的 C# IntelliSense 等众多功能。.NET MAUI 扩展增加了针对移动设备和桌面设备的能力,此外,借助最新版本的扩展,增加了 XAML IntelliSense 和 XAML Hot Reload,同时让您的 VS Code 体验更加精简和简单。  全新的和改进的 XAML 编辑体验  .NET MAUI 扩展的预览版附带了基本的 XAML 语法高亮显示和自动补全功能,但它与我们想要交付的完整体验相距甚远。在过去的一年里,我们对 Visual Studio 中现有的 XAML 语言服务进行了现代化改造,将其打包,并带到 VS Code中以供您进行...

C#12新功能合集三:使用任意类型别名重构C#代码
Jun 14, 2024
3
1

C#12新功能合集三:使用任意类型别名重构C#代码

Amy Peng
Amy Peng

本文翻译于David Pine的这篇文章: Refactor your code using alias any type。 这篇文章是四篇系列文章中的第三篇,主要探讨C# 12的各种功能。在这篇文章中,我们将深入探讨“别名任何类型”功能,该功能允许您使用 using 指令为任何类型创建别名。这个系列已经初具规模:  所有这些功能都将继续我们的旅程,使我们的代码更具可读性和可维护性,这些被认为是开发人员应该知道的“日常 C#”功能。让我们深入了解吧!  别名任意类型*️⃣  C# 12 引入了使用 using 指令为任意类型添加别名的功能。此功能允许您指定映射到其他类型的别名。这包括元组类型、指针类型、数组类型,甚至非开放泛型类型,所有这些类型都可以在您的代码中使用。此功能在以下场景特别有用:  官方 C# 文档提供了很多有关如何使用此功能的示例,但我并不想在此重复这些示例,而是决定编写一个演示应用程序来示范该功能的各个方面。 可空引用类型  此功能支持大多数类型,但可空引用类型除外。也就是说,您无法为可空引用类型设置别名, C# 编译器会报告错误 CS9132:使用的别名不能是可空引用类型。以下内容摘自功能说明,以帮助澄清这一点:  示例应用程序:UFO...