跨平台的 API Framework 框架開發V2(全新課程)

  • 2024/11/09(Sat) 09:00(+0800) ~ 17:00(+0800) ( iCal/Outlook, Google Calendar )
  • 萊客共享聯盟 - Like sharing space / 100008台北市中正區許昌街42號8樓 - 802教室
  • 19 / 20
  • Gelis 程式設計訓練營 Contact Organizer

@ 課程主題:

跨平台的 API Framework 框架開發V2(全新課程)~燒燙燙來了!!!

@ 前言:

在上一次約2019年的跨平台Web API Framework 框架設計的課程廣受好評之後,因為疫情與其它因素,事隔了5年了,終於在最近在許多FB團友期待下,推出 API Framework V2.0 課程,與上一堂類似,都是 API 框架設計,只不過本次會以更廣的以軟體架構設計的視角,來探討 API 框架設計。

這堂有別於上一堂課程,在上一堂課程中,我們講述了一個從無到有建立 ApiHostBase 的基礎類別,來提供一種共用 API Controller來『動態』重複使用 Reuse 商業物件Business Object的一種方式,這次我們把架構眼界再往上提升一個層次,從六角架構的角度出發、並以框架設計為出發點、並基於一種使用者需求(線上租車需求為例)來設計一組服務此 Core Domain 的框架。

@課程源由:

在歷經了.NET Core的不斷改版(目前已經到.NET 8)與客戶需求不斷的升級 API Framework 框架,因此這個框架也由當時的 V1.0 升級到 V2.0,原先的 Business Object 架構將由六角架構Hexagonal Architecture來取代,將每一個(組件/套件/企業商業邏輯/..)擺放在下圖中正確的位置上。在這個架構上的調整下,我們會將框架往外層推,使我們的領域層Domain Layer更乾淨,而我們的API框架也推到了Infrastructure如下圖:

所以,也就是說,我們真的會實作一個Domain Layer,我們的主要租車需求也從 Domain Layer 開始,程式碼的撰寫也會先從這裡開始,架構基於六角架構,實務的抽象來自一個 DDD 的 Core Domain 的 Domain Modeling 的圖形,不過不必擔心,課程我會介紹此 Domain Modeling 的來龍去脈,不會有瞎子摸象的感覺

有了 Domain,當然就是實作 Application Services 了,而且完全基於一個租車系統的需求,這時,我們的視角會變成如下圖:

 

從上圖視角,並以 S.O.L.I.D. 角度,逐步的完成整個 API Framework 框架的開發。

 

@學習本課程後、你會學到什麼:

本課程會讓你學習到在規劃團隊共用的 Platform 或者是框架時,你該以什麼樣的著眼點來進行設計,在解決使用這需求時,同時的思考怎麼樣讓框架有足夠的靈活性?

課程中會指導你:

  • 可學到如何在六角架構中建立適應性、符合自身需求的框架設計技巧
  • 學習到 Cross-Cutting Concerns 跨領域關注點概念 與 AOP 實務技巧
  • 可學習到如何在基於一個需求、與實踐 S.O.L.I.D. 過程中、逐步完善一個六角架構的軟體系統
  • 學習到基於 Clean Architectuure 視角的 NuGet Packages套件規劃技巧

課程中,我會帶著大家基於租車系統需求來實踐 S.O.L.I.D.,並在實踐 SOLID 過程中,逐步完善一個基於六角架構的租車系統,並在六角架構中,學習如何將客製化框架擺放在正確的位置上。

 

@課程大綱(Agenda):

  • 究竟什麼是 (Design)?什麼是 (Architecture)?
    • API 設計的挑戰、從 API 來重新檢視基本軟體設計原則
    • 從 S.O.L.I.D. 角度來規劃你的 API 框架
      • 什麼是軟體架構?設計模式?
      • 又要模組化、封裝、低耦合、高內聚?拿捏得當比較重要!
    • 你需要什麼?或你想要什麼?
    • 實作:一個簡單的租車需求
  • 從整潔架構談自定義 NuGet 套件規劃與使用
    • 套件的定義?哪一類的程式碼應該歸類為套件?
      • 從 Clean Architecture 的角度來談框架內的 NuGet Packages 的規劃與使用
  • EasyArchitecture Framework 的現有架構規劃
    • EasyArchitecture 要達成的目標
  • 一切從可重複使用 Re Use 開始
    • 如何設計你的範本:從你的範本開始
  • 設計你自己的 Web API Framework 框架
  • Q & A

 

