問題タブ [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 に答える
161 参照

model-view-controller - ビジネス層でのモジュールの分離

私たちの新しいプロジェクトは始まったばかりで、そのアーキテクチャに関連する問題があります。

3 層のアーキテクチャがあります。

  1. WebUI
  2. 仕事
  3. データリポジトリ

各レイヤーは、その下のレイヤーのみを参照します。通信は、次のようentitiesに and business objects(BO) と呼ばれるもので行われます。

<--X-->タイプ X のオブジェクトを使用した通信を意味します。

したがって、たとえばUserEntityエンティティUserとして、BOとして持っています。もう 1 つのタイプはTicketEntity、 とを持つチケットTicketです。

現在、DataRepositories、Business、および WebUI のユーザー向けのような層を通る明確な垂直スライスがいくつかありAccountsます。これらは明確に定義されており、他のスライスとは相互作用しませんTickets

ここでの問題は、チケットにはユーザーである購入者がいて、アーキテクチャのどこでチケットとユーザーを接続すべきかわからないことです。ビジネス コンポーネントがそれらの間で対話する必要がありますか、それともデータ レイヤーがユーザーをチケットにマップする必要がありますか?

より具体的には、ビジネスに常駐し、WebUI から呼び出されるチケットを作成するメソッドがあります。これは、チケットの詳細と「ユーザー」を引数として取ります。これは、タイプ user のオブジェクトである必要があるのか​​、単にユーザー名/ID である必要があるのか​​はまだわかりません。CreateTicket を呼び出す前に、プレゼンテーションがユーザーを取得する必要があるというユーザー オブジェクトを渡す場合。ただし、WebUI が ID を渡す場合、ビジネス レイヤーはユーザー オブジェクトを解決する必要があります。これには、チケット (ビジネス) のユーザー ビジネス コンポーネントへの参照を追加する必要があります。

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

java - Reader / Writer / Emailer ... * erクラスをこのパッケージ構造のどこに配置しますか?

私が最初に3層構造を教えられた方法は、次のとおりです。

  • dao
  • ドメイン
  • サービス
  • utils
  • jsf(beans)..。

インスタンス化可能な*erクラスは、これらのパッケージのいずれにも適合しません。特に、クラスが主に静的メソッドをグループ化するutilsには適合しません。それは副次的な考えとしてサービスに追加される可能性がありますが、それは厄介な感じがします。

それ以来、私はより精巧なパッケージ構造(おそらくMavenから借りたもの)を見てきました:

  • 定数(ハーコードされた定数と列挙型)
  • dao
  • dao.impl(インターフェースの実装)
  • モデル
  • リソース(プロパティファイルと構成ファイル用)
  • サービス
  • service.impl
  • ui..。

ただし、* erクラスを配置できる場所がまだわかりません。また、カスタム例外やSpringのこの元のパターンなど、他のタイプのクラスがポップアップ表示されるようになりました(以下を参照)。一般に、これらはフレームワーク/APIで一般的に見られるタイプのクラスのようです。


これらまたはその他の「分類できない」ものをどのようにグループ化しますか?

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

c# - 3層アーキテクチャの良い例を挙げてください。

http://www.codeproject.com/KB/architecture/three_tier_architecture.aspx

このウェブサイトは3層アーキテクチャの良い例を示していますか?それは良い例だと思いましたが、実際には1つ星の評価者の何人かがそれは良い習慣ではないと言ったようです。

だから私はあなたの誰かが私に良い3層アプリの例を教えてもらえないかと思っていましたか?

申し訳ありませんが、私は不明確かもしれないと思います、私はコードを探しています:)(OOPで)

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

3-tier - 3 層および 3 層アーキテクチャ

3 層アーキテクチャと 3 層アーキテクチャは同じではありませんか?

3層アーキテクチャは、アプリケーションのアプリケーション層、ビジネスロジック、データ層であると言う人もいますが、これらの3層が3つの異なるマシンに配置されている場合、それは3層アプリケーションです。

