2012年10月24日 星期三

WPF概觀:什麼是WPF



WPF Windows Presentation Foundation 的簡稱,中文直譯就是視窗表示介面基礎....翻得很爛,換個方式講就是視窗程式中編寫程式表達層(一般指UI)的技術與工具,他是微軟.NET 3.0表發表的幾個應用程式框架當中之一,以下節錄MSDN的描述:
----------------------------------------
WPF 是以 .NET Framework 型別子集的形式存在,這些型別多半位於 System.Windows 命名空間中。如果您以前曾使用 ASP.NET Windows Forms Managed 技術,以 .NET Framework 開發應用程式,那麼您應該熟悉基本 WPF 程式設計的過程,包括具現化類別、設定屬性、呼叫方法以及處理事件,全都使用您偏好的 .NET Framework 程式語言,如 C# Visual Basic
----------------------------------------
    看不懂?我們先別以程式語言的角度來看。
從發展史角度來看,以微軟對圖形化使用者介面(GUI)開發工具的支援發展史觀察「Win32API MFC ActiveX/COM/VB Windows Forms(.NET Framework)」一直到現在.NET 4.5都還持續擴充的Windows Presentation Foundation (WPF) ,可見WPF應該是未來微軟主推支援GUI的重要開發工具之一。

    從支援架構角度來看,簡單利用多層式架構來講解一下WPF的應用範圍;在多層式架構資料應用程式中至少包括三層:
1.          展示層(Presentation Tier):是使用者與應用程式進行互動的那一層,其中通常也包含其他應用程式邏輯,例如一醫療系統中,病人如何開始進行看病的流程;看病過程中各種資料呈現的方式(藥師的藥單、病人的收據)。常見的展示層通常包含:
n          資料繫結元件,例如 BindingSource BindingNavigator
n          資料的物件表示,例如在展示層中使用的 LINQ to SQL 實體類別。
n          本機資料庫,通常是作為資料庫快取的功能。
2.          中介層(Middle Tier) 是展示層和資料層用來彼此通訊的那一層 (Layer),例如醫生可以看哪些病人,掛號到取藥有什麼程序、住院到出院有什麼流程等。 典型的中介層元件包含下列各項:
n          商務邏輯,例如商務規則 (Business Rule) 和資料驗證。
n          資料存取元件和邏輯,例如ADO.NET、驗證、授權和個人化等。
3.          資料層(Data Tier) 基本上是儲存應用程式資料的伺服器 (SQL Server 的伺服器),例如醫院的藥品列表、人員列表、病例列表等。

其中,WPF的功能就是用來編寫應用程式的展示層,而中間層與資料層的開發上,微軟也有提出新的技術WCF(Windows Communiation Foundation)WF(Windows Workflow Foundation);當然,若程式的只是一個視窗的獨立程式,也一樣適合用WPF來架構(即展示層程式可視為Cient端程式,Cient端程式可視為獨立應用程式)。
從上面看起來好像WPF只是一個比較新版本的GUI編輯工具而已,跟以前的MFCVCL(Borland)等有何不同呢?當然有不同,而且是整個程式設計模式概念上的不同,不過可能要從WPF架構上開始講起才能講得比較明確,但這又是一段很長的故事了(其實是小弟所學未精的關係),簡單來講,WPF對於使用者介面的描述採用可延伸應用程式標記語言 (XAML)  (XML的一種)來進行實作,而相關需求功能行為則隱藏在背景的程式語言(如C#)實作 - MSDN稱為Managed 程式語言)。

沒有留言:

張貼留言