[搬运] DotNetAnywhere:可供选择的 .NET 运行时
原文 : DotNetAnywhere: An Alternative .NET Runtime
作者 : Matt Warren
译者 : 张很水
我最近在收听一个名为 DotNetRock 的优质播客,其中有以 Knockout.js 而闻名的 Steven Sanderson 正在讨论 " WebAssembly And Blazor "。
也许你还没听过, Blazor 正试图凭借 WebAssembly 的魔力将 .NET 带入到浏览器中。如果您想了解更多信息,Scott Hanselmen 已经在 " .NET和WebAssembly——这会是前端的未来吗? "一文中做了一番介绍。( 点击查看该文的 翻译 )。
尽管 WebAssembly 非常酷炫,然而更让我感兴趣的是 Blazor 如何使用 DotNetAnywhere 作为底层的 .NET 运行时。本文将讨论DotNetAnywhere 是什么,能做什么,以及同完整的 .NET Framework 做比较。
DotNetAnywhere
首先值得指出的是,DotNetAnywhere (DNA) 被设计为一个完全兼容的 .NET 运行时,可以运行被完整的.NET 框架编译的 dll 和 exe 。除此之外 (至少在理论上) 支持 以下的 .NET 运行时的功能,真是令人激动!
- 泛型
- 垃圾收集和析构
- 弱引用
- 完整的异常处理 - try/catch/finally
- PInvoke
- 接口
- 委托
- 事件
- 可空类型
- 一维数组
- 多线程
另外对于 反射 提供部分支持
- 非常有限的只读方法
typeof(), GetType(), Type.Name, Type.Namespace, Type.IsEnum(),