@課程對象:

  • 已有 C# 約 2-3 年 ASP.NET WebForm 或 MVC 使用 C# 網頁開發經驗的開發人員,具備 ASP.NET Web API 開發經驗更佳
  • 或本身已經 Web API 的開發人員,希望對 Web API 能有近一步了解,甚至設計自己的 Web API 框架的開發人員。
  • 目前為程式設計師,想要拓展架構設計思維、甚至想充實軟體架構設計技能的開發人員
  • 或本身已經是 SD 或架構設計人員,對程式開發仍充滿熱情、想了解 API 框架設計相關人員
  • 或者甚至您已經是全端開發人員,想了解 C# 的後端開發,也可以參加本課程

 

@課程目標:

由老師手把手帶著大家,如何從無到有建置一個簡單租車系統的 Core Domain (核心領域、在DDD領域驅動設計的戰略建模中,表示目前關注的領域中最核心部分),這裡還不熟悉DDD也沒有關係,課程中,我們不畫 UML 也不畫 Use Case 或 Class Diagram,但是我會介紹當天課程的核心目標,就是要將基於租車系統的核心需求,在六角架構上實踐 + 加上我們設計的框架,所以也就是說,框架會服務這個租車系統,因為框架是細節。

課程開始前,我會給大家安裝一個套件,這個套件會幫助我們少寫一些程式碼,主要是因為課程時間有限,我們要將課程的關注點集中在 API 的框架設計上面一些 Domain Modeling 的程式碼雛型可以藉由這個套件當中的範本來進行 Code Generate 即可,以便讓我們在有限的授課時間裡,將 Focus 聚焦在整個架構的設計上,與 NuGet Packages 套件的規劃上。

 

@課程導讀:

本課程雖然部分是API Framework 框架設計的延續,但內容並不延續上一次的課程,全部重新制定,所以,若沒上過我的第一版的學員也不用擔心,因為本課程全部為全新內容。在開始上課前,可導讀下面內容:

 

(1). 我的部落格[軟體架構設計:無題]

https://gelis-dotnet.blogspot.com/2022/08/blog-post.html

(2). 我的社團[軟體開發之路]DDD領域驅動精選貼文

https://www.facebook.com/groups/361804473860062/permalink/9463322727041479

(3). 先前教育訓練影片[軟體架構設計 透過 SOLID 與 六角 整潔架構 來建築強固的軟體系統]

https://www.youtube.com/watch?v=e-BQMtWcQKc&t=1164s

 

上面這則影片指導了一個完整的從原始租車需求開始,我從Use Case Model 開始,繪製Domain Modeling 後,將 Core Domain 先透過 LINQPad 撰寫為C#程式碼雛形,接著再藉由實踐SOLID的過程中,將基於六角架構的租車系統從無到有的實作出來。

 

@課前須知:

本課程需『自備筆電』關於環境的準備,請使用.NET Core 8.0以上,與 Visual Studio 2022 Community/Professional/Enterprise 的 v17.11 (建議目前最新) 以上,這三個版本都可以,請先自行安裝好。

因此,建議作業環境:

Windows 10 22H2以上、Windows 11也可(老師使用Windows 10)

另外,由於課程會使用到『ASP.NET 網頁開發』與『.NET Core 跨平台開發』還有『.NET桌面開發』,因此請安裝以下說明的部分:

 

注意:

Visual Studio 2022從v17.5開始將.NET Core跨平台開發視為內建功能,所以你無法在安裝畫面中勾選了。

.NET桌面開發一定要勾選,因為在建立類別庫專案時,主要的的內建範本的提供者就是.NET桌面開發。

 

(1). 請勾選 ASP.NET 與網頁開發

(2). 請勾選 .NET 桌面開發

(3). 請在個別元在元件裡,將所有(包含最新).NET Framework SDK 工具一並勾選、確認ASP.NET網頁程式開發條件與進階功能都有勾選

(4). 下載安裝 ASP.NET Core 8.0 SDK 工具 & .NET Core Runtime

