iT邦幫忙

1

ASP.NET MVC 是現今主流嗎 ?

是否市場上已都用 MVC 在設計 , 所以不會 MVC 就混不下去是嗎 ?

看更多先前的討論...收起先前的討論...
不會就去學習,不會就是競爭力比別人差、機會比別人少,想吃資訊這行飯,就是要一直變
weiclin iT邦高手 4 級 ‧ 2018-01-17 22:15:56 檢舉
自己上人力銀行網站看一下要求會 MVC 的多不多就知道了吧
用什麼寫都一樣吧...想做就要先當救火員~
MVC 只是一種開發架構,你現在使用 ASP.NET Web Form
也是可以用這種架構去開發。
alex9453 iT邦新手 2 級 ‧ 2018-01-18 10:38:12 檢舉
聽說還是要學 mvc 比較好 , 它可將程式碼給其它網頁使用 , 因為現在畫面與後置程式碼還是綁再一起 , 無法分離 , 以後都要朝這方向走才省力
主流 ?
給你網路找的TOP 10 您看完再跟我們說主流是哪一個
http://blog.stoneriverelearning.com/top-10-programming-languages-used-in-web-development/
我一個朋友三年前就放棄MVC了,他月薪USD 35000,專案分紅至少 20~100W USD 左右
他說國外都已經不用MVC 了,移動裝置才是王道,如果要考慮PC環境,開各外掛就能解決
froce iT邦大師 1 級 ‧ 2018-01-18 12:24:22 檢舉
現在都朝接web api出來的方向走,資料傳出來後再處理畫面,手機也能簡單開發。(但是這不和MVC的精神違背喔。)
然後網頁RWD已經變成必備的了,畢竟手機、PC都能跑。

在台灣,程式語言,微軟的市佔還是很大的,台灣以外的就...

最後,我得說,這不是你該問的,程式語言通常有很多共通的地方,網頁框架也是,觀念懂了,其實要轉換都很快。你先把你選的框架弄到熟了,再來考慮轉換吧。
alex9453 iT邦新手 2 級 ‧ 2018-01-18 15:25:23 檢舉
我所謂的主流是指微軟產品方面 , 也就是 asp.net mvc 會取代 asp.net , 至於 java . python ...... 等 , 不是我討論方面 , 感覺微軟比較好上手 , 先把 asp.net mvc 學會 , 在摸其他 , 當然 html javascript 也是必備要會的
froce iT邦大師 1 級 ‧ 2018-01-18 15:33:51 檢舉
微軟比較好上手?
我真的不覺得。
國外已經不用MVC,國內呢
我比較好奇臺灣的市場,謝謝前輩大大
alex9453 iT邦新手 2 級 ‧ 2018-01-18 22:02:22 檢舉
froce 你覺得什麼比較好上手 .
lk2986706we 那國外還是用 asp.net 嗎 ? 你怎麼知道國外不用 MVC
froce iT邦大師 1 級 ‧ 2018-01-19 08:44:11 檢舉
1.在網站開發,國外不管C#還是VB,ASP .net還是ASP .net MVC,都不是主流,但是在台灣還是有蠻大的市佔。
2.MVC是目前web框架的必備設計概念,非專指ASP .net MVC。
3.我是寫python的,所以自然會找python的框架。好上手的話像flask短短5行就有一個由後端送出網頁內容的網頁了。
'''
from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
return "Hello World!"
'''
eggeggss iT邦新手 5 級 ‧ 2019-01-10 17:26:58 檢舉
ViewData/ViewBag 的使用就跟django render template時帶
變數到前端jianja 去產生畫面沒啥不同(在mvc就是razor)
TempData是微軟客製給你的,
Django要做同樣的事,是再Post回另一個View
如果你說asp.net mvc非主流,那django/flask更是非主流
flask/django頂多拿來寫小品,chat bot 的webhook還可以,
開發大型穩定系統不會首選,要怎麼套反射,DI讓系統解耦?
也很少開發者在上面討論與使用設計模式
這些在asp.net mvc都是很成熟很基本的設計
框架任君選unity,autofac..anyway
這樣的設計在大型系統的建構上非常非常重要(如果你熟知solid在幹嘛)
python的優點是好上手,快速開發,科學運算框架豐富
但不適合用在大型系統,光是效能跟語言特性上就輸c#一大截
請參考一下這篇效能評比
https://www.cnblogs.com/savorboard/p/dotnet-benchmarks.html
雖說python是強型別但直譯語言如何在編寫時就知道型別錯誤,也可惜了這個強型別的特性,always runtime error
另外使用django架構大型系統的案例少之又少,
雖然instagram是用django,他們django花了很多時間在架構跟調整框架上
flask更是簡單如你說的,但舉他跟asp.mvc對比就錯了,他非常陽春,很多東西要自己來,身份角色驗證機制/後台/orm還要外掛sqlachemy,django還有個樣子,簡單好上手的東西後面會遭遇的問題都不簡單
froce iT邦大師 1 級 ‧ 2019-01-14 13:16:05 檢舉
他當時是有分3點,我才會1、2、3這樣回答他的,並不是說Django或flask是主流,我沒記錯的話是他問什麼框架適合新學。

