質問

.NETにはかなり慣れていないので、これはばかげた質問のように思えるかもしれません。

ASP.NETで再利用できる.NETを使用して、C#でコンポーネントを構築できます。たとえば、アプリケーションをWebに移植したい場合。

可能であれば、それらはどれくらいポータブルですか?つまりGUIはある程度再利用できますか?ベースとして使用する中間形式はありますか、それともC#コンポーネントをバイナリとして使用する必要がありますか?

ありがとう。

編集:

ご意見ありがとうございます!私はこの問題の設計面、つまり再利用のためにコンポーネントをモデル化する方法に精通しています。しかし、質問は本当に約-ASPとWindowsの間で.NETをどの程度再利用できるのか、ということに気づきました。 .NETコンポーネントの特定のパッケージは環境に依存せず、一部はプラットフォーム固有であると言えますか?

役に立ちましたか?

解決

絶対-.NETクラスは、あらゆる種類の.NETアプリケーションで使用できます。ただし、アプリケーションのどの部分について話しているかに依存します。

一般に、Windowsフォームのユーザーインターフェイスは、ASP.NETユーザーインターフェイスとして再利用できません。これは、設計上の制約がまったく異なるためです(つまり、Webブラウザーは少数のコントロールのみをサポートし、多くの場合フロー(グリッドではなく)レイアウトなどを使用します) 、イベントは異なります(WebフォームボタンはWindowsフォームボタンなどとは異なります)。

ただし、簡単に再利用できるのは、正しく処理すればビジネスロジックです。クラスがWindowsフォームかWebフォーム(またはコンソールアプリケーション、Webサービスなど)かを内部的に何も知らないようにクラスを設計します。つまり、クラスはビジネスロジックの純粋な実装でなければなりません。その後、これらのクラスを任意のコンテキストで使用できます。

他のヒント

あなたの質問に対する簡単な答えはイエスです-2つのビュー間で共有したいコードをインターフェースに依存しないクラスに分離し、できれば別のアセンブリに入れて、そのアセンブリを含めてください。

長い答えはより複雑です-これを行う能力は、アプリケーションとアプリケーションによって異なります。背後で多くのことを行わないUI集約型アプリケーション(たとえば、ある種のグラフィックゲームなど)のコードを少なく分離できるようになります。シーン(たとえば、複雑なデータ操作プロセスを開始する1つのボタンで構成されるUI)。

最後に-.NETはこれを行う機能を提供します。これを行う実際の能力は、独自の設計能力と特定の要件に大きく依存します。このテーマについては多くの執筆資料があります-最初にデザインパターンを確認することをお勧めします(元の本はC ++で例を書いていますが、誰かがC#で例を使って本を書いたと思います。それの品質。)

これまでにやったことはありませんが、分離したクラスに共通のコードを配置できると思います。 Windowsフォームとasp.netのプログラミング方法はまったく異なるため、UIを複製する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top