問題タブ [service-layer]

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 に答える
465 参照

asp.net-mvc - ASP.NET IServiceLayer の実装方法

ここにあるチュートリアルに従って、MVC アプリケーションにサービス レイヤーを実装しようとしています。私が理解できないのは、それをすべて配線する方法です。

これが私がこれまでに持っているものです。

IUserRepository.vb

ユーザーリポジトリ.vb

IUserService.vb

UserService.vb

上記の記事で説明したように、 IValidationDictionary.vbModelStateWrapper.vbも接続しました。

私が問題を抱えているのは、実際にコントローラーに実装することです。私のコントローラーはこんな感じです。

ただしPublic Sub New(ByVal service As Data.IUserService)、エラーが発生しているという行で

「サービス」は、クラス「UsersController」を介してプロジェクトの外部にタイプ「Data.IUserService」を公開できません

だから私の質問は2つの部分です

  1. その記事の概念を使用して、アプリケーションにサービス層を適切に実装するにはどうすればよいですか?
  2. IUserService.vb内にコンテンツが必要ですか?
0 投票する
1 に答える
1093 参照

java - Hibernate と Swing を適切に混在させるにはどうすればよいですか

Hibernate とのやり取りについていくつか質問があります。

  1. openSession または getCurrentSession (jta を使用せず、代わりにスレッド) を使用する必要がありますか?
  2. セッション操作と Swing GUI を混在させるにはどうすればよいですか? JavaBean クラスに次のようなコードがあってもよいでしょうか。

    /li>
  3. HQL クエリを含むエンティティにメソッドを追加できますか?それとも悪い習慣ですか? 例えば:

    /li>

どうすればこれをより適切でエレガントな方法で行うことができますか?

更新 広く使用されている方法は、サービス/dao クラスを作成して、エンティティ クラスの CRUD 操作を実現することです。しかし、なぜこれが良いのですか?エンティティを管理するために、エンティティごとにクラスを作成する必要があるのはなぜですか? 本当のメリットはどこにある?

UPDATE 2 サービス クラスは DAO パターンですか? これは何を意味するのでしょうか? Arthur Ronald FD Garcia のリポジトリの例は DAO パターンですが、これは「サービス層」と呼ばれるものですか?

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

grails - ユーザー インターフェイスなしで Grails を使用する

EJB ベースのサービス層の代替案を考えていますが、Grails のサービス層とデータベース層だけをRemoting Pluginと一緒に使用するのが理にかなっているのだろうか、それともハンマーを使ってナッツを割るのですか?

Remoting Plugin といえば、Spring 以外の Java アプリケーションから Grails サービスへのリモート呼び出しを行うために必要なクラスを含む JAR ファイルを生成する標準的な方法はありますか?

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

asp.net-mvc - Linq を使用してデータを挿入/更新するときの ASP.NET MVC (MVC2) のベスト プラクティスを SQL およびリポジトリ レイヤーに

私はここでちょっとした難問に直面しています.Guruの何人かが空白を埋めるのを手伝ってくれることを願っています.

私が現在直面している状況は、「ユーザー」テーブルと「OpenID」テーブルに関するものです。私のアプリでは、ユーザーが複数の OpenID を持つことができるため、別のテーブルでそれらを追跡しています。

ユーザー
ID
ユーザー名

OpenID
ID
UserID
Claimedidentifier

テーブルごとに CRUD リポジトリがあり、リポジトリと連携するサービスもあります (リポジトリごとに 1 つのサービス)。

私が持っている質問は、新しいユーザーの挿入に関するものです (更新は同じプリンシパルに従うため)。これが私の頭の中にあるオプションです。

  1. UserService に新しいユーザーを挿入させ、ユーザーの ID を取得してから、UserID を使用して新しい OpenID を挿入します。
  2. UserService に新しいユーザーを ClaimedIdentifier と共に UserRepository に送信させ、リポジトリに User と OpenID の両方を挿入させます (これは CRUD 方法論にはあまり適していません)。
  3. User テーブルと OpenID テーブルの両方のビューを作成し、UsersOpenIDRepository と UsersOpenIDService を作成して、ビューに挿入します。

私が考えることができる以上の他の考えや提案は大歓迎です.

私はNHibernateを使用していないことに注意してください。これにより、ドメインをモデル化できますが、適切だと思います。このプロジェクトではLinq to SQLにこだわっていますが、

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

linq-to-sql - JOINを使用してLinqをSQLに変換してIQueryableに選択

