ASP.NET MVC 是現今主流嗎? - iT 邦幫忙 | mvc未來
![ASP.NET MVC 是現今主流嗎? - iT 邦幫忙](https://i.imgur.com/axBPWDg.jpg)
MVC是一種設計理念,算不上一種設計模式(designpattern),是有某些設計模式綜合出來的特點。當初的想法是為了讓程式邏輯和使用者介面分離的方法,讓他們能夠各自獨立的發展,但又在需要時連接起來。理論到此先暫停,我舉一個類似的例子:某學院中有一位智者(Model),他可以回答你所有問題(Businesslogic),為了確保你問出來的問題夠精準周延,學院設計了不同的表格讓你填寫(View),並告訴你往哪裡送(route),當你使用這條路徑送了你的表格,就有一位書僮(controller)負責接收,這位書僮就會把你的表格送給智者,智者處理過後就把答案...
![ASP.NET MVC 是現今主流嗎? - iT 邦幫忙](https://i.imgur.com/H8YKUrg.jpg)
MVC 是一種設計理念,算不上一種設計模式 (design pattern),是有某些設計模式綜合出來的特點。當初的想法是為了讓程式邏輯和使用者介面分離的方法,讓他們能夠各自獨立的發展,但又在需要時連接起來。理論到此先暫停,我舉一個類似的例子:
某學院中有一位智者 (Model),他可以回答你所有問題 (Business logic),為了確保你問出來的問題夠精準周延,學院設計了不同的表格讓你填寫 (View),並告訴你往哪裡送 (route),當你使用這條路徑送了你的表格,就有一位書僮 (controller) 負責接收,這位書僮就會把你的表格送給智者,智者處理過後就把答案送回來給書僮,書僮再用原表格、書院預設表格 (default view),或是客製化的表格 (customized view),把答案做視覺化的安排後 (如文字/圖/表等),傳給你看。
基本上,書僮只是找到智者或相應的服務團隊遞送問題,不會幫你處理問題,但是也有可能智者會分配一些次要的雜務讓書僮處理。
[此段為後話,不了解可先跳過] 如果要處理的問題愈多,一位智者就會變成智囊團,並成立智識庫 (Data access)、服務團隊 (Service team) 等,也有可能為了日後擴大規模與更新、替換智識與服務,而要做降低彼此之間依賴性 (lower dependency/coupling),使用 (Dependency Injection) [/後話]
今天我們來看 ASP.NET MVC,他大體上實做了這樣的概念,你需要有 Model、Controller、View (Razor) and 綜合過的 HTML (CSS/JS) 來完成你的程式。你當然也可以做一些變化,例如將 controller 使用 Web API 來實作,View and 綜合過的 HTML (CSS/JS) 使用其他的 JS 框架,如 AngularJS 來實作。
其他像是 iOS/android programming,你都可以在它們的一些規範中看到 MVC 的影子,只是一些實作的細節有差異而已。
當然你今天如果涉及其他領域的 programming,MVC 或許不是主流,...