[最後一梯][台北 05/21 (星期六)] 如何有架構性將現有 ASP.NET Web Form 轉換為 MVC?

本課程的重點不在於轉換為 MVC 這件事,重點在於架構性的思考,筆者會先帶著大家將原本的網站分層、將各層 (Layer/Tier) 職責切割清楚,說明當我職責切分清楚時,前端其實不管是既有的 WebForm 應用程式,或是重新撰寫的 MVC 應用程式,都可以操作這個Services層

這一次,筆者將從頭帶著大家動手做。如何將一個現有的 Northwind 的訂單編輯程式(ASP.NET WebForm) 轉換為 ASP.NET MVC

 

當然,筆者還是要強調,本課程的重點不在於轉換為 MVC 這件事,重點在於架構性的思考,筆者會先帶著大家將原本的網站分層、將各層 (Layer/Tier) 職責切割清楚,說明當我職責切分清楚時,前端其實不管是既有的 WebForm 應用程式,或是重新撰寫的 MVC 應用程式,都可以操作這個Services層。

 

課前須知:

 

本課程使用 C# 為主要語言,希望是有 OOP 概念 (不深沒關係)、但 需有ASP.NET 2.0~4.0 Web Form 開發 2-3年經驗較好,使用過 ADO.NET,使用過 Entity Framework(基礎),聽過 LINQ、且相關經驗最好都是使用 C#。

 

課程一開始,筆者會以架構性的思考來貫穿整個課程

 

課程大綱:

 

Agenda
觀念澄清

    先別說轉換這件事,我們先來談談分層、架構這回事。
良好的職責切割 ==> 談分層
    具備架構思維的程式設計師所開發的Web Form一樣很好維護
首先,如何培養架構性的思考
    先從基礎的來
    1. 可從 重構 開始培養
    2. 元件化/模組化 概念
    撰寫程式的架構性思考 (圖)
        實際 Coding 時,該在腦中進行的小迴圈
        即便是 Coding,也要以架構師的角度來看程式碼
    但現有系統怎麼做?(後面來詳談)
        需求你清楚嗎?
            Northwind 的客戶訂單系統 為例
        需求分析/Business Logic/Data Access Layer
        順序:兩方切入 (UI <==> DAL)
        1. 分離 DAL (如果你本來就沒有 DAL 那你只能重寫)
        2. 撰寫為 UnitOfWork Pattern
            分析、並找出 Service 介面
        3. 建立 Service 層專案 (使用 Autofac)善用IoC & DI概念
            兩種方式:
            A. 同專案內使用 Controller 取得資料 (使用 Autofac 注入 Service)
            B. Front-End 架構 (建立 Web API Controller 專案)
                透過 Web API 開放 Service 層
        4. 新增、重新撰寫 ASP.NET MVC 的 View 與 Controller
        5. 分析 Web Form 的 UI 層
            A. 改寫所有指定 DataSource 的部分
            B. Demo 原有 Web Form 做少部分修改,也可以存取 Services 層

 

課程結束後,我們會發現
各層職責分離,容易維護與需求修改,不至於牽一髮動全身,重用性提高不少,原本的 Web Form 少部分改寫也可以叫用 Service,甚至其他用程式 Windows Form/手機/任意 Device 也可以輕易操作 Service。


架構設計的思維是可以慢慢從案子、實作、與不斷地重構、學習、與 Troubleshooting 的經驗中慢慢培養出來的。

備註:

如果有時間,才將 Services 層在切割出 Web API,這時,前端我可以使用 MVC+AngularJS 或 jQuery 來存取這個Web API。

 

本課程開班與否、上課教室、地點皆由 mis2000 協助籌辦。

報名方式可參考下方連結:

http://www.dotblogs.com.tw/mis2000lab/archive/2015/06/05/gelis_webform_to_mvc.aspx

 

感謝大家


 

簽名:

學習是一趟奇妙的旅程

這當中,有辛苦、有心酸、也有成果。有時也會有瓶頸。要能夠繼續勇往直前就必須保有一顆最熱誠的心。

軟體開發之路(FB 社團)https://www.facebook.com/groups/361804473860062/

Gelis 程式設計訓練營(粉絲團)https://www.facebook.com/gelis.dev.learning/


 

如果文章對您有用,幫我點一下讚,或是點一下『我要推薦,這會讓我更有動力的為各位讀者撰寫下一篇文章。

非常謝謝各位的支持與愛護,小弟在此位各位說聲謝謝!!! ^_^