前言
1.基本概念
WPF(Windows Presentation Foundation)是微軟推出的基于Windows 的用戶界面框架,由 .NET Framework 3.0 開始引入,與WCF (Windows Communication Foundation)及 WF(Windows Workflow Foundation)并行為新一代 Windows作業系統以及 WinFX 的三個重大應用程式開發類別庫,
2.功能定位
三層架構

對于一般程式而言通常包含3層架構:資料層、業務邏輯層、表現層,這三層結構的功能大致如下:
資料層:
存盤資料,多由資料庫構成
業務邏輯層:
根據需求實作業務功能,通過一組Service向表現層公開功能,通過DAL(Data Access Layer)與資料層進行互動
表現層:
向用戶展示資料,通常被稱為客戶端程式
WPF的功能是用來撰寫應用程式的表現層
擴展:業務邏輯層——WCF、WF;資料訪問層——WCF DataService、WCF RIA Service
3.功能結構
MVVM模式

表示層程式一般包括以下四種功能性代碼
-
資料模型:現實世界中事物和邏輯的抽象,
-
業務邏輯:資料模型之間的關系與互動,
-
用戶界面:由控制元件構成的、與用戶進行互動的界面,用于把資料展示給用戶并回應用戶的輸入,
-
界面邏輯:控制元件與控制之間的關系與互動,
在WPF出現之前,Windows Forms、ASP.NET(Web Forms)等技術均使用“事件驅動”理念,界面邏輯和業務邏輯容易糾纏在一起,造成代碼結構復雜難懂、bug難以排除,而WPF技術則是“資料驅動”,
事件驅動:用戶每進行一個操作用會激發程式發生一個事件,事件發生后,用于回應事件的事件處理器就會執行,事件處理器是一個方法(函式),在這個方法中,程式員可以處理資料或呼叫別的方法,這樣,程式就在事件的驅動下向前執行了,事件驅動的資料是靜態的、被動的;界面控制元件是主動的、界面邏輯與業務邏輯之間的橋梁是事件,
資料驅動:當資料發生變化時,會主動通知界面控制元件、推動控制元件展示最新的資料;同時,用戶對控制元件的操作會直接送達資料,在資料驅動理念中,資料占據主動地位、控制元件和控制元件事件被榷訓(控制元件事件一般只參與界面邏輯,不再染指業務邏輯,使程式復雜度得到有效控制),資料與界面之間的橋梁是資料關聯(DataBinding),通過這個橋梁,資料可以流向界面,再從界面流回資料源,
在WPF中,把能夠展示資料、回應用戶操作的UI元素稱為控制元件(Control),控制元件所展示的資料稱為控制元件的“資料內容”;控制元件在回應用戶的操作后會執行自己的一些方法或以事件(Event)的形式通知應用程式(程式員可以決定如何處理這些事件),稱為控制元件的“行為”或“演算法內容”,
4.技術結構
WPF與Silverlight的技術對比:
| 技術專案 | 在WPF中 | 在Silverlight中 |
|---|---|---|
| XAML語言 | 完整 | 完整 |
| 控制元件 | 完整 | 完整 |
| 布局 | 完整 | 完整 |
| Binding | 完整 | 基本完整 |
| 依賴屬性 | 完整 | 基本完整 |
| 路由事件 | 完整 | 簡化 |
| 命令 | 完整 | 無 |
| 資源 | 完整 | 完整 |
| 控制元件模板 | 完整 | 基本完整 |
| 資料模板 | 完整 | 基本完整 |
| 繪圖 | 完整 | 完整 |
| 2D/3D影片 | 完整 | 簡化 |
類比于Web前端,XAML可以看做HTML+CSS,用作用戶界面的撰寫,業務邏輯的具體實作是通過C#撰寫,類比于JavaScript,另外,WPF中的技術點與Vue是極其相似的,可以對比學習,
個人小結
WPF是一個用來撰寫表現層的工具,使用資料驅動的理念,采用MVVM模式,UI界面與業務邏輯分離,
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/490891.html
標籤:.NET技术
上一篇:C#中的CSV檔案讀寫
