読者です 読者をやめる 読者になる 読者になる

ASP.NET MVC + entity Frameworkつかってみた話

技術系日記

ちょっとした管理画面を作る必要に駆られたので触ってみた。
開発におけるポイント

  • Webアプリ
  • WindowsServer
  • ID/pass形式のログイン認証
  • 既存DBがある
    • テーブル3個くらい

まあASP.NET MVCで作っちゃうのがよさそうと思って作成
認証まわりはめんどいし……

参考にしたサイトはしばやんさんの。
ASP.NET MVC 3 開発入門 - インデックス
なんとなく雰囲気で読んで雰囲気で使ったので不適切な使い方をしているのかもだけど、Entity Frameworkが思ったよりもずっとよかった。
4年くらい前のなので現在はもっと進化している気はする。
キャッチアップせねば……。

以下ざっくり感想

  • 既存DBに対するマッピングも可能なのがよい
    • POCOっていうナニカを定義する方式で実施
    • DBとのマッピングを自分で書くやつもあるらしい
    • このへんの流儀がいろいろあるっぽいが、いまいち全容がつかめない……。
      • .NETあるあるなんだけど初心者への敷居が高くないですかね……(小声
  • RepositoryPatternが神っぽい
    • 「ああ、こうやってDB使う部分のテスト書くんだな」って感じがした
    • DbContextと合わせて最強に見える
      • むしろ前までが弱すぎた
  • LINQ to SQLがよさそう
    • SQLこねくりまわすよりだいぶ楽に見える
    • LINQって遅延評価だから_context.Videos.Find(id);ってしたときにSQL的にはレコード指定でとってこれてることに気づいた
      • むしろ今まで気づいてなかったのかよ感ある
      • ActiveRecordもそういえば発行されたクエリみる限りそうなってるっぽいなあ
  • migrateとかも自動でやってくれるやつがあるっぽい
    • railsみたいにmigrationファイルを自分で管理する手法はない……?
    • これだとテーブル定義変更SQLとクラスファイルを二重管理しなきゃいけないんじゃ……?
    • と思ったけどDatabase Projectと組み合わせると実はそうでもなさそう
    • DatabaseProjectは2つのスキーマの差分を埋めるSQLを発行できる
    • 本番DBと開発DBを用意して、開発DBにはガンガン即時migrateする
    • 本番リリース前にはその差分をとってSQLを発行する
      • 開発のしやすさ + 管理のしやすさ + 必ずリリース直後は本番=開発になる
      • 最強なのでは……!?

慣れもあるんだろうけど正直Railsよりだいぶ使いやすかった
Railsのお勉強はいったん止めようかしら