問題タブ [business-objects]
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.
data-access-layer - ビジネスオブジェクトからのデータアクセス層の抽象化
データアクセスコードをビジネスオブジェクトから切り離すことは新しいことではありませんが、私は常に何かを達成するための「最良の方法」を探しています。
私は次のクラスを持っています:
オレンジ-これは私のビジネスオブジェクトです。
OrangeList-これはオレンジのリストです。
ユーザーは、OrangeList.Fetch(someCriteria)を呼び出して、データストアからOrangeオブジェクトをフェッチします。したがって、OrangeListにはデータアクセス層への参照が必要です。つまり、プロパティはIDataProviderMyDataProviderです。
これは私にとってはうまくいきますが、問題は、単一のOrangeを単独でフェッチできないことです。常にOrangeListを経由する必要があります。
そのいずれか、またはOrangeとOrangeListの両方は、DataProviderを保持するいくつかの共通オブジェクトから派生する必要があります。
これは問題ですか、それとも私のアプローチはそもそもマークから外れていますか?
ヒント/ポインタはありがたいです、ありがとう。
編集:以下の議論に照らして、私はリポジトリパターンをチェックアウトしました。
ただし、私のプロジェクトでは、リポジトリをDALからさらに分離することをお勧めします。
SO ....リポジトリは、私がオレンジを取得し、オレンジを保存する方法ですが、それでも方法がわかりません。私はそれをIDataProviderに委任します。これは、図にリストされているものの数である可能性があります。
明確にするために-オレンジはそれ自体をフェッチ/更新する方法を知りませんよね?それは純粋なビジネスオブジェクトです-そしてそれがポイントですか?
代替テキストhttp://img22.imageshack.us/img22/2460/repositorya.jpg
ご参考までに、私の「LegacyDataProvider」は、ファイルベースのデータベース(FoxPro、eek)にアクセスするOLDシステムをサポートすることですが、これでこれをまとめて、新しいコードから腕の長さに保つことができます。
.NETアセンブリの構築に関しては、循環参照を防ぐために、Repository.DLL [OrangeRepo]、DataProviderInterface.DLL [IDataProvider]、およびBusinessObjects.dll[Orange]があるように見えます。すべて良いですか?
その時、私はリポジトリのアイデアを思いついたのですか?
business-objects - ユーザー オブジェクト ダイアログ ボックス - 開かない (ビジネス オブジェクト)
ビジネス オブジェクトで、ユニバースのクエリ パネルで [ユーザー オブジェクト] アイコンをクリックしても、[ユーザー オブジェクト] ダイアログ ボックスが開きませんが、他のユニバースで確認したところ、[ユーザー オブジェクト] ダイアログが開きます。
Designer のユニバースの正確なパラメータによって、Business Objects でこの機能が有効になるかどうかはわかりません。誰かがこれについて私を助けることができますか?
business-objects - webi レポートで使用される BO XIR2 ユニバース オブジェクトを一覧表示する方法は?
Business Objects SDK for XIR2 を使用して Webi レポートからユニバース オブジェクトを一覧表示する方法は?
SDKなしで自動化する方法はありますか?
SDK を使用して、webi レポートとユニバース コレクションを反復処理できましたが、クエリ オブジェクトまたはレポート クエリを取得するネイティブな方法がわかりません。
.net - 「GUI」レイヤーを「ビジネスロジック」レイヤーから除外するにはどうすればよいですか?
現在、「ビジネスオブジェクト」プロジェクトであるプロジェクトがあります。私たちの目標は、GUIとビジネスオブジェクトを明確に分離することです。ただし、私のプロジェクトにはSystem.Windows.Formsへの参照があり、これは私のプロジェクトの設計が不十分であることを誰にとっても大きな危険信号です。
私の問題は、「アクティブクエリビルダー」と呼ばれるサードパーティのコントロールを使用していることです。GUI、System.Windows.Forms.Controlのように、文字通り「コントロール」です。ただし、フォームのコントロールコレクションに追加されて、どこにも表示されることはありません。また、ビジネスオブジェクトのコア機能の多くを提供します。
とにかく、System.Windows.Formsへの参照なしで-サードパーティのコントロールを使用できず、BOがひどく壊れています。しかし、System.Windows.Formsへの参照は、コーディング方法が悪いためにできないと言われています。
そして、私は何をすべきかについて完全に途方に暮れています。
デザインパターンタイプの経験が豊富な人が解決策を提供できますか?
asp.net - ASP.NETのビジネス/ドメインオブジェクト
ASP.NET(2.0以降)UI/プレゼンテーション層を介してビジネス/ドメインオブジェクトを操作するために何が機能するか/機能しないかについての考えを集めようとしているだけです。特に、ASP.NETコードがビジネスレイヤーと直接通信する従来のASP.NETLOBアプリケーションの状況では。私はこのタイプの設計に頻繁に出くわし、理想的なソリューション(つまり、特定のパターンを実装する)と、「パターン」が実装されていない場合に完全な書き直しを必要としない最良の実用的なソリューションは何か疑問に思います。
これがサンプルシナリオです。
特定のビジネス/ドメインオブジェクトの「編集/新規」ページである単一のASP.NETページ。例として、「Person」を使用してみましょう。このページから名前と住所の情報を編集したいと思います。ユーザーが編集またはデータの入力を行っているときに、フォームが自分自身を更新するためにポストバックする必要がある場合があります。たとえば、住所を編集するときは、「国」を選択します。その後、州/地域のドロップダウンが有効になり、選択した国の関連情報で更新されます。これは本質的にビジネスロジック(依存するフィールドに基づいて使用可能な選択を制限する)であり、このロジックはビジネスレイヤーによって処理されます(これは単なる一例であることに注意してください。
理想的には、このロジックはビジネス/ドメインオブジェクトにのみ格納されます(つまり、ASP.NETコードでロジックが複製されていません)。これを実現するには、ビジネス/ドメインオブジェクトを再初期化し、各ポストバックの現在のUI値に基づいて状態を設定する必要があると思います。
例えば:
私が見た他のオプションは、ページがバックアップされるたびにリポジトリ(別名データベース)からビジネスオブジェクトをロードするのではなく、SessionStateに保存することです。
考え?
business-objects - ビジネスオブジェクト-クエリパネルの条件セクションにオブジェクトを追加するためのショートカットキー
ビジネスオブジェクトに、クエリパネルの条件セクションにオブジェクトを追加するためのショートカットキーはありますか?
.net - 基本ビジネスクラス:悪いですか?
オブジェクトの変更を追跡するためのインターフェイス(IsNew、IsDirty)やINotifyPropertyChangesインターフェイスの実装など、いくつかの一般的な動作を持たせるために、EntityBaseなどの基本ビジネスクラスを作成したいと思います。
しかし、多くの人は、基本的なビジネスクラスを持ち、そこからすべてのビジネスオブジェクトを派生させるのは悪い考えだと言います。通常、エンティティクラスにプレゼンテーションコードを含めるのは悪いことだと言われています。しかし、それは単なる理論だと思います。実際には何が悪いですか?彼らは言う:自分で試してみてください。通常、これ以上の引数はありません。
それで、皆さんはどう思いますか?良いですか悪いですか?悪い場合、なぜですか?理論的ではなく、実践的な人間になるようにしてください。