web-dev-qa-db-ja.com

C#は実際にはマルチプラットフォーム言語ですか?

C#(および.netプラットフォーム全般)は、マルチターゲットアプリからの優れたオプションになりつつあるようです。

  • 公式のMS .netフレームワーク:フルブローウィンドウ開発、asp.net開発、Windows Phone開発など.
  • モノおよびそのすべての派生物:モノタッチ、モノドロイド:その他の世界。このツールは現在RTMです。

  • それは、C#が最も人気のあるプラットフォーム(デスクトップ、Web、モバイル)をターゲットにするのに適した言語になっているということですか?

  • ターゲットプラットフォーム(Objective C、Javaなど)の「ネイティブ」言語を使用する方が良いですか。
  • それは煙のスクリーンとマーケティング言語だけですか?

プラットフォーム間でコードをコピー/貼り付けできないことに私は実際に気づいていることに注意してください。しかし、アプリケーションの下位層(モデル、ビジネスなど)は再利用できると確信していますが、上位層(Guiなど)をプラットフォームに適合させる必要があることはわかっています。私の目標は、技術的なコードの共有よりも必要なスキルに重点を置いています。

[編集]私am c#を多用する会社のc#開発者。そのため、会社のターゲットプラットフォームの範囲を拡大する計画でc#について話しました。

20
Steve B

はい、一般的に、.NET Frameworkは、幅広いデバイスを対象とするアプリに最適です。しかし、これは.NETに固有のものではありません。 Javaはずっと以前からそうでした。覚えておくべきことは、特定のプラットフォーム用のネイティブツールに代わるrealがないことです。

.NETで作成したMacアプリケーションはneverがネイティブのMac OS Xアプリケーションのように見え、これは過半数 OS Xユーザーの問題と見なされます。ビジネスモデルがユーザーの満足度を最大化するよりも飽和度を最大化するかどうかに応じて、戦略的にそれは重要ではないかもしれませんが、選択を行う際に留意すべきことは確かです。

LinuxおよびWindowsのGUIシステムは、どのアプリケーションが「ネイティブ」に見え、プラットフォームにうまく適合するかという点で、いくぶん柔軟性があります。しかし、私は主に明確なインターフェースガイドラインの欠如と、アプリケーション開発者が歴史的に存在するものを無視することをいとわないという事実に責任があると非難します。多くのMacユーザーは、Macを一貫して好みますそのためその一貫したユーザーインターフェイスの。

GUIレイヤーを特定のプラットフォームに適合させる必要がある(そして、Objective-Cなどの別の言語でGUIレイヤーを完全に書き直す必要がある)ことを考えると、ライブラリコードにのみ.NETプラットフォームを活用できます。そして、私の意見では、C++に対するC#の明確な勝利はありません。

迅速なアプリケーション開発のためには、C#や.NETよりも優れた代替手段はほとんどありません。また、アプリをすばやくプッシュして、さまざまなプラットフォームですぐに利用できるようにすることは、確かにビジネス上の利点です。しかし、ユーザーを本当に満足させることを目的とする真のマルチプラットフォームアプリケーションの場合、それは必ずしも特効薬というわけではありません。

12
Cody Gray

Microsoft .NETは、公式のCLR、DLR、BCL、CLI、およびCLSの実装です。他の企業、グループ、コミュニティ、ワークグループは、最新のフレームワークと言語バージョンを1対1で実装できるような方法でMicrosoftに関連付けられていません。

基本的に、具体的なプロジェクトで利用したい言語とフレームワークの機能を確認し、これらが非公式の.NET実装に存在するかどうかを確認する必要があります。

コンパイルが1回のソリューションを期待していたるところに配布しているとしたら、それは誤りです。ケーススタディを作成する必要があります。

6

私はXBOXとWindowsマシンで実行されているゲームでC#を使用し、ロボットソリューションのCompact Frameworkアプリでそれを使用し、iPad開発用のMonoTouchを使用しています。通常、与えられたプラットフォーム上であなたのことを行う方法があります。コア層はそれらのほとんどでほぼ同じです(実際に必要なケーススタディ)。問題は-私はそれをシリーズの問題だと考えています-開発環境です。私はVisual Studioとその機能に慣れています。しかし、例えばMonoDevelopは私を狂わせます。

2
scarlaxx