DLR 宿主规格说明书已经发布了一个更新过的草案。这份文档覆盖了托管以 DLR 为基础的语言的各方面,尤其专注于 Silverlight,MerlinWeb(一种 asp.net 后端的服务端动态语言)和交互式命令行的托管。因为这只是一份草案,文档中依旧存在不少开发人员注解,说明目前还正在设法完成某些内容。
微软正在设法支持的使用场景包括:
- 托管在浏览器 Silverlight 应用。
- 服务器端的 MerlinWeb
- 脚本运行时(ScriptRuntime)能够独立于其它应用程序域(App Domain)的交互式命令行
- 带有语法着色,自动完成和参数提示的编辑工具(可能只在 1.0 版本的存活对象中可用)
- 使用动态对象和在相同的应用域内操作它们的 PowerShell、C#和 VB.NET 代码
规格说明书中定义了三种级别的宿主。它们的说明引用如下:
级别一:脚本运行时、范围、执行文件以及代码片断
对于简单的可编程性来说,您希望提供一个动态代码可以使用的托管对象模型。接着您希望执行使用这个对象模型的代码文件。您可能也希望从动态语言代码中获得变量的值,以通过命令行实现或者事件处理程序的方式来使用动态函数。
级别二:引擎、编译后的代码、源文件以及对象操作
下一种级别的约定包括直接执行引擎、源文件的抽象,以及编译后的代码。您可以编译代码并且在任意范围或默认范围里执行它。您也能够更好地控制向 DLR 提供源文件的方式。
级别三:完全控制,远程控制,工具支持以及更多
级别三的约定,宿主使您能够完全控制脚本运行时。在这种级别下宿主能够做很多事情,包括控制运行时的配置,处理运行时异常,使用远程脚本运行时,以及提供一个完整的、带有自动完成、参数信息提示和语法着色功能的编程工具等。
这份规格说明书中包含 API 定义本身,以及数量可观的代码示例。您可以从 John Lam 的 blog 中获得 DLR 宿主规格说明书。
查看英文原文: Draft DLR Hosting Spec Released
评论