サブアプリを使用したWebアプリケーションの提案/推奨事項
-
28-09-2019 - |
質問
私は大きなWebアプリケーションのためのアーキテクチャについて考えて開発し始めています。使用するテクノロジーやフレームワークについて提案や推奨事項を取得したかったのです。
このアプリケーションは、IISで実行され、ASP.NETを使用して、Windows認証を使用したイントラネットベースのWebサイトになります。サブウェブアプリケーションを備えたメインWebアプリケーションとして構成する必要があります。基本的に、スコープ全体は、個別の機能的に完全なモジュールまたはサブアプリケーションで構成される複合ブラウザーベースのイントラネットアプリケーションです。
この複合Webクライアントアプリケーションには、ユーザーインターフェイス構造全体を提供するメインまたはシェルモジュールがあります。さらに、シェルモジュールは、すべての個々のサブアプリまたはモジュールが使用できる一般的なサービスへのアクセスを提供します。その後、各サブアプリ/モジュールには独自の機能と実装が含まれますが、シェルユーザーインターフェイスと統合されます。
次に、ユーザーとどのサブアプリが利用可能かに基づいて、メインまたはシェルアプリは、個々のアプリケーションにアクセスする方法としてタブ(またはボタンなど)を動的に構築します。また、ユーザーとアプリケーションのデータをデータベーステーブルに保存します。
したがって、たとえば、レポートアプリケーション、ディスプレイアプリケーション、およびおそらく他のいくつかの異なるアプリケーションがあります。メイン/シェルアプリケーションの起動時に、ユーザーが誰であるかを判断した後、メインアプリはデータベースをクエリして、ユーザーが使用できるサブアプリを決定してUIを構築します。その後、ユーザーは利用可能なサブアプリ間でナビゲートし、それぞれで作業を行うことができます。
これがすべて理にかなっていることを願っています。
とにかく、もしあれば、既存のテクノロジー/フレームワークが、このようなシステムをアーキテクテクティブして開発するのに最適なものであると思います。
Webクライアントソフトウェアファクトリーは良い選択でしょうか?他のMVPソリューションが良い選択でしょうか? ASP.NET MVCは良い選択でしょうか?他の何か????これらはどれも良い選択ではないでしょう。私たちは、Webフォームを使用してすべてをゼロから開発するだけでよいですか?私が知っておくべき他の情報はありますか?
ありがとう!!!!
解決
ASP.NET MVC2は、エリアの使用も促進します。これが便利なリンクです
http://odetocode.com/blogs/scott/archive/2009/10/13/asp-net-mvc2-preview-2-areas-and-routes.aspx
基本的に、エリアを使用して「サブアプリケーション」を破ることができます
他のヒント
フレームワークを議論する前に、そのようなシステムを構築する際に考慮すべき点(サブアプリをプラグインできる):
- 考えられる統合ポイント(データ、サービス、ビジネスロジック、UI)
- クロスカットの懸念(システムロギング、監査記録、設定、セキュリティ)
- 誰がサブアプリを開発するのか(あなた、あなたのオフィスで働く人々、または誰か /より大きなコミュニティ)
フレームワークを飛び込んで構築する前に(または既存のものを選択する)前に、最初にこれらの側面を介して考える必要があると思います。
Farmeworksに関しては、多くのフレームワークが見つかりますが、あなたが望んでいるものの全範囲を提供するものはほとんどありません。
- ASP.NET Webformsは基本的に完全に空いている土地の小包です。ほとんどのものを自分で構築するか、追加のフレームワーク(MS Enterprise Librariesなど)を持ち込む必要があります。
- ASP.NET MVCは事実上同じものですが、異なるスタイルです。
どちらも「フレームワーク」ではありませんが、これらのいずれかを低レベルのベース「プラットフォーム」として使用できます。
- MS ENT LIBSは、クロスカットの懸念(データアクセス、ロギングなど)に最適ですが、それだけです。
- 良い範囲もあります 依存関係の反転フレームワーク しかし、これらは完全な解決策ではありません。
大きなことは、依存関係を制御することです。データレイヤーを抽象化し(開始時)、インターフェイスの分離に関する原則、再利用などを遵守することです。
あなたが考慮することができる1つのオプション(そして私はここで自分のトランペットを吹いているので、私は公平ではありません)は、私が構築したオープンソース.NETアプリケーションフレームワークです( 'モルフフォリア「パートタイム、約5年かかりました)。あなたがそれを使用しなくても、あなたはいくつかの良いアイデアやコードを見つけるかもしれませんあなたは「盗む」ことができます:
Morphfolia:
- 建築
- 統合オプションの概要
- 機能と機能(概要)
- 属性駆動型 (プラグアンドプレイアーキテクチャを提供するための私の答え)
でダウンロードできます http://morphfolia.codeplex.com/