問題タブ [entities]
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.
sql - エンティティ オブジェクトが必要な理由
現在受け入れられているエンタープライズ アプリケーションの設計パラダイムのメリットについて、率直で思慮深い議論が必要です。
エンティティ オブジェクトが存在する必要があるとは確信していません。
エンティティ オブジェクトとは、"Person"、"Account"、"Order" など、アプリケーション用に構築する傾向がある典型的なものを意味します。
私の現在のデザイン哲学は次のとおりです。
- すべてのデータベース アクセスは、ストアド プロシージャを介して行う必要があります。
- データが必要なときはいつでもストアド プロシージャを呼び出し、SqlDataReader または DataTable の行を反復処理します。
(注: 私は Java EE を使用してエンタープライズ アプリケーションも構築しました。Java 関係者は、私の .NET の例を同等のものに置き換えてください)
私はアンチOOではありません。エンティティだけでなく、さまざまな目的のために多くのクラスを作成します。私が作成するクラスの大部分が静的ヘルパー クラスであることは認めます。
私はおもちゃを作っているわけではありません。私が話しているのは、複数のマシンに展開された大規模で大量のトランザクション アプリケーションです。Web アプリケーション、Windows サービス、Web サービス、B2B インタラクションなど。
OR マッパーを使用しました。いくつか書きました。私は Java EE スタック、CSLA、およびその他の同等のものをいくつか使用しました。私はそれらを使用するだけでなく、実稼働環境でこれらのアプリケーションを積極的に開発および保守してきました。
私は、実体オブジェクトが私たちの邪魔をしているという実戦テスト済みの結論に達しました.私たちの生活はそれらがなければずっと楽になるでしょう.
次の簡単な例を考えてみましょう。アプリケーション内の特定のページが正しく機能していないというサポートの電話を受けました。フィールドの 1 つが本来あるべきように永続化されていない可能性があります。私のモデルでは、問題を見つけるために割り当てられた開発者は、ちょうど 3 つのファイルを開きます。ASPX、ASPX.CS、およびストアド プロシージャを含む SQL ファイル。ストアド プロシージャ呼び出しのパラメーターが欠落している可能性があるこの問題は、解決するのに数分かかります。しかし、どのエンティティ モデルでも必ずデバッガーを起動し、コードのステップ実行を開始すると、Visual Studio で 15 ~ 20 個のファイルが開かれることになります。スタックの一番下に降りる頃には、どこから始めたか忘れてしまいます。私たちは一度に多くのことを頭の中に入れておくことができます。ソフトウェアは、不要なレイヤーを追加することなく、信じられないほど複雑です。
開発の複雑さとトラブルシューティングは、私の不満の 1 つの側面にすぎません。
次に、スケーラビリティについて話しましょう。
開発者は、データベースとやり取りするコードを作成または変更するたびに、データベースへの正確な影響を徹底的に分析する必要があることを認識していますか? 開発コピーだけでなく、本番環境の模倣を意味するため、オブジェクトに必要な列を追加すると、現在のクエリ プランが無効になり、1 秒で実行されていたレポートが 2 分かかることがわかります。選択リストに単一の列を追加したためですか?また、現在必要なインデックスが非常に大きいため、DBA がファイルの物理レイアウトを変更する必要があることがわかりましたか?
抽象化によって物理的なデータ ストアから離れすぎると、スケーリングが必要なアプリケーションに大混乱が生じます。
私は熱狂者ではありません。Linq から Sql、ADO.NET EF、Hibernate、Java EE などへの強力な推進力があるため、私が間違っているかどうかは確信できます。それが何であるか、そしてなぜ私が自分の考えを変える必要があるのか を本当に知りたい.
[編集]
この質問が突然再びアクティブになったようです。そのため、新しいコメント機能が追加されたので、いくつかの回答に直接コメントしました。返信ありがとうございます。これは健全な議論だと思います。
エンタープライズ アプリケーションについて話していることをもっと明確にするべきだったでしょう。たとえば、誰かのデスクトップで実行されているゲームやモバイル アプリについては、コメントできません。
いくつかの同様の回答に応えて、私がここで一番上に挙げなければならないことの1つは、直交性と関心の分離がエンティティ/ ORMに移行する理由としてしばしば引用されることです。私にとって、ストアド プロシージャは、私が考えることができる懸念の分離の最良の例です。ストアド プロシージャ以外のデータベースへのアクセスをすべて許可しない場合、ストアド プロシージャの入力と出力を維持している限り、データ モデル全体を理論的に再設計しても、コードを壊すことはありません。これらは、コントラクトによるプログラミングの完璧な例です (「select *」を避け、結果セットを文書化する限り)。
この業界に長く携わっていて、寿命の長いアプリケーションを扱ってきた人に尋ねてみてください。データベースが存続している間に、いくつのアプリケーションと UI レイヤーが行き来しましたか? データを取得するために SQL を生成する 4 つまたは 5 つの異なる永続レイヤーがある場合、データベースを調整してリファクタリングするのはどれほど難しいでしょうか? あなたは何も変えることはできません!ORM または SQL を生成するコードは、データベースをロックします。
python - Python で XML/HTML エンティティを Unicode 文字列に変換する
私はいくつかの Web スクレイピングを行っており、サイトでは非 ASCII 文字を表すために HTML エンティティを頻繁に使用しています。Python には、HTML エンティティを含む文字列を受け取り、Unicode 型を返すユーティリティがありますか?
例えば:
私は戻ってきます:
声調の付いた「ǎ」を表します。バイナリでは、これは 16 ビットの 01ce として表されます。html実体を値に変換したい u'\u01ce'
java - Hibernate エンティティに共通の基本クラスはありますか?
Hibernate エンティティの共通基本クラス、つまり ID、バージョン、その他の共通プロパティを持つ MappedSuperclass はありますか? 欠点はありますか?
例:
html - DOCTYPE RSS & HTML エンティティ
RSS フィードの下に、「ldquo」、「rdquo」 、およびその他のいくつかのエンティティがあります。私が追加した場合のようです
xmlタグの下とrssタグの上に、これらのエンティティを含めることができます。追加しましたが、うまくいかないようです。誰かが私が欠けているものを知っていますか? ありがとう
xml - XML の特殊文字
xml と xsl を使用して左側のナビゲーション システムを作成しています。XML ドキュメントで特殊文字を使用しようとするまで、すべてが順調に進んでいました。私は使用»
していますが、エラーが発生します。
理由: 未定義のエンティティ 'raquo' への参照。
エラーコード: -1072898046
どうすればこれを機能させることができますか?
c# - LINQ to Entities はオブジェクトのインスタンスを再利用しますか?
LINQ to Entities の使用は、データベースに対してクエリを実行し、変更やデータ バインドなどを行うことができる実際の CLR オブジェクトを取得するための優れた方法のように思えます。しかし、同じクエリを 2 回実行すると、同じ CLR オブジェクトまたはまったく新しいセットへの参照が返されるのでしょうか?
複数のクエリによって、同じ実際のデータのコピーが増え続けることは望ましくありません。ここでの問題は、あるエンティティの内容を変更してデータベースに保存し直すことはできますが、エンティティの別のインスタンスがまだ別の場所に存在し、古いデータを保持していることです。
asp.net - Entity Framework: FK の操作 (なぜ非表示になるのですか?)
まず、いくつかのテーブルを定義しましょう。
Users テーブルには、ユーザーに関する情報が格納されます。
UserTasks は、ユーザーに関連付けられたタスクを格納するテーブルです。
ADO Entity Framework を使用して UserTasks テーブルを生成すると、次のようなクラスが得られます。
UserTasks
- taskName (文字列)
- Users (Users オブジェクトのコレクション)
注: UserTasks テーブルで生成されるユーザー ID はありません。では、新しいユーザー タスクを挿入する必要があるとしましょう...どうすればよいでしょうか? userID FK フィールドへのアクセス権がないため、唯一のオプションは、ルックアップを実行して Users オブジェクトに入力し、それを次のようにタスク オブジェクトに渡すことです。
上記の問題は、ユーザー オブジェクトを設定するために余分で不必要なデータベース呼び出しを行っていることです。どうにかして私のuserIDフィールドへの新しいマッピングを作成し、それでもUserオブジェクトを保持する方法はありますか?
ありがとう
--ライアン
entity-framework - .NET 3.5 SP1 を使用して開発し、.NET 3.5 だけで実行できますか?
.NET Framework 3.5 SP1 で ADO .NET エンティティを利用する Web サイトを開発し、それを .NET 3.5 フレームワークだけで別のマシンに展開することはできますか?
internet-explorer - IE の HTML エンティティと文字セット
文字セットに iso-8859-1 を使用する html ドキュメントにhtml エンティティ✓
(チェック マーク: ✓) を表示しています。
Firefox では、チェック マークとして表示されます。IE では、正方形のボックスとして表示されます。UTF-8 に切り替えても違いはないようです。
画像を使用せずにこれらのエンティティを IE 6 & 7 で表示する信頼できる方法はありますか?