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

欢迎来到Windows社区工具包实验室——一个用于开发新组件的实验场,基于WinUI 2、WinUI 3和Uno平台构建!欲了解关于工具包实验室更多信息,请参阅我们的博客文章。文章详细介绍了创建这个空间的初衷以及如何设置必要的NuGet源以方便使用本仓库中的实验特性。
这里是所有新功能进入Windows社区工具包的起点,也是进行原型设计和合作完善特性的理想场所。这使得当特性准备好后,最终将其合并到主工具包仓库可以尽可能地顺利。
开始使用
立即在浏览器中尝试我们的示例应用程序!
您可以在我们的Azure DevOps Feed中找到相应的CommunityToolkit.Labs包,了解更多关于预览包的信息:
如果您发现某个实验有用,请对对应的议题点赞👍并发表反馈。每个实验都有一个带有“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社区工具包实验室是一个独特的资源,为开发者提供了在安全环境中尝试新功能的机会,同时也鼓励社区参与和贡献。无论您是寻求创新的解决方案,还是想要展示自己的技能,这里都是理想之地。所以,加入我们,探索无限可能!
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C0135
let_datasetLET数据集 基于全尺寸人形机器人 Kuavo 4 Pro 采集,涵盖多场景、多类型操作的真实世界多任务数据。面向机器人操作、移动与交互任务,支持真实环境下的可扩展机器人学习00
mindquantumMindQuantum is a general software library supporting the development of applications for quantum computation.Python059
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7-FlashGLM-4.7-Flash 是一款 30B-A3B MoE 模型。作为 30B 级别中的佼佼者,GLM-4.7-Flash 为追求性能与效率平衡的轻量化部署提供了全新选择。Jinja00
AgentCPM-ReportAgentCPM-Report是由THUNLP、中国人民大学RUCBM和ModelBest联合开发的开源大语言模型智能体。它基于MiniCPM4.1 80亿参数基座模型构建,接收用户指令作为输入,可自主生成长篇报告。Python00