問題タブ [layered]
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# - BLL、DAL、または PL のどこで例外を処理する必要がありますか?
例外を処理するのに最適な場所はどれですか? BLL、DAL、または PL ?
DAL と BLL のメソッドが例外をチェーンにスローし、PL がそれらを処理できるようにする必要がありますか? または、BLL で処理する必要がありますか?
例えば
「ExecuteNonQuery」を発行していくつかのレコードを更新するメソッドが DAL にある場合、1 つ以上の理由により、0 行が影響を受けます。さて、例外が発生したのか、それとも条件に一致する行が本当になかったのかを PL に知らせるにはどうすればよいでしょうか。PLコードで「try catch」を使用して例外を通知する必要がありますか、またはDALで例外を処理し、(-1)のような特別なコードを返して、PLが(例外)と(いいえ)を区別できるようにする必要があります行は条件に一致しました。つまり、影響を受ける行はありません)?
magento - Magento レイヤード ナビゲーション カテゴリ
ユーザーが階層化されたナビゲーションでカテゴリをクリックすると、ユーザーがカテゴリのランディング ページに送られるようにしたいと考えています。
したがって、ユーザーが取得する代わりに、RedWidget カテゴリをクリックする/category.html?cat=11
と取得されます。/category/RedWidget.html?cat=11
このリンクを見つけましたが、彼のコードは機能しません。
お早めにどうぞ!
design-patterns - きめ細かいメソッドとプロパティアクセスを備えたプログラミング言語
このようなものを想像してください:
この場合、テストはインターフェイスに適用されるため、「サポート」の概念は二次的ですが関連性があります(したがって、言語は、すべての実装が合格する必要があるインターフェイステストと、実装プライベートに固有の実装テストを区別します。
しかし、ここで伝えたい重要なアイデアは、アクセス制御のセマンティクスです。「accessfrom」キーワードを持つA.sumは、メソッドB.calculatorからのみ呼び出すことができることに注意してください。それ以外のものは、コンパイル時エラーとして検出されます。ここでの考え方は、よりきめ細かい方法でアーキテクチャの制約を適用することです。「accessfrom」を追加しなかった場合、または「access from *」を追加しただけの場合は、メソッドをどこからでも呼び出せるようにするデフォルトの動作を意味します。どのようなアーキテクチャ上の制約がありますか?レイヤードデザインを行うときに手動で適用される種類:レイヤーA(最低レベル)はレイヤーB(中間レベル)から使用され、レイヤーB(中間レベル)はレイヤーC(高レベル)から使用されます。ただし、レイヤーBはレイヤーAからアクセスできず、レイヤーCはAとBのどちらからもアクセスできません。
質問:上記のセマンティクスをサポートする言語(ソース間中間言語を含む)を知っていますか?この種のセマンティクスが逆効果であるか、危険であるか、または単に悪い設計を助長するかどうかを議論するための追加のポイント
更新:この種の制限には、もう1つの非常に重要なユースケースがあります。
イベント駆動型プログラミング:通常、イベントの問題は、イベントの実行が多すぎる傾向があり、イベントの依存関係のチェーンを理解するのが難しい場合があることです。
したがって、たとえば、イベントハンドラーには、対話できる表示可能なクラスの特定のセット(または、逆に、触れることができないオブジェクトの特定のセット)のみがあると定義できます。
entity-framework - データアクセスコンポーネントとビジネスコンポーネントを作成するのは二重の作業ですか?
私は、データ、ビジネス、およびプレゼンテーション層で構成される最初のレイヤードアプリケーションを設計しています。
私のビジネスコンポーネント(たとえば、Business.Components.UserComponent)には、現在次のメソッドがあります。
私はこのデザインが好きです。ただし、次の実装を推奨するいくつかの例をオンラインで見つけました。
これにより、すべてのエンティティのデータアクセスコンポーネントが作成され、それぞれに基本的なメソッド(作成、編集、削除など)が含まれます。
基本的なメソッドと、データアクセスコンポーネントのメソッドを呼び出すだけのビジネスコンポーネントを使用してデータアクセスコンポーネントを作成する必要があるため、これは二重の作業のように見えます。
レイヤードアプリケーションで基本的なCRUD機能を適切に実装するためのベストプラクティスと見なされるものは何ですか?それらはビジネスコンポーネントまたはデータアクセスコンポーネントで「コーディング」する必要がありますか?
c# - 3層アーキテクチャパターン
このように部分クラスを使用してBLLとDALを実装しても大丈夫ですか?
または他の提案?前もって感謝します。
c# - C#EF4とレイヤードデザインでのアセンブリ参照エラー
私はついに最新のEFリリースをチェックするようになり、テストでいくつかの問題が発生しています。
したがって、DALレイヤーは.EDMXファイルを保持し、MS POCOテンプレートを使用しているので、生成された.TTファイルとクラスもあります。
TestProject.DALに、これらのクラスの派生元となる汎用基本クラスがあります。つまり
次に、TestProject.BLLレイヤーに、いくつかの派生クラスがあります。
次に、UIレイヤーで、BLL.Customerオブジェクトを呼び出しています。DAL.Customerオブジェクトへの参照が追加されていないなどのエラーが表示されます。
UIプロジェクトからのBLLプロジェクトへの参照と、BLLプロジェクトからのDALへの参照があります。
UIレイヤーが、そのプロジェクトで参照されていないときにDALレイヤーを認識していると不平を言うのはなぜですか?
また、副次的な質問として、これは「良い」デザインのように見えますか?
皆さんありがとう!グーシー
magento - Magento Layered Navigation で、アクティブなフィルターのすべてのアイテムを取得するにはどうすればよいですか?
フィルタがアクティブになると、0 個のアイテムが返されるため、「ショッピング オプション」には表示されなくなります。カスタム レイヤード ナビゲーションでは、これらのアイテムを取得して表示する必要があります。一部の拡張機能が既にこれを行っている (および項目の横にチェックボックスを提供している) ことは知っていますが、自分で行う方法を知りたいです。
c++ - 透明なレイヤードウィンドウにテキストを描画するC++GDI +
(管理されていないC ++)デスクトップ上でドラッグできる透明なレイヤードウィンドウにPNGファイルを描画することに成功しましたが、問題は透明なレイヤードウィンドウにテキストを描画することです。
これが私のコードと中央にテキストを描画する試みです。WM_PAINTメッセージの画面ではなくscreenDCを使用していることに注意してください。
[編集]コメントの後にコードを更新しました。今度は、HBITMAPバージョンを取得する前に、ビットマップにテキストを書き込もうとしています。今回は、textout()がGDI +ではないため、DrawStringを使用しています。DrawStringを希望します。本当にGDI+lolはまだ機能しませんが、私が間違っているのは何ですか?
私は2日間、レイヤードウィンドウにテキストを書き込もうとしていますが、それらの試みから、これを行うにはいくつかの方法があることがわかります(残念ながら、正確にはわかりません)。
私が見る通常のオプションは、ビットマップにテキストを描画してから、ビットマップ自体をレンダリングすることです。
- Gdi+を使用してビットマップをロードする
- ビットマップからGraphicsオブジェクトを作成します
- DrawStringを使用してテキストをビットマップに書き込みます
- Graphicsオブジェクトを破棄します
- ビットマップのSaveメソッドを使用して、結果をファイルに保存します
どうやら、DCからグラフィックスオブジェクトを作成し、DCにテキストを描画することもできますが、これを行う方法についてはわかりません。
c# - 階層化されたウィンドウのスクレイピングに助けが必要
レイヤード ウィンドウをスクレイピング (スクリーン ショットを撮る) しようとしていますが、正しく動作していないようです。一部の階層化されたウィンドウは正常に機能し、一部は機能しません。以下は私がこれをやっている方法です:
問題は、SetLayeredWindowAttributes を介して作成されたウィンドウの正しい画像と、レイヤード ウィンドウが UpdateLayeredWindow を介して更新されたときに黒いビットマップを取得していることです。UpdateLayeredWindow win api 呼び出しを介して更新されたレイヤード ウィンドウをスクレイピングする方法があるかどうか誰か教えてもらえますか?
これまでの回避策は、画面全体のスクリーンショットを撮り、そこからウィンドウのビットマップをコピーすることです。問題は、これが正しく機能するためにウィンドウが常に一番上にある必要があることです。
ティア
collections - カスタム製品コレクションの Magento レイヤード ナビゲーション
特定の製品の関連製品のリストを表示する Magento (ver. 1.8.0.0) のカスタム モジュールに取り組んでいます。
これを実現するために、Mage_Catalog_Block_Product_List
クラスを上書きして独自のモジュールを作成しました。
基本的には、次のように動作します。
コントローラーから製品をキャッチし、製品entity_id
をレジストリに保存して、list.php と呼ばれるカスタム作成ブロック内で使用できるようにします。
製品コレクションを埋めるメソッドは次のとおりです。
また、カスタム モジュールのレイアウト .xml に以下を追加して、階層化されたナビゲーションが表示されるようにしました。
階層化されたナビゲーションが表示されますが、上記で追加したメソッドで使用されているカスタム コレクションではなく、すべての製品をコレクションとして使用しているようです。
これを使用してカタログ/レイヤーを取得できることも知っています$layer = Mage::getSingleton('catalog/layer');
レイヤ クラスには、prepareProductCollection と setCollection というメソッドもありますが、何らかの理由で機能させることができません。
これについて何か助けはありますか?
基本的に、カスタム コレクションにある製品の階層化されたナビゲーションが必要です。
ありがとう、