不仅仅是应用:C# 的 5 个创新用途

我们来看看 scriptcs、Cake、ConfigR、Wyam 和 Scripty 如何将 C# 用于创新和非常规的用途。
444 位读者喜欢这个。
Open innovation

Opensource.com

.NET 平台一直是桌面和服务器应用开发领域的主流,为 Windows Forms、WPF、ASP.NET 以及多年的业务线 (LOB) 应用提供支持。然而,今天的 .NET 是一个非常不同的平台;它由基于开源 API 的编译器平台驱动,具有内置的脚本功能,并且 C# 可以在许多 IDE 中有效地编写,而不仅仅是来自 Microsoft 的 IDE。

由于这些变化,C# 和整个 .NET 平台的创新和非常规用途得到了快速增长。让我们来看看五个最令人兴奋的项目

1. scriptcs:scriptcs 可以轻松地使用简单的文本编辑器编写和执行 C#。

scriptcs 是此列表中较早的项目之一,也是无 IDE C# 的先驱之一。scriptcs 允许您在 Windows 上使用 C# 和您最喜欢的文本编辑器编写简单的、低仪式感的脚本。“传统” C# 应用程序相比,脚本的语法已大大简化,可以像单行 C# 代码片段一样简单,也可以使用“脚本包”在短短 10 行代码中构建一个功能齐全的 ASP.NET Web API 终结点。此外,scriptcs 支持开箱即用地引用程序集和安装包,让您可以直接在脚本中利用可用的庞大 NuGet 包 生态系统。

scriptcs 由 Glenn Block、Justin Rusbatch 和 Filip Wojcieszyn 维护,并在 GitHub 上以 Apache 2 许可证 提供。

2. Cake:Cake (C# Make) 是一个带有 C# DSL 的跨平台构建自动化系统。

Cake 是一个跨平台项目,用于用 C# 编写构建自动化脚本,以执行诸如编译代码、运行测试、构建包或几乎任何其他操作。Cake 构建在 Roslyn 和 Mono 编译器之上,让您可以使用 C# 编写构建脚本,并在 Linux、Windows 和 Mac OS 上直接运行它们,无论是在本地还是在您选择的任何 CI 平台上。Cake 拥有 100 多个社区插件,支持从云存储、编排和消息传递,到控制容器、虚拟机和 Web 服务器的一切功能。

Cake 由 Patrik Svensson、Mattias Karlsson、Gary Ewan Park 和 Alistair Chapman 维护,并在 GitHub 上以 MIT 许可证 提供。

3. ConfigR:用 C# 编写您的 .NET 配置文件。

ConfigR 是 C# 语言的另一个由 Roslyn 编译器驱动的扩展,它使用简单而灵活的领域特定语言 (DSL) 来替换静态配置文件(例如 XML 或 JSON)为 C# 代码文件。这不仅为 .NET 应用程序提供了简单而灵活的配置,还允许复杂、嵌套、静态类型的配置直接插入您的代码,无需 XML。由于 ConfigR 构建在 Roslyn 之上,它还允许引用外部程序集和脚本,因此您甚至可以共享通用的配置逻辑或从远程服务器检索配置值,所有这些都来自一个 .csx 文件。

ConfigR 由 Adam Ralph 编写,由 Filip Wojcieszyn 维护,并在 GitHub 上以 MIT 许可证 提供。

4. Wyam:Wyam 是一个高度模块化且极其可配置的静态内容生成器和工具包。

Wyam 是一个令人难以置信的灵活的静态内容工具包,由 C# 和 Roslyn 编译器驱动。Wyam 可用于生成从静态网站到在线文档,再到完整博客的任何内容,甚至 Wyam 背后的引擎也可以嵌入到其他 .NET 应用程序中。该工具包支持广泛的技术和格式,包括常见的 .NET 技术(如 Razor 模板),以及外部类型,例如 Markdown、LESS 样式、YAML 解析和内置 Web 服务器。为了支持所有这些灵活性,Wyam 的配置文件实际上是一个功能齐全的 C# 脚本,完整支持外部插件和模块、类以及您可以在 C# 中执行的任何其他操作。

Wyam 由 Dave Glick 维护,并在 GitHub 上以 MIT 许可证 提供。

5. Scripty:让您使用 Roslyn 驱动的 C# 脚本进行代码生成的工具。

Scripty 将 .NET 推向元编程领域,是一个很酷的项目,它使用 C# 脚本来生成 C# 代码。与此处的其他项目一样,Scripty 由 Roslyn 编译器的脚本支持驱动,经过修改以创建可用于各种代码生成的 C# 脚本,因此您可以使用 C# 生成更多 C#。由于它是项目和编译器感知的,您还可以构建代码生成脚本来修改您的项目,基于现有文件和逻辑生成应用程序代码,甚至可以使用脚本将资源嵌入到已编译的资产中,以便进行部署。

Scripty 由 Dave Glick 维护,并在 GitHub 上以 MIT 许可证 提供。

标签
Alistair Chapman
Alistair Chapman 是一位信息安全工程师、.NET 开发人员和技术架构师。虽然他目前在 Red Hat 工作,但他还做过从网络工程到 DevOps 转型的一切工作。不在工作时,Alistair 活跃于 .NET 开源社区,包括维护 Cake(一个 .NET 基金会项目)。所有观点仅代表我个人,不代表 Red Hat。

3 条评论

感谢分享!

这是一篇很棒的文章!我最近使用了 Cake,它是一个很棒的工具。Cake 也是 .NET 基金会以及 .NET Core 和 Roslyn 的一部分。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.