これは「それができると知っていましたか?」の 1 つです。 "多くの人々は、C#/F#/.NET がクロスプラットフォームであり、open0source であり、基本的にすべてのオペレーティング システムで実行されることを理解しています。人々はそれを使用して、マイクロ サービス、Web サイト、WebAPI をあらゆる場所で作成しています。iPhone/Android は言うまでもありませんXamarin を使用したアプリや、Unity と MonoGame を使用したビデオ ゲーム。
では、クロス プラットフォームの UI はどうでしょうか?
Microsoft によって正式にサポートされていませんが、オープン ソースがどのように機能するかのように、いくつかの素晴らしいことを行うことができます。現在、.NET ランタイムのファミリ、Windows 上の .NET Framework、xplat .NET Core、xplat Mono があることを思い出してください。
Eto.Forms は 2012 年から開発されており、ネイティブ ツールキットを使用して複数のプラットフォームで実行される .NET を使用して GUI (Graphical User Interface、natch) アプリケーションを作成するためのクロスプラットフォーム フレームワークです。キャンバス上にボタンをカスタムペイントした 90 年代の Java とは異なります。
実物に使われています!実際、PabloDraw は Ansi/Ascii のテキスト エディターであり、これまでの人生で必要だとは知らなかったものです。 しかし、あなたはそうします。 Windows、Mac、および Linux で動作し、Eto.Forms を使用して作成されていますが、各プラットフォームにネイティブ UI があります。 PabloDraw と Eto.Forms でできることのクールな例については、Curtis Wensley の Twitter アカウントをチェックしてください!
- OS X:MonoMac または Xamarin.Mac (および Xamarin 経由の iOS)
- Linux:GTK# 2 または 3
- Windows:Windows フォーム (GDI または Direct2D を使用) または WPF
Hello World の例を次に示します。 Code First だけでなく、Xaml や Json (.jeto) を使用してフォームをレイアウトすることもできます!
using Eto.Forms;
using Eto.Drawing;
public class MyForm : Form
{
public MyForm ()
{
Title = "My Cross-Platform App";
ClientSize = new Size(200, 200);
Content = new Label { Text = "Hello World!" };
}
[STAThread]
static void Main()
{
new Application().Run(new MyForm());
}
}
または、ファイル | | Visual Studio 拡張機能を使用した新しいプロジェクト。ぜひ試してみてください。
同じプラットフォーム (以下の例では Windows) でも、驚くべきことに Eto.Forms は好みのネイティブ コントロールを使用できます。テスト アプリがプリコンパイルされた zip の例を次に示します。
新しいバージョンの Mono を Ubuntu にインストールしたら、ここで VM で実行しているように、Gtk3 と同じサンプルを実行できます。素晴らしい。
以下は、Eto.Forms を使用した実際のアプリケーションの例です:
- MonoGame パイプライン ツール - MonoGame のコンテンツ マネージャー
- マネージャー - 会計ソフトウェア
- PabloDraw - 文字ベースの描画アプリケーション
- JabbR.Desktop - JabbR クライアント
- Notedown - メモを取るアプリケーション
- Eto.Test - 各ウィジェットの機能をテストするアプリケーション
- DotImaging.UI - DotImaging のポータブル UI 要素
現在、オープン ソース .NET では非常に多くのすばらしいことが起こっており、Eto.Forms は積極的に支援を求めています。彼らの優れた Wiki をチェックして、チュートリアルを読んで、参加してみてください!
スポンサー: サードパーティの .NET コードをデバッグするための最新の JetBrains Rider、Smart Step Into、デバッガーの改善、C# インタラクティブ、新しいプロジェクト ウィザード、および列のコードの書式設定を入手してください。