4

C#.NET 2010 を使用しています

私は 20 店舗の POS プロジェクトに取り組んでおり、既に各店舗にインストールされ、利用されています。ある日、支払い方法などのフォームに変更があり、UI フォームを再設計し、ロジック コードを変更する必要があります。その後、プロジェクトを再コンパイルして、すべてのアウトレットに更新を送信しますが、簡単ではありません。次に、プロジェクト内の各フォームをモジュールとして分離する必要があるため (問題がなければ DLL ファイルを使用します)、フォームを変更したときにすべてを再コンパイルする必要はありません。必要なフォームを修正してコンパイルし、アウトレットに更新するだけです。

では、フォームを DLL にコンパイルできますか? もしそうなら、それを達成する方法は?それとも、私は自分のアイデアを得るために正しい軌道に乗っていないのでしょうか?

前もって感謝します..

4

5 に答える 5

3

更新しました

CPの記事へのコメントで指摘されているように、前の回答には多くの欠陥があります。この記事では、C#でのプラグインアーキテクチャの実装を改善しています。その他のオプションについては、この回答を参照することもできます。

前の回答

プラグインアーキテクチャを使用してそれを行うことができます。これがあなたを助けるかもしれない非常に良い記事です。

この記事では、単一のモジュールを別のアプリケーションのプラグインとして組み込む方法、またはスタンドアロンアプリケーションとして使用する方法について説明します。この記事では、上記の結果を得るのに最小限の変更が必要な方法を示します。

于 2012-04-18T05:55:44.287 に答える
0

DLL にフォームを含めることができます。フォームは単なる別のクラスであり、DLL 内の他のクラスと同様に、通常は実際にはいくつかのクラス (つまり、部分クラス) であり、まったく同じものを参照します。外部アセンブリからアクセスできるように、パブリックであることを確認する必要があります。

ただ用心する必要があります。おそらく、密接に連携して機能するフォーム (つまり、共通の参照) を同じアセンブリに保持することをお勧めします。過変調によって問題が発生する可能性があります。

于 2012-04-18T05:24:16.920 に答える
0

DLL の配布に問題はないと思います。セキュリティ上、署名されていることを確認することをお勧めします (これは、プロジェクト プロパティを介して VS 2010 で実行できます)。DLL 内のクラスによって実装される支払い UI 機能のインターフェイスを定義する必要があります。アプリの呼び出し部分 (不変の UI) は、実際の (具体的な) フォーム オブジェクトではなく、このインターフェイスを介して呼び出しを行うことができます。

于 2012-04-18T05:29:02.190 に答える
0

ClickOnce アプリケーションを公開すると、アプリケーションの更新の難しさが軽減されます。

于 2012-04-18T05:38:34.917 に答える
0

その後、プロジェクトを再コンパイルしてすべてのアウトレットにアップデートを送信しますが、それは簡単ではありません。なぜ「各フォームをモジュール/DLLとして分離する」ことで問題が解決すると思いますか..すべてのプロジェクトからコンパイルされた DLL のサイズが大きすぎて送信できないためです? 各フォームを独自のモジュール/DLL に分離しようとしている場合、最終的に 1 つのソリューションで複数のプロジェクトが作成される可能性があります...

于 2012-04-18T05:40:45.380 に答える