問題タブ [data-layers]

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

openlayers - OpenLayers レイヤー名でマークアップを使用する方法

次の方法で定義された多数のデータレイヤーがあります。

これをマップに追加すると、レイヤースイッチャーに表示され、すべて問題ありません。ただし、結果の HTML に次のものが含まれていることに気付きました。

フォーム入力 ID と NAME の両方にレイヤー名がそのまま含まれていることがわかります。ID 属性と NAME 属性は非常に簡単に無効になる可能性があるため、これは少し奇妙に思えます。さらに複雑なことに、レイヤー名をさまざまな言語で表示/非表示にするために、レイヤーラベルにマークアップを追加したいと考えています。フォームフィールドにマークアップを入れることは、a)ゴミであり、b)フォームが送信されたときにIISが「潜在的に安全でない要求」を訴える原因となります(asp.net Webフォーム、ページをラップする単一のフォームであるため、負荷をかけずに実際にエスケープすることはできません)仕事!)

安全でないページ リクエストの警告を回避する方法は知っていますが、そうすると、管理者が少し停止します。基になるコントロール マークアップに干渉することなくレイヤー ラベルを適切に設定する方法を誰かが知っているかどうか疑問に思っていましたか?

乾杯、スティーブ

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

c# - データアクセス用のC#OO設計の例

アプリケーションのメインデータレイヤーにMSEnterpriseLibrary 5.0(データアクセスブロック)を使用しています。

私はOOの基本を理解していますが(はい、私は継続的に学習する必要があります!)、どこで/なぜ/どのように優れたデザインを利用するか、つまりコードを不必要に繰り返さないことなどを理解するよう努めています。それでも、コードを読みやすく、もちろんデバッグできるようにしようとしています。

したがって、最初に、次のクラスとデフォルト/サンプルメソッドがあります:(ps:db / procからの戻り値はXMLです)

だから..これまでのところかなり基本的です。ここで、「getMemberContacts」メソッドをさらに増やす方法のテンプレートを確立しようとしています。つまり、仮想メソッドである一般的な「get」メソッドを作成し、パラメーターをオーバーライドする必要がありますか?私はこれが非常に改善に聞こえることを知っています、そしてそれはそうです!学習の一部だと思います。

要約すると、もちろん、params / proc名が明らかに異なる「get」メソッドを再利用しようとしていますが、実際の戻り値(この場合はXML、したがって、戻り値を連結するwhile /append部分) XMLブロック)は同じである必要があります。つまり、戻り値をXMLのままにするか、指定されている場合はJSONを返すことができます。

これは非常に基本的なもの/概念だと思いますが、どんなポインタ/アイデアもありがたく受け取られます!

デビッド。

- - 編集 - -

SQLから直接XMLを返さないことについてのコメントに興味があるので、SQL 2008 XMLの部分を示すだけです-繰り返しますが、さまざまな方法で使用するために生データを取得することは良いことですが、私の場合はすべて私のフロントエンドフレームワークの1つはXMLまたはJSONのいずれかを使用しています(ちなみにJSフレームワークは素晴らしいですwww.dhtmlx.comです)。

したがって、SQL2008のプロシージャは次のとおりです。

出力は次のようにプルバックされます:

..これは、フロントエンド用にフォーマットされたデータが必要な方法です。

このメソッドを使用しない理由がわかります。つまり、別のフレームワークを使用したり、たとえばストレートデータテーブルのデータが必要な場合はどうなりますか。XMLまたはストレート表形式で出力するparam変数を使用できると思います。またはあえて2つのprocを言っても..しかし、どちらの方法でもコメントを聞くことに興味があります...

すべての入力に再度感謝します-それは本当に非常にありがたいです。

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

asp.net-mvc-3 - 既存のデータレイヤーとビジネスレイヤーを使用した MVC

データレイヤー (プライマリ EF4)、ビジネスレイヤー (カスタム コード)、および Windows アプリケーションを含む既存のアプリケーションがあります。ASP.NET MVC を使用して Web アプリケーションを作成したいと考えていますが、特に自分のモデルで何をすべきか正確にはわかりません。

