上課日期:2017/12/09, 10
週六日上課 (09:30 ~ 16:30),共 12 小時。
(歡迎來電洽談企業內訓包班課程)

線上報名

※課程介紹

這絕對是一個可馬上被應用到工作實務的實作範例,讓學員可以知道,只要確立了可滿足使用者特定目的的系統功能,並大致勾勒出實現功能的主要程序/步驟,就可以馬上導出到控制類別的程式碼。而傳統資料導向的開發模式,卻往往需要等待需求分析的細節與資料庫的表格定義,甚至把表單欄位與資料庫表格耦合一起,難怪乎開發速度相當遲緩。

本課程主要讓學員瞭解「目標導向」的開發方式,應用在學習所謂「新的 IT 技術」,尤其是偏向實作面的 「How-to」,包括工具的操作,與程式的寫碼等,是如何從所設定的主要完成目標 (main-goal),再分解成數個階段性的子目標 (sub-goal),然後一次只克服一小段問題,再往前漸增推進,往下一個階段目標前進。

本課程會從實作過程中,讓學員了解 C#.NET 主要實作技術的應用,包括「ASP.NET MVC」、「Entity-Framework」的 O-R Mapping 技術。然後透過馬上撰寫「單元測試」的把關,後續就可以放心地對程式碼實行「重構」,讓程式碼更簡潔易於維護具彈性度。

從實作練習的過程中,逐漸熟習工具與相關實作技術的使用。「快速學會 How-to (如何做)」的能力,才是技術人員首需具備的技能 (skill)。

※課程目標

  • 藉由一個小型的案例,來展示開發階段 (包括 需求分析、結構設計、程式實作)的主要產出 (artifacts),以及這些產出之間的關聯性。
  • 展示目標導向的功能開發,如何快速從需求分析流暢地橋接至程式寫碼,並配合分層結構的 Enterprise MVC (Model-View-Controller) 框架,而可以應付未來系統重構,讓系統更具彈性與延展性。
  • 了解 .NET 在 ASP.NET MVC 與 Entity-Framework 兩種關鍵技術的應用,並藉由控制類別隔離兩者之間的耦合。
  • 提供作為開發人員的實作範本,可以馬上應用在工作實務上,並未來可以擴展成為團隊的「實作學習筆記」。

※課程大綱

課程單元 課程大綱
案例描述與實作目標
  • 界定系統開發功能,定義可獨立開發的主題 (Subject)
  • 利用UML系統循序圖描述實現系統功能的程序/工作項目 (Step)
  • 快速導出到 C#.NET 控制(Control)類型程式:
    控制類別 => Subject , method => Step
  • 立即撰寫單元測試程式碼 (unit test code)
  • 連結資料庫與 Web UI 表單畫面
  • 重構 (re-factoring),讓程式碼更簡潔易於延展與維護
Iteration#1-
從需求快速導出到實作,建立程式碼框架
  • 建置 Visual Studio 2017 Community & UML 工具的開發環境
  • 說明系統功能的界定與實現方式
  • 建立 C#.NET 控制類別程式碼框架,對應系統功能的分析產出
  • 利用 MSUnit 撰寫單元測試程式
  • 建立 ASP.NET Web MVC 專案,實作可操作系統功能的表單畫面
  • 規劃 DTO (Data Transfer Object)資料物件,作為各類型物件的參數/回傳值的資料傳遞
  • 建立資料庫表格(Table),產出標準 DDL(Data-Defintion Language) SQL
  • 讓控制類別透過 EF(Entity Framework)框架實際存取資料庫
Iteration#2-
更新處理邏輯與加入更多欄位細節,並對共用部分做萃取重構
  • 修改程式碼細節,包括資料欄位與業務邏輯的實作
  • 在程式碼內新增對例外處理(exception handling)的實作
  • 從控制類別萃取共用性/複雜的商務邏輯,並設計共用性的領域物件(domain object)
  • 將原來資料庫的存取邏輯,從控制類別抽離至 DAO(Data Access Object)物件
  • 新增測試案例,並利用單元測試程式把關,確保每一次程式碼變動的正確性
  • 實作效果:
    UI 完全隔離資料存取與邏輯處理
    UI/物件模型/資料庫 可以達成各自維護與延展的高度彈性度

部分實作圖例

圖1、分析系統功能

圖1、分析系統功能

圖2、實現系統功能

圖2、實現系統功能

圖3、撰寫控制類別

圖3、撰寫控制類別

圖4、撰寫單元測試程式

圖4、撰寫單元測試程式

圖5、版控至GitHub

圖5、版控至GitHub

圖6、規劃DTO資料物件

圖6、規劃DTO資料物件

圖7、規劃資料庫表格

圖7、規劃資料庫表格

圖8、設計EDM與資料庫的對應

圖8、設計EDM與資料庫的對應

圖9、撰寫連結資料庫程式碼

圖9、撰寫連結資料庫程式碼

圖10、執行 ASP.NET 表單

圖10、執行 ASP.NET 表單

圖11、重構邏輯與例外處理展示

圖11、重構邏輯與例外處理展示


※課程費用

 o 原價 NT$8,500元(含稅),線上報名可享優惠價 NT$6,800元(含稅)。
 o 兩人同行或舊生可再享優惠NT$5,800元(含稅)。
 o 清貧或由家扶中心推薦,可留言說明或電話聯繫,所有費用 免費!

※使用工具

 o EA (Enterprise Architect) UML Tool Trial。
 o Visual Studio Community 2017。

※適合學員

 o 系統分析/設計(SA/SD), PM, Programmer 等在職軟體開發者。
 o 學校資訊講師/在學相關資訊科系學生。
 o 學員最好有基本的程式設計能力(基本即可)。

※授課講師

王克明 (Kenming Wang)
 o 具有近20年豐富教學經驗。
 o 擅長引導學員反思並找出答案。
 o 專長大型系統架構規劃、企業/系統流程與系統分析、
  巨觀/微觀結構設計、精通 .NET/Java 兩大平台技術應用。
 o 專職軟體設計顧問/講師。

※備註

 o 教室設備包括白板與投影機,由講師親自說明與操作示範。
 o 學員最好能攜帶筆電(可無線上網),可於課程中實際操作與練習。
 o 若未達上課人數(原則以10人以上)則延期至下一梯次開課;
  已報名學員可申請退費(或可保留至下一梯次)。
 o 開課前一週會以電子郵件/電話聯絡通知學員。
 o 遇颱風等天候因素,則延至下一週上課日(會主動通知學員)。


如有課程相關問題,歡迎來信或來電洽詢
---------------------------------------------------
電郵: gnimnek168@gmail.com
Blog: http://www.kenming.idv.tw
軟體設計鮮思維:
https://www.facebook.com/groups/softthinking/
聯繫電話: 0922236977