.NET中文官方博客
免费、 跨平台、 开源。一个用于构建所有应用程序的开发人员平台
Latest posts
无障碍应用程序之旅:键盘可访问性和 .NET MAUI
本篇翻译于Rachel Kang (SHE/HER) 的 The Journey to Accessible Apps: Keyboard Accessibility and .NET MAUI 首先让我们一起来看看您的应用程序是否支持键盘访问: 这次体验如何?是否轻松?是否与您通常使用应用程序的体验相匹配? 确保您的应用程序体验在仅通过键盘导航时同样出色,这对于构建一个对所有人都包容且可访问的应用程序体验至关重要。 Web内容可访问性指南 (WCAG) 若要了解键盘可访问性的详细信息,可以从 Web 内容可访问性指南 (WCAG) 开始。 WCAG 是一组针对 Web 可访问性的技术标准,被广泛引用,并扩展到 Web 以外的各种应用程序和平台。 它已成为全球标准和法律基准,并随着技术的发展而不断发展。 在各种指南中,有一个经常被忽视的是指南第2.1条,该指南表明开发人员应“使所有功能可通过键盘访问”。 这包括四个成功标准: 成功标准 2.1.1 键盘 内容的所有功能都可以通过键盘界面操作,而无需对单个按键的时间进行特定的控制,除非底层功能需要依赖用户移动路径而不仅仅是端点的输入。 成功标准 2.1.2 无键盘陷阱 如果您可以使用键盘界面将键盘焦点移动到页面的某个组件,那么您只需使用键盘界面就可以将焦点从该组件移开...
MSTest SDK:.NET 8的测试配置与灵活性新篇
本篇翻译于Marco Rossignoli 和Amaury Levé 的Introducing MSTest SDK – Improved Configuration & Flexibility。 我们很高兴地宣布,基于 MSBuild Project SDK 系统构建的全新 MSTest SDK已推出。它旨在通过合理的默认值和灵活的选项使项目配置更加容易,从而为您提供更好的 MSTest 测试体验。 这种新体验是建立在最近推出的 MSTest 运行程序的基础上(请查看公告)https://devblogs.microsoft.com/dotnet/introducing-ms-test-runner/,以进一步提高您的体验。 这个新的运行程序是一种轻量级、可靠且高性能的运行 MSTest 测试的方式,作为 MSTest.TestAdapter NuGet 包的依赖项发布。该运行器及其扩展由多个 NuGet 包组成,以提供可扩展、灵活且可配置的测试运行体验。然而,可定制性可能会导致许多问题:推荐的扩展是什么?正确的默认值是什么?如何对齐版本? 这就是 MSTest SDK 的用武之地。 MSTest SDK 入门 开始使用新的 MSTest SDK 非常简单。 只需创建一个 MSTest 项目(或更新现有的 MSTest 项目)并将 .csproj 文件的内容替换为以下内容: ...
使用 .NET 为 Microsoft AI 构建可扩展网关
本篇翻译于Kara Saucerman的Building a scalable gateway with .NET for Microsoft AI - .NET Blog Microsoft AI 团队构建了全面的内容、服务、平台和技术,以便消费者在任何设备上、任何地方获取他们想要的信息,并为企业改善客户和员工的体验。我们的团队支持多种体验,包括 Bing、Copilot、广告、地图和 Edge,并通过 Edge 新标签页、Windows 10 和 11 等入口点呈现,这些入口点每月有超过 10 亿活跃用户。我们意识到需要一个高性能且可靠的网关作为 Microsoft AI 的前端和入口层。这将使多个团队能够利用我们开发的通用功能来帮助运营业务并专注于客户体验和功能。在本文中,我们将介绍在 .NET 8 上借助 YARP 构建网关(代号为 CETO)的过程。 反向代理 在开始编写 CETO 之前,我们必须决定使用反向代理。 我们应该使用外部的还是尝试自己制作? 这些外部的能涵盖我们所有的用例吗? 我们还必须考虑定制这些代理的高成本和持续维护。 我们的需求包括支持 HTTP/2、HTTP/3、WebSocket 等流协议、简单的可扩展性等等。 当我们开始了解 Microsoft 其他内部团队正在做的事情时,我们遇到了 YARP 项目。 YARP 代表:“又一个反向代理”。 该项目使用 ASP.NET ...
利用 Redis 使 AI 驱动的 .NET 应用程序更加一致和智能
本篇翻译于Catherine Wang的Making AI powered .NET apps more consistent and intelligent with Redis - .NET Blog (microsoft.com) Redis 是一种流行的内存数据存储,可用于解决构建和扩展智能应用程序的关键挑战。 在本文中,你将了解如何使用Redis的 Azure 缓存来提高使用 Azure OpenAI 的应用程序的效率。 Redis 的Azure 缓存不受最近的 Redis 许可证更新的影响: “我们将持续的合作以确保 Azure 客户能够无缝地利用 Azure Cache for Redis的所有层级。 Azure Cache for Redis、Azure Cache for Redis Enterprise 和 Enterprise Flash 服务不会中断,客户将收到及时的更新和错误修复,以保持最佳性能。” – Julia Liuson,开发部总裁 本博客包括两个示例应用程序: 第一个是基于.NET 揭秘检索增强生成的演示聊天语义内核(Semantic Kernel)应用程序。我添加了使用 Redis 保存额外知识并启用聊天历史记录的功能。 完整示例位于 Chat App with Redis 第二个是一个演示应用程序,它在 .NET 8 中使用 Redis OM d...
.NET 智能组件简介 – AI 驱动的 UI 控件
本篇翻译于Daniel Roth的Introducing .NET Smart Components - AI-powered UI controls AI的最新进展有望彻底改变我们与软件交互和使用软件的方式。然而,将AI功能集成到现有软件中可能面临一些挑战。 因此,我们开发了新的 .NET 智能组件,这是一组真正有用的AI支持的 UI 组件,您可以快速轻松地将其添加到 .NET 应用程序中。 您不必花费数周的开发时间来重新设计用户体验或研究机器学习和提示工程。 .NET 智能组件提供了预构建的端到端 AI 功能,您可以将其放入现有的应用程序 UI 中,以提高用户的工作效率。 目前,.NET智能组件仍处于试验阶段,最初可用于 .NET 6 及更高版本的 Blazor、MVC 和 Razor 页面。 我们计划为其他 .NET UI 框架(例如 .NET MAUI、WPF 和 Windows Forms)提供组件,但首先我们很想知道您对这些组件可用性的反馈,以及您希望增加哪些额外的功能。 观看 Steve Sanderson 演示 .NET 智能组件的功能: 它包含什么 .NET智能组件目前包括以下智能功能: 智能粘贴 只需单击按钮,智能粘贴就会自动使用用户剪贴板中的数据填充表单。 您可以将其与Web应用程序中的任何现有表单一起使用。 这有助于用户从外部源添加数据而无需重新输入。 ...
从 Azure 部署生成本地 .NET 密钥
本文翻译于Frank Boucher的Generate Local .NET Secrets from Azure Deployments . 通常,示例项目以一些“魔术字符串”开始,这些变量包含与部署或外部资源相关的 URL 和关键信息,我们必须更改这些信息才能使用示例。例如在 .NET 中,它可能如下所示: 本文展示了如何从 Azure 部署自动生成 .NET 密钥以及您的 .NET 应用程序如何读取这些密钥。用户想要尝试使用您的示例时,将不必再编辑任何内容! 他们只需使用 azd up 进行部署,然后使用 dotnet run 来执行应用程序。 听起来很有趣? 下面就来实现一下。 整个项目的代码可以在 GitHub 上的 fboucher/hikerai 中找到。 准备工作 Bicep 是一种为要部署的 Azure 资源创建基础结构定义的语言。由于这些资源将包含端点或模型名称等信息,因此我们需要一种导出这些信息的方法,在 Bicep 中我们使用输出语法: 使用 Azure Developer CLI (azd)命令 azd env get-values 返回键对值列表中的所有这些值。 PowerShell 或 Bash 脚本可以读取这些内容并使用命令 dotnet user-secrets set 创建新的 .NET secrets。 这里是脚本 postprovis...
使用 .NET 和 Teams Toolkit 构建 AI 机器人、扩展 Microsoft 365 的 Copilot 以及更多功能
本文翻译于Ayca Bas的Building AI Bots, Extending Copilot for Microsoft 365, and more with .NET and Teams Toolkit - .NET Blog Teams Toolkit for Visual Studio 帮助 .NET 开发人员为 Microsoft Teams 构建、调试和发布应用程序。我们很高兴向大家宣布,Teams Toolkit for Visual Studio 2022 17.9 版本为 .NET 开发人员提供了许多令人兴奋的新功能,例如新的 AI Bot 模板、Teams Bot 测试工具、自适应卡预览器以及更多改进、错误修复以改善您的开发体验。 让我们探索一下此版本提供的新功能! 新功能概述 Teams Toolkit for Visual Studio 17.9 版本发布包括新的 AI Bot 模板、Teams Bot 测试工具、自适应卡片预览器、生命周期步骤中的 CodeLens 支持以及对文档的直接访问。 新的AI Bot模板 新的 Teams AI Bot 模板可帮助开发人员开始构建智能聊天机器人,这些机器人可以利用 OpenAI 的强大功能处理信息并提供答案。此模板利用 Teams AI 库和 AI 组件,简化了使用 OpenAI API 密钥或 Azure OpenAI ...
64 位世界中的 WinForms – 我们的未来战略
本篇翻译于Klaus Loeffelmann的WinForms in a 64-Bit world - our strategy going forward 作为一个依靠创新和发展而蓬勃发展的社区的一部分,WinForms 开发人员经常突破界限来创造新的可能性。我们的开发人员还负责维护业务软件的关键任务线,这通常需要十年以上的时间。我们重视您的信任和您对使用我们的工具创建出色的软件解决方案的热情。 如您所知,Visual Studio 2022 从 32 位到 64 位的过渡引发了一些复杂问题。我们了解到这些变化在你们的开发过程中造成了一些麻烦,因此我们希望通过指出现有的解决方法以及我们针对这些问题的准备计划来澄清这些问题。 拥抱64位:更好的改变 转向64 位平台不仅仅是简单的升级。 这是一项重大改进,可以在多个方面帮助 Visual Studio 更好地工作。最大的好处之一是能够使用更多内存。 在 32 位版本中,Visual Studio 可以使用的内存量受到限制,通常这会导致性能下降,甚至在处理大型项目时出现错误。 64 位版本消除了这些限制,使 Visual Studio 能够以更高的效率处理更大的项目。 但这不仅仅是获得更多内存的问题。 切换到 64 位还使 Visual Studio 能够更好地利用计算机的处理器,尤其是它的多核。 由于 64 位应用程序可以一次处理更多数据,因此它可...
我们对 .NET 9 的愿景
本篇翻译于.NET Team 的 Our Vision for .NET 9。 欢迎来到.NET 9!继几个月前成功发布 .NET 8 之后,我们又进入了一个新年度发布周期。 我们建议开发人员将他们的应用程序迁移到 .NET 8。在这篇文章中,我们将分享我们对 .NET 9 的初步设想,它将于年底在 .NET Conf 2024 上发布。我们最关注的领域是云原生和智能应用程序开发。 您可以期待我们在提升性能、生产力和安全性以及整个平台的改进方面进行的巨大投入。 今天,让我们来看看我们计划与 Microsoft 合作伙伴团队合作交付的 .NET 9 重点领域和补充集成。 我们的目标是提高使用 Visual Studio、带有 C# 开发工具包的 Visual Studio Code 时 .NET的 开发效率,并且在使用 Azure 服务时,可以更轻松地进行云部署。 我们将继续与 Canonical 和 Red Hat 等行业合作伙伴密切合作,以确保 .NET 在您使用的任何地方都能正常工作。 .NET 9 正在成为该平台向前迈出的又一大步。 我们今天发布 .NET 9 Preview 1,欢迎您对我们发布的所有新功能提供反馈。 面向云原生开发者的平台 在过去的几年里,我们一直在努力构建强大的云原生基础,例如运行时性能和应用程序监控。 我们将继续这一努力。我们还将重点转向为当前流行的生产...