注意:目前最新的8.0.8需要搭配最新版本的Visual Studio 2022 V17.11,謝謝。

相關軟體可至下方連結下載,並安裝(連結如下)

(1). 下載 Visual Studio 2022 Community:

https://visualstudio.microsoft.com/zh-hant/vs/community/

(2). 下載 ASP.NET Core 8.0 SDK & .NET Core 8.0 Runtime

https://dotnet.microsoft.com/en-us/download/dotnet/8.0

 

關於講師:

我是 Gelis,從事軟體專案開發相關工作已經 25 餘年(顧問工作10年),專案開發 15 年,目前任職資深.NET技術顧問,目前主要負責與 .NET 相關的開發、顧問、訓練、流程設計導入、工具評估、客制化框架設計、等工作。

我熱愛軟體工程、UML 系統分析與設計,擅長OO物件導向分析與設計外,也專精於企業流程改造(電子化)協助將商業邏輯服務化、彈性化: 以 SOA 服務導向架構的方式提供商業邏輯,讓各應用程式在開發時容易調用,並可提高商業邏輯的再利用率,協助呈現介面多元化: 改變單一網頁呈現方式,依作業屬性提供 Windows Form 、 Web 與 Mobile 同時應用,提升企業的開發與工作效率,協助企業內部開發團隊環境與技術一致化: 統一開發環境與技術、Programming Rule、運用協同工作平台 Azure DevOps,與 Cloud Solution 建置雲端相關應用、同時因為專案開發出身,我也協助企業建置 ERP/CRM/CMS 或企業內部 EIP 等相關系統。

我指導軟體開發的很多本身也是軟體公司、或者是自有團隊在維護內部系統的SI保險業或製造業等公司行號。

曾經連任七屆微軟最有價值專家 MVP,有個人的技術部落格 『Gelis 技術隨筆』,以記錄在技術上學習的新知與個人的研究發表。

 

講師經歷:

  • 2015集英信誠-與大師對談講師
  • .NET Conf Taiwan 2018 講師
  • Visual Studio Everywhere 台北場講師
  • 資策會 - IBM 授權教育訓練中心 - UML 課程講師
  • .NET Conf Taiwan 2018/2019/2020/2021/2022/2023 講師
  • HiSKIO 平台講師
  • Study4.TW 社群講師
  • 企業內訓講師

 

現職:

  • 集英信誠 資深 .NET 技術顧問

 

關於午餐:

本課程提供中午便當

餐食(葷/素)問卷:

https://forms.gle/EqMNbq6Umr6UsWP4A

 

講師的顧問相關經歷:
1. 軟體架構開發(導入)顧問需求:

  • 協助將商業邏輯服務化、彈性化: 以 SOA 服務導向架構的方式提供商業邏輯,讓各應用程式在開發時容易調用,並可提高商業邏輯的再利用率,統一開發環境與技術、Programming Rule/Coding Standard、導入Azure DevOps、佈署工具 Team Build 自動化 Unit Test 以提高程式碼品質外,並使用 Azure WebSites 實現 CI+CD
  • 並協助將原本 .NET 4.5.1 的 ASP.NET MVC or WebForm 專案升級到 .NET Core 6/7/8 的版本
  • 透過客制化系統框架的開發、或解決開發流程不順暢等相關專案協作等問題,藉由平常開發習慣的養成、像是 Coding Rule/Standard 與程式撰寫的 Patterns,加上 TDD 等開發方法培養開發人員良好的開發習慣
  • 使用 Azure DevOps作為專案開發協同資訊分享的平台,與原始程式碼管控 Version Control 的平台,導入Work Item,並協助落實Agile Board 的PBI與Check-In Policy

2. 保險業系統顧問 / Redis 導入系統顧問:Redis Cache 主機架構規劃、現有AppFabric轉向導入Redis、現有產品改寫支援Redis、軟體架構規劃、單元測試導入、日常開發 與 協助 Trouble-Shooting 處理

3. 新竹科學園區- .NET 6 系統升級顧問 + 長期系統顧問:現有 net451 平台升級 .NET 6、平台改寫、API Framework 升級、主機環境升級、DevOps Server 自動化佈署顧問、日常維運等

 

講師教受過課程:
..NET Core 跨平台 Web API 框架開開發

.ASP.NET 5 新功能與未來變革

