简体中文
English 简体中文 繁體中文
Methodox 首页

Pure(第 2 版)

Pure 是一个 C# 脚本工具。它为单文件 C# 脚本编写提供了非常完善的支持,只需执行 pure script.cs 即可运行 C# 程序。

Pure 1 由 Charles Zhang 开发,最初以 MIT 许可证发布(Github),并首发于 Charles Zhang 的 itch.io 页面。Pure 2 经过重构以在 Divooka 生态系统中工作,目前为闭源。。

注意:与 Divooka 中的许多其他内容一样,Pure 2 的源代码将在我们有更多资源进行维护时公开。出于同样的原因,该软件虽然在设计时就考虑了跨平台,但目前仅在 Windows 上经过了充分测试。

目前,你可以直接从我们的 Itch.io 页面下载可执行文件。

基本示例

简介

Pure 2 是一个轻量级的 C# 脚本平台,采用现代 C# 12 语法,并支持便捷地导入 Nuget 包。Pure 基于 Roslyn。除了 .Net 运行时的基础功能外,Pure 还提供了一些额外的库,用于快速处理常见任务,并提供了便捷的脚本编写界面(REPL 和 Notebook),以及一个供大家分享代码片段的地方。Pure 2 在概念上与 Pure 相似,但在架构上将有很大不同——它直接构建在 Parcel NExT 的 Ama 运行时之上。Pure 专为非常短小的代码片段而设计,旨在更快地完成日常任务。

Pure 2 使用 C# 12,与 C# 中的顶级语句类似,并具有以下特性:

  1. 你可以在脚本中间的任何位置定义类型和函数。
  2. Pure 有自己的包导入行为(默认命名空间 using 以及包查找规则)。
  3. 默认全局作用域的 Math 函数,并默认 using System.IO 和 System.Linq
  4. 除了类和 C# 的所有其他常见结构外,还支持顶层函数和变量定义
  5. 让简单常见的事情变得更简单
  6. 提供宏,以支持基于文本的解析、文件包含和模块导入。

特性:

  • 单个单词的标准包名。一条命令即可导入 NuGet 包,随时按需调用包(通过 Import)。
  • 与 Parcel 包和 Parcel 图完全兼容。
  • 在使用 Include 时,以及从命令行将脚本文件作为第一个参数直接执行时,Pure 使用 PUREPATH 查找脚本。
  • Pure 非常轻量,并将始终是现有 Roslyn/.Net 运行时之上的一个薄层。
  • CLI REPL;GUI Notebook。

安装

最新版本需要 .Net 8。

你需要安装 .Net 8 运行时和 ASP.Net Core 运行时。建议从以下页面同时安装 SDK 8.0.x(模块安装工具所必需)、ASP.NET Core Runtime 8.0.x(一般使用所必需)和 .NET Desktop Runtime 8.0.x(在 Windows 上使用 Notebook 所必需):https://dotnet.microsoft.com/en-us/download/dotnet/8.0

YouTube 指南

如有问题,请前往问题页面:https://github.com/Pure-the-Language/Pure/issues

备注

随着 C# .Net 10 基于文件的应用的到来,原生 .Net 正逐渐变得对脚本编写更加友好,参见 Andrew Lock 的文章。这基本上就是 Pure 所做的事情,只是 Pure 更广泛地使用了特殊语法,而前者目前还没有 REPL。Pure 将更加专注于与 Divooka 生态系统更便捷、更全面的集成,以及简化的入口和脚本语法,同时保持向后兼容性。话虽如此,为了减少维护工作量,建议逐步淘汰 Pure(作为独立 CLI),转而使用官方 .Net SDK。

Pure 将继续作为基于 Roslyn 的 Divooka 内置脚本工具提供。

趣闻:请勿与 PURE(函数式编程)和 PureScript 混淆。

资源

Pure 1

Pure 2(最新)

开发日志