看板 Soft_Job 關於我們 聯絡資訊
談.net mvc 話說有陣子熱門的架構,也不就是mvc了 就回顧網頁程式設計發展的路程 從原始的asp script language到.net的webform模式 到新出來的model-view-controller 當然,mvc的架構在國外應該流行很久了 asp跟.net差別當然很多囉 asp已可以說是俗稱的義大利麵,code.畫面.撈資料庫都寫在一起 那.net webform呢?至少有了一個code-behind 至於mvc呢?分的可就更細了 連model資料存取都分割出來 當然在使用一個架構,自然要對他的理念要有所清楚 model個人認為也不過就是對unit發揮出重複使用的價值(日後修改也比較方便) model層,contorller,view各自做好各自本分 已達到協調的目的 完畢,歡迎指教(我不會修文 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 119.77.165.6
leicheong:在這份新工作有需要用到MVC, 這也應該是第一次實際工作 08/06 17:02
leicheong:上寫MVC吧. 目前的感想是, 那些HtmlHelper很不合用. 08/06 17:03
leicheong:明明就是一個Form tag, 為什麼像id/enctype第常用屬性 08/06 17:04
leicheong:都不做出來? 雖然可以用keypair pass進去但感覺效率有 08/06 17:05
leicheong:很大的差距... 最後都直接寫form tag... 08/06 17:05
leicheong:有沒有人能分享甚麼時候那helper會比較好用的? :O 08/06 17:06
leicheong:(明明像HtmlControl或WebControl那種形式也不差啦, 為 08/06 17:07
leicheong:甚麼要改成這樣子呢?) 08/06 17:08
lance70176:我覺得是用不習慣HtmlHelper吧? 我剛開始也是 08/06 18:56
lance70176:後來習慣以後也參半使用, 未來熟了以後應該會全改掉 08/06 18:57
lance70176:不過MVC2.0其實也不是很完美, 聽說3.0改進許多? 08/06 18:58
lance70176:順便說下 Controller也可以重複使用啊 08/06 19:08
atst2:想請教一下,mvc的pattern其實很早就有了,可是我看板上最近 08/06 20:01
atst2:似乎很多網頁相關的都會把這拿出來講,有點當成新東西的意思 08/06 20:01
TonyQ:因為早期的網頁設計沒有一個好的架構來切這個 08/06 20:02
atst2:在, 是以往網頁技術沒有用到MVC的pattern嗎?還是最近有什麼 08/06 20:02
TonyQ:想想cgi , 想想 servlet , 想想老 asp , 08/06 20:02
atst2:特別的,關於MVC的新想法呢? 08/06 20:02
TonyQ:他是在某一個階段(約2006? 2007?)才開始被重視的。 08/06 20:03
TonyQ:而現在市面上現成的專案中,採用mvc架構的也還不一定算多數 08/06 20:04
TonyQ:而且你知道,所謂mvc 在實作上,基本上是各自表述。:P 08/06 20:05
atst2:當然,即便以desktop app來說, MVC依軟體規模,也常變型為  08/06 20:06
atst2:MC-V or CV-M 的型式,不過概念上應該是不會有太多更動的. 08/06 20:07
atst2:過去的網頁技術,在實現MVC上有特別困難嗎?我還以為網頁 08/06 20:07
TonyQ:這裡強調的MVC 其實指的是實作的特定型 08/06 20:07
atst2:反而是最能體現MVC的部分呢... 08/06 20:08
atst2:所以這裡的MVC指的是某種實作MVC pattern的方式囉? 08/06 20:08
TonyQ:yes, 像這篇講的是.net 體系的mvc 實作. 08/06 20:09
TonyQ:其實web 難是難在 狀態沒有保存的話 , c 沒辦法做事 08/06 20:09
TonyQ:像.net 的玩法是用view state 把當前狀態的hash用靜態方式儲 08/06 20:11
TonyQ:存,以此為基礎來保存狀態跟進行操作。 08/06 20:11
TonyQ:我另外開一篇文章回這個好了 08/06 20:12
leicheong:我就是在用MVC3+EF 4.1啊... 08/06 20:33
iceonly:順便問個問題,我一直以為MVC是指那些有實作model-view- 08/06 20:36
leicheong:其實在這短短兩星期的經驗裡, 還是看不出這和以前的 08/06 20:36
iceonly:controller的framework通稱,不過又提到了mvc2.0? 08/06 20:37
iceonly:應該不是在說struts2吧@@? 08/06 20:38
leicheong:n-Tiers架構在結構上有多大好處. 感覺上為寫而寫, 08/06 20:38
leicheong:繞遠路的地方變多了. 現在試寫的那邊平常就半天工作量 08/06 20:39
leicheong:的web form, 現在寫了一個星期還是覺得有很多贅肉... 08/06 20:40
leicheong:那是在說微軟MVC架構的版本啦... 08/06 20:41
lovdkkkk:我覺得MVC跟技術或框架的關係較小 跟寫的人關係較大 08/06 20:44
TonyQ:@lovdkkkk 基本上寫的人怎麼樣都可能把東西寫爛 08/06 20:51
TonyQ:但是framework 呈現出來的觀念跟限制 會不會讓你一開始就 08/06 20:52
TonyQ:想到 mvc 的分離 還是像傳統 web 只讓你想到view 層 , 08/06 20:52
TonyQ:這點還是有貢獻的。 08/06 20:52
lovdkkkk:嗯 我也覺得作用主要在讓人想到 也就是個 hint 08/06 20:58
lovdkkkk:對那hint沒感覺的就還是沒用 XD 08/06 20:59
TonyQ:這當然 XD 也多得是感覺到hint 但是時做完全走錯路的XD 08/06 21:00
lovdkkkk:另外有些hint則是會直接把人導到怪方向 (就是難用的FW 08/06 21:09
andymai:談到.net MVC還在講ViewState???這..... 08/06 22:39
andymai:另外MVC是個設計的觀念~可以用在很多地方~不是只有網頁... 08/06 22:43
TonyQ:只是在談 MVC 的 C 的實作方式,而且當時在討論的是早期的 08/07 06:05
TonyQ:技術,早期的 .net 的確是走 viewstate 沒錯吧。XD 08/07 06:06
leicheong:Viewstate只是序列化和加密後的StateBag, 在Ajax的情況 08/07 07:33
leicheong:下還是可用... :P 08/07 07:34
prag222:viewstat不就是一個input...是吧=_="" 08/07 11:16
TonyQ:看起來是個input 但是解回怎麼原本的state 是很偉大的XD 08/07 11:42
andymai:只是個input?那為什麼微軟幹嘛不用呢?任何的架構都可以鑽 08/07 13:53
andymai:漏洞去破壞~只是...那又何必用MVC??? 08/07 13:54
deuter:asp.net mvc + EF再配合linq, 對於單純寫簡單的網頁資料庫 08/07 14:58
deuter:實在太方便了,最近在寫的小程式,撈資料只需簡單的兩行 08/07 14:58
deuter:var data= from x in table select x; return View(data); 08/07 14:59
prag222:或許不過是潮流...or 策略面應用吧? 08/07 18:22
andymai:會想到"潮流"這種答案就表示還沒搞懂它的好處~人家JSP玩MV 08/07 20:50
andymai:C玩那麼久了~微軟會輕易跟隨別人的"潮流"?身處在資訊業~答 08/07 20:51
andymai:案就在那裡~請不要用假設或用猜的... 08/07 20:52
prag222:說潮流也還好吧,像是ajax的應用.... 08/07 22:01
andymai:我還真是好奇~為什麼要用MVC?只是順應微軟的"潮流"? 08/07 22:09
leicheong:回樓上: 這我暫時也找不到答案. 正是我感到疑惑的地方. 08/07 22:53
andymai:把WebForm的Code和MVC的Code對照起來還是找不到嗎?開發、 08/07 22:57
andymai:維護都有差別吧? 08/07 22:57
leicheong:我指的是找不到具體的好處, 因為MVC結構的程式寫出來 08/08 07:30
leicheong:和一個結構良好的n-Tiers沒多大分別, 而n-Tiers webform 08/08 07:31
leicheong:的code在配合Ajax和EF後在執行上的精練程度尤有過之... 08/08 07:33
TonyQ:我覺得這只是pattern發展的過渡期吧。 08/08 07:54
TonyQ:對心中有架構的人來講只是走哪一條路線的問題, 08/08 07:54
TonyQ:對心中無架構的人來講,重視的就是表徵跟學習曲線了。 08/08 07:55
andymai:如果webform能分層分得好~那對您來說是沒多大分別~可惜我 08/08 12:55
andymai:看到的例子大多是想到就寫~很難不變成麵條~用MVC至少會將V 08/08 12:57
andymai:和C區隔開(當然~要鑽漏洞還是可以)~強迫寫之前先想想~不過 08/08 12:58
andymai:好處說得再多~仍然要自己親身體驗覺得好才算好~就像萬行co 08/08 12:58
andymai:de的Method和MVC架構的討論~其實沒有誰對誰錯~只要自己工 08/08 13:00
andymai:作起來爽就好了... 08/08 13:01
lovdkkkk:推 強迫寫之前先想想 08/08 13:18
asoedarren:請問.net mvc架構與django mtv架構相比如何? 沒用過net 08/10 19:48