我知道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
回答
.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僅僅是基於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
謝謝你的回答。所以這意味着,如果我想在Windows 8.1的各種設備(PC /平板電腦/手機)中運行我的應用程序,則必須使用Windows 8.1的通用項目模板。而對於Windows 10,我必須使用UWP項目模板,對吧? –
是的,沒錯。注意Windows 8.1不像UWP那樣「通用」,因爲它只能在Windows 8.1桌面和Windows 8.1 Phone之間共享資源。在UWP中,所有形狀因子都使用相同的代碼庫。 –
糾正我,如果我錯了,但我認爲XAML在winRT是不一樣的,因爲它是在WPF中。 – mFeinstein
我會強烈建議參照stopbyte這個話題,它已經遠遠更多的細節和explanation of the concepts behind WPF, UWP And WinRT 。
至於WinForms,我相信這是歷史。已經幾乎被WPF所取代。 我相信微軟已經停止開發Windows Forms,並且可能已經停止維護它了。
Winforms絕對不是「歷史」。它有來自許多第三方供應商(DevExpress,Syncfusion,Telerik,Infragistics,ComponentOne,Dart等)的主流支持,以及仍然興旺的論壇。而且,沒有冒犯性,但具有非權威性的「我相信」類型說明的答案與尋找答案的人幾乎沒有關係。 – Jazimov
- 1. 應用程序池vs應用程序域vs工作進程
- 2. MVVM VS WPF瀏覽器應用程序?
- 3. WPF/Clickonce vs Web應用程序日期
- 4. WPF - XBap vs獨立Windows應用程序
- 5. 應用程序vs會話vs高速緩存
- 6. 在後端應用程序中獲取vs發佈vs會話
- 7. Metro風格應用程序VS桌面模式應用程式VS的Silverlight
- 8. Windows應用程序VS Web應用程序開發
- 9. UCMA VS UCWA - 用戶VS應用程序終結點
- 10. 用戶控制網頁VS VS窗口在WPF瀏覽器應用程序
- 11. mssql遠程應用程序VS基於web的應用程序
- 12. 地理空間應用程序:mySql vs CouchDB vs其他
- 13. Web應用程序框架VS CMS VS自定義網站
- 14. 打包應用程序vs Adobe Air vs其他
- 15. 應用程序設置範圍 - 用戶vs應用程序
- 16. Web應用程序在AppServices VS CloudService
- 17. 實時應用程序:Socket.io vs Pusherapp
- 18. SQLite vs Couchbase Lite for Xamarin應用程序
- 19. Navigator VS NavigatorIOS React Native應用程序
- 20. 滾動的應用程序:UIPageViewController vs UIScrollView
- 21. Boson vs Thor控制檯應用程序
- 22. Eclipse Indigo vs Helios - 啓動應用程序
- 23. Enterprise VS Custom B2B應用程序
- 24. Silverlight vs webbrowser應用程序(.xbab)?
- 25. 聊天應用程序:pubsubhubbub vs xmpp
- 26. SVG/Canvas vs Flash for FloorPlanner應用程序
- 27. Hybrid vs Native Mobile應用程序
- 28. Android應用程序:Web vs Native
- 29. android聊天應用程序 - ListView vs ScrollView
- 30. C++遊戲應用程序UDP vs TCP
歷史就是這樣。 WPF首先使用XAML。然後,隨着WINRT將MSFT發送到太空,並將他們稱爲僅適用於Store App的XAML。只是谷歌WPF死亡?手機應用程序也可以使用XAML,但它是Silverlight自己的平臺。爲了縮小這些差距,UWA出現了,而且誰也不在乎,因爲MSFT在Windows 8中整合了所有東西,並且試圖將它們全部重新整合在一起,並且他們沒有做到這一點。順便說一句,你根本不需要Blend。 –
您可能會發現我的Wiki文章很有用:[UWP vs. WPF](https://github.com/jbe2277/waf/wiki/UWP-vs.-WPF) – jbe