但「國外」 web 開發,asp .net MVC的確已經偏離主流了。
大型開發會找JAVA、PHP。
eggeggss iT邦新手 5 級 ‧ 2019-01-18 12:36:25 檢舉
php 玩到laravel的確適合大型開發,其他view跟邏輯混雜的開發方式就不用說
但因為他簡單上手所以一堆view跟邏輯是混雜的,開過wordpress source code?至於java也是苦主自從oracle亂搞之後,所以你說偏離主流也許現在是..但未來很難講,不過您說偏離主流是依據什麼?本身在矽谷工作?本人也有加入國外社群,討論活躍,一些之後以dot.net為主的open source與延伸很多都以mvc為主,所以不知道如何判斷偏離?
照燒 iT邦新手 4 級 ‧ 2021-12-30 16:29:41 檢舉
做為ASP開發工程師,也做過PHP跟Java,
C#好用,但被微軟整成MVC之後超難搞。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
4
froce
iT邦大師 1 級 ‧ 2018-01-19 09:10:51
最佳解答

1.在網站開發,國外不管C#還是VB,ASP .net還是ASP .net MVC,都不是主流,但是在台灣還是有蠻大的市佔。

2.MVC是目前web框架的必備設計概念,非專指ASP .net MVC。

3.我是寫python的,所以自然會找python的框架。好上手的話像flask(一個非常簡潔、內建功能最少的 python web 框架,對於新手建立web整體流程很適合)短短5行就有一個由後端送出網頁內容的網頁了。
'''
from flask import Flask
app = Flask(name)

@app.route("/")
def hello():
return "Hello World!"
'''
(我個人是認為框架沒有好壞,熟悉才最重要)

ASP .net MVC我會覺得他不好上手的原因是有些觀念是微軟自己發展出來的,像 ViewData/ViewBag/TempData,在Django(另一個python框架)就只有一個回傳的dict。

不過非微軟的框架通常沒有整合介面讓你拉一拉就能產出一個能看的web介面,所以你必須要有 html 的基本知識,如果要更進一步的話還得要有 javascript 的基礎。

你頭都洗一半了,我建議你還是把 ASP .net MVC 搞懂搞熟就好。
主流非主流那不是你一個新手該注意的,你該注意的是整體web流程觀念、前後端如何交流、資料庫如何設計、資通安全概念等基礎。

網頁系統不管怎樣演進,上面說到的基礎是幾乎不會變的,或許工具會變,但你觀念正確,熟悉後要轉換都很快。

PS.下面小魚大的鐵人賽參賽文章 ASP .net MVC 我覺得就已經帶到所有的基礎了,你可以試著用你的語言照著他的流程重寫一遍。
https://ithelp.ithome.com.tw/users/20105694/ironman/1329

看更多先前的回應...收起先前的回應...
小魚 iT邦大師 1 級 ‧ 2018-01-19 12:00:41 檢舉

MVC也沒辦法拉,
還是要Html,
雖然微軟又自己發明了一些新的東西...
不過最後還是Html...

alex9453 iT邦新手 2 級 ‧ 2018-01-19 14:40:35 檢舉

froce 小魚大寫的還是很難懂 ,感覺不是寫給初學者看的 , Model-View-Controller(MVC),模型.視圖.控制器他寫的三個解釋 , 還是很難體會是說什麼 , 有什麼簡單比喻的說法嗎 ?

froce iT邦大師 1 級 ‧ 2018-01-19 15:57:06 檢舉

