問題タブ [3-tier]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
321 参照

3-tier - サービス層は外層か?そうでない場合、それはどのレイヤーの下にありますか?

サービス層は外層か?そうでない場合、それはどのレイヤーの下にありますか?

返信してください

ありがとう

0 投票する
7 に答える
4752 参照

c# - n層アーキテクチャ:ビジネスオブジェクトを格納するのに最適な場所?

3層アーキテクチャ(UI、ビジネス、データ)があるとします。通常、データアクセスオブジェクトを保持するために「モデル」または「共通」と呼ばれる4番目のプロジェクトを作成すると、他の各プロジェクトがこのプロジェクトを使用します。

現在、データアクセスオブジェクトの一部に、データプロジェクトへのアクセスを必要とするSave()などのメソッドがあるプロジェクトに取り組んでいます。したがって、データプロジェクトでモデル/共通プロジェクトを使用しようとすると、循環参照が作成されます。

このシナリオでは、データアクセスオブジェクトを保持するのに最適な場所はどこですか?データプロジェクト自体の中にそれを保持することはできますが、データアクセスオブジェクトについて知る必要がある私のUIプロジェクトは、データレイヤーにアクセスする必要があります。これは良くありません。

0 投票する
4 に答える
3321 参照

asp.net - 3 層 Web アプリケーションで例外を処理する方法と場所は? 具体的には SQL データベースの例外

私は標準の 3 層 ASP.NET Web アプリケーションを構築していますが、どこで特定のことを行うべきか、特に例外を処理するのに苦労しています。

いくつかの例について Web を調べてみましたが、すべてがどのようにリンクされているかを示すプロジェクト全体にまで及ぶものは見つかりませんでした。

私のデータ層では、SQL Server に接続していくつかのことを行っています。結果として発生する可能性のある例外をキャッチする必要があることはわかっていますが、どこでそれを行うべきかわかりません。

私が読んだことから、UI層でそれを行う必要がありますが、その場合、データベースへの接続が閉じられていることを確認する方法がわかりません. これを行う方法を明確にできる人はいますか?また、ベスト プラクティスに従った 3 層 Web アプリケーションの例をどこで見つけることができるかを誰かが知っていれば、それも素晴らしいでしょう。

ありがとう

0 投票する
1 に答える
52 参照

asp.net-mvc - ここでの発表者の責任は何ですか?

私は3層のデザインを持っています。(UI/BLL/DAL)

UI = ASP.NET MVC

私の見解では、カテゴリの製品のコレクションがあります。例: 商品 1、商品 2 など。

ユーザーはビューから製品を選択または削除 (チェック ボックスを選択することにより) でき、ユーザーがこれらの変更を送信すると、最終的にコレクションとして保存されます。

この 3 層設計で、この製品コレクションはどのように保存されますか? カテゴリ オブジェクトへの製品のフィルタリング (削除と追加) はどのように行われますか?

これが私のオプションです。

(A) コントローラの責任であり、疑似コードは次のようになります。

  1. ユーザーが選択または削除した商品を見つけて、既存のレコードと比較します。
  2. そのコレクションをカテゴリ オブジェクトに追加または削除します。
  3. SaveCategory(カテゴリ) を呼び出します。// BLL コール

ここでは、最初の 2 つのプロセス ステップがコントローラーで発生します。

(B) BLL の責任であり、疑似コードは

  1. ユーザーが選択した商品を集める
  2. SaveCategory(カテゴリ、製品); // BLL コール

ここで、どの製品を削除してデータベースに追加するかを決定するのは、SaveCategory (BLL) 次第です。

ありがとう

0 投票する
5 に答える
2417 参照

c# - 3 層アーキテクチャと 3 サーバー アーキテクチャ

私は従来の .NET MVC サイトを構築しているので、自然な 3 層のソフトウェア アーキテクチャ セットアップ (ビュー形式のプレゼンテーション、コントローラーのビジネス レイヤー、モデルとデータ アクセス レイヤーのデータ レイヤー) があります。

私がこのようなサイトを展開した場合、通常は 1 つのサーバー (Web サイトとデータベースが存在する場所) または 2 つのサーバー (Web サーバーと別の db サーバー) のいずれかになります。

3 サーバー アーキテクチャ (WEB、APP、および DB) をどのように処理しますか? Web サーバーにはプレゼンテーション (物理的な View/aspx ページなど) だけがあり、アプリ サーバーには構成ファイルと bin フォルダーが保持され、db サーバーはそのまま残りますか?