私はこの関数をまったく使いたくないという関数を持っていますGetUserByOpenId

私が本当にやりたいのは、「GetUsers」関数(IQueryable)を使用して、サービスレイヤーでJOINを実行することです。

これと同様の関数を使用して適切なデータを返すメソッドがどのようになるかを誰かに教えてもらえますか?

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

asp.net-mvc-2 - ASP.NET MVC 2 カスタム ビューモデルに関する質問

私のプロジェクトでは、Linq To SQL dbml ファイル、各 DB テーブルのリポジトリ レイヤー、および各リポジトリのサービス レイヤーがあります。

私のサービスでは、検証用のメタデータがいくつかあり、各 (テーブル) クラスを拡張して、オブジェクトにカスタム情報を追加します (これは以下のコードで確認できます)。

私の質問は、サービス層で拡張されたクラスを使用する代わりに、各 (テーブル) クラスのカスタム ViewModal を構築することを検討する必要がありますか?

以下は、私が今持っているものの例です。

リポジトリ

サービス

そして現在、コントローラーで、このようにモーダルデータをビューに送信します

今私が遭遇したことの 1 つは、Slug を使用する必要があるときはいつでも、ユーザー オブジェクトを Slug プロパティに送信する必要があることです。

このため、(テーブル) クラスごとにカスタム ViewModal を作成し、単に次のことを行う方が良いですか?

分離は良いことのように思えますが、構築するにはまだかなりの時間が必要です。トレードオフの利点について疑問に思っているだけですか、それとも同じことを達成するためのより良い方法があるのでしょうか?

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

wcf - 階層化アーキテクチャで例外をスローする場所は?

WCF で開発されたサービス層を介してビジネス層を提供するアプリケーションがあります。私が考えているのは、このサービス層は、作成、更新などの操作方法を提供するということです。これらの操作は、これらの呼び出しをビジネス層に再ルーティングします。問題は、これらの呼び出しの 1 つが null 入力値を受け入れない場合 (たとえば、null オブジェクトを作成する)、チェックを実行するのに最適な場所はどこでしょうか? 私の個人的な答えは、サービス層を使用せずにビジネス層の再利用を保証できるため、サービス層とビジネス層の両方についてです。

私は正しいですか?

ありがとうマルコ

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

asp.net-mvc-2 - asp.netmvcでモデルを更新する

プロジェクトマネージャーから、リポジトリパターンを使用していたアプリ(例としてNerddinnerを使用して実行)をリファクタリングして、サービスレイヤーを使用するように依頼されました。私の問題は、モデルを更新する方法がわからないため、UpdateModelメソッドがコントローラーで使用されることになっていることです...サービスレイヤーとともにリポジトリパターンを使用してモデルを更新するための推奨されるアプローチは何ですか?助けてください

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

performance - データアクセス層/サービス層を使用することによるパフォーマンスへの影響は?

これらの基本的なコンポーネントを備えたシステムを設計する必要があります。

  • 〜100リクエスト/秒を取得するWebサーバー。Webサーバーは、生データリポジトリにデータをダンプするだけで済みます。
  • Webサーバーから100行/秒を取得する単一のテーブルを持つ生データリポジトリ。
  • 生データ処理ユニット(単純な処理、それほど多くありません。無効な生データの削除、破損した生データへの欠落したコンポーネントの挿入など)
  • 処理されたデータリポジトリ

このようなシステムでは、すべてのコンポーネントが構築されるサービスレイヤーを持つことは理にかなっていますか?コンポーネント間の相互作用はすべて、サービスレイヤーを通過します。これにより、システムのアップグレードと保守が容易になりますが、処理するトラフィックが非常に多いため、パフォーマンスに大きな影響はありませんか?

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

domain-driven-design - サービスレイヤーを正しく使用していますか?

私は DDD について調べてきましたが、サービスを間違って使用しているか、少なくともあまり理想的ではない方法で使用していると思います。私のサービス クラスは、リポジトリ参照を含むかなりの数のインスタンス変数を持つ傾向があり、多くの作業を行っているように見えます (つまり、多くのメソッドがあります)。

より焦点を絞ったサービスを作成することをお勧めしますか? 特定のロジックを実行するサービスごとに 1 つのメソッドが好きですか? また、サービス クラスはインスタンス変数を他のエンティティに格納する必要がありますか? サービスがステートレスであることについて何か読んだことがありますが、それらのインスタンス変数を持つことでそのルールを破っているのかどうかはわかりません。

ありがとう!