ASP.NET MVC | asp.net mvc是什麼
還記得當年,第一次看到MVC,是從Java那邊看來的,但是實作,卻是PHP的ZendFramewrok,後來,隨著工作關係,又回到了Microsoft,而也因為工作的關係,整整的經歷過ASP、ASP.NET、ASP.NETMVC,三個跨時代產品XD,所以恐怖的義大利麵也吃過,萬行Fuction包含百行SQL也碰過,不過也不能怪罪於先人,畢竟,幾十年歷史的系統,軟體發展又那麼快,這中間的演變真的很大,當初也沒有什麼比較好的設計方式,所以這也是可以諒解的。隨著時間的演進,程式設計也像神奇寶貝一樣,會開始超進化,只不過不是程式自己進化,而是許多偉大的程式設計師...
還記得當年,第一次看到MVC,是從Java那邊看來的,但是實作,卻是PHP的Zend Framewrok,後來,隨著工作關係,又回到了Microsoft,而也因為工作的關係,整整的經歷過ASP、ASP.NET、ASP.NET MVC,三個跨時代產品XD,所以恐怖的義大利麵也吃過,萬行Fuction包含百行SQL也碰過,不過也不能怪罪於先人,畢竟,幾十年歷史的系統,軟體發展又那麼快,這中間的演變真的很大,當初也沒有什麼比較好的設計方式,所以這也是可以諒解的。
隨著時間的演進,程式設計也像神奇寶貝一樣,會開始超進化,只不過不是程式自己進化,而是許多偉大的程式設計師在撰寫程式時,發現了許多的問題,於是提出好的設計架構,而MVC就是其中一個。
還記得第一段提到的義大利麵程式碼嗎?在解釋MVC之前,先解釋一下義大利麵程式吧,所謂的義大利麵程式碼,就是一隻程式裡面,包山包地也包海,最有名的大概就是ASP吧,HTML包在裡面,JavaScript包在裡面,CSS包在裡面,還有一堆邏輯也包在裡面,別忘了,還要加一下配料SQL….;維護過的人就知道,光是要拆解,就費勁功夫了,忍痛改完,就算驗證過,還是常常發生一堆錯誤,然後又進入這可怕的循環;記得以前在公司,有好幾支這種地雷,每次有需要動到這些地雷的時候,大家覺得都會唯恐避之不及。
後來出了ASP.NET,我只能說,微軟真的是封裝得太棒了,能把整個技術封裝成這種程度,讓人開發網頁像是開發Win Form程式一班,而且針對視圖與邏輯也有一定程度的拆解,但隨著時代的轉移,現在越來越標準的HTML、CSS,還有AJAX的崛起,測試的重要性等,也讓ASP.NET的一些缺點暴露出來,如下:
傳輸過於笨重 複雜的HTML 不可測試性ASP.NET是利用View state來處理整個生命週期,但View state實在是太重了,而且生命週期也太過複雜,PostBack到最後都不知道在做甚麼,對高手來說,可能沒有此困擾,但對於新手來講,這反而是一個開發上的一個隱憂,此外因View state過大,傳遞也會浪費許多的時間,雖然現在隨便就幾百Mb,但不可否認的,如果是大型網站,還是必須將此考量進去。
其次就是分離觀點的問題,ASP.NET變成在後端去控制前端元件,這在測試...