首页
/ 探索创新:Windows社区工具包实验室(预览版)🚀

探索创新:Windows社区工具包实验室(预览版)🚀

2024-05-23 00:23:19作者:秋泉律Samson

Windows Community Toolkit Labs 头图

欢迎来到Windows社区工具包实验室——一个用于开发新组件的实验场,基于WinUI 2、WinUI 3和Uno平台构建!欲了解关于工具包实验室更多信息,请参阅我们的博客文章。文章详细介绍了创建这个空间的初衷以及如何设置必要的NuGet源以方便使用本仓库中的实验特性。

这里是所有新功能进入Windows社区工具包的起点,也是进行原型设计和合作完善特性的理想场所。这使得当特性准备好后,最终将其合并到主工具包仓库可以尽可能地顺利。

开始使用

立即在浏览器中尝试我们的示例应用程序!

查看当前正在进行的实验列表并尝试!

您可以在我们的Azure DevOps Feed中找到相应的CommunityToolkit.Labs包,了解更多关于预览包的信息

https://pkgs.dev.azure.com/dotnet/CommunityToolkit/_packaging/CommunityToolkit-Labs/nuget/v3/index.json

如果您发现某个实验有用,请对对应的议题点赞👍并发表反馈。每个实验都有一个带有“experiment”标签的议题用于跟踪。其他任何问题或疑虑,都可开启讨论

或者,您可以克隆仓库,打开components目录,导航至特定实验的文件夹并打开其解决方案文件,在Visual Studio中运行其中一个项目头(ExperimentName.Uwp/Wasm/WinAppSDK)来查看其示例。

克隆仓库

工具库在子模块中,首次克隆或拉取时需使用--recurse-submodules

git clone --recurse-submodules https://github.com/CommunityToolkit/Labs-Windows.git

构建要求

  • Visual Studio 2022(UWP 和桌面.NET工作负载)
  • .NET 6 SDK
  • Windows App SDK
  • Windows SDK 19041
  • 运行dotnet tool restore从项目根目录安装SlnGen
  • 在开发者命令提示符中运行构建脚本(如Visual Studio中)

添加新的实验

注:目前只接受预先试验列表之外的贡献者,确保我们的基础设施稳定。如果您想贡献力量,但不知从何入手,请在此处查看可用任务。如果有关于组件的想法,请在这里开启讨论

要启动新的实验,首先在一个新的讨论中提出您的想法与社区共享。确保遵循模板,并阐述为什么以及如何帮助其他开发人员。

一旦有进展并且您的想法被批准,将会创建一个议题追踪您的实验及其进度。

然后您可以fork该仓库,创建一个新的分支,开始编写您的特性(或将现有原型移植过来)。

dotnet new --install .\tooling\ProjectTemplate\

cd components

dotnet new ctk-component -n 我的实验名称

阅读更多关于使用模板文件夹创建新实验的内容

然后提交PR,不必一开始就完成所有工作,但应提供基本功能和使用示例。实验室是一个逐步改进的好地方,您可以在这里获取社区反馈并与他人协作。但是,您的初始PR应该能够编译并有足够的内容供其他人理解如何利用您的组件。

修改实验

首先,fork仓库并为您的修改创建一个新的分支。

要修改实验,导航到其子目录并打开其自身的解决方案文件。这样可以让您独立地处理该组件的功能、示例、文档和单元测试。

然后向仓库提交您的修改。实验的所有者可以与您一起集成变更。维护者会在获得实验所有者的批准后合并PR。

实验何时完成?

并非所有实验都能成功,而那也没关系,因为我们在实验!👨‍🔬🔬👩‍🔬

如果有足够的兴趣,那么实验就可以转移到主要的Windows社区工具包仓库中。这些实验应实现所有必需的组件,如示例、文档和单元测试。

在主要工具包仓库中使用“工具包实验室转移”议题模板打开一个议题。(待更新链接)使用该议题讨论新组件应在工具包中的何处放置,以及它将在哪个版本中发布。也将进行初步代码审查。议题获得批准后,打开一个PR将实验复制到其新家。

构建样例应用

首先确保满足构建要求,否则构建脚本会失败。

接下来,运行仓库根目录下的GenerateAllSolution.bat脚本来生成所有解决方案。

然后只需在Visual Studio中打开CommunityToolkit.AllComponents.sln解决方案,就可以运行适用于不同平台的示例应用,如CommunityToolkit.App.WinAppSdk

如果您想运行除UWP、Wasm或WinAppSDK之外的项目头部,先运行tooling/MultiTarget目录中的UseTargetFrameworks.ps1脚本。例如:.\UseTargetFrameworks.ps1 -targets all

如果希望在Uno + Windows App SDK上测试,而不是Uno + UWP,运行UseUnoWinUI.ps1脚本。例如:.\UseUnoWinUI.ps1 -targets 3

如果您仅关注特定实验,可以导航到其目录并打开它的单独解决方案,查看特定功能的示例。您还可以通过以下部分了解如何获取本实验室中可用的每个功能的预建NuGet包。

行为准则

该项目已采用贡献者公约定义的行为准则,以明确我们社区期望的行为。 更多信息见.NET基金会行为准则

.NET 基金会支持

该项目由.NET基金会支持。

致谢贡献者

工具包贡献者

借助了contrib.rocks制作。


Windows社区工具包实验室是一个独特的资源,为开发者提供了在安全环境中尝试新功能的机会,同时也鼓励社区参与和贡献。无论您是寻求创新的解决方案,还是想要展示自己的技能,这里都是理想之地。所以,加入我们,探索无限可能!

热门项目推荐

项目优选

收起
Python-100-DaysPython-100-Days
Python - 100天从新手到大师
Python
609
115
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
286
79
mdmd
✍ WeChat Markdown Editor | 一款高度简洁的微信 Markdown 编辑器:支持 Markdown 语法、色盘取色、多图上传、一键下载文档、自定义 CSS 样式、一键重置等特性
Vue
111
25
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
60
48
RuoYi-Cloud-Vue3RuoYi-Cloud-Vue3
🎉 基于Spring Boot、Spring Cloud & Alibaba、Vue3 & Vite、Element Plus的分布式前后端分离微服务架构权限管理系统
Vue
45
29
go-stockgo-stock
🦄🦄🦄AI赋能股票分析:自选股行情获取,成本盈亏展示,涨跌报警推送,市场整体/个股情绪分析,K线技术指标分析等。数据全部保留在本地。支持DeepSeek,OpenAI, Ollama,LMStudio,AnythingLLM,硅基流动,火山方舟,阿里云百炼等平台或模型。
Go
1
0
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
205
57
MateChatMateChat
前端智能化场景解决方案UI库,轻松构建你的AI应用,我们将持续完善更新,欢迎你的使用与建议。 官网地址:https://matechat.gitcode.com
184
34
RuoYi-VueRuoYi-Vue
🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本
Java
182
44
frogfrog
这是一个人工生命试验项目,最终目标是创建“有自我意识表现”的模拟生命体。
Java
8
0