不仅仅是应用程序:C# 的 5 种创新用途

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

Opensource.com

.NET 平台一直是桌面和服务器应用程序开发领域的主力军,为 Windows Forms、WPF、ASP.NET 以及多年的业务线 (LOB) 应用程序提供支持。 然而,今天的 .NET 是一个非常不同的平台;它由基于开源 API 的编译器平台驱动,具有内置的脚本功能,并且可以在许多 IDE 中有效地编写 C#,而不仅仅是来自 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 平台上。 凭借 100 多个社区插件,Cake 支持从云存储、编排和消息传递到控制容器、虚拟机和 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本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.