.ASP.NET MVC 4 RC 新增功能介紹

.ASP.NET MVC 4 Web API 開發簡介

.ASP.NET MVC 4 Web API全攻略

.ASP.NET MVC 4 新增功能介紹

.ASP.NET MVC 5 快速上手(實戰篇)

.ASP.NET MVC 6 新功能初探

.ASP.NET MVC 基礎課程

.Code Review 的目的

.C# 4.0 LINQ 與泛型應用(簡介與開發)

.談架構設計與 LINQ (使用ASP.NET MVC)

..NET 技術研討(LINQ與架構開發)

..NET Framework 技術架構發展與 C# 6.0

..NET Standard 2.0 與 .NET 的未來

.HTML5 課程

.IIS 7.0 應用程式開發實務

.IIS 7.5 的管理_開發及佈署簡介

.Multi-Thread 多執行緒程式設計(Use C#)

.TFS Source Control 功能說明

.Troubleshooting 的藝術

.Visual Studio 2010_塑模化應用程式講座

.Visual Studio 2012 與 ASP.NET 4.5 (新功能與開發介紹)

.Visual Studio 2013 新功能介紹

.Visual Studio 2015 跨平台應用程式開發

.Visual Studio 2015 開發工具入門應用與功能使用教學

.CSS 前端網頁設計概論

.前端 JavaScript 與 jQuery 基礎應用課程

.WCF 進階課程

.Vue.js 前端開發基礎入門

.使用 Release Management 2013 進行自動化部署

.前端大型系統的基石 TypeScript

.C# 物件導向 - 分層架構課程

.團隊開發永遠的痛 - 談導入團隊開發的共同規範

.團隊開發系列-設計符合團隊的範本精靈 (Project Template)

.如何使用 Visual Studio 2015 發揮最大生產力

.如何培養架構性思考(談軟體架構師必經之路)

.如何將現有 ASP.NET Web Form 網站轉為 ASP.NET MVC

.如何透過 UWA 存取 ASP.NET Web API

.客製化的 Web API 的框架設計

.從 Web Form 到 MVC

.架構設計好簡單系列 - 設計符合團隊的範本精靈 (Project Template)

.活用 Application Insights

.淺談 ADO.NET

.現代化網站架構

.軟體開發之路甘苦談

﹒響應式網頁設計概念與MVC架構簡介

 

我的連絡方式:

Skype/EMail:
wergelis@msn.com

 

關於我:

部落格 (Gelis 技術隨筆)

http://gelis-dotnet.blogspot.tw

https://www.dotblogs.com.tw/gelis/

FB 社團 (軟體開發之路)

https://www.facebook.com/groups/361804473860062/

FB 粉絲團 (Gelis 的程式設計訓練營)

https://www.facebook.com/gelis.dev.learning/

我講授過的課程 SlideShare

https://www.slideshare.net/GelisWu

Github

https://github.com/wugelis

 

注意事項

  1. 現場備有 WiFi ,但人數一多,速度可能沒辦法保證比你自己的 4G 來的快。
  2. 如遇不可抗力或意外狀況,活動主辦單位得以保留改期、調整內容、或是取消活動與將全額退費之權利。
  3. 這是一個收費的課程,因為這完全是一個實務經驗的分享課程,您覺得內容您有需要就可來報名參加,講師必定讓您滿載而歸,並應用在您實際的工作環境之中。

 

購票與退票相關事宜

  1. 本活動由 KKTIX 代為處裡售票與退票相關事宜。
  2. 退票郵購票者提出,KKTIX 會酌收 10% 手續費,且活動前十天內(不含活動日)不予退票。
  3. 詳情請參閱 KKTIX 服務條款

 

主辦與協辦單位

萊客共享聯盟 - Like sharing space / 100008台北市中正區許昌街42號8樓 - 802教室

Event Tickets

Ticket Type Sale Period Price
早鳥票

2024/10/14 00:00(+0800) ~ 2024/10/18 23:50(+0800) End of Sale
  • TWD$2,900
一般票

2024/10/14 00:00(+0800) ~ 2024/11/07 00:00(+0800) End of Sale
  • TWD$3,300
老友票

2024/10/22 08:50(+0800) ~ 2024/10/22 12:00(+0800) End of Sale
  • TWD$2,900
Next Step