2

MVC4 を使用して .NET でビジネス アプリケーションを作成しています。このアプリケーションは、複数の企業顧客によって使用され、それぞれが独自のブランド要素 (スタイルシートやロゴ イメージなど) を所有しています。UI は、アプリケーションのさまざまな領域にデータを入力するために、バックエンド プラットフォームの Web サービスを呼び出します。これらの Web サービスを呼び出すときは、顧客固有のパラメーターを指定する必要があります。

私の目標は、アプリケーションが URL 自体の一部に基づいて適切なブランド スキームと Web サービス パラメーターを動的にロードするようにしながら、アプリケーションの単一のインスタンスをデプロイすることです。アプリケーションは一般向けのコンシューマー アプリケーション (法人顧客に代わって私の組織がホストする) になるため、URL は覚えやすいものにする必要があります (したがって、アクセスにクエリ文字列パラメーターに依存しないようにする必要があります) 。 .com/会社名.

その意図は、限られた程度のブランディングをサポートしながら、単一のコード ベースと機能セットを備えた製品を提供することです (企業顧客ごとに複数の個別の展開を行うよりも製品のサポートが容易になります)。少し手動で操作をセットアップするだけで問題ありません (顧客ごとに新しい app.config、web.config、または仮想ディレクトリを作成するなど)。

このタイプのアプリケーションを実装するための推奨されるアプローチまたはベスト プラクティスを推奨できる人はいますか? URL 構造を解析する必要がある場合は、その構造が開発、QA、およびステージング環境で適切に複製できるようにする必要があることに注意してください。

私の現在のアプローチでは、顧客ごとに異なる web.config ファイル内の「appsettings」キーとして参照されるカスタム ブランディングと Web サービス パラメーターを使用して、さまざまな顧客固有の環境にアプリケーションを個別に展開する必要があります。これは少数の展開では問題ありませんが、数十または数百の顧客サイトで機能のアップグレード/バグ修正のプッシュが必要になると扱いにくくなります. ありがとうございました!

4

2 に答える 2

1

最も簡単な解決策は、そのほとんどに動的スタイルシートを使用することです。ASP.NET MVC のダイナミック CSS の例はここにありますか? および完全なソース例http://www.codeproject.com/Articles/171695/Dynamic-CSS-using-Razor-Engine

残りは詳細です。会社の識別子を URL (または Cookie - dev/qa でテストするのに役立ちます) から解析する必要があります。顧客固有の値を、ストレージ、データベース、または構成ファイルから適切なものを引き出す必要があります。考えるべき1つの無関係なこと。https://mysite.com/companyname。会社が名前を変更した場合はどうなりますか?https://mysite.com/companyname/590のように、見栄えがよく、ひそかに技術的な URL が必要になる場合があります。ユーザー フレンドリな名前を表示できますが、コードでは無視して、会社 ID のみを使用してください。その後、会社が名前を変更しても、大したことはありません - https://mysite.com/somethingElse/590

于 2012-07-16T13:56:08.217 に答える
0

これを実現する 1 つの方法は、顧客ごとに 1 つのフォルダを持つディレクトリ構造を作成することです。次に、すべてのフォルダーに独自の顧客固有のファイル (css、テンプレート、ブランディングなど) があります。アプリケーションの開始時に適用される共有/共通フォルダーをすべての顧客間で共有することもできます。

URL から抽出する必要があるのは、クライアントの名前だけです (可能な場合)。これにより、ロードして適用するフォルダーとその内容が決まります。

于 2012-07-16T14:44:21.590 に答える