[心得] 談.net mvc

看板Soft_Job (軟體人)作者 (prag)時間14年前 (2011/08/06 16:31), 編輯推噓10(10076)
留言86則, 10人參與, 最新討論串1/6 (看更多)
談.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

08/06 17:02, , 1F
在這份新工作有需要用到MVC, 這也應該是第一次實際工作
08/06 17:02, 1F

08/06 17:03, , 2F
上寫MVC吧. 目前的感想是, 那些HtmlHelper很不合用.
08/06 17:03, 2F

08/06 17:04, , 3F
明明就是一個Form tag, 為什麼像id/enctype第常用屬性
08/06 17:04, 3F

08/06 17:05, , 4F
都不做出來? 雖然可以用keypair pass進去但感覺效率有
08/06 17:05, 4F

08/06 17:05, , 5F
很大的差距... 最後都直接寫form tag...
08/06 17:05, 5F

08/06 17:06, , 6F
有沒有人能分享甚麼時候那helper會比較好用的? :O
08/06 17:06, 6F

08/06 17:07, , 7F
(明明像HtmlControl或WebControl那種形式也不差啦, 為
08/06 17:07, 7F

08/06 17:08, , 8F
甚麼要改成這樣子呢?)
08/06 17:08, 8F

08/06 18:56, , 9F
我覺得是用不習慣HtmlHelper吧? 我剛開始也是
08/06 18:56, 9F

08/06 18:57, , 10F
後來習慣以後也參半使用, 未來熟了以後應該會全改掉
08/06 18:57, 10F

08/06 18:58, , 11F
不過MVC2.0其實也不是很完美, 聽說3.0改進許多?
08/06 18:58, 11F

08/06 19:08, , 12F
順便說下 Controller也可以重複使用啊
08/06 19:08, 12F

08/06 20:01, , 13F
想請教一下,mvc的pattern其實很早就有了,可是我看板上最近
08/06 20:01, 13F

08/06 20:01, , 14F
似乎很多網頁相關的都會把這拿出來講,有點當成新東西的意思
08/06 20:01, 14F

08/06 20:02, , 15F
因為早期的網頁設計沒有一個好的架構來切這個
08/06 20:02, 15F

08/06 20:02, , 16F
在, 是以往網頁技術沒有用到MVC的pattern嗎?還是最近有什麼
08/06 20:02, 16F

08/06 20:02, , 17F
想想cgi , 想想 servlet , 想想老 asp ,
08/06 20:02, 17F

08/06 20:02, , 18F
特別的,關於MVC的新想法呢?
08/06 20:02, 18F

08/06 20:03, , 19F
他是在某一個階段(約2006? 2007?)才開始被重視的。
08/06 20:03, 19F

08/06 20:04, , 20F
而現在市面上現成的專案中,採用mvc架構的也還不一定算多數
08/06 20:04, 20F

08/06 20:05, , 21F
而且你知道,所謂mvc 在實作上,基本上是各自表述。:P
08/06 20:05, 21F

08/06 20:06, , 22F
當然,即便以desktop app來說, MVC依軟體規模,也常變型為 
08/06 20:06, 22F

08/06 20:07, , 23F
MC-V or CV-M 的型式,不過概念上應該是不會有太多更動的.
08/06 20:07, 23F

08/06 20:07, , 24F
過去的網頁技術,在實現MVC上有特別困難嗎?我還以為網頁
08/06 20:07, 24F

08/06 20:07, , 25F
這裡強調的MVC 其實指的是實作的特定型
08/06 20:07, 25F

08/06 20:08, , 26F
反而是最能體現MVC的部分呢...
08/06 20:08, 26F

08/06 20:08, , 27F
所以這裡的MVC指的是某種實作MVC pattern的方式囉?
08/06 20:08, 27F

08/06 20:09, , 28F
yes, 像這篇講的是.net 體系的mvc 實作.
08/06 20:09, 28F

