問題タブ [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.
computer-science - ベクターとレイヤーのデータ構造
私は混乱しているコードを扱っていますが、データ構造を理解していないだけなのだろうかと思っています。私が扱っているデータは、ベクターとレイヤーを利用しています。ベクトルは単なるデータの行だと思いますが、よくわかりません。
これらの使用について、あなたが提供したり、私に指摘したりできる情報は、非常に役に立ちます。
nhibernate - データ層で複数のデータ プロバイダーにアクセスする
私は、DDD の哲学を使用して開発されているビジネス アプリケーションに取り組んでいます。データベースは NHibernate を介してアクセスされ、データ層は DAO パターンを使用して実装されます。
UML クラス図を以下に示します。
UML クラス図 http://img266.imageshack.us/my.php?image=classdiagramhk0.png http://img266.imageshack.us/my.php?image=classdiagramhk0.png
デザインの良し悪しはわかりません。どう思いますか?
でも問題はデザインの良し悪しではありません。問題は、アプリケーションを起動した後IDaoFactory
、プレゼンテーション層でインスタンス化され、以下のように (MVC パターンを使用して設計された) プレゼンター クラスにパラメーターとして送信されます。
1 つのデータ プロバイダー (1 つのデータベース) だけを使用するのは簡単でした。しかし、XML からもデータを取得する必要があります。そして、開発の次の段階では、さまざまな Web サービスに接続し、受信データと送信データを操作する必要があります。
XML からのデータは、列挙型であるキーを使用して取得されます。という名前のクラスXMLLoader
をデータ層に追加し、インターフェイスILoader
をドメインに追加します。XMLLoader
署名が
以下のように、プレゼンテーション層で XMLLoader を使用して ILoader をインスタンス化する場合、データ層から XML データを取得するオブジェクトにそれを送信する必要があります。
Web サービス アクセス クラスの実装後
パラメータは時間の経過とともに大きくなります。クラス内のデータ アクセス オブジェクトのすべてのインスタンスを保持し、必要なプレゼンターに渡すことができると思います (シングルトン パターンも役立つ場合があります)。ドメイン層には、次のようなクラスが必要です。
メイン クラスでは、次のようにこの設計でインスタンス化を行うことができます。
このデザインについてどう思いますか、それとも別のデザインを提案してもらえますか?
回答者の皆様ありがとうございます...
linq - 今日のデータレイヤーには、LinqとSubsonicのどちらを選びますか?
レガシーコードを使用せずに、新しいプロジェクトを開始する準備が整いました。過去にSubsonicを使用しましたが、かなり満足しています。しかし、それはLinqの前でした。
誰かがこれと同じ問題(Linq x Subsonic)に直面する必要がありましたか?
あなたの決断は何でしたか?理由は何でしたか?
どんな洞察もありがたいです。
orm - どの ORM を使用するかをどのように決定しますか?
キャッスルアクティブレコード? 普通のNHibernate?サブソニック?実在物?ネティアーズとか?
使用したいのですが、決定するのに十分な知識がありません。Nibernate はオーバーキルで複雑に見えますが、広く使用されています。サブソニックはきちんとしていて簡単に思えます。でも安定してる?私は CodeSmith を持っており、Nettiers を指摘されました。これもきちんとしているように見えますが、複雑でもあります。他の人はどのように評価し、何を使用するかを決定しますか? 機能を確認するために、それぞれで小さな単純なプロジェクトを作成しますか? イーニー、ミーニー、マイニー、モー?
javascript - レイヤーの表示/非表示と Z-Index を使用してページ コンテンツを変更するドロップダウン メニューを作成する
ユーザーがドロップダウン メニューからアイテムを選択して RSS フィードを表示できるサイトのサイドバーを作成しようとしています。フィードは、リストから選択されたアイテムに応じて変化します。これを達成する方法はわかりませんが、最初に考えたのは、z-index とレイヤーの表示/非表示を使用することでした。1 つのレイヤーとメニューをセットアップしましたが、別のメニュー項目を選択したときに表示されるフィードを変更できません。これを達成する方法を知っている人はいますか?
これまでに行ったことのライブ プレビュー アップがあります。サイトCHUDにあります。
xml - 大きなXMLファイルでのアーキテクチャとキャッシュに関する考慮事項
商品や商品のカテゴリを表示するウェブサイトを構築しています。データは、500kXMLファイルの形式で外部サービスから取得されます。WebサイトはASP.NET、C#です。
XMLは、カテゴリのリストとして構造化されています。各カテゴリの中には、いくつかの製品やその他のカテゴリが含まれている場合があります。
明らかに、この外部サービスを呼び出して、ページ要求ごとに大きなXMLファイルを取得することはできないため、数時間に1回呼び出して、キャッシュします。私はこのようなことをする必要があります:
- ページの左側に製品カテゴリメニューを表示します
- 選択したカテゴリのすべての製品を表示する
- 単一の製品に関する拡張情報を表示する
私の質問は次のとおりです。
まず、「DVD」カテゴリのすべての製品を表示するページで、次のことを行ったとしましょう(ページの読み込み時)。
カテゴリXMLをローカル変数(500kであることを思い出してください)に入れることで、それはサーバーの消耗ですか?ページが読み込まれるたびにこれを行う必要があることを忘れないでください。何千人もの人々が同時に異なるページを見ているかもしれません。1000人が数秒の間に同じページをロードした場合、このXMLファイルの1000個のインスタンスがメモリにぶら下がっていますか?それとも、ガベージコレクターがすべてを管理してくれますか?
キャッシュされたアイテムを直接ループする方が良いですか、それともパフォーマンスが低い(および/または悪い習慣)のでしょうか?
次に、XMLファイル全体をキャッシュすると言いました。そのXMLをループすることで、そのXMLから製品またはカテゴリを取得します(私はXMLよりもLINQを使用しています)。カテゴリタイプと製品タイプを作成し、それらを配列に入れて、それをキャッシュする方がよいでしょうか?次に、XDocumentではなくCategoryオブジェクトと配列をループしますか?よりパフォーマンスの高いものは何ですか?
第三に、このシステムをどのように設計するかという観点から、ベストプラクティスは何と言いますか。データアクセス層、ビジネスオブジェクト層、およびWebアプリケーションがあるとします。XMLを取得するには、外部サービスへの参照をどこに置く必要がありますか?どのレイヤーをキャッシュする必要がありますか?DAL部分が他のシステムによって実行されるという意味で、このアプリケーションにはデータアクセス層さえありますか?現在、私のDALはデータベースにアクセスするためだけにあり、そこにWebサービス参照を配置するのは間違っていると感じていますが、そうではないのではないでしょうか。ビジネスレイヤーでキャッシュを使用することは悪い習慣ですか(つまり、単体テストに干渉するなど)?キャッシュのためだけに、Webとビジネスレイヤーの中間層を検討しました。これは良いアイデアですか、それとも悪いアイデアですか。
私はすでにこのウェブサイトの大部分を終えました、実際-私は単に今それを振り返って、私がそれを最善の方法でやったかどうか疑問に思っています、それであなたの提案を私が実際にやったことと比較したいと思います、そしてうまくいけば私は戻ってそれを改善することができます。
ありがとう!
linq-to-sql - 複数のデータベースにまたがるデータ層を構築するための最良の方法は何ですか?
まず、環境について少し説明します。
Clearviewと呼ばれるプログラムを使用して、コールセンターやフィールドサービス作業など、お客様とのサービス関係を管理します。クライアントとフィールド技術者をより適切にサポートするために、Clearviewとレポートのサービスレコードへのアクセスを提供するWebサイトも開発しました。時間の経過とともに、動作をカスタマイズして新しい機能を追加する必要が生じ、このWebサイトとそのデータベースに結び付けられるものがますます増えています。
この時点で、一部はClearviewデータベースで、一部はWebサイトデータベースで定義されている会社などを扱っています。また、電話システムのスクリプトを同じWebサイトに結び付け始めています。これには、電話システム自体のデータベースとも通信する必要があります。
これらはすべてセットアップされて機能しています...しかし、すべてを処理するための適切なデータレイヤーがありません。LinqからSQLに移行し、使用できる2つのDBMLと、Linqについて聞く前に作成したいくつかのカスタムクラス、およびいくつかの古いスタイルのADOデータセットがあります。そうそう、基本的に物事は混乱です。
私が必要としているのは、アプリケーションに単一のフロントエンドを提供し、バックエンドですべてを適切なデータベースに管理するデータレイヤーです。
複数のソースからクラスを構築できるEntityFrameworkについて聞いたことがありますが、データベースは1つしか存在できないことがわかりました。だから問題は、どうすればこれを進めることができるかということです。
私は現在、データベースごとにLinq To SQLクラスをすべて設定してから、それらを結び付けるLinq互換のフロントエンドを手動で作成することを考えています。多くの作業のように思えますが、Linqの制限(更新できないなど)を考えると、それが良い考えかどうかはわかりません。
Entity Frameworkを使用して、より良い結果が得られる何かを行うことはできますか?別のツールを調べる必要がありますか?私は夢中ですか?
c# - DAAB 3.5/4.0 を使用した DAL 設計
私は .Net 3.5 Web アプリケーションに取り組んでいます。たとえば、顧客、注文などのさまざまなモジュールがあります。Enterprise Library 4.0 (データ アクセスを使用) を使用して、同じデータ アクセス層 (DAL) を設計する必要があります。アプリケーション ブロックまたは DAAB) を使用して SQL Server 2005 に接続します。
• 「IDataService」と呼ばれるインターフェースを持ちます。「ExecuteReader()」、「ExecuteScalar()」、「ExecuteNonQuery()」、「AddParams」などのメンバーを持ちます...基本的に、このインターフェースはDAAB。
• このインターフェイスを実装する「DataService」というクラスがあります。このクラスは DAAB のラッパーとして機能し、各メソッドは DAAB の対応するメソッドを内部的に使用します。
• Customer、Data などのビジネス クラス (またはデータ コンテナー) を持ち、データベース内の対応するテーブル属性にマッピングされるプロパティを持ちます。
• CustomerDataService、OrdersDataService などの各モジュールに DAL クラスを用意します。これらの各クラスには、以下のように DataService クラスをインスタンス化するコンストラクタ コードがあります。 IDataService dataService= new DataService() また、これらの各クラスには次のようなメソッドがあります。 GetCustomerDetails() AddCustomer() RemoveCustomer() UpdateOrder など。これらのメソッドは内部で「dataService」オブジェクトを使用して、データベース ExecuteReader、ExecuteNonQuery などで操作を行います。
• 「CustomerMapper」、「OrderMapper」などの各モジュールのマッパー クラスを用意します。これらのクラスはデータソース (IDataReader など) を入力として受け取り、ジェネリック コレクション (List) にデータを入力します。これらのマッパー クラスは、対応する Dataservice クラスによって内部的に呼び出され、タイプ セーフなコレクションを呼び出し元のクライアントに返します。
• 「DBNull ケースの処理」、「ストアド プロシージャ名の保存」などのタスクを実行する DbHelper などのヘルパー クラスを用意します。
• DataService クラスは、BusinessLogic レイヤ クラスによって使用されます。つまり、CustomerBusiness、OrdersBusiness などです。
• ビジネス ロジック層は、コレクションをプレゼンテーション層に返します。
この設計は理にかなっていますか?このアプローチの利点/欠点は何ですか? このアプローチの利点は、「DataService」クラスが内部でどのように実装されているかを知る必要なく、すべての DataService クラスが常にインターフェース「IDataService」に対してプログラミングされることです。したがって、将来、DAAB を削除して、内部で別の API を使用する場合DataService クラス、クライアント コードを変更する必要はありません。また、DAAB に存在しないメソッドを IDataService インターフェイスに追加することもできます。たとえば、BatchUpdate()...
私が間違っている場合は修正してください。
iphone - iPhoneアプリのどこにデータレイヤーを配置しますか
.Netでは通常、別のクラスライブラリを作成し、プロジェクトで参照します。このクラスライブラリは、データベースのすべての選択、挿入、および更新を行います。または、クラスまたは静的メソッドをApp_Codeフォルダーに配置します。
iPhone Devでは、コードとロジックを分離するために、このデータレイヤーをどこに配置しますか。このレイヤー、ファイルは、データを必要とし、データベースに書き込みたいすべてのビュー、コントローラーからアクセスされます。