大約是 2006 年,那時的我從使用 C++ 寫遊戲程式轉換到使用 .net 寫視窗與網頁程式。
當時的工作是我從資策會學完 .net 之後的下一份工作。工作的內容是和公司的前輩一起製作一個電視購物的 ERP (Enterprise Resource Planning) 系統,主要的子系統如下,
- 提供給電話客服人員使用的訂單系統。
- 提供給物流人員使用的進銷存系統。
當時希望採用微軟在 2004 年提出的 Smart Client 架構,這個架構簡單的來說就是要取 Window Form 程式與 ASP.NET 網頁程式的優點並且捨棄它們的缺點。
傳統的 Window Form 程式,定位為 Rich Client (又叫 Fat Client, Thick Client),
相較於當時的網頁程式,Window Form 能夠使用更豐富的 UI 元件提供給使用者互動,但是缺點就是不易更新使用者手上的程式,每次的程式更新都得打包安裝檔並且讓每個使用者下載與安裝,不像網頁程式用瀏覽器只要重新打開原本的連結,網頁內容隨時都是最新版本。這個問題在使用者越多時會越令人頭痛。
網頁程式,定位為 Thin Client,
不像現在 2018 年,當時的網頁程式連 ajax 都還沒流行,網頁程式能提供給使用者的 UI 都很陽春,和視窗程式有很大的落差。不過其優點就像上一條提到的,發佈更新很方便,只要重新打開原本的連結,網頁內容隨時都是最新版本。
而 Smart Client 就是要取上述兩種的優點,要有 Window Form 程式的豐富 UI ,而且發佈更新像網頁程式一樣方便。
以下簡介當時製作的 Smart Client 系統架構,