之前那篇就解釋過了。因為我是用Django,我用Django來解釋(其實應該說是MTV,但大家都把MVC和Model 2搞混了,就還是用MVC來解釋吧),ASP .net MVC可能不能完全符合,但是應該大致相同。

Model就是資料庫的模板,也就是你定義一筆資料,他應該長怎樣。
例如在學生資料查詢系統,一個學生,他會有姓名、國文成績、英文成績、性別、學號。

Controller(在Django是view)是控制前端和後端的邏輯,例如你要給老師輸入學生的成績,那你一定會控制國文老師能上傳學生的國文成績、英文老師只能上傳英文成績。所以你會在使用者登錄後,在controller傳出國文成績的欄位給國文老師填,英文欄位給英文老師填。
又或許今天成績太爛,老師希望你幫他開根號乘以10,那你就會在Controller中把他輸入的成績,去做開根號乘以10的動作,然後再去存入資料庫裡。

View(在Django是template)就是你要呈現的介面,也就是HTML的前端部份。

然後多寫就會對這些有感受了。看在多別人的解釋都沒用。


http://blog.turn.tw/?p=1539

froce iT邦大師 1 級 ‧ 2018-01-19 16:15:50 檢舉

然後我知道上面的解釋不是非常正確(尤其是Controller那塊,因為其實Controller其實包含框架本身幫你做掉的處理routing、接收request等等背後隱含的動作),不過說真的讓新手懂比較重要。

alex9453 iT邦新手 2 級 ‧ 2018-01-19 16:28:43 檢舉

謝謝!你這樣寫就比較有點概念 , 否則像 模型(Model) 用於封裝與應用程式的業務邏輯相關的資料以及對資料的處理方法 , 什麼封裝業務邏輯 , 是在講什麼啊!

小魚 iT邦大師 1 級 ‧ 2018-01-20 23:13:32 檢舉

我覺得Model最難懂,
沒有人有辦法很具體完整的說出什麼是Model,
我覺得他本來就是一個很抽象的東西,
就像物件導向一樣是很抽象的東西...
不過就是因為抽象,
所以永遠都有進步的空間。

eggeggss iT邦新手 5 級 ‧ 2019-01-10 18:42:01 檢舉

市面上web的主流是php,也跟wordpress的簡單易用的套裝軟體帶上去有關,但會用wordpress絕大多數本身不懂php,另外也造就了某些安全性的問題

照燒 iT邦新手 4 級 ‧ 2021-12-30 16:07:15 檢舉

近五年,我所在的公司花了不少心血弄ASP MVC,ASP MVC其實滿讓人覺得可惜的,雖然MVC是種概念,但ASP MVC架構過於僵硬,更麻煩的是ASP的.net版本多,又不是無腦相容,會讓工程師做一堆白工,如果只寫ASP工程師願意脫離ASP舒適圈去別的領域的話,回頭看以前在ASP MVC花費的時間跟心血真的會吐血。
https://w3techs.com/ 這類統計資料來看,從2014的2x%市占到現在8%,雖然2005~2014已經在慢慢減少市佔,但ASP在慢慢轉向MVC後並沒有扭轉趨勢,反而快速流失使用群。
我原本主要是做PHP跟JAVA,其實我從PHP的MVC轉換到ASP MVC跑道時,一開始還深信ASP有什麼價值,不過越用越發現他有很多缺陷,但是.net台灣市場確實不小,加上公家跟銀行除了JAVA就是.net,所以需求短期內還是很多。
另外我認為隨時從ASP MVC繞跑並不是難事。

2
小魚
iT邦大師 1 級 ‧ 2018-01-18 11:57:41

主流這種東西是會變的,
但是基礎的東西是不會變的,
就像網頁再怎麼變,
也離不開Html跟JavaScript,
如果你基礎的東西寫得好,
也可以自己創造主流.
(這比較難@@)

0
yuanshang
iT邦新手 4 級 ‧ 2018-01-23 10:39:13

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 或許不是主流,但是你如果想做 Web,甚至行動相關的程式,把 MVC 觀念練熟會非常有幫助,剛開始可能會卡關,這是正常,跳過無妨,因為它走了一些必要的,但我們在直覺上不必要走的遠路,多多練習你感覺就會出來。

加油!

0
圓頭人
iT邦研究生 5 級 ‧ 2018-09-10 17:35:00

一個開發公司的HR說:

你不會MVC,我考慮都不考慮.
現在外面都要做MVC至少有一年經驗的

我要發表回答

立即登入回答