どんな種類のORMツールも許可しないITショップにいるとしましょう。彼らはそれを購入したくないし、あなたもオープンソースソリューションを使うことができません。
あなたならどうしますか?実際のドメインモデルをあきらめて、テーブル中心で作業しますか?独自のDALを作成しますか?
どんな種類のORMツールも許可しないITショップにいるとしましょう。彼らはそれを購入したくないし、あなたもオープンソースソリューションを使うことができません。
あなたならどうしますか?実際のドメインモデルをあきらめて、テーブル中心で作業しますか?独自のDALを作成しますか?
厳密に言えば、オプションは次のとおりです。
それ以外の場合は、何らかの ORM ソリューションが必要になります (自分で作成したとしても、単純な ORM レイヤーのままです)。
オプション:
既存のORMのいずれかを本当に使用できない場合は、独自のORMを作成することはお勧めしません。地元で栽培されたORMは、最初の6か月間は役立つように見え、その後徐々にプロジェクトで最大の時間の無駄になるように見える、実装が不十分で、設計が不十分で、いぼに乗った獣である傾向があります。
Fowler's Patterns of Enterprise Application Architectureの「RowDataGateway」や「TableDataGateway」などのパターンを適用すると、ORMなしで実行できます。
ドメインをデータベースから分離するために独自の分離レイヤーを拡張することになりますが、独自のORMをローリングするほど作成に費用はかかりません。
ここには 3 つの可能性があります。
おそらく、これら3つの組み合わせです。彼らはおそらく、ORM をよりよく理解することで解決できる正当な懸念を持っているでしょう。私のアドバイスは、それらを ORM で販売することです。ORM を使用して修正できる特に厄介なコードを見つけ、そのコードをどれだけ簡素化できるかを示すプロトタイプを作成します。また、喜んで妥協してください。
彼らがこれに同意しない場合は、これが本当にあなたが働きたい場所かどうかを自問する必要があります. 彼らがあなたに ORM を使わせてくれないからではなく (それがなくても生きていけるかもしれません)、彼らがあなたの言うことを聞かないからです。いつでも思いのままにできるわけではありませんが、開発プロセスに関する意見は必要です。
ジェネリック DAOに沿ったものを使用して独自の DAL を作成し、コードの残りの部分が密結合されないように抽象化しますが、データにアクセスします。
これにより、後で ORM が登場した場合に、すべて ORM に簡単に交換できます。
はるか昔の 2004 年に私たちが行ったように、独自の DAL を作成します。
まず第一に、オープンソースのものを使用することさえできないというのは絶対に遅れています。
自分で巻く必要がある場合、それは大したことではありません。ドメイン モデルを問題なく使用できます。各レコードをモデル化し、ドメイン モデルを構築してそこからデータを中間形式としてロードすると、作業が簡単になる場合があります。
彼らがiBatis(http://ibatis.apache.org/)についてどう思っているかを見てください。これはORMではありませんが、不可解なORMの魔法を使わずに、データベースクエリからオブジェクトを取得するのに役立ちます。
彼らは今どのように物事をやっていますか?
おそらくある種のコード生成ツールを使用して、独自のソリューションを展開します。技術的に、結果(データリーダー、テーブル、レコードセットなど)をオブジェクトに変換すると、小さなo/rマッパーがあり、非常に欠けていますが、それでも...それは私が推測する定義の問題です。
私の主な目標は、コード内で CRUD を繰り返さないようにすることです。CRUD には時間がかかり、退屈で、欠陥の原因となります。
述べたように、リレーショナル データベースが必要ない場合は、いつでも何らかのオブジェクト データベースを使用できます。しかし、それらははるかにまれであり、上司がorm:sに反対している場合、彼はそうする可能性は低いです.
ORM が許可されない理由、ORM とは何かを尋ね、そこから次の 2 つの可能性のうちの 1 つを決定します。
独自の DAL を作成することにした場合は、Davy Brionがそのための非常に優れたチュートリアルを提供しています。Build Your Own Data Access Layer Series
をご覧ください。
「いかなる種類の ORM ツールもありません。彼らはそれを購入したがらず、オープンソース ソリューションも使用できません。」
ORM がまったくない、またはオープンソース/$$$ だけですか?
優れた ORM ツールの無料バージョンがあります。