.NET语言归纳

源语言

/需求

.NET版本 说明 推荐程度 其它冷门版本
C++ C++/CLI

来自微软,集.NET与C++大成的语言。如果不考虑跨平台特性,大概是功能最强大的语言之一了。(也就是人们常用来描述.NET Native的“C#的开发速度,C++的效率”。但相对地语法较复杂,且Native和.NET两边混合时可能会有一些小问题)编译后是Mixed .NET程序集(包含Native代码及IL代码的.NET格式)。基本上仅支持Windows桌面平台。

微软官方维护中。

★★★★★ Managed C++
Java IKVM

Mono项目之一,JVM的.NET实现,可以将Java代码编译成纯.NET程序,也可以在Java代码中调用.NET类库。不过由于缺少IDE的支持,导致用途并不是非常广泛。(如果能够加入到MonoDevelop/SharpDevelop,势必会更受欢迎。)通常用在将Java代码/库移植为.NET版本。

相关工具:Java Language Support 加入VS对Java的基本支持。后来微软开发了在VS中编写MC mod的工具,就是使用了这个插件来提供Java的语法提示。但我测试不成功,可能对中文环境欠缺支持。

Mono官方维护中。

★★★ J#
Python IronPython

简称FePy,微软DLR重点扶持项目,最成熟的Iron语言/第三方.NET语言。可以写Console、Winform、Silverlight、WPF、UWP程序(全能!)。兼容Python 2.7的所有特性,并可调用.NET类库。此外常用于在.NET程序中执行Python代码。

相关工具:VS整合工具PTVS 加入VS对Python和IronPython的支持(特别是调试、远程调试),VS2015全家桶已经包含。

IronPython3开发中。

★★★★★

Boo(最早的模仿Py的.NET语言。一度被Unity所支持。但FePy出现后已失去存在价值)

Python.NET (已失去存在价值)

Ruby IronRuby

IronPython的孪生项目,但开发者更倾向于IronPython,IronRuby已经陷入停滞。

相关工具:VS整合工具RTVS 加入VS对Ruby和IronRuby的支持。

坐以待毙中。

★  -
Lua NLua

目前最成熟的.NET-Lua绑定方案。可在.NET程序中执行Lua代码,可在Lua代码中使用.NET类库,可互相获取对方的方法、属性。适于游戏脚本使用。

★★★★★

很多,各有优劣。

MoonSharp

PHP Peachpie

兼容PHP特性,并可以调用.NET类库。可以将PHP网站(如WordPress)部署到MS平台(如IIS、Azure、.NET Core)。官方跑分吊打标准PHP。SEE

开源社区开发维护。

★★★ Phalanger
Obj-C Monobjc 主要用于在Mac环境下开发和使用.NET,并能使用Obj-C的库与基础设施。

★★★

(没用过)

NObjective
Swift Silver

Swift语法,.NET语言,跨平台。(杠铃般的笑声)

由RemObjects开发维护。

★★

(没用过)

-
JavaScript JSIL

这个有点跑题,但确实是非常厉害的东西。能够将IL代码转为JS代码,也就是将.NET程序转为JS,有助于.NET进军前端。作者曾给出将XNA游戏移植成为HTML游戏的例子,确实很神奇。

相关工具:C#HTML5 用C#开发HTML5应用。目前尚处于开发阶段,由于未能很好地整合VS的XAML设计器,只能手写XAML导致较为难用。收费。

★★★★

Script#(将C#编译为网页用JS)

TypeScript(微软自己的东西质量一般不会太差)

脚本 C#Script

将C#转化为脚本语言。无论写单文件C#处理一些小事,还是用.NET程序来运行脚本,都很好用。搭配NotePad++插件,能把NotePad++变为简易C# IDE。

相关工具:CSScriptNpp 把Notepad++变为简易的C# IDE。支持调试!

由Oleg Shilo个人维护。

★★★★★ csi.exe(微软搞的.csx形式C#脚本,并不如多年沉淀的C#Script好用)
Basic VB.NET

不用说了,凑数的。对于老一代Basic/Pascal程序员转到.NET很有作用。

不过新程序员都会选择语法更专业的C#。

微软官方维护中。

★★★ -

添加评论

Loading