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

热门项目推荐

项目优选

收起
CangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
669
0
RuoYi-Vue
🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本
Java
136
18
openHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
10
4
redis-sdk
仓颉语言实现的Redis客户端SDK。已适配仓颉0.53.4 Beta版本。接口设计兼容jedis接口语义,支持RESP2和RESP3协议,支持发布订阅模式,支持哨兵模式和集群模式。
Cangjie
322
26
advanced-java
Advanced-Java是一个Java进阶教程,适合用于学习Java高级特性和编程技巧。特点:内容深入、实例丰富、适合进阶学习。
JavaScript
75.83 K
19.04 K
qwerty-learner
为键盘工作者设计的单词记忆与英语肌肉记忆锻炼软件 / Words learning and English muscle memory training software designed for keyboard workers
TSX
15.56 K
1.44 K
Jpom
🚀简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件
Java
1.41 K
292
Yi-Coder
Yi Coder 编程模型,小而强大的编程助手
HTML
30
5
easy-es
Elasticsearch 国内Top1 elasticsearch搜索引擎框架es ORM框架,索引全自动智能托管,如丝般顺滑,与Mybatis-plus一致的API,屏蔽语言差异,开发者只需要会MySQL语法即可完成对Es的相关操作,零额外学习成本.底层采用RestHighLevelClient,兼具低码,易用,易拓展等特性,支持es独有的高亮,权重,分词,Geo,嵌套,父子类型等功能...
Java
1.42 K
231
taro
开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信/京东/百度/支付宝/字节跳动/ QQ 小程序/H5/React Native 等应用。 https://taro.zone/
TypeScript
35.34 K
4.77 K