1

現在 C# で Windows GUI として動作するアプリケーションを書き直したいと考えています。問題は、Windows では問題なく動作しますが、Mono の GUI の問題により、Mac と Linux には適合しないことです。

したがって、私の考えは、C# を続行し (C# を実行する必要があり、移植できない重要なサブプログラムのために必要でした)、Windows、Mac、または Linux のすべてのユーザーが簡単にアクセスして作成できる Web アプリケーションとして書き直すことでした。それは動作します。

また、高いアクセシビリティを目指しているため、アプリケーションが「すぐに使える」状態で動作し続けることも重要です。

次のようなソリューションを探しました:

  • KayakHTTP ですが、POST データはサポートしていません。(Web GUI に必要)
  • Mono から XSP2 を使用して ASP.NET MVC Web アプリを作成しますが、Web アプリですぐに使用できるアプリケーションを作成できますか?

または、エンド ユーザー向けにすぐに使える C# Web アプリを用意するというアイデアはありますか? 必要なのは、Mac と Linux に Mono をインストールすることだけです。

ご助力ありがとうございます。

EDIT 1:すべての側面を正しく説明していないことに気づきました。実際、私のプロジェクトには 2 つのアプリケーションがあります。

  • C# で記述された CORE アプリケーションは大きすぎて移植や書き換えができないため、Mac および Linux での実行には Mono を使用する必要があります。
  • C# で記述され、CORE アプリケーションを制御する Windows フォームを使用する私の GUI アプリケーション

私の目標は、GUI アプリケーションを Web アプリ アプリケーションに変換して、Mac と Linux で Windows Forms GUI の煩わしさをなくすことです。

4

2 に答える 2

1

コア アプリケーションをクライアントで実行する必要がありますか?

そうでない場合、最善の方法は、Windows サーバー上で実行される Web (ASP.NET) アプリケーションとしてすべてを書き直すことです。すべてのターゲット プラットフォームのユーザーは、Web ブラウザーを介してこのアプリにアクセスします。

YES の場合、Web アプリはお勧めできません。クライアントに Web サーバーを要求したくありません。次の 2 つの可能性があります。

  • mono で使用できるGUI ツールキットを確認し、すべてのターゲット プラットフォームで使用できるものを選択して、プラットフォームごとに異なるフロント エンドを使用しないようにします。
  • すべてのプラットフォームで最高のユーザー エクスペリエンスを確保するには、プラットフォームごとにネイティブ GUI ツールキットを選択し、それぞれに異なるフロント エンドを作成する必要があります。そこからアクセスします (コマンドラインなど)。
于 2012-03-10T18:53:07.367 に答える
0

これは重複した質問ですが、重複を見つける時間がありません。

簡単に言えば、答えは次のとおりです。これをしないでください。デスクトップ アプリケーションを Web アプリケーションに 1 対 1 で変換することはできません。2 つのパラダイムはあまりにも異なっています。

代わりに、現在のアプリケーションをリファクタリングして、GUI へのすべての依存関係を削除することをお勧めします。次に、要件を満たすまったく新しい Web アプリケーションを作成し、リファクタリングしたコードをデスクトップ アプリケーションから呼び出す Web アプリケーションを作成します。

2 つのプラットフォームの隠れた大きな違いに注意してください。Web アプリケーションはサーバー上で実行されます。複数のユーザーが同時に使用し、複数のスレッドが同時に使用します。リファクタリング中は、違いに敏感なコードに注意してください。たとえば、staticメンバー フィールドを使用するコードは、一度に 1 人のユーザーしか存在しないため、デスクトップ アプリケーションで機能するようになりました。Web アプリケーションでは、staticすべてのユーザーとすべてのスレッドで共有されます。

これはあなたが考えていたものではないかもしれません。

于 2012-03-10T22:42:01.377 に答える