2

私は最近、大規模なエンタープライズ システムのデモに参加しました。このシステムの Web ページは、クライアントが追加したフィールドを含めるようにカスタマイズできます。私が理解している方法では、それらのアーキテクチャは次のレイヤーで構成されています。

  1. データベース
  2. Web サービス API
  3. レイアウトを指示する XML ファイル
  4. XML ファイルから生成される Web ページ。

簡単にブランド化できる Web ポータルの構築を調査するように依頼されたとき、それは良い方法だと思いました。今の問題は、それをどのように設計するかです。

データベースと Web サービス層については理解していますが、.NET で Web サイトを構築するさまざまな可能性に少し戸惑っています。

上記のカスタマイズ性とアーキテクチャの要件を考慮すると、オプションを理解する方法は次のとおりです。

  1. Webforms - 私が最もよく知っているオプションですが、本質的にはコード ビハインドで強化された HTML です。XML レイアウトのアイデアで機能させるには、おそらく多くの作業が必要になると思います。
  2. WPF - XAML 中間層が組み込まれていますが、私が理解しているように、WPF は実際にはブラウザー アプリケーションでのみ使用でき、Web サイトでは使用できません。
  3. Silverlight - Web サイトよりもアプレットの構築に適していますよね?
  4. MVC - これは興味深いように見えますが、私が見たすべてのデモでは Entity Framework も使用されています。すべての自動コード生成を備えた Entity Framework は、まったく新しいアプリケーションにより適しているように思えます。私の場合、すでに存在する非常に大きなデータベースがあります。

上記のいずれも適切でない場合は、別の方法を考えました。ブランディング要素を返す Web サービスを使用して、標準的な Web フォーム サイトを作成することができます。これは、最初に説明したものとまったく同じではありませんが、私のニーズには十分です。

それとも、間違った木を吠えていますか?

4

1 に答える 1

1

MVCに対するあなたの批判は間違っていると思います。1 つ目は、Entity Framework を使用する必要がないことです。2 つ目は、使用したとしても、最初にデータベースを作成してエンティティを生成できます。

WPF と Silverlight に対するあなたの評価は、imo ではかなり適切です。

Webフォームでこれを行うこともできますが、おそらくMVCアーキテクチャで行う方がクリーンになると思います。非常に簡単に言えば、クリーンな HTML を使用し、すべてのブランディング要素を外部 CSS ファイル (ロゴ、色など) に配置すると、カスタム ブランドへの道のりは半分になります。別のレイアウトでさえ、CSS ファイルによって潜在的に定義される可能性があります (ただし、エンド ユーザーは CSS をよく知っている必要があるため、その外観をカスタマイズするのは難しいかもしれません)。

追加のフィールドを構築することは潜在的により困難です:

私がこれを実装しようとしている方法は、標準データベース レイアウト (ユーザー名、パスワード、名などを含むユーザー テーブル) の定義済みフィールドと、「カスタマイズ可能なフィールド」の追加サポートの組み合わせです。Entity-attribute-value パターンの使用

そこから拡張可能なシステムを開発する必要があります。2. 同じ XML ファイルを読み取り、投稿されたフォームからデータを受信し、それをデータベースに保存する方法を知ることができる汎用モデルを生成します (この場合、おそらく標準のリレーショナルと EAV の組み合わせよりも管理が容易です)。

「選択メニューには次の 3 つのオプションがあります」またはテキスト入力がこれと一致する必要があるなどのことを可能にするために、XML ファイルを拡張可能に設計する方法を理解するために、シリアル化可能なエンティティとして .NET データ コントラクトを確認することをお勧めします。正規表現。

一度にすべてを構築することはできないため、拡張性に注意してください。

于 2012-07-08T18:48:12.393 に答える