データとビジネス ロジックが既に存在する場合、MVC Music Store v2.0 (http://mvcmusicstore.codeplex.com/) などの参照プロジェクトと比較して、モデルとコントローラーをどのように構築すればよいですか? すべてのエンティティはデータレイヤーに保存され、すべてのメソッドとロジックはビジネスレイヤーに保存されるため、モデルは必要ないと思います (特定の Web モデルが必要でない限り)。コントローラーはビジネスレイヤーのメソッドを次のように呼び出すだけでよいと思います。通常の Web フォーム アプリケーションではどうしますか?

別の質問ですが、2 つの異なるエンティティからのデータを含む 2 つのリストを 1 ページに表示する必要がある場合、2 つのプロパティ (エンティティごとに 1 つ) を持つモデルを作成する必要があると思いますか?

最後の 1 つですが、何らかの理由で、たとえば、ビジネスレイヤーからの Get メソッドが例外を返した場合、これをコントローラー/ビューでどのように処理する必要がありますか?

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

architecture - N 層 - 挿入と更新の責任の場所

データ層 (リポジトリ パターンと EF 4.0 を使用)、ビジネス層 (POCO と追加のロジック)、およびサービス層 (WCF を使用してクライアントに公開される) に分割されるアプリケーションを作成しています。

レコードをデータベースに保存するとき、既存のレコードを更新しているのか、新しいレコードを挿入しているのかを確認する必要があります。オブジェクトの有効期間が明示的に管理されるようにサービス層に、またはレコードを保存すると実行するアクションが暗黙的に決定されるようにデータ層に、その責任はどこにあるべきですか。

すべてのコメントを歓迎します - 私は自分自身を決めることができません!

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

php - この例でSQLとビジネスロジックを分離するにはどうすればよいですか?

私は、ビジネスロジックとデータレイヤーを分離するためにphpクラスを設計する方法についてオンラインでヘルプを探していました。私はかなりクールだと思ったクラスの設計を始めましたが、その後PDOとADODBを発見し、ホイールを再現していることに気付いた素晴らしい瞬間を過ごしました。今の私の問題は、ロジックとすべてのSQLクエリを分離する方法をまだ完全に理解していないことです。

私はDBスキーマからほとんどすべてを取り除き、これら2つのテーブルを配置しました。これは、それらが非常に理解しやすいと思うからです。サーバーに保存されているパスがディレクトリにあるファイルがあるとします(これらのディレクトリは他のディレクトリにある可能性があります)。ファイルの1つからルートディレクトリを取得したり、現在のディレクトリ内のディレクトリのリストを取得したりするなどの基本的な機能が必要だとします。

適切に設計されたクラスは次のようになりますか?

コンストラクターを介して渡されたIDを使用して、コンストラクター内のオブジェクトのすべてのデータをどこでフェッチしますか?コンストラクターでもPDOオブジェクトを渡す必要がありますか、それともいくつかの貴重なデザインパターンがありませんか?すべてのSQLをここにハードコーディングする必要がありますか?PDOで得られることの1つは、MySQLからMSSQLに非常に簡単に切り替えることができるということですが、どちらもSQLの構文に違いがあるため、問題は発生しませんか?

これらは1つの良い答えがない、より理論的な質問であることは知っていますが、これについて話し合う同僚が不足しているため(デザインパターンが何であるかさえ知らないと言っても冗談ではありません)、Webに目を向けています。私の質問が曖昧すぎる場合は、この種の質問をすることができる良いディスカッションタイプの場所を自由に提案してください。私は非常に感謝しています:)

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

c#-4.0 - DataLayer を生成するユーティリティ

次のデータベースからデータ層を生成できるユーティリティを作成する必要があります:
Mssql
MySQL
Oracle

例:いくつかのテーブル、ビュー、プロシージャ、関数などを含むSQLデータベースがあります。上記のユーティリティを使用すると、エンティティクラスとそのマッピングなどを含むすべてのデータレイヤーを生成できるため、これに基づいて私は私のビジネスレイヤーとUIを書くことができます。

この目的のためにユーティリティを使用したくありません。

この点でどんな助けでも大歓迎です!

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

php - 分離レイヤーを使用したデータベースとの対話 (PHP および WordPress)

PHP、特に WordPress プラグインでは、人々が SQL をプラグインに直接記述しているのをよく見かけます... 私が学んだ方法では、すべてをレイヤーで処理する必要があります... そのため、ある日、特定のレイヤーの要件が変更された場合、すべてがインターフェースするレイヤーを変更することだけを心配する必要があります。

現在、データベースとやり取りする方法に何か変更があった場合に、作成した X 個のプラグインではなく、1 つのレイヤーを変更するだけでよいように、データベースとインターフェイスするレイヤーを作成しています。

これは他の人が過去に遭遇した可能性があることであり、私のアプローチは非効率的であると感じています.

私は次のようなクラスを書いています

これにより、すべての機能を処理する特定のメソッドを持つ特定のオブジェクトを使用して、データベースのテーブル、列、および行を作成できます。

私の質問は...

他の誰かが、異なるレイヤー間の分離を提供するために何かを既に書いていますか?

そうでない場合、私のアプローチは長期的にはまったく役に立ちますか、それとも時間を無駄にしていますか。他のみんなと同じように、SQL を分解してハードコーディングする必要がありますか?

これを自分で書くのに役立つ場合、より効率的に処理するために私が取ることができるアプローチはありますか?

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

entity-framework - エンティティ フレームワーク、リポジトリ、データ層、3 層

Entity Framework で 3 層設計を視覚化しようとしています。

EF コンテキストの上にリポジトリがある場合、それらは両方ともデータ層のコンポーネントですか?

