作為C/S架構下的老碼農(開發工具:PowerBuilder,年齡:30+),學習.net是一件很痛苦的事情。至於為什么痛苦,我只想用兩位大牛說的話來總結:
1.尼爾·波茲曼:媒介即隱喻。http://www.21ccom.net/articles/sxpl/sx/article_2011022030205.html
2.Joshua Bloch:選擇編程語言就像選擇酒吧。http://www.programmer.com.cn/4353/
雖然很痛苦,但是為了孩子的奶粉和老婆的笑臉,必須堅持下去。
好,下面進入正題。
對於我關注的MIS程序而言,第一要考慮的問題就是與數據庫的交互。這方面在PB中根本就不是事,因為PB提供了並僅提供了一種與數據庫直接交互的形式——內置了對SQL的支持,簡單高效。無論Selet、Update、Insert、Delete,還是對存儲過程、事務的支持,都無需也無法選擇。
而在.net下,或許為了語言的純粹性,對SQL的支持變成了變種的LinQ,而與數據庫的交互,變得五花八門。大體三種選擇:
1.重量級ORM——EF、NHibernate等。
2.輕量級ORM——PetaPoco/NPoco、Dapper等。
3.無ORM——各種Helper、微軟企業庫等。
其中的各種優缺點對比啥的我就不奢談了,只說下我為什么選擇PetaPoco/NPoco:
1.完整的Poco(簡單CLR對象)級別的ORM。
2.可直接寫SQL。
3.提供CRUD、分頁等幫助方法。
4.提供SQL Builder方法。
5.內置T4模板。
……
選擇PetaPoco之后,我又進一步選擇了PetaPoco的一個發行版NPoco,原因:
1.支持單表多主鍵。——貌似PetaPoco不支持。
2.支持LinQ。——雖然我目前用不上,但是據說“實現IRepository”需要。雖然我目前還不明白IRepository這種編程方法。
既選之,則安之。在可預見的將來,在ORM方面,本博將以NPoco為主。
努力吧!騷年!!!