如何在Ubuntu上开发.NET应用程序?

在大学里,我们使用Microsoft .NET来开发应用程序。最近我切换到了Ubuntu,并且想知道在Ubuntu上制作应用程序的类似工具。

4我强烈建议你考虑学习另一门语言,比如Python或C/C++。仓库中的大多数应用程序(事实上,可能是绝大部分)都是使用这些语言编写的。 - Nathan Osman
2虽然学习另一门语言可能会相当容易,但这并非必要或特别理想(除了接触其他编程风格之外)。 - RAOF
如果您想每天使用Linux,但又不想因为Mono的兼容性问题无法开发C#,可以考虑在VirtualBox中使用Windows虚拟机。 - Mark K Cowan
8个回答

你也可以在Ubuntu上进行.NET编程。嗯,有点类似。有一个名为MONO的开源实现可用于.NET平台。MONO应用程序可以在Ubuntu/Linux、Windows和Mac OS上运行。在Ubuntu软件中心搜索MonoDevelop。了解更多关于Ubuntu中的Mono

另一个选择是Quickly。在我看来,Quickly更适合于Ubuntu中心的应用程序开发。你可以编写应用程序,并在几分钟内发布到PPA(launchpad存储库)。Quickly也可以从Ubuntu软件中心获取。开始使用Quickly编写应用程序


1+1 回答问题。 (个人讨厌单声道,但没办法。) - Nathan Osman
3你的http://mono-project.com链接指向了Quickly的网址。 - McDowell
1你可以很好地使用CLI (.NET)语言和标准库 - 最近的Ubuntu版本中的mono支持C# 3.0和(大部分) .NET 3.5。不过,你可能需要学习GTK# UI库。System.Winforms和WPF应用程序看起来并不原生,并且WPF也没有完全实现。 - RAOF
1你会想要选择MonoDevelop集成开发环境。除了图形用户界面开发(*nix使用GTK#进行拖放,而Windows使用Winforms/WPF)之外,在Ubuntu上的开发与在Windows上的开发并没有太大的区别。 - Evan Plaice
@Owais Lone - 答案中提供的链接无法使用,请尝试更新或添加替代链接。 - Chinmaya B

快速可以帮助您迅速使用Python(很容易学习和非常受欢迎)制作酷炫的应用程序!


2+1 建议使用Python/Quickly。我是一名专业的Python程序员,我在计算机上使用Ubuntu操作系统。Ubuntu(以及Linux系统)非常适合进行Python开发。 - codeape

Vala语言是一种与C#非常相似的编程语言。虽然它还很年轻,但已经有很多与现有库(例如GTK)的绑定。它可以编译成本地二进制文件,因此您的用户不需要额外的运行时环境,就像使用.NET一样。
请参阅适用于C#程序员的Vala简介。

如果您的目标是Ubuntu,则Mono已预安装,因此不需要额外的运行时。 - trampster
1看起来链接到 Vala for C# 的链接不起作用。请尝试使用这个链接代替:http://live.gnome.org/Vala/ValaForCSharpProgrammers。还有一个适用于 Java 程序员的链接:http://live.gnome.org/Vala/ValaForJavaProgrammers。 - Mark B
谢谢马克,看起来他们重新组织了他们的维基,我已经在答案中更正了链接。 - thbusch

我不明白为什么要提出这么多关于切换应用平台/语言的建议。使用你熟悉的工具,你会比花时间学习另一种语言更具效率。

Monodevelop 将为您提供更好的Mono开发体验 - 它虽然不如Visual Studio,但在Ubuntu上它是最好的集成开发环境。GTK表单和控件的可视化设计是一个巨大的优势(类似于Winforms,但Linux风格)。


开始学习Qt。它是一个基于C++的框架。它是跨平台的,也在Windows上运行良好。甚至还有一个适用于Visual Studio的插件。它通常用于KDE平台。对于GNOME,你可以学习GTK#
Wikipedia中, 作为GNOME桌面的基础,选择了GTK+工具包。

1Qt 可以在 GNOME 上运行。 - dv3500ea
@dv3500ea:你没理解。QT被用来开发KDE应用程序,但这并不意味着由QT构建的应用程序不能在GNOME上运行。同样,GTK应用程序也可以在KDE上运行。但是你不能使用GTK来构建KDE应用程序。 - user
1虽然它不仅仅是为KDE平台设计的。 - dv3500ea
1QT不用来构建KDE应用程序。QT用来构建图形用户界面(GUI)。KDE使用QT来构建它的应用程序。QT也可以用来构建GTK应用程序。 - Owais Lone
我觉得我完全迷失了方向。标记为社区共享内容。感谢您的支持和耐心。 - user

在Linux上有各种工具可用于创建丰富的桌面应用程序。Bowline是一个MVC框架,允许您使用Ruby创建桌面应用程序。Shoes是另一个框架,允许您使用Ruby创建桌面应用程序,并且它是迄今为止最简单的桌面应用程序框架。


1我发起的悬赏是关于dotnet的。答案应该很简单。你甚至可以在微软的网站上找到相关的更新内容。 - Anwar
@Anwar,我对描述感到困惑。对我来说不清楚是要做.Net还是像使用.Net一样开发。我回答的是第二种解释。 - Ramon Suarez
请在答案的那部分添加更多细节。应包括基本的安装过程。 - Anwar
@Anwar 对不起,我不理解你的评论。 - Ramon Suarez

请始终将CoreCLR(.NET Core运行时)与Mono进行交叉参考。此外,请查看此问题收集的相关人员和官方意见,链接为CoreCLR和项目Mono在微软开源.NET之后的关系

我认为IT行业巨头之一的好处之一是官方文档。

以下命令来自在Ubuntu上开始使用.NET Hello World控制台应用程序,只是在最后添加了解说和观点。如果任何命令失败,请参考上述链接。

先决条件:在Ubuntu上开始使用.NET Hello World控制台应用程序。这里的指令假设您正在运行Ubuntu 16.04 LTS。
为了在Ubuntu或Linux Mint上安装.NET Core,您需要首先设置托管所需软件包的apt-get源。因此,请使用以下命令设置apt存储库。
sudo sh -c 'echo "deb [arch=amd64] https://apt-mo.trafficmanager.net/repos/dotnet-release/ xenial main" > /etc/apt/sources.list.d/dotnetdev.list' sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 417A0893 sudo apt-get update 安装.NET Core SDK
sudo apt-get install dotnet-dev-1.0.1
初始化一个示例Hello World应用程序
dotnet new console -o hwapp cd hwapp 看一下样式,它几乎和Node.js一样容易入门,就像CLI工具一样,适用于所有新一代开发工具,如Spring Boot、Angular 2等,您只需使用命令初始化一个Hello World应用程序:
运行应用程序
dotnet restore dotnet run
第一个命令将恢复项目文件中指定的软件包,第二个命令将运行实际的示例:
最后,如果您能够稍微复杂一些,但如果您需要UI,我认为这比使用其他C++/C# UI库更容易。您可以选择使用.NET或Node.js与Electron的Web浏览器通信,通过HTML5、CSS提供UI。 使用.NET和Node.js创建Electron UI

已点赞。你的微软链接基本上包含了我想要包括的所有内容。你能把链接中的重要部分放到回答中吗? - Anwar
当然,感谢点赞。在这里受到了很好的对待,因为第二个微软问题。只要微软在他们的开源项目中试图保持中立,我认为Unix也应该欢迎他们,就像Bash在Windows 10上一样,把他们当作朋友。 - Edward Chan JW