很開心又邀請到一位高手來分享經驗,帶領大家實作。
相同的北風資料庫,從Web Form如何轉換成MVC呢?
這一天會讓您動手實戰,親身體會。
課前須知:
希望是有 OOP 概念 (不深沒關係)、但 需有ASP.NET 2.0~4.0 Web Form 開發 2-3年經驗較好,
使用過 ADO.NET,使用過 Entity Framework(基礎),聽過 LINQ、且相關經驗都是使用 C#為主
以 "觀念式"的傳達,而不是用 Web Form 轉 MVC 這種講法,
因為不管你是寫 Web Form 或是 MVC,若架構性的觀念有,其實 Web Form 一樣可以寫得很好維護,
所以老師會在課程中,不斷的強調,先分層,再談轉換。
課程一開始,老師會以架構性的思考來貫穿整個課
報名&完整內容,請看:http://www.dotblogs.com.tw/mis2000lab/archive/2015/06/05/gelis_webform_to_mvc.aspx
*******************************************************************************
Gelis老師提供的 "上課投影片",您可以瞭解上課內容
事先做好評估 http://www.dotblogs.com.tw/gelis/archive/2013/11/21/130795.aspx
架構設計好簡單系列 - 簡單分層你的網站 (如何快速從Web Form 變成 ASP.NET MVC)
http://www.dotblogs.com.tw/gelis/archive/2013/09/15/118597.aspx
*******************************************************************************
上課使用軟體:VS 2013 ( 建議升級到Update 4 )
現場有電腦教室,也歡迎自備NB(有個人電源插座與Wi-Fi網路)
預計20人額滿。小班教學。
上課地點:台北火車站附近,交通便利,外縣市朋友也可上課。
鄰近新光三越百貨、NOVA(現為H&M)、燦坤
上課日期: 2015/ 7/ 26(週日),09:00~17:00,午休一小時。
課程大綱:
Agenda
觀念澄清 -- 先別說轉換這件事,我們先來談談分層、架構這回事。
良好的職責切割 ==> 談 "分層"
具備架構思維的程式設計師 所開發的Web Form 一樣很好維護
首先,如何培養架構性的思考
先從基礎的來
可從 重構 開始培養
元件化/模組化 概念
撰寫程式的架構性思考
實際 Coding 時,該在腦中進行的小迴圈
即便是 Coding,也要以架構師的角度來看程式碼
但現有系統怎麼做?(課程中來詳談) 需求你清楚嗎?
Northwind 的客戶訂單系統 為例
需求分析/Business Logic/Data Access Layer
順序:兩方切入 (UI <==> DAL)
分離 DAL (如果你本來就沒有 DAL 那你只能重寫)
撰寫為 UnitOfWork Pattern
分析、並找出 Service 介面
建立 Service 層專案(使用 Autofac)善用IoC & DI
兩種方式:
A. 同專案內使用 Controller 取得資料 (使用 Autofac 注入 Service)
B. Front-End 架構 (建立 Web API Controller 專案)
透過 Web API 開放 Service 層
新增、重新撰寫 ASP.NET MVC 的 View 與 Controller
分析 Web Form 的 UI 層
A. 改寫所有指定 DataSource 的部分
B. Demo 原有 Web Form 做少部分修改,也可以存取 Service 層
總 結
各層職責分離,容易維護與需求修改,不至於牽一髮動全身
可以重複使用,原本的 Web Form 少部分改寫也可以叫用 Service,甚至其他用程式 Windows Form/手機/任意 Device 也可以輕易操作 Service
報名&完整內容,請看:http://www.dotblogs.com.tw/mis2000lab/archive/2015/06/05/gelis_webform_to_mvc.aspx
WebForms到MVC不是升級,那是一些台灣的MVP搞出來的玩意兒。
簡單來說,台灣的MVP,不是真的有價值的MVP,拿MVP當職業的。
iT邦幫忙MVPsimon581923提到:
WebForms到MVC不是升級
那是轉性...
從 WebForm 到 MVC 的確不是升級,打從我寫地一篇文章時,就沒說過是升級,這應該是 mis2000 打錯了
從我寫地一篇文章時,就沒說過從 WebForm 到 MVC 是升級,你有在我文章裡找到 "升級" 這兩個字嗎?
文章中,我不斷的強調,概念夠的程式設計者,即便撰寫 Web Form,也會很好維護,所以,課程的重點也在於架構設計,並不在於使用 WebForm 或是 MVC,因為不管是哪一種,我們都希望是一個妥善的、經過分析、設計、職責分離,彼此偶和度低,容易維護、擴展的網站。不會把它當成 WinForm 來開發。
請你解釋一下,什麼叫做台灣MVP不是真正有價值的MVP?不然請你收回這句話...
MVP 不是一種職業,每個都在不同的公司上班,有自己的職業。不清楚就不要亂說。
其實說句老實話...對於中小企業,MIS兼coder...MVC真的是...多餘的...
但是呢...常常聽到各位MVP老大們,鼓吹什麼MVC可以加快開發時程...
只好請您告訴我們實情了....
一個MIS部門裡頭,MIS還得兼coder,連個職務代理人都沒有
MVC真的可以加速開發時程?
我只能說,推廣歸推廣,不能『斷章取義』
by the way...雖然我自己也是比較喜歡用MVC(因為不用自己去為了一些特殊需求,創造一些稀奇古怪的server control)
當初ASP 3.0...form post也用得好好的
不也是各位MVP大人,說什麼server control + event trigger可以加速開發...
怎麼現在又回到Web的原點了呢?
我同意,不要說中小企業如果是 MIS 兼 Coder ,如果是一個人開發,我都不會建議他使用 MVC
我後來從事顧問以來,從沒跟人說過 MVC 可以加速開發,MVC 正因為關注點分離,前期分析的時間一定會比較長,如果沒有想清楚就做,那也會產生另一個災難..
我大約從 2000 畢業後開始寫程式做專案,從 Delphi 開始寫到 .NET WinForm、ASP.NET WebForm、ASP.NET MVC,一直以來,我只會建議我的客戶最適合的解決方案,我也是有客戶排斥 MVC,那就它們熟悉的 WebForm,同樣可以解決問題。這也是我一直強調的,所謂的架構設計,有時候,找出最省時、省力、又保有較佳的設計、維護姓、時效性,又兼顧團隊的 Skill、以後維護也方便的一種方式。因為架構設計有時候也是一種全盤的考慮,不光是技術,更何況技術是中立的。
gelis提到:
2000 畢業後
依照這個看來...應該是個小老弟
gelis提到:
從沒跟人說過 MVC 可以加速開發
這個現象,你可以去看看市面上號稱MVP寫的各類專書...基本上每一本都中獎...
不然你問問mislab2000老大...他自己的書有沒有標榜這樣的話...
賣書、研討會是很好的,但是賣的應該是專業知識,不是踩著別人的屍體墊高自己
gelis提到:
前期分析的時間一定會比較長
這個...中小企業老闆絕對是不同意的
日子一天天過,程式設計人員的薪水一天天發...
忘了告訴你.. ASP 3.0 我也有寫過好一陣子..
其實應該是98年畢業,2000 才開始算軟體公司的資歷..
gelis提到:
98年畢業
還是小弟弟....
我是替賽大說的
所以?...
ㄟ...這個嘛...沒人跟你說外獅佬的年齡是秘密嗎?
資深不代表可以公開批評別人...
iT邦幫忙MVPsimon581923提到:
台灣的MVP,不是真的有價值的MVP,拿MVP當職業的
說真的...這我得挺賽大!!
這句話沒有貶人的意思!
你們被M$選為MVP,我們沒有異議
但是,請你們自問..是不是頂著這個光環...招搖撞騙(對不起,語氣重了很多)
因為...頂著這光環...夜郎自大的..不能說多,但是真的不少
說真的,不好意思,這..我也還是得替許多MVP說話.. 請多包涵
是不是有人招搖撞騙 => 憑良心說,不能說沒有,但也許多 MVP 是以實力取勝的
你們比較資深,所以你們知道 MVP 是什麼,不過我告訴你,現在還是有很多 IT 人,不知道 MVP 是什麼?= =
包括我的客戶,不誇張,10個客戶就有 8個不知道 MVP 是什麼?幫他們過顧問服務他們只看你有沒有辦法幫他們解決問題,如果解不了,他們才不當你是一回事。他們會因為你是 MVP 而信任你嗎?並不會,只看能解決多少問題,慢慢的他們才會信任你 = =
我想,你們也不會因為某個新進員工是 MVP 就認為他OK吧! 一定要再在工作上表現給上面看,上面才會信任你,沒錯吧!
我拿到 MVP 時,我前公司也沒有幫我加薪,這是真的,沒有騙你
這都是我實際遇到的狀況
gelis提到:
不知道 MVP 是什麼
知道這個有飯吃嗎?
唯一讓我不想用WebForm的原因...
就是...WinForm的開發者,會把webform當做winform玩...
Web警示視窗這麼寫
<pre class="c" name="code">
using System.Windows.Forms;
.......
MessageBox.Show(....);
真是欲哭無淚啊
MessageBox.Show(....);
會這麼寫,也是幾個台灣的MVP,早期寫WinForms,就把習慣帶到WebForms。
同一批人又開始搞MVC,想也知道會把WebForms帶到MVC去。
根本搞爛MVC。
ScriptManager.RegisterStartScript(....)
Hello,
iThelp是iT技術的社群與QA網站,很高興大家在這裡分享技術相關訊息與課程 ^^
我想WinForm習慣帶到WebForm可能是技術人員觀念的過渡
不代表MVC的好壞
會開[快速從Web Form 升級 ASP.NET MVC]這樣的課程表示市場有這樣的需求
技術是中立的
感謝mis2000lab分享研討會訊息
謝謝
+1
技術本就沒有最好,只有最適合
Hi
從 WebForm 到 MVC 的確不是升級,打從我寫地一篇文章時,就沒說過是升級,您如果有看過我的文章,應該在裡面找不到 "升級" 這兩個字。
文章中,我不斷的強調,概念夠的程式設計者,即便撰寫 Web Form,也不會把它當成 WinForm 來開發。
網站各層職責切割清楚,只要再多切出一個 (Web API/Services) 我的前端不只 MVC 可以使用操作,Mobile/Device 甚至既有的 WebForm 也可以存取,本來就沒有說是為了 MVC 而 MVC。
另外,小弟的確從 2000年就開始寫程式做專案,當時也只有 WinForm 可以寫,不過我從 2008 的 MVC 1.0 就開始寫 ASP.NET MVC 了,不知道這有什麼問題呢?
至於 "升級" 應該是 mis2000 打錯了,我會請他修改,謝謝大家。
如同 fortune 所說,技術本是中立的,沒有好與壞,端看你怎麼使用。
另外,我再補充說明:
概念夠的程式設計者,即便撰寫 Web Form,也會很好維護,所以,課程的重點也在於架構設計,並不在於 WebForm 或是 MVC,因為不管是哪一種,我們都希望是一個妥善的、經過分析、設計、職責分離,彼此偶和度低,容易維護、擴展的網站。但現有的網站大部分沒有做到,所以才開這個課程。
還有
請你解釋一下,什麼叫做台灣MVP不是真正有價值的MVP?
還是你的意思是你最有價值?
台灣所有MVP都惹到你了嗎?
專門註冊個帳號來吵架的....
是有人批評在先...
他並沒有說你們MVP不好
他是希望,不要再用以前那種『騙』WinForm開發者,轉入WebForm的那種方式
Web終究就是Web...它不管怎麼樣,就是跟WinForm不一樣
ASP.Net Web Form跟ASP.Net MVC就是不一樣
請不要拿他們來比較
書上最常見的就是...什麼Web Form生命週期、ViewState怎麼不利Web的效能,
數落Web Form的不是,這不應該是用來推廣一門技術的方法:踩死別人,墊高自己
我說的是這句話 "台灣的MVP,不是真的有價值的MVP,拿MVP當職業的"
這觀點我同意,如果你有看過我的文章,就會知道我 WebForm 寫過一陣子,兩種我都有在用,也沒有拿這兩種來比較,因為就像我上一篇PO所講的,每個技術(或說工具),都有它存在的意義。
有一句話我真的很常說,一個高竿的工程師所寫的 WebForm 程式,有時效能不見得會輸給 MVC
gelis提到:
台灣的MVP,不是真的有價值的MVP,拿MVP當職業的
這...老弟,你真的要問問自己了...
也請你回msdn的論壇看看...
跟其他國家(含遙遠的海峽對岸)的MSDN論壇看看...
這...真的是MVP該有的高度嗎?
M$給你們所謂MVP的封號,以及一些『額外』的bonus,
不外乎就是希望各位能夠像藏於家中的折凳一樣
藏於民居,殺人於無形
只是...你去論壇看看
我只看到....唉呦...MVP好了不起哦...別人的方法一樣可以解決問題,
怎麼?跟你不一樣不行啊?
我不搞論壇的,你應該搜尋不到我在 MSDN 的回覆,有也只有兩三篇
我知道你講的... 但,大家同樣是 IT 工作者,我認為這樣說還是不恰當..
至於你說的 "這...真的是MVP該有的高度嗎?" 你可以舉例?
gelis提到:
舉例
冰凍三尺,非一日之寒
其實,說真的,我...不認識你...gelis...
但是但願gelis能夠有不一樣高度,去講解你擁有的知識
報告賽老大、mislab2000老大、蓋里斯小弟弟....
小弟我可以做個結論嗎?
結論是??...
iT邦幫忙MVPwiselou提到:
小弟我可以做個結論嗎?
結論是外獅佬要跟老鷹去吃早餐嗎
可以來台北找老鷹吃飯
整天只知道吃...
沒有整天啊...睡覺的時候沒吃
iT邦幫忙MVPwiselou提到:
小弟我可以做個結論嗎?
請...請...不要客氣,獅王請做個結論....
結論就是...天亮了,該上班了
wiselou提到:
結論就是...天亮了,該上班了
這個結論真恐怖....
wiselou提到:
睡覺的時候沒吃
老鷹應該還是有在偷吃...
cdfu提到:
老鷹應該還是有在偷吃...
睡覺時嘴巴旁邊要放魷魚絲
肚子餓可以吃幾根
最好是"架構設計好簡單"啦.
我不知道為何要把資訊專業的東西搞得像賣泡麵那樣,
強調快速,簡單就能弄出食物.泡麵也就是填一下肚子,
沒多少營養的.
MVC 也不過就是許多模式中的一種而已.要說到架構設計,
嗯....難道學會畫一個基本的房子的設計圖,就能說
設計聖保羅大教堂也不難.
快快樂樂學吧 !!!
推
架構設計是沒很簡單,那只是文章標題而已...
文章內容本來就只是初步的說明 (一個 Northwind 的 Orders 而已),距離設計設計聖保羅大教堂應該還有段距離..
就如我如上所說,那只是個標題,要我改成 快快樂樂學 其實也沒差~ 所以有必要在這個點討論嗎.. = =
gelis提到:
快快樂樂學
這是松X出的系列哦
gelis提到:
就如我如上所說,那只是個標題,要我改成 快快樂樂學 其實也沒差~ 所以有必要在這個點討論嗎.. = =
這就是我們之間的不同,你認為只是個標題.
標題錯表示方向錯,方向如果都錯了,內容還有意義嗎??...
老闆們最喜歡這種聳動的標題了
如果改成快快樂樂系列,老闆就不會幫我出車錢、請公假
不聳動,一點都不聳動,又簡單又快速的,聽起來根本要不到錢呀....
gelis提到:
快快樂樂學
不能改成 吃吃喝喝學嗎....
chingfeng提到:
吃吃喝喝學
隨隨便便學怎麼樣
對我的發言引發的討論,說聲抱歉。
我想,到此為止吧~~
這篇貼文的標題,真的是....
居然出自台灣微軟MVP,真....唉~~
都是你把人家簡單的東西搞複雜的...
賽大歪樓 ~~~
cdfu提到:
把人家簡單的東西搞複雜的
喔...抱歉~~
原來這是快快樂樂系列。
我真的很抱歉...
混在一起,改成:快快樂樂、吃吃喝喝鹽烤會
wiselou提到:
快快樂樂、吃吃喝喝鹽烤會
是要把老鷹抓來烤嗎?
wiselou提到:
鹽烤會
看來本會最重要的配角
應該可以確定是啤酒了
simon581923提到:
是要把老鷹抓來烤嗎?
這個不好吧!....
老鷹只是路過....
賽門哥認真了,不過我認同標題不妥
換個方式、換種生活不是一定能用升級、降級來比喻
尤其比較的條件有很多不同差異時
舉例:
人生進階了:買了汽車
反例:
停車超不便,使用率低,把車賣掉,那麼是退步了!?
舉例:
恭喜你結婚,人生進階了
反例:
選擇單身就是停止進化?
不同工具就像不同生活方式
就算把對方打死、取而代之,也不該出言不遜、造謠中傷
否則就請留點餘地,把自己做好。
我不是在說選舉啦。
您好,
iThelp對於此篇研討會訊息造成的討論慎重看待,特意留待三天端午節連假之後,大家有所沈澱再來發文,而今看來討論與回應的熱度已經降下,決定來畫下句點。
本篇的討論到此為止。
同時再次聲明
1.技術是中立的,iThelp是以iT”技術”為主軸的問答平臺,感謝大家分享技術相關的資訊與課程,沒有需求或不喜歡的部分,敬請直接略過,任何應用都有人/企業在使用,批判的替代作法是提出技術上更適合的方法。也很歡迎大家秉持理性上來討論。
2.請勿涉入人身攻擊,無論是對個人或群體。微軟的MVP是一群經過層層篩選的技術專家,有明確的選拔指標,可參考此文。
若再發生以人廢言或者攻擊技術/群體的發言,將扣點處理。
希望大家共同維持iT邦幫忙技術交流的純粹性
謝謝
iThelp