08/06 20:09, , 29F
其實web 難是難在 狀態沒有保存的話 , c 沒辦法做事
08/06 20:09, 29F

08/06 20:11, , 30F
像.net 的玩法是用view state 把當前狀態的hash用靜態方式儲
08/06 20:11, 30F

08/06 20:11, , 31F
存,以此為基礎來保存狀態跟進行操作。
08/06 20:11, 31F

08/06 20:12, , 32F
我另外開一篇文章回這個好了
08/06 20:12, 32F

08/06 20:33, , 33F
我就是在用MVC3+EF 4.1啊...
08/06 20:33, 33F

08/06 20:36, , 34F
順便問個問題,我一直以為MVC是指那些有實作model-view-
08/06 20:36, 34F

08/06 20:36, , 35F
其實在這短短兩星期的經驗裡, 還是看不出這和以前的
08/06 20:36, 35F

08/06 20:37, , 36F
controller的framework通稱,不過又提到了mvc2.0?
08/06 20:37, 36F

08/06 20:38, , 37F
應該不是在說struts2吧@@?
08/06 20:38, 37F

08/06 20:38, , 38F
n-Tiers架構在結構上有多大好處. 感覺上為寫而寫,
08/06 20:38, 38F

08/06 20:39, , 39F
繞遠路的地方變多了. 現在試寫的那邊平常就半天工作量
08/06 20:39, 39F

08/06 20:40, , 40F
的web form, 現在寫了一個星期還是覺得有很多贅肉...
08/06 20:40, 40F

08/06 20:41, , 41F
那是在說微軟MVC架構的版本啦...
08/06 20:41, 41F

08/06 20:44, , 42F
我覺得MVC跟技術或框架的關係較小 跟寫的人關係較大
08/06 20:44, 42F

08/06 20:51, , 43F
@lovdkkkk 基本上寫的人怎麼樣都可能把東西寫爛
08/06 20:51, 43F

08/06 20:52, , 44F
但是framework 呈現出來的觀念跟限制 會不會讓你一開始就
08/06 20:52, 44F

08/06 20:52, , 45F
想到 mvc 的分離 還是像傳統 web 只讓你想到view 層 ,
08/06 20:52, 45F

08/06 20:52, , 46F
這點還是有貢獻的。
08/06 20:52, 46F

08/06 20:58, , 47F
嗯 我也覺得作用主要在讓人想到 也就是個 hint
08/06 20:58, 47F

08/06 20:59, , 48F
對那hint沒感覺的就還是沒用 XD
08/06 20:59, 48F

08/06 21:00, , 49F
這當然 XD 也多得是感覺到hint 但是時做完全走錯路的XD
08/06 21:00, 49F

