在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
英文原文:ScriptCS: Turning C# into a Scripting Language ScriptCS 支持开发者使用简单的文本编辑器编写 C# 应用,并通过 Roslyn 执行编译,使用 NuGet 进行包管理。 Windows Azure SDK 团队的项目经理 Glenn Block 启动了 ScriptCS 项目,它是一个尝试将 C# 变成脚本语言的业余项目。开发者能够利用其 C# 知识,使用简单的文本编辑器编写程序,并通过 Roslyn(微软支持“编译器即服务”的 API)完成编译。ScriptCS 使用 NuGet 挖掘包的依赖关系并加载二进制文件。Roslyn 的r:语法用于添加 GAC 或其他 DLL 引用。 如果一个 hello.csx 文件包含下面这行 C# 代码: Console.WriteLine ("Hello World!"); 那么运行命令“scriptcshello.csx”,会在控制台输出“Hello World!”字符串。 这个例子既不需要命名空间或类定义,也不需要创建项目,不会生成 .obj 或 .exe 文件。Roslyn 负责编译而 ScriptCS 执行编译结果。 另一个复杂一些的例子是创建一个 Web API 主机: using System; using System.IO; usingSystem.Web.Http; usingSystem.Web.Http.SelfHost; var address = "http://localhost:8080"; varconf = new HttpSelfHostConfiguration (new Uri (address)); conf.Routes.MapHttpRoute (name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); var server = new HttpSelfHostServer (conf); server.OpenAsync () .Wait (); Console.WriteLine ("Listening..."); Console.ReadKey (); ScriptCS 提供了插件机制,使用了所谓的“脚本包(script packs)”,Block 解释道:
让 ScriptCS 运行在 Mono 之上的工作正在进行, 向 Roslyn 添加调试功能也在调研之中。Sublime Text 已经创建了一个用于 ScriptCS 的插件,在简单的编辑器中支持语法高亮。还有一种选择,是通过 Roslyn 针对 .csx 文件在 Visual Studio 中生成语法高亮功能。 根据他在 Node.js 方面的经验,Block 列出了将 C# 脚本化的优势:
借助 Roslyn 和 NuGet,这一切成为了可能。ScriptCS 仍然是处理程序集,但是“不必单独管理它们,只需要安装包即可。” ScriptCS 采用 Apache 2许可,它目前并未获取微软的支持。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论