1

HTML5 / モバイル ベースのターンベース タイプのゲーム用に、かなりスケーラブルなソケット サーバーを開発する必要があります。

3 か月でプロトタイプを作成する必要があるため、時間は重要な要素です。私は C# で長年の経験があり、このプロジェクトに最適な言語として選んだ Node または Erlang の経験はありません。残念ながら、これらの言語はどちらも、コードの品質、単体テスト、保守性などに関連する多くの学習曲線があり、経験がないため、コードの品質は低いと思います。

このプロジェクトで開発時間を節約するために C# を使用することを選択するのは、どれほど悪い決定でしょうか。スケーラビリティーや今後のことで頭を悩ませることになるからです。

C# は、最新の Web アプリケーション ソケット サーバーで実行可能であると真剣に考えられていますか?

4

2 に答える 2

5

人はどのプラットフォームでも悪いコードを書くことができます。または良いコード。はい、C# で非常に優れた影響が少なく、非常にスケーラブルなサーバーを作成できます。しかし、これが (プラットフォームに関係なく) 初めて書いたものである場合、効率的に書くことができず、プラットフォームのせいだと結論付けてしまう可能性があります。

たとえば、SO/SE で即時更新を実行する Web ソケット サーバーは C# で記述されており、6 万以上の接続を処理し、CPU としてほとんど登録されていません。しかし、完全に非同期のネットワーク アクセス、バッファのリサイクル、専用のワーカー スレッドなどを使用して、そのために設計されています。

実際、特に Web ソケット コードを探している場合、Windows 8 上の .NET 4.5 には、HTTP.SYS を介した組み込みの Web ソケット サポートが含まれますが (もちろんマネージド ラッパーを使用)、手動で行うこともできます。そのために私たちが書いたライブラリを共有することさえできるかもしれません

于 2012-07-21T15:50:08.943 に答える
2

短い:はい

長い: c# は静的に型付けされており、実際には (Windows 上で) ネイティブ コードにコンパイルされており、私の経験では速度は単純に素晴らしいものです。ガベージコレクターを備えたC++のように考えてください:-)値型+真のジェネリックにより、Javaなどよりもはるかに高速になり、私もそれで十分だと思います。

ベンチマーク ゲームに怖がらないように注意してください。Mono を使用します。

また、本当に問題が発生する場合は、本当に必要な場合は安全でない操作を行うことができます。したがって、将来について心配する必要はありません。

于 2012-07-21T15:13:44.607 に答える