08/06 21:09, , 50F
另外有些hint則是會直接把人導到怪方向 (就是難用的FW
08/06 21:09, 50F

08/06 22:39, , 51F
談到.net MVC還在講ViewState???這.....
08/06 22:39, 51F

08/06 22:43, , 52F
另外MVC是個設計的觀念~可以用在很多地方~不是只有網頁...
08/06 22:43, 52F

08/07 06:05, , 53F
只是在談 MVC 的 C 的實作方式,而且當時在討論的是早期的
08/07 06:05, 53F

08/07 06:06, , 54F
技術,早期的 .net 的確是走 viewstate 沒錯吧。XD
08/07 06:06, 54F

08/07 07:33, , 55F
Viewstate只是序列化和加密後的StateBag, 在Ajax的情況
08/07 07:33, 55F

08/07 07:34, , 56F
下還是可用... :P
08/07 07:34, 56F

08/07 11:16, , 57F
viewstat不就是一個input...是吧=_=""
08/07 11:16, 57F

08/07 11:42, , 58F
看起來是個input 但是解回怎麼原本的state 是很偉大的XD
08/07 11:42, 58F

08/07 13:53, , 59F
只是個input?那為什麼微軟幹嘛不用呢?任何的架構都可以鑽
08/07 13:53, 59F

08/07 13:54, , 60F
漏洞去破壞~只是...那又何必用MVC???
08/07 13:54, 60F

08/07 14:58, , 61F
asp.net mvc + EF再配合linq, 對於單純寫簡單的網頁資料庫
08/07 14:58, 61F

08/07 14:58, , 62F
實在太方便了,最近在寫的小程式,撈資料只需簡單的兩行
08/07 14:58, 62F

08/07 14:59, , 63F
var data= from x in table select x; return View(data);
08/07 14:59, 63F

08/07 18:22, , 64F
或許不過是潮流...or 策略面應用吧?
08/07 18:22, 64F

08/07 20:50, , 65F
會想到"潮流"這種答案就表示還沒搞懂它的好處~人家JSP玩MV
08/07 20:50, 65F

08/07 20:51, , 66F
C玩那麼久了~微軟會輕易跟隨別人的"潮流"?身處在資訊業~答
08/07 20:51, 66F

08/07 20:52, , 67F
案就在那裡~請不要用假設或用猜的...
08/07 20:52, 67F

08/07 22:01, , 68F
說潮流也還好吧,像是ajax的應用....
08/07 22:01, 68F

08/07 22:09, , 69F
我還真是好奇~為什麼要用MVC?只是順應微軟的"潮流"?
08/07 22:09, 69F

08/07 22:53, , 70F
回樓上: 這我暫時也找不到答案. 正是我感到疑惑的地方.
08/07 22:53, 70F

08/07 22:57, , 71F
把WebForm的Code和MVC的Code對照起來還是找不到嗎?開發、
08/07 22:57, 71F

08/07 22:57, , 72F
維護都有差別吧?
08/07 22:57, 72F

08/08 07:30, , 73F
我指的是找不到具體的好處, 因為MVC結構的程式寫出來
08/08 07:30, 73F

08/08 07:31, , 74F
和一個結構良好的n-Tiers沒多大分別, 而n-Tiers webform
08/08 07:31, 74F

08/08 07:33, , 75F
的code在配合Ajax和EF後在執行上的精練程度尤有過之...
08/08 07:33, 75F

08/08 07:54, , 76F
我覺得這只是pattern發展的過渡期吧。
08/08 07:54, 76F

08/08 07:54, , 77F
對心中有架構的人來講只是走哪一條路線的問題,
08/08 07:54, 77F

08/08 07:55, , 78F
對心中無架構的人來講,重視的就是表徵跟學習曲線了。
08/08 07:55, 78F

08/08 12:55, , 79F
如果webform能分層分得好~那對您來說是沒多大分別~可惜我
08/08 12:55, 79F

08/08 12:57, , 80F
看到的例子大多是想到就寫~很難不變成麵條~用MVC至少會將V
08/08 12:57, 80F

08/08 12:58, , 81F
和C區隔開(當然~要鑽漏洞還是可以)~強迫寫之前先想想~不過
08/08 12:58, 81F

08/08 12:58, , 82F
好處說得再多~仍然要自己親身體驗覺得好才算好~就像萬行co
08/08 12:58, 82F

08/08 13:00, , 83F
de的Method和MVC架構的討論~其實沒有誰對誰錯~只要自己工
08/08 13:00, 83F

08/08 13:01, , 84F
作起來爽就好了...
08/08 13:01, 84F

08/08 13:18, , 85F
推 強迫寫之前先想想
08/08 13:18, 85F

08/10 19:48, , 86F
請問.net mvc架構與django mtv架構相比如何? 沒用過net
08/10 19:48, 86F
文章代碼(AID): #1EFFlVO4 (Soft_Job)
討論串 (同標題文章)
以下文章回應了本文
9
78
完整討論串 (本文為第 1 之 6 篇):
1
6
10
23
13
105
9
78
10
86
文章代碼(AID): #1EFFlVO4 (Soft_Job)