web-dev-qa-db-ja.com

C#プログラムをクロスプラットフォームにすることはできますか?

私はプログラミングの初心者です。テキストファイルを編集するだけの非常にシンプルなプログラムをC#を使用して作成することを検討しています。

  • MacとLinuxで動作しますか?何が機能しますか?
  • プログラムをクロスプラットフォームにするものを知りたいのですが?
24
mowwwalker

はい、C#は Mono プロジェクトのおかげでクロスプラットフォームです。ただし、これはサードパーティによる実装であり、Microsoftによるものではないことに注意してください。したがって、最新の.NETランタイムまたはC#言語バージョンの最先端の機能は実装されない可能性があります。

20
Justin Ethier

彼がプログラミングを始めたばかりであると述べている誰かにそのようなことを答えるのは難しいですが、私はあなたに(やや簡略化した)概要を説明しようとします:C#は実行可能プログラムにコンパイルされる言語です。言語自体は、ターゲットプラットフォームごとにコンパイラがある限り、プラットフォーム間で移植可能です。 Windowsでは「デフォルト」の.Net実装があり、Linux/MacではMonoがあります。ファイルの編集など、何か便利なことをするには、いくつかのライブラリを使用する必要があります。各プラットフォームで利用できる標準ライブラリがあります。その機能のみを使用している限り、プログラムはクロスプラットフォームになります。特定のプラットフォームに固有のライブラリを使用するとすぐに、クロスプラットフォームではなくなります。ファイルの編集は標準ライブラリの一部であるため、このような単純なツールをクロスプラットフォームの方法で実装できます。本を選択するときは、Visual Studioやその他の特定のツールではなく、「生の」言語に焦点を当てた本を探す必要があります。

8
Achim

現在、C#は完全にクロスプラットフォームであり、さまざまなフレームワークとランタイムを備えています。

Javaは言語+フレームワークです。しかし、C#は単なる最新の言語です。 C#言語の機能は非常に強力で、簡単に習得できます。フレームワークと言語の間に混乱はありません。

C#は以下のフレームワークで使用できます

  • .Netコア(マルチプラットフォームはLinux、Windows、Macをサポート)、主に休息サービス、Webアプリケーション、およびエンタープライズシステムの開発に使用
  • .Net Framework(Windowsのみ)、. netコアと同じですが、より多くのウィンドウのみの機能があります
  • Unity-PC、Sony、Xboxデバイスなどのゲームを開発するために最も使用されているゲームエンジンの1つ。
  • Xamarin-ネイティブモバイルアプリを開発するには(Android、IOS、Mac)
  • .Net標準-上記のすべてのアプリケーションで使用する.net標準でライブラリを作成します

Java-コードを1回、すべてのプラットフォームに同じファイルを出荷

C++、C、Rust-コードを1回、特定のプラットフォーム用にコンパイル

C#-これは単なる言語です。要件に応じてフレームワークを選択してください。

Chrome、Firefoxなどの最も人気のあるアプリケーションはC++を使用し、Rustであり、プラットフォームごとにコンパイルされます。ただし、これらのプラットフォーム間でコードの大部分を共有します。一部のゲームはC++を使用して=間でコードを共有しますIOSおよびAndroid。

新規開発者にとって、NodeJSとC#から始めるのは良いことです。どちらも簡単で、あらゆる種類のアプリケーションを実行できます。

7
CreativeManix

CoreCLRと呼ばれるMicrosoftの新しいオープンソースリリースはクロスプラットフォームであり、これに使用できます

CoreCLRリポジトリには、.NET Coreの完全なランタイム実装が含まれています。 RyuJIT、.NET GC、ネイティブ相互運用機能、その他多くのコンポーネントが含まれています。複数のOSとCPUポートが進行中のクロスプラットフォームです。 - CoreCLRリポジトリから

5
tylerlindell

マルチプラットフォームコーディングの最有力候補としてc#はお勧めしません。 python代わりに、スクリプトとしても非常に簡単に実行でき、すべてのプラットフォームで完全に機能します。c#を主張する場合は、Justin Ethierによって説明された同じ問題に対処する準備をしてください。= Python一方、すべてのプラットフォームで同じです。非常に強力で、他の言語に接続できるラッパーさえあります。

3
lesolorzanov

この記事 MonoプロジェクトwikiのC#を使用してポータブルアプリケーションを作成する方法を要約した非常に優れた仕事をしています。

2
cdhowie

はい。C#は.NET Coreのおかげで完全にクロスプラットフォームです。 .NET Coreは、Windows、Linux、およびmacOSオペレーティングシステム向けの無料のオープンソースの管理されたコンピューターソフトウェアフレームワークです。これは、Windowsでのみ実行される.NET Frameworkの後継プラットフォームです。このプロジェクトは、主にマイクロソフトによって開発およびサポートされています(.NET Foundationを通じて)。

1
Wechuli

初心者でC#を強く求めない場合は、Javaを試してみてください。C#の構文と実行からそれほど離れていません。

Java -jar myprogram.jar

mac/Linux/Winでも同じです。

1
Bechyňák Petr

C#はクロスプラットフォームであり、Windows/LinuxおよびMacでプログラムを実行できます。ただし、Linuxの場合は実行する必要があります monoを使用

1
Icarus

C#は.NET Coreのおかげでクロスプラットフォームですが、クロスプラットフォームのユーザーインターフェイスライブラリがないと、非常に基本的なコンソールプログラムしか作成できません。 Windows、Mac、Linux用のクロスプラットフォームアプリを作成するには、 Nevron Open Vision のようなクロスプラットフォームユーザーインターフェイスライブラリが必要です。

0
Ivaylo Milanov