それが正しいか?

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

vb.net - vb.net の 3 層ヘルプ

3層で簡単なプロジェクトを開始しました。Windows フォーム アプリケーションをプレゼンテーション レイヤーとして、クラス ライブラリを DAL として、別のクラス ライブラリを BLL として追加しました。

さて、Presentaion レイヤーで何らかのフォームを設計し、BLL クラス ライブラリにアクセスしようとしました。しかし、BLL クラス ライブラリの名前空間がわかりません。

してみImports BLLましたが、プレゼンテーション層の名前空間しか表示されず、BLLが表示されません。

次に、DAL と BLL で同じことを試しましたが、これらのプロジェクトはどちらもソリューション内の他のプロジェクトにアクセスできませんでした。

これを修正する方法は?

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

c# - LinqtoEntities-3層アーキテクチャ

過去数か月で、Linq-To-EntitiesとDAO / DAL/Repositoryを使用した3層アーキテクチャについて多くのことを学びました。今、私は私を悩ませ続けているいくつかのことを頭の中に持っています。以下に表示される3つの質問があります。

リポジトリを機能させる方法はたくさんありますが、パフォーマンスの方法でリポジトリを機能させる「方法」とはどのような方法ですか。

1)コンストラクターでデータコンテキストを初期化します

2)「使用する」を使用する

3)別の方法で(コメントしてください)

他の人がコメントできるように、ここにあなたの提案を載せます


また、リポジトリがIQueryableをビジネスレイヤーに返す必要があると言う人もいれば、IListを返す方がよいと言う人もいるようです。これについてのあなたの意見は何ですか?


最初の質問の上記のコードサンプルはリポジトリを指していますが、ビジネスレイヤーにリポジトリを実装するための最良の方法は何ですか(コンストラクターで初期化し、「使用」を使用しますか??)

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

vb.net - VB.net の 3 層アーキテクチャの概要

私は最近、BLL、DAL、およびプレゼンテーション層を備えた 3 層アーキテクチャのプロジェクトの開発を開始しました。私が使用したリファレンスは、ネット上のサンプル 3 層アプリケーションであり、それらはすべて互いに異なります。だから、今、私はどれが正しい3層であるか混乱しています.

よろしければ、正しい 3 層アーキテクチャに従っている適切なチュートリアルまたは本を教えていただけないでしょうか。

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

silverlight - Silverlight 3 層アプリケーションの検証

Silverlight + WCF + ORM を使用して 3 層アプリケーションを開発します。

ここで私の質問は、データベース層で ORM を使用する場合、プレゼンテーション、ビジネス層でクラスを公開してクライアント側の検証を行うにはどうすればよいかということです。

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

delphi - D7 を使用した 3 層アプリケーションのアーキテクチャ

これまで、COM+ テクノロジを使用して 3 層アプリケーションを構築した経験があります。これは、多くの興味深い概念をサポートする巨大で高度なテクノロジーです。LAN 上で動作するアプリケーションの場合は、正常に機能します。

今、私はまだ D7 に基づいて、3 層システムを構築することを計画しています。違いは、インターネットで動作する必要があることです。クライアントは世界中に散らばっています。そのような状況での私の経験から、私はcom +に依存しません. Com+ は基本的に安定した接続が必要で、非常に広い範囲のポートを開く必要があるファイアウォール サーバーを構成することは容易ではありません (たとえそれを狭めたとしても)。

そこで質問です。本番環境で機能するアーキテクチャ (Web サービス、サービス、またはその他) は何ですか? 1 つの TCP ポートでリッスンするサービスが必要だと思います。開いているセッションで使用できるセッションクライアントパラメーターを保存できました。また、ある種の組み込みの暗号化もプラスになります。

手伝ってくれてありがとう!

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

asp.net - 3層アプリケーションでリピーターを制御することの長所と短所は何ですか?

データアクセス、またはその他の意見に関して。

可能であれば、もしあれば、より良い代替案を述べてください。