0

データ アクセス層がまったく異なるサーバー (Linux) に保持される 3 層アーキテクチャを使用して、ASP.net と Oracle に基づくアプリケーションを開発したいと考えています。以前に質問を投稿したところ、一般的な asp と NHibernate を使用するよう提案された人もいました。Web アプリケーションを開始する前に、そのことを確認したいと思います。あなたのアイデアを詳しく教えてください。

ありがとうございました

4

2 に答える 2

1

2 つの質問があります。どの階層化と階層化を使用するか、およびどのテクノロジを使用するかです。

階層化: 2 つの定義の問題があります。

  • 「層」とは物理層のことですか?私にとって、層は物理的なもの、つまりサーバー (またはサーバーのセット) ですが、論理層に対して同じ用語を使用する人もいます。
  • データ アクセス レイヤーは、実際のデータベース (Oracle/Linux で実行する) ではなく、.NET で作成するソフトウェア レイヤーです。

一般に、層に分散する論理層があります。階層にレイヤーを分散する方法(および、質問を正しく読んでいる場合は、あなたが狙っているもの):

  1. ブラウザ: UI を実行します
  2. Web サーバー: プレゼンテーション、ビジネス、およびデータ アクセス レイヤーを実行します。
  3. データベース サーバー: ストレージ「レイヤー」を実行します。

通信: 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 は、テスト容易性や懸念事項の分離を念頭に置いて設計されていませんが、理解しやすいかもしれませ

于 2009-09-30T05:55:17.060 に答える
0

UI には ASP.NET Webforms または ASP.NET MVC を使用し、ビジネス ロジックとデータ アクセスには追加のレイヤーを使用できます。私のチームのプロジェクトが階層化されている方法は次のとおりです。

ティア 1: Windows Server 2003 (IIS)

ティア2:

  • Linux サーバーで実行されている Oracle データベース

それが役立つことを願っています。

于 2009-09-30T15:21:57.343 に答える