ASP.NET MVC 周辺
@IT の記事見て自主トレ中。
RESTスタイルのWebサービスを手軽に公開する「ADO.NET Data Services」
ADO.NET Data Services が RESTful かって言われると個人的には・・・って感じかなあ。
URI の指定が
/phonebook/Contacts/3
じゃ無くて
/phonebook/Contacts(3)
なのよね。Contacts(3) でも bookmarkable なんかも知らんけど Pretty URL じゃ無いよなあ。
だからつって、StackOverflow に↓こう書いてる人ほどの違和感は無いけど。
http://stackoverflow.com/questions/220845/restful-web-services-with-asp-net-mvc
That isn't REST. It is just RPC, with pretty url's. You are not using the HTTP interface to the full. – mslot Dec 22 '10 at 12:32
確かに RPC 風にはなっちゃうけど、Contacts なんやったら名詞なんで、(Remote) Procedure とはちゃうやろって思うけど。アンチマイクロソフトなのか REST 原理主義的なのか解らんけど、極端じゃない?
URI の RFC は覚えてない無かったんでチラっと見たら↓この辺が予約語(デリミタ)らしいんで
reserved = gen-delims / sub-delims gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@" sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
/phonebook/Contacts(3) でも Pretty URL って言っても良いのかな?まあ、いわゆる Pretty URL の定義ってなんやねん!ってな話になるけどさ。
スラッシュだけの URI のが圧倒的に多いのと () がどうしてもメソッドを連想しちゃうんで、違和感はあるけどね。
慣習通りに「わざと」やらないヒールっぷりがマイクロソフトらしいっつーか。
データベース周りってどうやってんのかなって思って見てくと Entity Data Model とか Entity Framework とかって中間レイヤーのモジュールが噛むみたい。(中身は知らん)
Java で言うところの POJO + アノテーションで RDB データモデルとプログラミングデータモデルをマッピングするような仕組みが無いのかなって思ったらコードファーストと POCO ってのが出てきた。
Entity Framework とコードファーストって WEB+DB PRESS Vol.66 に載ってたんやけど、完全に読み飛ばしてた。
一回きちんと読んだ方が良さそうな感じやな。
恥ずかしながら POCO って用語を初めて認知した。これまでも目にする機会はあったと思うけど、きちんと認識したのは今日が初めて。
POCO(Plain Old CLR Object)があんなら、PORO(Ruby Object)とか POPO(Python Object)とかも一般的なんやろか?
インターフェースによる制約より、plain な方がテスタビリティもモジュラリティも高まるのは自明なので、OOP と相性抜群の領域以外での継承なんつーのは無くなっちゃてるんかなあ。(ま、この文脈での継承って実装継承のことやしな)
完全に自分用のメモやな。ま、どっかでまとめる。