それとも、リポジトリはデータ層そのものであり、EF は別のものですか?

リポジトリまたはデータ層と通信する BLL を用意し (手がかりがありません..)、これらすべてがどのように適合するかを理解しようとしています。

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

c# - セキュリティ分野横断的な懸念

セキュリティが分野横断的な関心事と見なされていることを高く評価しており、現在の開発では、さまざまなレイヤーで使用できる個別のコンポーネントとしてセキュリティを構築しました。セキュリティ コンポーネント内には、ユーザー、グループなどを取得するために使用されるデータ アクセス レイヤーがあります。

ただし、このデータ層をセキュリティ コンポーネントと共に使用することは、独自のデータ層を持つアプリケーション内で使用する場合、私には正しくないように思えます。

これは間違っていますか?

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

c# - ビジネスレイヤーからデータレイヤーにオブジェクトタイプを渡す方法

n 層アプリケーション アーキテクチャを作成しています。異なるレイヤーは、相互の内部実装について何も知らず、レイヤー間の通信は、IoC/DI で支援される非常に狭いインターフェイスを介して処理されます。

ここで、ビジネス オブジェクト (ビジネス レイヤーで定義) をデータ レイヤーに渡します。ビジネス層自体は、データが実際にどこにどのように保存されているかを知りません (通常はデータベースですが、ビジネス層はそれを知っているべきではありません)。ビジネス オブジェクトは、IDataReader の実装を通じてデータ層に渡されます (このアプローチは、将来のシナリオでのデータの一括読み込みもサポートします)。データ レイヤーは IDataReader からすべてのデータを読み取り、ストアド プロシージャを呼び出してデータをデータベースに保存します (1 つのオブジェクトが保存されている場合、IDataReader は「1 行」を返します)。

実際の問題はここにあります:

IDataReader をデータ層に渡し、データをその型から切り離すだけなので、この場合、データの場所を特定する最善の方法は何ですか?

たとえば、タイプ「ユーザー」の実際のビジネス オブジェクトをデータ レイヤーに渡すと、データ レイヤーはデータをテーブル「ユーザー」に保存する必要があります。他のケースでは、ビジネス層のタイプとは関係なく、データが別の構造に保存されることがあります。

現在の実装では、ビジネス オブジェクトの型情報をデータ レイヤーに渡し、データ レイヤーがこの型を検査して、データを配置する場所を決定します。

データ層が受信データを検査してその場所を決定するのは正しい解決策ですか、それともデータ層がデータを保存できる「場所」のリストを公開する必要がありますか (enum?)?

前もって感謝します!

/説明

ここに表示されるオプションは次のとおりです。1.データレイヤーは、データを保存できる「場所」のリストを提供します2.データレイヤーは、指定された引数(そのタイプargなど)を検査し、データを保存する場所を決定します

最初のオプションのペナルティ; タイプ「製品」のビジネスオブジェクトをタイプ「ユーザー」で通常使用される構造に格納しようとするとどうなりますか

2 番目のオプションのペナルティ。タイプ「Namespace1.Namespace2.User」を、データをテーブル「User」に保存する特定のルーチンにマップする必要があります。したがって、手動で各タイプのマッピングを行います...

/説明2:

今、私はこのように取得します:

だから私は typeof(Catalog) をデータ層に渡します...だから私はデータ層に型情報を持っています。

データレイヤーで、データベースからデータを取得するのに苦労する「アダプター」を選択する必要があります。アダプターを選択するための膨大な if/switch 構造を書くことができます...これはイライラします。また、属性を記述して次のように使用することもできます。

次に、指定されたタイプから属性値へのマッピングを行うコードがあります...

...しかし、ハードコードされた型文字列では少し肥大化して問題があります...

助言がありますか...?

/説明3

このシステムは「プラグ可能なビジネス モジュール」によって拡張できると考えています。これらのモジュールには、base-business-logic では認識されないビジネス オブジェクト (およびいくつかのロジック) が含まれており、データ レイヤーは、「プラグされたアセンブリ」に含まれるこれらのビジネス オブジェクトを完全に認識していません。この外部ビジネス モジュールには、base-business-layer または data layer への参照がありません。この外部アセンブリからのビジネス オブジェクトが保存される (= データ レイヤーに送信される) と、データ レイヤーはデフォルトでそれを EAV スタイル (http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%) で保存します。 93value_model) データ構造を自動的に。この種のデータ構造にはパフォーマンス上の問題が発生する可能性があるため、データ層には、特定のビジネス オブジェクト タイプを専用のデータ構造 (通常はそのタイプに 1 対 1 でマッピングされたテーブル) に保存する方法が必要です。

ここでのアイデアは、多くの新しいビジネス オブジェクトを作成し、実際にデータ レイヤーに何もコーディングしなくても、それらすべてをデータ レイヤーに保存できるということです。後で、必要に応じて、選択したビジネス オブジェクトに専用のデータ構造を作成できます。