2

私は、独自の生産的なソフトウェアを作成する冶金企業で働いています。現在のニーズに合わせて配信計画を変更することを検討しています。私はあなたがいくつかのアイデアを与えることを望んでいました.

私たちのアプリケーションは、WinForms、C# Framework 4.0 です。これはイントラネットにあります。3 つのプロジェクト (UX、ビジネス レイヤー、モデル レイヤー) に分かれています。アプリケーションは「論理的に」モジュールに分割され、それぞれが異なるタスクを実行しますが、いくつかの機能を共有します (つまり、商用モジュール、金融モジュール、見積もりモジュール)。

必要に応じて、すべてのユーザーをログアウトして、アプリケーションを更新できるようにすることも必要です (深刻な更新の場合)。

2 つのシナリオがあります (他のシナリオを追加することもできます)。

シナリオ 1。

アプリケーション全体は、ClicOnce で配布される 1 つの EXE のみです。

長所:

  • 変化とその影響を簡単に検出できます。
  • たった1つのディストリビューション

短所:

  • 小さな変更は会社全体に影響します (変更が「モジュール」に影響しない場合、更新する必要はありません)。
  • 分布が重い
  • ディストリビューションにバグを残さないように、テストを改善する必要があります。

シナリオ 2。

異なる EXE (モジュールごとに 1 つ) を「起動」する 1 つの小さなアプリケーション (EXE)。

長所:

  • ライターを更新します。
  • 孤立したエラー。
  • 孤立した開発。

短所:

  • 影響を受ける各モジュール (EXE) を再コンパイル/配布するために、各変更を検出する必要があります。
  • 共有のもの (フォーム、クラスなど) を保存するために、新しいプロジェクトを作成します。

どう思いますか?他の配信プランをご存知ですか?

ありがとう!

ハビエル

4

2 に答える 2

3

私はあなたの 2 つのシナリオのハイブリッドを採用し、モジュールごとに ClickOnce を展開します。共有コードの変更は、依存モジュールごとに新しい展開を「トリガー」します。

System.Deployment 名前空間、特にApplicationDeployment.CheckForUpdate メソッドを調べて、アプリケーションが自動的に更新されるように「重大な更新」要件を統合することができます。

于 2012-07-04T15:17:01.837 に答える
0

うーん...誰かがすでにこの問題を抱えていると思います。彼は動的にリンクされたライブラリを作成することにしました。

あなたが持っている必要があります

  • 1 exe : 非常に単純なコードの GUI : モジュールの呼び出しのみ

  • n dll : GUI または他のモジュールによって呼び出される明確な API を持つモジュール。

その後、1 つのモジュールを自動更新で簡単に置き換えることができます。それが、たとえばIEの仕組みです。

于 2012-07-04T15:17:01.970 に答える