2016-02-25 92 views
18

我知道XAML用於設計與Blend結合的UI。我對如此多的術語感到困惑,比如XAML如何爲WPF,Store App,Phone App或UWA發揮作用。另外,WPF,Store App,Phone App和UWA有什麼區別。這是否意味着舊的桌面項目將不再使用並由WPF或Store App或UWA取代?XAML vs WPF vs Store應用程序vs電話應用程序vs UWA

+4

歷史就是這樣。 WPF首先使用XAML。然後,隨着WINRT將MSFT發送到太空,並將他們稱爲僅適用於Store App的XAML。只是谷歌WPF死亡?手機應用程序也可以使用XAML,但它是Silverlight自己的平臺。爲了縮小這些差距,UWA出現了,而且誰也不在乎,因爲MSFT在Windows 8中整合了所有東西,並且試圖將它們全部重新整合在一起,並且他們沒有做到這一點。順便說一句,你根本不需要Blend。 –

+1

您可能會發現我的Wiki文章很有用:[UWP vs. WPF](https://github.com/jbe2277/waf/wiki/UWP-vs.-WPF) – jbe

回答

44

.NET在〜2000中發佈時,可以使用WinForms爲Windows創建桌面應用程序。它通過將Windows API封裝在託管代碼中提供對「本地」控件的訪問(即,在WinForms中製作的按鈕實際上是來自user32.dll的Windows按鈕控件)。這些可以運行在任何版本的安裝了相應的.NET框架版本的Windows上,包括Windows 10以上。

2006年,WPF發佈了,它是WinForms的替代品。 WPF使用基於XML的語言XAML來聲明用戶界面元素。在一個簡單的WPF應用程序中,.xaml文件描述了GUI,代碼隱藏文件描述了邏輯。 DirectX用於將.xaml中描述的任何內容繪製到窗口中。

與WinForms一樣,使用WPF製作的程序可以在安裝了相應.NET框架版本(包括Windows 10)的任何Windows版本中運行。請注意,使用XAML是完全可選的。無論您使用XAML描述的用戶界面元素都可以使用.NET語言C#或VisualBasic.NET進行製作。但使用XAML通常更簡單。請參閱To XAML or not to XAML (MSDN Blogs)

XAML (Wikipedia)

由於XAML僅僅是基於XML,開發者和設計者都能夠在它們之間無需編譯自由共享和編輯內容。

從〜2012開始,隨着Windows 8的推出,可以製作一種名爲metro/modern/windows-8/windows-store-apps的新應用程序。這些應用程序與WPF類似,因爲它們使用XAML來描述GUI。這些應用程序只能在Windows 8,8.1和Windows 10上運行.Windows 8.1添加了一些改進和功能,但大部分保持不變。使用相同的技術爲Windows Phone製作應用程序。

隨着Windows 10的發佈,Microsoft制定了UWP(通用Windows平臺),您可以通過該平臺使用相同的代碼庫來定位不同種類的設備(桌面/移動/ xbox/IoT /全息圖)。這些爲UWP製作的應用程序與早期的Windows 8/8.1應用程序類似。像以前一樣,XAML用於描述GUI。

僅適用於Windows應用商店應用程序,沒有向後兼容性。時間線爲Windows 8 - >Windows 8.1 - > 。在UWP開發的應用可以運行在Windows 10和Windows 8.1開發的應用無法運行在Windows 8

+1

謝謝你的回答。所以這意味着,如果我想在Windows 8.1的各種設備(PC /平板電腦/手機)中運行我的應用程序,則必須使用Windows 8.1的通用項目模板。而對於Windows 10,我必須使用UWP項目模板,對吧? –

+2

是的,沒錯。注意Windows 8.1不像UWP那樣「通用」,因爲它只能在Windows 8.1桌面和Windows 8.1 Phone之間共享資源。在UWP中,所有形狀因子都使用相同的代碼庫。 –

+2

糾正我,如果我錯了,但我認爲XAML在winRT是不一樣的,因爲它是在WPF中。 – mFeinstein

0

我會強烈建議參照stopbyte這個話題,它已經遠遠更多的細節和explanation of the concepts behind WPF, UWP And WinRT

至於WinForms,我相信這是歷史。已經幾乎被WPF所取代。 我相信微軟已經停止開發Windows Forms,並且可能已經停止維護它了。

+0

Winforms絕對不是「歷史」。它有來自許多第三方供應商(DevExpress,Syncfusion,Telerik,Infragistics,ComponentOne,Dart等)的主流支持,以及仍然興旺的論壇。而且,沒有冒犯性,但具有非權威性的「我相信」類型說明的答案與尋找答案的人幾乎沒有關係。 – Jazimov