1

MVC 4/C# 4 を使用して、ホストされたビジネス SaaS アプリケーションを構築しています。ベース コード レイヤーを可能な限り活用する、顧客固有のリソース ファイル、css、ビュー、およびビジネス ロジックが必要です。これら (リソース ファイル、css、ビュー、ロジック) のそれぞれは、これを達成するためにどのように構造化する必要がありますか?

これはおそらく非常に詳細な回答だと思います...しかし、これを調査するためにどこから始めればよいのか、何を検索すればよいのかわかりません。さらに調査できるように、何か指針はありますか?

それぞれについての私の最初の考えは次のとおりです。

ビュー

ユーザーに基づいて Switch ステートメントを使用して、さまざまなビューを返します。

CSS

ビューで switch ステートメントを使用して、ロードする CSS を指定します

リソース ファイル

現在は使用していませんが、実装する必要があるため、どのように機能するか正確にはわかりません。私が見たところ、リソース ファイルをクラス メタデータ レベルで指定できます。これはコンパイル時のことです。ユーザーレベルでこれをどのように変更するかわかりません。ここでは、文化に基づいて変更する方法を確認できます...ただし、ユーザー プロファイル属性 (所属する会社など) によってではありません。

これは始まりのように見えます...詳細を確認します。

ビジネスの論理

私のサービス レイヤーでは、switch ステートメントを実装できましたが、面倒です。基本クラスをオーバーライドするが、特定のユーザーのみを対象とする新しいクラスを作成する方法はありますか? または、これらを別のプロジェクト/dll に入れて、特定のユーザーに対してのみその dll 参照を使用しますか?

以前は IBM iSeries で作業していましたが、ユーザーがログイン時に設定できるライブラリ パスの概念がありました。基本コード パス ライブラリをオーバーライドするカスタム コード パスが存在する可能性があります。MVCに似たものはありますか?

データのローカライゼーション 私のデータベースには、Orders 用のテーブルと OrderStatuses 用のテーブルがあり、ユーザーがステータスを選択するためにドロップダウンに表示される場合があります。これらのステータスには、「オープン」と「クローズ」があります。しかし、別の顧客がスペイン語でそれを望んでいる可能性があります.これをどのように処理しますか?

私が見逃している他の考慮事項はありますか?

4

2 に答える 2

2

switch ステートメントを使用する

誰かがオブジェクト指向のコードを書いていて、変数の要件を制御するための switch ステートメントに言及するたびに、アラーム ライトが点滅し始めます。

類似しているが異なる要件がある場合、ポリモーフィズムはあなたの味方です。

要件の完全な詳細を知らなければ、具体的な答えを提供することは困難ですが、ファクトリ パターン/依存性注入を使用して、特定のユーザー (または、おそらく特定のユーザーに関連付けられた会社) に適したオブジェクトを提供することを検討してください。

UIレイヤー

一般的に言えば、特定のユーザー/顧客の要件を実装し、そのユーザーに適したビューを返す共通のサブクラスに基づいて、ファクトリを使用してコントローラー インスタンスを返すことができます。

私は、ASP.Net MVC の配線ルートの詳細に精通しており、それを具体的に設定する方法を提案するほどではありませんが、正しいアプローチのように感じます。おそらく、別のポスターがより多くの光を当てることができます.

ビジネスの論理

これは、要件が大幅に異なる場合のポリモーフィズムの古典的な使用法です。顧客ごとのクラスに代わるものとして、構成主導の動作とルール エンジンがあります。最適な選択は、特定の状況によって異なります。

データのローカリゼーション

DB 内の注文ステータスなどは、「Open」などのテキストにバインドされるべきではありません。これらは、バイナリ表現 (INT など) にバインドする必要があります。ビューに任せて、その意味をユーザーの言語に固有のものに翻訳します。

于 2013-06-26T17:33:00.780 に答える