2

[バックグラウンド]

ここに来る前に書かれた C# アプリケーションがあります。現在、私は開発組織には属していませんが、インターネット マーケティング組織内のサブグループで技術リーダーを務めています。私の責任は、プロセスの自動化、最小限のデスクトップ サポート、そして私たちの生活を楽にするカスタム アプリです。

[/バックグラウンド]

【アプリ詳細】

URL のリストからカスタム データベース ファイルを作成するアプリがあります。これらの種類の db ファイルを使用する 2 つのアプリケーション用に、1 つの入力ファイルと 2 つの出力ファイルを持つように設計されています。2 つの出力ファイルの違いに関するルールは、コードにコンパイルされます。

[/アプリの詳細]

内部 C# アプリは、再構築しないと変更できないビジネス ロジックを使用してコンパイルする必要がありますか?

4

6 に答える 6

11

内部アプリケーションには、プロセスをサポートするという 1 つの目標があります。

出力を作成するためのルールが単純で、毎日変更され、ユーザーによって設定されている場合、それをバイナリにコンパイルすることは完全に間違っており、GUI と新しいプログラマーのセットへの投資は非常にうまくいく可能性があります。ルールが複雑で、年に 1 回変更され、管理者によって義務付けられている場合、それらをバイナリにコンパイルすることは、それらを維持し、ユーザーが内部をいじるのを防ぐための簡単で費用対効果の高い方法です。

いつものように、答えは「場合による」でなければなりません。

于 2009-04-02T16:03:02.453 に答える
2

ロジックが定期的に変更される場合は、プログラムに組み込むことは避けてください。一方で、内部的なものなので、アプリの再構築に必要なプロセスは最小限または存在しないと推測しているため、それほど大きな違いはないかもしれません。

于 2009-04-02T16:02:42.877 に答える
2
  • ビジネス ロジックを変更してから再コンパイルするには、どのくらいの時間がかかりますか?
  • 新しいバージョンで再コンパイルせずにビジネス ロジックを変更するには、どのくらいの時間がかかりますか?
  • 再コーディングにはどのくらいかかりますか?
  • これは、将来的に費やされる余分な時間に関して保守にどのように影響しますか?
  • ビジネス ロジックがコード形式であるため、アプリケーションを必要としている人がビジネス ロジックを変更できない人はいますか?

この5つの質問に答えると、答えが得られます。

于 2009-04-02T16:04:04.900 に答える
1

ロジックを変更する必要がない場合は、おそらくコードと一緒にコンパイルする必要があります。

一方、このビジネス ロジックの動作を変更できる特定の要因がある場合は、その動作を変更する xml 構成ファイルなど、変更する手段を提供する必要があります。

于 2009-04-02T16:03:47.523 に答える
0

確かに、ユーティリティが組織内でのみ使用され、単一の目的で使用されることがわかっている場合は、ビジネス ルールとロジックを混在させても問題はありません。過剰な設計 (この場合、決して再利用されないコードを再利用可能にすること) は、リソースを効率的に使用することにはなりません。

于 2009-04-02T16:04:13.807 に答える
0

私は通常、変更の可能性に基づいて複数の構成戦略を採用しています。

まず第一に、何らかの方法で文書化せずにビジネス ルールをコードに記述しないでくださいコードには多くの変数があり、正しい動作を維持しながら安全に変更できるのはそのうちのいくつかだけです。通常、変更可能な動作を識別するために、クラスの先頭に定数を置きます。つまり、

// Prefer this
const int AllowDownloadAttempts = 2;
if (AttemptDownload() > AllowDownloadAttempts) RegisterAndAllowDownload();

// Over this
if (AttemptDownload() > 2) RegisterAndAllowDownload();

私が従う基本的なルールは、[-1, 0, 1] 以外のものはすべて文書化する必要があるというものです。

重要ではなく、頻繁に変更される可能性がない場合は、アプリケーション構成ファイル (App.config など) に配置し、厳密に型指定された構成クラスを介してアクセスします。これにより、その使用法を追跡して、安全な時期を知ることができます。削除または変更します。

頻繁に変更する必要がある場合、またはビジネス ユーザーが変更する必要がある場合は、データベースに保存し、それを編集するためのシンプルな GUI を提供し、アプリケーションのロード時に厳密に型指定された構成クラスにロードします。

于 2010-01-26T15:31:07.820 に答える