私は非常に大規模な Web プロジェクトを始めたばかりで、本当にすべてを正しく行おうとしています。
これまでに使用したツールは
- ASP.NET MVC 3
- エンティティ フレームワーク 4.3
- ニンジェクト3
すべて順調に進んでいますが、Entity Framework CodeFirst については、少し大ざっぱな点がいくつかあります。
たとえば、http://codefirstmembership.codeplex.com/を使用して、Code First セットアップの一部としてメンバーシップ情報をセットアップする必要がありました。これは、これのサードパーティを使用する必要があるため、少し厄介です。明らかに、私は「自分自身をロールバックする」のに十分な1337である必要がありますが、最初からあまり噛みつきたくありません. aspnet_regsql を実行するのは恐ろしく、データベースが更新されるたびに失われます。とにかく、上記のライブラリですべて動作するようになりました。それほど悪くはありません。しかし、足場は壊れているようです。
これらすべてを超えて、私がライブ環境で実行しているときに、このようなものがプロバマティックになるようです. dev db と live db の間で行う予定のスキーマの変更は、とにかくスクリプトを使用して手動で管理する必要があるため、その時点で最初にコードのポイントを失うことはありませんか?
私は昨年 Google App Engine を使用してきましたが、最初はコードが基本的に同じように機能することを望んでいましたか? つまり、変更を加えると、ライブ データが変更されます。アプリエンジンで深刻なリファクタリングを行っていないため、本番環境では基本的に何も害を及ぼさないと思います。したがって、AppEngine でテーブルの名前を変更することはできません。常に新しいテーブルを作成し、古いテーブルを残します。データを手動で移植する必要があります。
だから今考えています。なぜ最初にデータベースに行かないのですか? 私は linq2sql を 3 年間使用しており、最初に db を使用することに非常に慣れています。TBH ですが、私の db ソース管理戦略は少し....欠けています。だから私は、コードが最初にその状況を改善することを強制することを望んでいました.
このような状況についてご意見をお聞かせいただければ幸いです。また、これは Nhibinate を使用する場合とどのように比較されますか?