問題タブ [bll]
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.
model-view-controller - MVC パターンは、DAL/BLL 設計パターンとどのように異なるのですか?
Microsoft の ASP.NET Web サイトにある初期のデータ アクセス チュートリアルを読んでいるときに、 MVC パターンを使用してロジックとプレゼンテーション コードを分離する方法について読んだ内容と非常によく似ていることに気づきました。初心者として、私はまだ MVC パターンを実装していませんが、これら 2 つのデザイン構造がどのように異なるのか、特に Web デザインのコンテキストで、どちらかに注意を向けるべきかについて興味があります。
data-access-layer - DAL に再ルーティングするためだけに、BLL オブジェクトに 2 つのライナー関数を多数記述する価値はありますか?
私にはかなりばかげているようです。何が得られないのですか?
sharepoint - SharePoint Web パーツ管理
多層アプリケーションとして設計された、Sharepoint と Project Server で開発されたかなり大規模なプロジェクトがあります。特定の Web パーツ ページの Web パーツをプログラムで管理しています。いずれかの Web ページでのユーザーの選択に従って、適切な Web パーツが別の Web パーツ ページの Web パーツ コレクションに追加されます。私の問題は、Web パーツを管理する場所がわからないことです。BLL で管理し、ビジネス ロジックを含むアセンブリで Web パーツがある UI アセンブリを参照する必要がありますか? (Web パーツ dwp を表すハードコードされた文字列を使用したくないため、Web パーツをコレクションに追加するときにインスタンス化する必要があります。)
c# - .NET の DAL と BLL
Microsoft による ASP.NET (2.0) アプリ用のDAL/BLL 設計の提案があります。私はいくつかの代替案を知っており、SO で関連する質問を読みました。しかし、この提案された解決策が今日実装する価値があるかどうか疑問に思っています。あなたが知っている特定の欠点はありますか?
さまざまなアプリケーションやスクリプトから顧客や従業員のデータなどにアクセスするために、社内で使用する DAL/BLL コンポーネントを開発したいと考えています。ただし、そのようなものの構築を開始する前に、このソリューションが「優れている」ことを確認したいと思います。例として、BLLは何もカプセル化する代わりにデータテーブルを渡します。ロジックを含む分離されたビジネス オブジェクトはありません。これは基本的に、CRUD 操作を少し緩和し、コントロールのデータ バインディングを可能にする単なるダム レイヤーです。
この分野で経験のある人が、このアプローチの長所と短所を指摘してもらえますか?
file - ファイル管理: ビジネス層のデータ アクセス層によって処理される?
だから、私は、StructureMap を使用して、Repository モデルに続くこの Web ベースのアプリに取り組んでいます。
アプリケーションの 1 つの側面により、ユーザーはファイルをアップロードおよび管理できます。
これらのユーザー ファイルの保存/削除の管理は、どこのどの層が担当する必要がありますか?
ビジネスレイヤー、またはデータアクセスレイヤー...?
それは、何らかの理由で、簡単な答えではないようです...
歴史的には、GUI で平手打ちしただけでしたが、よりプログラム的に正しくなるように努力し、これらのサービスを処理する方法を再考しました。たぶん私は自分の質問に答えただけです...
linq-to-sql - BLL の問題による Linq から SQL への更新 - ベスト プラクティス
セットアップ:
製品オブジェクトを更新するために収集される多くのフィールドを持つ大きなフォームがあります。したがって、ASPX ページで、ユーザーは更新が必要なフィールドを変更し、送信を押します。コード ビハインドでは、次のようなことを行います。
Linq の Product 部分クラスを SQL に拡張して、このメソッド (GetProductById) をオブジェクトに追加します。
これは、拡張された Product 部分クラスの Update メソッドです。データベースを更新し、電子メールを送信し、履歴テーブルを更新するので、このメソッドでこれらすべてを実行したいと考えています。
プロジェクトにはさらに 50 個のフィールドがあるため、50 個のフィールドすべてを収集するメソッドを作成するのはばかげていることは明らかです (IMO をデバッグするのが難しいため、とにかくそのルートには行きたくありません)。
問題:
DataContext を使用して Linq to SQL 経由で Product を取得すると、別の DataContext に既にアタッチされているエンティティをアタッチできないというエラーが発生するため、再度更新することはできません。
質問:
BLL のメソッドを介してオブジェクトを取得し、ASPX ページで更新してから、BLL を介して更新を再度送信してデータベースを更新しようとすると、どうすればよいですか?
asp.net - DAL から BLL に返すもの
現在、ユーザー インターフェイス (Web ページ) BLL (マネージャーとドメイン オブジェクト) DAL (各ドメイン オブジェクトの DataAccess クラス) で構成されるアプリケーションがあります。
UI で以下を使用して、ドメイン オブジェクトを検索します。
これが私のBLLです
最後に、これが私の DAL です
IBook オブジェクトを作成して Manager に返すにはどうすればよいでしょうか。BookDB から BookManager に DataTable を返し、Book オブジェクトを作成して返すようにしようと考えていますが、それは正しくないようです。これを行う別の方法はありますか?
編集:各レイヤーをプロジェクトに分離することにし、BLL への参照を追加しようとすると、DAL レイヤーで循環依存の問題が発生しました。DAL から Book クラスやインターフェイス、または BLL の何かにアクセスできません。ここで ado.net オブジェクトを使用し、管理者に ado.net オブジェクトから実際のオブジェクトを作成させる必要がありますか? これがそのレイアウト方法です
ありがとう!
design-patterns - Web Tier が DAL に直接アクセスすることを許可しますか?
私は、ここで少しの現実を和らげた、知覚された「ベストプラクティス」に興味があります。
Web アプリケーションでは、Web 層が DAL に直接アクセスできるようにしますか? それとも、最初に BLL を経由する必要がありますか?
具体的には、「ビジネス ロジック」が実際には関与しないシナリオについて話しています。たとえば、単純なクエリのように、「姓が 'Atwood' のすべての顧客を取得する」などです。あらゆる種類のロジックが絶対に存在するシナリオは、BLL を通過するので、それをmooと呼びましょう。
このメソッドを BLL オブジェクト内にカプセル化することもできますが、多くの場合、署名が DLL オブジェクトの署名とまったく同じであり、クエリを DLL に委譲する 1 つのライナーと同じくらい単純なコードになる場合は、やや無意味に思えます。 .
BLL オブジェクトを使用する前者を選択した場合、これらのオブジェクトを何と呼びますか? (クエリ レイヤーを DLL に提供する以上のことはしないと仮定します)。ヘルパー?クエリプロバイダー?
考えてください。
よろしく
マーティ
dll - POCO、DTO、DLL、Anemic ドメイン モデル
POCO と DTO の違いを調べていたところ(POCO は動作 (メソッド?) を伴う dto のようです) 、貧血ドメイン モデルに関する Martin Fowler の記事に出会いました。
理解の欠如により、私はこれらの貧血ドメイン モデルの 1 つを作成したと思います。
私のアプリケーションの 1 つで、'dto' dll でビジネス ドメイン エンティティを定義しています。それらには、ゲッターとセッターを備えた多くのプロパティがあり、他にはあまりありません。ビジネス ロジック コード (入力、計算) は別の 'bll' dll にあり、データ アクセス コードは 'dal' dll にあります。「ベストプラクティス」と思いました。
したがって、通常、次のように dto を作成します。
次のように bll レイヤーに渡します。
次に、いくつかのロジックを実行し、次のように dal レイヤーに渡します。
私の理解では、dto を POCO にするには、ビジネス ロジックと動作 (メソッド) をオブジェクトの一部にする必要があります。したがって、上記のコードの代わりに、次のようになります。
すなわち。オブジェクトをメソッドに渡すのではなく、オブジェクトのメソッドを呼び出しています。
私の質問は、どうすればこれを行うことができ、「ベストプラクティス」の懸念事項の階層化 (個別の dll など...) を保持することができるかということです。オブジェクトでメソッドを呼び出すということは、オブジェクトでメソッドを定義する必要があるということではありませんか?
私の混乱を助けてください。
asp.net - bll から mysql への ASP.NET 挿入
3 層ソリューション (またはそれが呼ばれるもの) を使用して、MySql データベースに挿入しようとしています。
私はこれを MS-sql データベースで何度も実行しましたが、非常にうまく機能しました。
しかし、挿入しようとすると、IDをnullにすることはできません。データベースがそれを処理すると思いました。コードに挿入を直接記述し、MySqlCommand と executeNonQuery を使用すると、うまく機能します。
MySql で BLL と DAL を使用することはできませんか?
エラーメッセージ:
System.Data.NoNullAllowedException: 列 'GiftID' は null を許可しません。System.Data.DataColumn.CheckNullable (DataRow 行) で System.Data.DataColumn.CheckColumnConstraint (DataRow 行、DataRowAction アクション) で System.DataTable.RaiseRowChanging (DataRowChangeEventArgs args、DataRow eRow、DataRowAction eAction、Boolean fireEvent) システムで.Data.DataTable.SetNewRecordWorker(DataRow 行、Int32 提案レコード、DataRowAction アクション、ブール値 isInMerge、Int32 位置、ブール値 fireEvent、Exception& deferredException) で System.Data.DataTable.InsertRow(DataRow 行、Int32 提案 ID、Int32 位置、ブール値 fireEvent) c:\Users\IT\AppData\Local\Temp\Temporary ASP.NET Files\payex\45bd406a\10c84208\App_Code.cyqhjqo7 の PayEx.payexusersDataTable.AddpayexusersRow(payexusersRow 行) の System.Data.DataRowCollection.Add(DataRow 行) .1.cs:
私のコード: