SlideShare a Scribd company logo
1 of 33
Download to read offline
動手打造 Application Framework
kevin@kuicker.org
Framework 集成
2
http://mvc.tw
 每個人心裡想的都不一樣。
 或許沒有一個真正的範圍!
What is the Application Framework?
3
我以為
你以為 他以為
http://mvc.tw
What I would like to say is..
4
 有誰了解全部內容?
 講我覺得重要的
 講白話一點
 70 內分鐘講得清楚的
 個人的想法,與大家分享
全部的內容
講述的內容
http://mvc.tw
Why do we need Application Framework?
5
 複雜的企業邏輯,不會因
此變得簡單。
 Application Framework 帶
來的是清晰,不是簡化。
簡化
清晰
http://mvc.tw
Library Framework
類別庫 集成
You call Library. Framework calls you.
Your project’s Tools. Your project’s Life.
一組包含在類別裡能被程式呼叫的方法,
每次的呼叫將完成特定工作並回傳控制。
包含抽象設計與內建行為,程式需要透
過子類別或是插入程式的方式,在執行
期特定的時點呼叫你的程式。
Library vs. Framework
6
放下既有的技術定義,先用簡單的方法了解。
Lifecycle 系統生命周期
7
http://mvc.tw
Lifecycle : Running
8
 執行中
專案程式執行在 Application Framework 建立的服務之上
http://mvc.tw
Lifecycle : Action
9
 狀態
Running
 動作
啟動 Start
停止 Stop
http://mvc.tw
Lifecycle : Circle
10
生命周期形成封閉的迴圈
http://mvc.tw
Lifecycle : Full Circle
11
完整的生命周期
http://mvc.tw
Lifecycle : State
 穩定狀態
Permanent State
 已停止 Stopped
 執行中 Running
 已暫停 Suspended
 過渡狀態
Transition State
 啟動中 Starting
 停止中 Stopping
 恢復中 Resuming
 暫停中 Suspending
12
生命周期就是,系統一連串狀態的改變與處理
http://mvc.tw
Lifecycle : Sequence
13
由封閉的迴圈,改從循序的角度了解系統狀態的變化
http://mvc.tw
Lifecycle : Start
14
 內建 Builtin
 外掛 Plugin
http://mvc.tw
Lifecycle : Stop
15
反序停止 Plugin, Builtin
Builtin & Plugin
16
http://mvc.tw
 已知的被動服務
 Framework 提供每一個內建服務介面,定義服務內容
 專案程式主動使用內建功能
 常以靜態類別與方法提供,例如:Auditor.Success(..)
 實作組件是否載入,不影響專案運作
Builtin 內建
17
http://mvc.tw
 未知的主動服務
 Framework 提供外掛統一介面,定義管控方式
 專案程式被動享受外掛服務
 另開執行緒,或執行於獨有的 AppDomain 裡
 實作組件是否載入,不影響專案運作
Plugin 外掛
18
http://mvc.tw
Builtin Plugin
已知的 未知的
被動的 主動的
介面定義服務內容 介面定義管控方式
不同介面 共同介面
以靜態類別與方法提供 執行緒或獨有的 AppDomain
例如:Audit 稽核 例如:AD 帳號同步程式
Builtin vs. Plugin
19
Kuicker
20
http://mvc.tw
Kuicker : Execution Order
 Hosting & Kernel
 讀取定義檔 Configurable
 收集組件 Assembly
 解析類別 Reflection
 附加生命周期處理 Event
 載入內建服務 Log, Audit
 載入外掛服務 Pluginable
21
http://mvc.tw
Kuicker : Hosting & Kernel
22
http://mvc.tw
 1. ConfigurationSectionHandler (deprecated)
System.Configuration.IConfigurationSectionHandler
 2. ConfigurationSection
System.Configuration.ConfigurationSection
Kuicker : Configurable
23
http://mvc.tw
 AppDomain Assemblies
 APP_CODE Assemblies
 Folder
 bin >> AppDomain Assemblies
 {special folder} >>
Kuicker : Assembly
24
http://mvc.tw
 如果外掛組件放在 bin 裡,調整 bin 的組件將會觸發系
統重啟,這是否就失去外掛的意義?
 如果外掛組件放在特定目錄裡,讀取特定目錄裡的組件會有
額外授權需求,這不利於一般化的部署。
 我們真的需要具有熱插拔的系統嗎?
Kuicker : 熱插拔的系統
25
http://mvc.tw
 制定 Builtin 服務內容與 Plugin 管控方式並定義介面
 Kernel 主動收集組件裡的實作特定介面的類別
 內建外掛執行順序採 FIFO,生命周期附加程序以核心優先
 外掛錯誤處理,以不影響主程式為原則
 類別提供 Self-Description 自我描述
Kuicker : Reflection
26
http://mvc.tw
Kuicker : Event
 核心事件
 BuiltinStart, PluginStart
 PluginStop, BuiltinStop
 非核心事件
 BeforeStart, AfterStop
 BeforeBuiltinStart,
AfterBuiltinStart
 BeforePluginStart,
AfterPluginStart
 BeforeStop, AfterStop
 實作方式
 Event Handler
 Type or Instance
Level?
 Attach / Detach or
Implemented Interface?
27
http://mvc.tw
Kuicker : Log
 Apache logging services
log4j
log4net
log4php
log4cxx
Chainsaw
 log4j Family
log4plsql
log4js
log4c
log4javascript
log4perl
28
Log 機制的發展,逐漸向 log4j 收斂 (個人認為)
http://mvc.tw
 Send Message, Error Control, Application Domain
 Proxy, Gateway, Queue, Remoting, Socket
 Priority, Sleep
 Interrupt, Dependency
 Out-of-Process / In-Process
 Worker / Job, Load / Unload
 Synchronous / Asynchronous
Kuicker : Pluginable
29
30
Kuick >> Kuicker
http://mvc.tw
好活動需要支持
感謝 KKTIX 贊助 twMVC 活動報名平台
31
http://mvc.tw
好課程需要支持
32
http://skilltree.my
謝謝各位
• 本投影片所包含的商標與文字皆屬原著作者所有。
• 本投影片使用的圖片皆從網路搜尋。
• 本著作係採用姓名標示-非商業性-相同方式分享 3.0 台灣授權。閱讀本授權條款,請到
http://creativecommons.org/licenses/by-nc-sa/3.0/tw/,或寫信至Creative Commons, 444 Castro
Street, Suite 900, Mountain View, California, 94041, USA.
h t t p : / / m v c . t w

More Related Content

What's hot

方凳良品2期
方凳良品2期方凳良品2期
方凳良品2期fangdeng
 
與大師對談: 轉移到微服務架構必經之路 ~ 系統與資料庫重構
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
與大師對談: 轉移到微服務架構必經之路 ~ 系統與資料庫重構Andrew Wu
 
容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中Andrew Wu
 
Mysql proxy cluster
Mysql proxy clusterMysql proxy cluster
Mysql proxy clusterYiwei Ma
 
十二項架構設計原則
十二項架構設計原則十二項架構設計原則
十二項架構設計原則Philip Zheng
 
大型 Web Application 轉移到 微服務的經驗分享
大型 Web Application 轉移到微服務的經驗分享大型 Web Application 轉移到微服務的經驗分享
大型 Web Application 轉移到 微服務的經驗分享Andrew Wu
 

What's hot (6)

方凳良品2期
方凳良品2期方凳良品2期
方凳良品2期
 
與大師對談: 轉移到微服務架構必經之路 ~ 系統與資料庫重構
與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構與大師對談: 轉移到微服務架構必經之路~ 系統與資料庫重構
與大師對談: 轉移到微服務架構必經之路 ~ 系統與資料庫重構
 
容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中容器驅動開發 - .NET Conf 2017 @ 台中
容器驅動開發 - .NET Conf 2017 @ 台中
 
Mysql proxy cluster
Mysql proxy clusterMysql proxy cluster
Mysql proxy cluster
 
十二項架構設計原則
十二項架構設計原則十二項架構設計原則
十二項架構設計原則
 
大型 Web Application 轉移到 微服務的經驗分享
大型 Web Application 轉移到微服務的經驗分享大型 Web Application 轉移到微服務的經驗分享
大型 Web Application 轉移到 微服務的經驗分享
 

Similar to twMVC#15 | 打造一個 Application Framework

Wxpython In Action
Wxpython In ActionWxpython In Action
Wxpython In Action智锋 范
 
twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC
 
Asp.net mvc網站的從無到有
Asp.net mvc網站的從無到有Asp.net mvc網站的從無到有
Asp.net mvc網站的從無到有Wade Huang
 
Flex 4.5 action custom component development
Flex 4.5 action custom component developmentFlex 4.5 action custom component development
Flex 4.5 action custom component developmentjexchan
 
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理frankwsj
 
twMVC#06 | Wiindows市集應用程式 開發心得分享
twMVC#06 | Wiindows市集應用程式 開發心得分享twMVC#06 | Wiindows市集應用程式 開發心得分享
twMVC#06 | Wiindows市集應用程式 開發心得分享twMVC
 
Windows 市集應用程式 開發心得分享 -twMVC#6
Windows 市集應用程式 開發心得分享 -twMVC#6Windows 市集應用程式 開發心得分享 -twMVC#6
Windows 市集應用程式 開發心得分享 -twMVC#6twMVC
 
twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC#01 | ASP.NET MVC 的第一次親密接觸twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC#01 | ASP.NET MVC 的第一次親密接觸twMVC
 
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4twMVC
 
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)twMVC
 
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Jeff Chu
 
專案分層架構 twMVC#18
專案分層架構 twMVC#18專案分層架構 twMVC#18
專案分層架構 twMVC#18twMVC
 
twMVC#18 | 專案分層架構
twMVC#18 | 專案分層架構twMVC#18 | 專案分層架構
twMVC#18 | 專案分層架構twMVC
 
Clipper@datacon.2019.tw
Clipper@datacon.2019.twClipper@datacon.2019.tw
Clipper@datacon.2019.twWei-Yu Chen
 
深入浅出 V cloud director
深入浅出 V cloud director深入浅出 V cloud director
深入浅出 V cloud directorITband
 
twMVC#23 | 快速上手 Azure Functions
twMVC#23 | 快速上手 Azure FunctionstwMVC#23 | 快速上手 Azure Functions
twMVC#23 | 快速上手 Azure FunctionstwMVC
 
twMVC#31沒有 hdd 的網站重構 webform to mvc
twMVC#31沒有 hdd 的網站重構 webform to mvctwMVC#31沒有 hdd 的網站重構 webform to mvc
twMVC#31沒有 hdd 的網站重構 webform to mvctwMVC
 
Azure Functions
Azure FunctionsAzure Functions
Azure FunctionsDino Wang
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabricJohn Chang
 

Similar to twMVC#15 | 打造一個 Application Framework (20)

Wxpython In Action
Wxpython In ActionWxpython In Action
Wxpython In Action
 
twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢twMVC#31網站上線了然後呢
twMVC#31網站上線了然後呢
 
Asp.net mvc網站的從無到有
Asp.net mvc網站的從無到有Asp.net mvc網站的從無到有
Asp.net mvc網站的從無到有
 
Flex 4.5 action custom component development
Flex 4.5 action custom component developmentFlex 4.5 action custom component development
Flex 4.5 action custom component development
 
自动化运维管理
自动化运维管理自动化运维管理
自动化运维管理
 
twMVC#06 | Wiindows市集應用程式 開發心得分享
twMVC#06 | Wiindows市集應用程式 開發心得分享twMVC#06 | Wiindows市集應用程式 開發心得分享
twMVC#06 | Wiindows市集應用程式 開發心得分享
 
Windows 市集應用程式 開發心得分享 -twMVC#6
Windows 市集應用程式 開發心得分享 -twMVC#6Windows 市集應用程式 開發心得分享 -twMVC#6
Windows 市集應用程式 開發心得分享 -twMVC#6
 
twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC#01 | ASP.NET MVC 的第一次親密接觸twMVC#01 | ASP.NET MVC 的第一次親密接觸
twMVC#01 | ASP.NET MVC 的第一次親密接觸
 
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
ASP.NET MVC 4 新功能介紹(快速上手) -twMVC#4
 
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
twMVC#04 | ASP.NET MVC 4 新功能介紹(快速上手)
 
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
Windows 與 Azure 的容器旅程 @ Ignite Mini 2016
 
專案分層架構 twMVC#18
專案分層架構 twMVC#18專案分層架構 twMVC#18
專案分層架構 twMVC#18
 
twMVC#18 | 專案分層架構
twMVC#18 | 專案分層架構twMVC#18 | 專案分層架構
twMVC#18 | 專案分層架構
 
Clipper@datacon.2019.tw
Clipper@datacon.2019.twClipper@datacon.2019.tw
Clipper@datacon.2019.tw
 
深入浅出 V cloud director
深入浅出 V cloud director深入浅出 V cloud director
深入浅出 V cloud director
 
twMVC#23 | 快速上手 Azure Functions
twMVC#23 | 快速上手 Azure FunctionstwMVC#23 | 快速上手 Azure Functions
twMVC#23 | 快速上手 Azure Functions
 
twMVC#31沒有 hdd 的網站重構 webform to mvc
twMVC#31沒有 hdd 的網站重構 webform to mvctwMVC#31沒有 hdd 的網站重構 webform to mvc
twMVC#31沒有 hdd 的網站重構 webform to mvc
 
Azure Functions
Azure FunctionsAzure Functions
Azure Functions
 
Exodus2 大局观
Exodus2 大局观Exodus2 大局观
Exodus2 大局观
 
深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric深入研究雲端應用程式平台-AppFabric
深入研究雲端應用程式平台-AppFabric
 

More from twMVC

twMVC 47_Elastic APM 的兩三事
twMVC 47_Elastic APM 的兩三事twMVC 47_Elastic APM 的兩三事
twMVC 47_Elastic APM 的兩三事twMVC
 
twMVC#46_SQL Server 資料分析大躍進 Machine Learning Services
twMVC#46_SQL Server 資料分析大躍進 Machine Learning ServicestwMVC#46_SQL Server 資料分析大躍進 Machine Learning Services
twMVC#46_SQL Server 資料分析大躍進 Machine Learning ServicestwMVC
 
.NET 7 家族新成員: Microsoft Orleans v7
.NET 7 家族新成員:Microsoft Orleans v7.NET 7 家族新成員:Microsoft Orleans v7
.NET 7 家族新成員: Microsoft Orleans v7twMVC
 
twMVC#46 一探 C# 11 與 .NET 7 的神奇
twMVC#46 一探 C# 11 與 .NET 7 的神奇twMVC#46 一探 C# 11 與 .NET 7 的神奇
twMVC#46 一探 C# 11 與 .NET 7 的神奇twMVC
 
twMVC#44 如何測試與保護你的 web application with playwright
twMVC#44 如何測試與保護你的 web application with playwrighttwMVC#44 如何測試與保護你的 web application with playwright
twMVC#44 如何測試與保護你的 web application with playwrighttwMVC
 
twMVC#44 讓我們用 k6 來進行壓測吧
twMVC#44 讓我們用 k6 來進行壓測吧twMVC#44 讓我們用 k6 來進行壓測吧
twMVC#44 讓我們用 k6 來進行壓測吧twMVC
 
twMVC#43 Visual Studio 2022 新功能拆解
twMVC#43 Visual Studio 2022 新功能拆解twMVC#43 Visual Studio 2022 新功能拆解
twMVC#43 Visual Studio 2022 新功能拆解twMVC
 
twMVC#43 YARP
twMVC#43 YARPtwMVC#43 YARP
twMVC#43 YARPtwMVC
 
twMVC#43 C#10 新功能介紹
twMVC#43 C#10 新功能介紹twMVC#43 C#10 新功能介紹
twMVC#43 C#10 新功能介紹twMVC
 
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用twMVC
 
twMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC
 
twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1twMVC
 
twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧twMVC
 
twMVC#41 hololens2 MR
twMVC#41 hololens2 MRtwMVC#41 hololens2 MR
twMVC#41 hololens2 MRtwMVC
 
twMVC#41 The journey of source generator
twMVC#41 The journey of source generatortwMVC#41 The journey of source generator
twMVC#41 The journey of source generatortwMVC
 
twMVC#38 How we migrate tfs to git(using azure dev ops)
twMVC#38 How we migrate tfs to git(using azure dev ops) twMVC#38 How we migrate tfs to git(using azure dev ops)
twMVC#38 How we migrate tfs to git(using azure dev ops) twMVC
 
twMVC#36C#的美麗與哀愁
twMVC#36C#的美麗與哀愁twMVC#36C#的美麗與哀愁
twMVC#36C#的美麗與哀愁twMVC
 
twMVC#36.NetCore 3快速看一波
twMVC#36.NetCore 3快速看一波twMVC#36.NetCore 3快速看一波
twMVC#36.NetCore 3快速看一波twMVC
 
twMVC#36讓 Exceptionless 存管你的 Log
twMVC#36讓 Exceptionless 存管你的 LogtwMVC#36讓 Exceptionless 存管你的 Log
twMVC#36讓 Exceptionless 存管你的 LogtwMVC
 
twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API
twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API
twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API twMVC
 

More from twMVC (20)

twMVC 47_Elastic APM 的兩三事
twMVC 47_Elastic APM 的兩三事twMVC 47_Elastic APM 的兩三事
twMVC 47_Elastic APM 的兩三事
 
twMVC#46_SQL Server 資料分析大躍進 Machine Learning Services
twMVC#46_SQL Server 資料分析大躍進 Machine Learning ServicestwMVC#46_SQL Server 資料分析大躍進 Machine Learning Services
twMVC#46_SQL Server 資料分析大躍進 Machine Learning Services
 
.NET 7 家族新成員: Microsoft Orleans v7
.NET 7 家族新成員:Microsoft Orleans v7.NET 7 家族新成員:Microsoft Orleans v7
.NET 7 家族新成員: Microsoft Orleans v7
 
twMVC#46 一探 C# 11 與 .NET 7 的神奇
twMVC#46 一探 C# 11 與 .NET 7 的神奇twMVC#46 一探 C# 11 與 .NET 7 的神奇
twMVC#46 一探 C# 11 與 .NET 7 的神奇
 
twMVC#44 如何測試與保護你的 web application with playwright
twMVC#44 如何測試與保護你的 web application with playwrighttwMVC#44 如何測試與保護你的 web application with playwright
twMVC#44 如何測試與保護你的 web application with playwright
 
twMVC#44 讓我們用 k6 來進行壓測吧
twMVC#44 讓我們用 k6 來進行壓測吧twMVC#44 讓我們用 k6 來進行壓測吧
twMVC#44 讓我們用 k6 來進行壓測吧
 
twMVC#43 Visual Studio 2022 新功能拆解
twMVC#43 Visual Studio 2022 新功能拆解twMVC#43 Visual Studio 2022 新功能拆解
twMVC#43 Visual Studio 2022 新功能拆解
 
twMVC#43 YARP
twMVC#43 YARPtwMVC#43 YARP
twMVC#43 YARP
 
twMVC#43 C#10 新功能介紹
twMVC#43 C#10 新功能介紹twMVC#43 C#10 新功能介紹
twMVC#43 C#10 新功能介紹
 
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
twMVC#42 Azure DevOps Service Pipeline設計與非正常應用
 
twMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart FactorytwMVC#42 Azure IoT Hub for Smart Factory
twMVC#42 Azure IoT Hub for Smart Factory
 
twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1twMVC#42 Windows容器導入由0到1
twMVC#42 Windows容器導入由0到1
 
twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧twMVC#42 讓我們用一種方式來開發吧
twMVC#42 讓我們用一種方式來開發吧
 
twMVC#41 hololens2 MR
twMVC#41 hololens2 MRtwMVC#41 hololens2 MR
twMVC#41 hololens2 MR
 
twMVC#41 The journey of source generator
twMVC#41 The journey of source generatortwMVC#41 The journey of source generator
twMVC#41 The journey of source generator
 
twMVC#38 How we migrate tfs to git(using azure dev ops)
twMVC#38 How we migrate tfs to git(using azure dev ops) twMVC#38 How we migrate tfs to git(using azure dev ops)
twMVC#38 How we migrate tfs to git(using azure dev ops)
 
twMVC#36C#的美麗與哀愁
twMVC#36C#的美麗與哀愁twMVC#36C#的美麗與哀愁
twMVC#36C#的美麗與哀愁
 
twMVC#36.NetCore 3快速看一波
twMVC#36.NetCore 3快速看一波twMVC#36.NetCore 3快速看一波
twMVC#36.NetCore 3快速看一波
 
twMVC#36讓 Exceptionless 存管你的 Log
twMVC#36讓 Exceptionless 存管你的 LogtwMVC#36讓 Exceptionless 存管你的 Log
twMVC#36讓 Exceptionless 存管你的 Log
 
twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API
twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API
twMVC#33聊聊如何自建 Facebook {廣告} 服務 with API
 

twMVC#15 | 打造一個 Application Framework