データ アクセス層がまったく異なるサーバー (Linux) に保持される 3 層アーキテクチャを使用して、ASP.net と Oracle に基づくアプリケーションを開発したいと考えています。以前に質問を投稿したところ、一般的な asp と NHibernate を使用するよう提案された人もいました。Web アプリケーションを開始する前に、そのことを確認したいと思います。あなたのアイデアを詳しく教えてください。
ありがとうございました
データ アクセス層がまったく異なるサーバー (Linux) に保持される 3 層アーキテクチャを使用して、ASP.net と Oracle に基づくアプリケーションを開発したいと考えています。以前に質問を投稿したところ、一般的な asp と NHibernate を使用するよう提案された人もいました。Web アプリケーションを開始する前に、そのことを確認したいと思います。あなたのアイデアを詳しく教えてください。
ありがとうございました
2 つの質問があります。どの階層化と階層化を使用するか、およびどのテクノロジを使用するかです。
階層化: 2 つの定義の問題があります。
一般に、層に分散する論理層があります。階層にレイヤーを分散する方法(および、質問を正しく読んでいる場合は、あなたが狙っているもの):
通信: 1 <> 2: HTTP、2 <> 3: ネイティブ データベース形式。
テクノロジー: NHibernate は良いアイデアですが、O/RM の世界に慣れていない場合は少し難しいかもしれません。NH を使用する場合は、Fluent NHibernate の取り組みを確認してください。これにより、XML を使用する代わりに C# でエンティティとデータベース テーブル間のマッピングを指定できます。NHibernate に飛び込むのが少し難しいと思われる場合は、Entity Framework などの標準の Microsoft ソリューションを検討してください。現在のバージョンにはいくつかの問題がありますが、単純なシステムでは大したことではないかもしれません。
ASP.NET MVC の使用を検討したことがありますか? もしそうなら、S#arp アーキテクチャは良い出発点です (MVC と NHibernate の両方にとって)。もう 1 つの提案は、同じくオープン ソース アーキテクチャである CSLA を検討することです。CSLA は、テスト容易性や懸念事項の分離を念頭に置いて設計されていませんが、理解しやすいかもしれません。
UI には ASP.NET Webforms または ASP.NET MVC を使用し、ビジネス ロジックとデータ アクセスには追加のレイヤーを使用できます。私のチームのプロジェクトが階層化されている方法は次のとおりです。
ティア 1: Windows Server 2003 (IIS)
ティア2:
それが役立つことを願っています。