問題タブ [n-tier-architecture]
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.
c# - n 層開発の理解に役立った本
n 層開発 (プレゼンテーション層、UI ビジネス オブジェクト、データ ビジネス オブジェクト、およびデータ セット) を理解するのに役立った本は何ですか?
私は本の方が好きですが、ブログや他のサイトも大歓迎です。新しい仕事で n-Tier 設計のアプリケーションを継承しました。慣れるまでに時間がかかりましたが、概念の有用性を理解しています。今後は、自分の開発が同じ基準に収まるようにしたいと考えています。C# に焦点を当てることも素晴らしいでしょう。
また、スケーラビリティのために提案する他の設計パターンはありますか? これらの設計パターンについて提供できる推奨される読み物はありますか?
wcf - n 層クライアントからのオブジェクト グラフのトラバース
私は現在、Nhibernate + WCF + WPF を使用する .Net n 層アプリに手を出している学生です。
非常にひどく行われていることの 1 つは、オブジェクト グラフのシリアル化です。実際にはまったく行われていません。現在、関連付けは無視され、どこでも DTO を使用しています。
私が言える限り、続行する方法の 1 つは、どのオブジェクトとコレクションをロードしてシリアル化し、ネットワークを経由するかを事前に定義することです。これにより、いくつかの関連付けをクライアントに提示できますが、これは制限があり、柔軟性がなく、一貫性がないように見えます (できますか?私はこの考えが気に入らないと言ってください)。
私が思いついたオプションの 1 つは、クライアント層でコレクションを遅延ロードする NHProxy を、ネットワーク経由で関連するものを取得する「disconnectedProxy」に単純に置き換えることでした。これは、Web サービス シグネチャを少し拡張し、生成されたプロキシに対していくつかのハッカーを実行する必要があることを意味しますが、これは T4/その他のコード生成実験としては優れているように思えました。
私が知る限り、これは一般的な障害のようですが、多くの読書を行った後、適切な/一般的に受け入れられている解決策を見つけることができませんでした. 私は特定の解決策と同じくらい方向性を探していますが、クライアントにつながりを「感じさせる」簡単な方法があれば教えてください.
architecture - System.Transactions でのトランザクション エスカレーションを回避するための戦略
したがって、私の前の質問への回答に基づいて、トランザクション中に複数の接続が開かれた場合、接続がすべて同じ接続文字列を持っていても、トランザクションは LTM から DTC に昇格します。
では、次の質問は、この「機能」を回避するためにどのような戦略を採用できるかということです。リソースの使用状況に基づいて、LTM を可能な限り使用するようにしたいと考えています。適切なオブジェクト指向のビジネス ロジック レイヤーでこれを行う唯一の方法は、データ アクセス レイヤーでリクエスト レベルの静的接続オブジェクトを作成し、リクエストが完了するまでそれを呼び出し間で共有することです (暗黙の知識はここにあります)。ビジネス オブジェクト エンティティは目立たず、どのような順序で呼び出されるかわからないということです。また、接続オブジェクトをビジネス オブジェクト レイヤーにバブルアップさせたくないという事実もあります。これは、データ ストレージの実装の詳細になるからです。別のレイヤーににじみます)。
n層システムのレイヤーカプセル化を完全に台無しにしないアイデアを誰か他の人が持っていますか?
asp.net-mvc - ASP.Net MVC と N 層
ご挨拶、
質問に自分で答えるのに十分なほど厳密に調査していないことを事前にお詫びしますが、時間がかかると思います。学習にもっと時間を費やす前に、今すぐ知りたいと思います. 最初の調査では何も見つかりませんでした..
多層アーキテクチャ (データ層、ロジック層、プレゼンテーション層) を既に使用しているのに、なぜ ASP.Net MVC を使用するのでしょうか? コントローラーがロジックレイヤーよりも多くのパワーを持っているという事実を除けば。
MVC のモデル部分で nHibernate とすべてのデータ アクセス クラス、エンティティ、およびマッピングを使用できると考えるのは正しいですか?
コントローラーを使用する場合、多くのロジックを別のクラスに分離して、複数のコントローラーから呼び出すことができるようにするのが最善ですか? または、すべてをアクションにするのではなく、通常のメソッドだけにしたいという事実を考慮して、コントローラー自体から呼び出すこともできます。
ありがとう
.net - データテーブルを汎用リストに変換する最速の方法
データテーブルを返すデータ層選択メソッドがあります。これは、厳密に型指定されたジェネリック List を返すビジネス層メソッドから呼び出されます。
私がやりたいことは、この質問と非常に似ています (ただし、同じではありません):
How do you convert a DataTable into a generic list?
異なるのは、リストにデータ行ではなく厳密に型指定されたオブジェクトを含めたいということです (また、ここではまだ linq を利用できません)。
性能が気になります。次に、ビジネス層のメソッドがプレゼンテーション層から呼び出され、結果が反復されてユーザーに表示されます。ビジネス層で余分なイテレーションを追加するのは非常に無駄に思えます。プレゼンテーションのためにすぐにやり直すだけです。そのため、これをできるだけ迅速に行いたいと考えています。
これはよくある作業なので、何度も繰り返せる良いパターンを本当に探しています。
architecture - あなたにとってn層とは何を意味しますか?
何年にもわたって、開発者が異なれば、n 層システムの開発における層を構成する基準も異なることに気付いたので、stackoverflow でのコンセンサスがどのようなものであるかに興味がありました。
別の層と呼ぶには、別の論理レイヤーで十分ですか? それとも別の層と呼ぶには、別のサーバー (物理または仮想) にデプロイできる必要がありますか?
質問の言い方を少し変えてみましょう。呼び出しメカニズムがイン プロセス、スレッド ローカル、またはアパートメント ローカルのみである場合、クラスがライブラリまたはパッケージにどのように編成されているかに応じて、2 つの異なる層であると主張することは可能ですか?
design-patterns - 3層とn層の違い
私はちょうど次の文に出くわしました:
業界が3層モデルからn層モデルに移行するにつれて、オブジェクトの関係インピーダンスの不一致がより一般的になりました。
しかし、3層とn層の違いについての簡潔な説明は見つかりません。私は3層が何であるかを知っており、n層は1つ以上の層を追加するだけだと思います。これらの追加の層がどうなるかはわかりません。誰かが短い説明または単に良いリンクを持っているなら、それは大いにありがたいです。
.net - SubSonic の ActiveRecord オブジェクトの代わりに POCO を返す SubSonic データ層
作成中のアプリケーションで SubSonic (2.2) を使用したいと考えています。その単純さが好きで、必要と予測できるあらゆるタイプのクエリを処理できるからです。同時に、アプリケーションの上位レイヤーを亜音速タイプから切り離したいと考えています。Plain Old C# オブジェクトだけを返し、POCO を渡して保存したいと考えています。
しかし、ここに問題があります。POCO に、FK 関係に基づいて、子コレクションと親オブジェクトの遅延読み込みプロパティを持たせたいのです。Subsonic SqlQuery オブジェクトを POCO のプライベート メンバーに何らかの形で配置し、遅延ロードされたプロパティのゲッターで内部的に使用する必要があると考えています。
具体的に SubSonic でこれを実装する方法についてのアイデアはありますか? 誰もこれを以前にやったことがありますか?
SubSonic の次のメジャー リリースでこれがすぐに使えるようになることはわかっていますが、それは少なくとも数か月先のようです。
design-patterns - ドメイン モデル オブジェクトに必要なロジックの量
Greg Young によるこの投稿を読み終えたところです。彼は、Microsoft がダム データ転送オブジェクトを使用して推奨するパターンについて語っています。彼は、Java コミュニティでは物事が逆方向に進んでいることをほのめかしました。
私の質問は、エンティティ オブジェクトにどの程度のロジックを含める必要があるかということです。私が働いている場所 (C# ショップ) の哲学は、シリアル化できない場合は、エンティティに入れないことです。