Codesmithは、実行可能なORMツールである(または私は本当のORMに固執すべきである)[閉じました]

StackOverflow https://stackoverflow.com/questions/583232

  •  06-09-2019
  •  | 
  •  

質問

私はORMツールの買い物をしています。私はORMツール対(かなりの割引価格で現在入手可能である)のいずれかCodeSmithの購入オーバー苦しいですよ。

LINQ to SQLは、私のリストから外れています。亜音速2.xがリストから外れている(私は亜音速の3.0が来ていることを知っている行き止まりに投資する必要はありません。LLBLGENが行うようにNHibernateのはやり過ぎのように思える。私は簡単にEFの評価を行ってきましたが、取得すばやく得ることはありませんそれから暖かいとファジー感ます。

私はCodeSmithは既製のORMに合理的な選択肢であることをクレイジー考えていますか? CodeSmithは、他の方法で自分自身のために支払うのでしょうか?

私はどのベンダーに関連しない方法で午前、これは単に製品のノイズを生成するためにSOない質問安くショットであることに注意してください!私は(その提供、またはコミュニティ利用可能に)テンプレートORMツールとしてCodeSmithについて正直なアドバイスや意見を探しています。

役に立ちましたか?

解決

実際には、休止状態は良いORMツールです。しかし、それはそこに停止します!

コードスミス能力は、単にリレーショナルマッピングのスタッフよりもすることができます!私は上のいくつかのUIのフォーム、ビジネスレイヤ(テンプレート)、データアクセス層、パターン、およびを生成するためのコードスミスを使用します。 しかし、コードスミスを使用するには、システム設計との良好な経験を必要とするか、私が使用することを好まないが、私は例として、好きな彼らのテンプレートを使用することができます。

コードスミスのアプローチは、1つの特別な欠点を持っています。最初にデータベースの実装を考慮すると、あなたのシステムを設計する必要があります。今日では、オブジェクト解析アプローチでは、単に任意のデータベースの実装前に、ビジネス・ロジック&エンティティを実装する際の人々の成功は - 彼らはこのことを忘れる。

意思決定は難しいです。私は常に、このようなスコットW. Ambler氏、ケント・ベック、ロバートC.マーティンと開発をスピードアップするためにORMツールを推奨しています実用的なプログラマシリーズから人として重要な名前を読みました。彼らは、ORMツールの開発者は、すべてのデータベースの問題(プーリング、接続、データベース・ベンダーの仕様など)と懸念していると述べました。我々は、データアクセス層を設計する必要があるときに、私たちはあまりにも、これらすべての側面を考慮しなければなりません。

私はこれらのORMツールは、表土と一緒に来ると信じています。これらのツールは、低予算のプロジェクトでの動作は、(私はよくないホスティングサーバーまたは共有リソースのいずれかの種類を意味する)する方法を私はまだ知りません。 私は彼らの最愛のツールを福音伝道しようとして経験の浅い開発者はこれを考慮しないで見てきました。しかし、Javaプロジェクトでは、Hibernateは、すでに広く普及し、よく知られたツールです。私は偉大なプロジェクトは、この技術を使用して配信された疑いがあるが、私は誰を見て、もう一度、開発者はどのように偉大なソリューションを構築するために私達(.NET開発者を)教える必要があるかもしれませんJAVAています。 (申し訳ありませんが、我々は認めざるを得ない。)

私が推薦する唯一の事はあなたの文脈を考慮することです。あなたは、新しいシステムをやっていますか?あなたは、パターンに働く必要がありますか?あなたは今まで完全なコードジェネレータおよびORMツールを検討してみていますか?

私は一度に全体のソリューションだけでなく、データアクセス層を生成するためのコードスミスを好むん。コード生成は非常に重要であり、それは視覚的studio.net 2008などでマイクロソフトが模倣していることを以下のコードスミスアプローチのためではありません。

幸運

他のヒント

コードスミスはORMではない、それだけでコードジェネレータIDEです。

あなたは、コード・スミスデータベースをオフに基づいていますが、それはあなたがコードを記述する必要はありませんので、それは動的DALを生成することを基本的にORMを使用しての目的を(の一つ)を台無しにしてしまうを使用してDALを生成することができます。

あなたが実際には2つを比較しようとしている場合は、

、その後、多分あなたは、あなたが生成されます、コードの上に絶対的なコントロールを持ってしまうため、コードスミスを使用して、いくつかの利益を得るかもしれないが、私は利益があるという欠点をoutweightということはよく分かりませんスミスはDALは、データベースをオフに基づいて生成するためのテンプレートのコードを書くために数ヶ月を過ごすことために何を回すことができます。

そして、あなたがあなたのデータベースに変更を加えるときに何が起こるかを考慮しなければならない、あなたが最も可能性の高いコードスミスを実行し、そう毎回を構築する必要があります。データベースに変更を加えることについて良いORMはあなたがスキーマでのデータベースの変更を設定することができます、そしてあなたが心配する必要はありませんので、それは(同じくらい)、動的に生成されます。

NHibernateのには、移動するための方法です。これは、エンタープライズグレードのORMです。あなたは、単一の規則に固執する場合は FluentNHibernate のライブラリーからの慣習に基づく自動設定で、構成が途方もなく簡単です(あなたは規則を指定するために取得、またはデフォルト値があります)。

NHibernateのでは、あなたのドメインオブジェクトは、純粋なC#のオブジェクトです。いいえ奇妙な基底クラスはありません。あなたが変更を行うことを決定たびに更新を取得する必要がありませcodegennedファイルがありません。

私は毎日netTiersを使用して、それを愛します。それのためのドキュメントは吸うが、それはオフィスで私のために、このような時間の節約になっています。多くの人々は、それが生成するコードの量についての不満が、私は見てきたものから、それが作成したコードは、それの多くをハンドコーディングよりもはるかに高速です。それはまた、あなたの基本的なCRUDのもののために必要とするすべてのストアドプロシージャを生成します。それが生成するアクセス方法は、すべての一意キー、外部キーと主キーによって取得し、同様にかなり素晴らしいです。

私はCodesmithの使用が実行可能であると思います。しかし、あなたはそれを使用するフレームワークになっているはずです。良いDALをノックアウトするために上に構築できるアプリケーションフレームワークですのネット階層ます。

なぜLLblgenのようなものはやり過ぎでしょうか?我々は仕事でそれを使用し、やや急な学習曲線の後に、それは非常に素晴らしい:)です。あなたは、少なくともそれを与えるとNHibernateは試してみてください。

これは、しかしcodesmithに関係していcodegeneratorのthats何

わからない、あなた自身のORMをロールバックできますが、そこにすでに良いものがあることから、私はあなたがそれをしたい場合を除き、それは時間と労力の価値があると思ういけません学習の目的でます。

私は数年前LLblgenを使用しました。私は私が修正されました見たものを願っています。私たちは、渡された主キーを持つデータの1行を選択するため、生産されたのインラインSQLを見て、見ます:

SELECT DISTINCT * FROM TABLE WHERE primark_key_id = @primarykey.

本当に、DISTINCT?私はいつもの代わりに店のprocsのを行うために懇願したが、何プロジェクトリーダーによって撃墜しました。私は、非効率的なコードを記述して保存したものを、時間を確認していません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top