私の質問は基本的に、/bin とすべてのアプリ ロジックをプレゼンテーション ビューとは別のサーバーに移動することはできますか? もしそうなら、どのようにサーバーがどこを見ればよいかを知るように設定しますか? どこかに優れた入門書があるか、誰かが私に内情を教えてくれるなら、私は永遠にお世話になります.

0 投票する
2 に答える
247 参照

asp.net - 3層のアプリケーションパターンの提案

最初の3層アプリケーションを作成しようとしました。その過程で私は1つの問題に遭遇しましたが、まだ最適な解決策を見つけることができていません。基本的に、私のすべてのオブジェクトは、次のようにサブの実装を強制するIFillableインターフェイスを使用します

このサブは、データリーダーからのIDがオブジェクト自体のプロパティと同一になることを期待します。

結局、私はこのようなデータレイヤーになります。

ほとんどの場合、このパターンは理にかなっているようです。ただし、私の問題は、StockBarcodeListというStockのプロパティを実装したいとします。上記のパターンでは、このプロパティを実装する方法に関係なく、接続文字列を渡す必要があります。これにより、レイヤー分離の試みが明らかに失敗します。

私がこの問題をどのように解決できるかについて誰かが何か提案がありますか、それとも私はこれを完全に間違った方法で行っていますか?誰かが私の実装を改善する方法について何か提案がありますか?ただし、データセットをいかなる形式でも使用しないように意図的に試みていることに注意してください。

0 投票する
4 に答える
690 参照

architecture - 3層アーキテクチャ-レイヤリングと用語-ミッシュマッシュ

3層アーキテクチャを表現するためのさまざまな可能性について混乱しています。

また

最初のアプローチでデータベースをスキップできるのはなぜですか?どちらもデータベースを使用しています!データベースはレイヤリングに属しているかどうか?!

何が間違っていて、何が正しいのですか?

あなたの誰かがこれを明確にすることができますか?

0 投票する
3 に答える
21693 参照

data-access-layer - データベース抽象化レイヤーとデータアクセスレイヤーの違いは何ですか?

私は実際に3層構造で立ち往生しています。インターネットをサーフィンしたところ、「データベース抽象化レイヤー」と「データ アクセス レイヤー」という 2 つの用語が見つかりました。

2つの違いは何ですか?

0 投票する
1 に答える
3701 参照

php - MVCと3層またはN層アーキテクチャでWebサイトを開発することの違いは何ですか?

MVCと3層またはN層アーキテクチャでWebサイトを開発することの違いは何ですか?

どちらがいいですか?長所と短所は何ですか?

0 投票する
1 に答える
1858 参照

c# - オブジェクトは 3 層モデルのどこでデータをマージ/結合しますか?

おそらく単純な 3 層の問題です。これにはベスト プラクティスを使用するようにしたいだけですが、私はまだ構造に精通していません。

3 つの層があります。

  • GUI: プレゼンテーション層用 ASP.NET (最初のプラットフォーム)
  • BAL: ビジネス レイヤーは C# で Web サーバー上のロジックを処理するため、両方とも Web フォーム/MVC + Web サービスに使用できます。
  • DAL: データ層の LINQ to SQL。LINQ ではなく BusinessObjects を返します。
  • DB: SQL は Microsoft SQL-server/Express になります (まだ決定していません)。

[Persons] のデータベースがある設定を考えてみましょう。それらはすべて複数の [Address] を持つことができ、すべての [PostalCode] と対応する都市名などの完全なリストがあります。

取り決めは、他のテーブルから多くの詳細を結合したことです。

{リレーション}/[テーブル]

  • [人]:1 --- N:{人の住所}:M --- 1:[住所]
  • [住所]:N --- 1:[郵便番号]

次に、Person 用の DAL を作成します。PersonBO はどのように見えるべきで、結合はいつ行われますか? すべての都市名と可能な住所を取得するのはビジネス層の問題ですか? 人?または、PersonBO を BAL に返す前に、DAL がこれをすべて完了する必要がありますか?

// Q1: PersonBO を返す前にオブジェクトを取得し、代わりに配列にする必要がありますか? または、これはn層/ 3層では完全に間違っていますか??

// Q2: 検索を行いますか、それとも PostalCode を後で検索するために残しますか?

どのオブジェクトをどの順序でプルするかを誰か説明できますか? 建設的な批判は大歓迎です。:o)