2016-02-25 12 views
18

Tôi biết rằng XAML được sử dụng để thiết kế giao diện người dùng kết hợp với Blend. Tôi đang bối rối với rất nhiều điều khoản, như thế nào, XAML có hiệu lực như thế nào đối với WPF, Store App, Phone App hay UWA. Hơn nữa, sự khác biệt giữa WPF, Store App, Phone App và UWA là gì. Có phải tất cả điều đó có nghĩa là Dự án Máy tính để bàn cũ sẽ không còn được sử dụng và thay thế bằng WPF hoặc Ứng dụng Cửa hàng hoặc UWA không?XAML vs WPF so với ứng dụng cửa hàng so với ứng dụng điện thoại so với UWA

+4

Lịch sử diễn ra như thế này. WPF lần đầu tiên sử dụng XAML. Sau đó, cùng đến WINRT đã gửi MSFT vào không gian và quay ra những gì họ gọi là XAML cho Store Apps. Chỉ cần google WPF DEAD? APPS điện thoại có thể sử dụng XAML quá nhưng nó là loại nền tảng riêng của nó giống như Silverlight.Để khép lại những khoảng trống này, UWA đến và quan tâm hơn nữa vì MSFT đã sắp xếp mọi thứ với Windows 8, và cố gắng đưa tất cả lại với nhau và họ không thể làm được điều đó. BTW bạn không cần Blend. –

+1

Bạn có thể thấy bài viết Wiki hữu ích của tôi: [UWP vs. WPF] (https://github.com/jbe2277/waf/wiki/UWP-vs.-WPF) – jbe

Trả lời

44

Khi .NET được phát hành vào ~ 2000, bạn có thể sử dụng WinForms để tạo các ứng dụng dành cho máy tính để bàn cho Windows. Nó cung cấp quyền truy cập vào các điều khiển 'bản địa' (tức là Nút được tạo trong WinForms thực sự là một điều khiển Nút Windows từ user32.dll) bằng cách gói API Windows trong mã được quản lý. Chúng có thể chạy trong bất kỳ phiên bản Windows nào đã cài đặt phiên bản .NET framework thích hợp, bao gồm tối đa Windows 10.

Năm 2006, WPF được phát hành thay thế cho WinForms. WPF sử dụng XAML, một ngôn ngữ dựa trên XML, để khai báo các phần tử giao diện người dùng. Trong một ứng dụng WPF đơn giản, tệp .xaml mô tả GUI và tệp mã-đằng sau mô tả logic. DirectX được sử dụng để vẽ bất cứ điều gì được mô tả trong .xaml vào cửa sổ.

Giống như Winforms, chương trình được tạo bằng WPF có thể chạy trong bất kỳ phiên bản Windows nào đã cài đặt phiên bản .NET thích hợp, bao gồm tối đa Windows 10. Lưu ý rằng việc sử dụng XAML là hoàn toàn tùy chọn. Bất kể phần tử giao diện người dùng nào bạn mô tả bằng XAML cũng có thể được thực hiện bằng ngôn ngữ .NET của bạn C# hoặc VisualBasic.NET. Nhưng việc sử dụng XAML thường đơn giản hơn. Xem To XAML or not to XAML (MSDN Blogs).

Từ XAML (Wikipedia):

Như XAML chỉ đơn giản là dựa trên XML, các nhà phát triển và nhà thiết kế có thể chia sẻ và chỉnh sửa nội dung tự do với nhau mà không cần biên dịch.

Từ ~ 2012 cùng với Windows 8, một loại ứng dụng mới có tên là metro/modern/windows-8/windows-store-apps có thể được thực hiện. Các ứng dụng này tương tự như WPF ở chỗ chúng sử dụng XAML để mô tả GUI. Các ứng dụng này chỉ có thể chạy trong Windows 8, 8.1 và Windows 10. Windows 8.1 đã bổ sung một số cải tiến và tính năng nhưng hầu như vẫn giữ nguyên. Công nghệ tương tự đã được sử dụng để tạo ứng dụng cho Windows Phone.

Với việc phát hành Windows 10, Microsoft đã tạo UWP (Nền tảng Windows phổ quát) thông qua đó bạn có thể sử dụng cùng một cơ sở mã để nhắm mục tiêu các loại thiết bị khác nhau (máy tính để bàn/di động/xbox/IoT/holographic). Các ứng dụng này được tạo cho UWP tương tự như các ứng dụng Windows 8/8.1 trước đó. Giống như trước, XAML được sử dụng để mô tả GUI.

Chỉ dành cho các ứng dụng Windows Store, không có khả năng tương thích lạc hậu. Dòng thời gian đi theo số Windows 8 ->Windows 8.1 -> . Một ứng dụng được thực hiện trong UWP có thể chỉ chạy trong Windows 10 và một ứng dụng được thực hiện trong Windows 8.1 không thể chạy trong Windows 8.

+1

Cảm ơn bạn đã trả lời. Vì vậy, nó có nghĩa là, nếu tôi muốn chạy ứng dụng của tôi trong các thiết bị khác nhau (PC/Tablet/Điện thoại) cho Windows 8.1, tôi phải đi với Universal dự án mẫu của Windows 8.1. Và đối với Windows 10, tôi phải đi với mẫu dự án UWP, phải không? –

+2

Đúng vậy. Lưu ý Windows 8.1 không phải là 'phổ quát' như UWP, vì nó chỉ có thể chia sẻ tài nguyên giữa máy tính để bàn Windows 8.1 và Windows 8.1 Phone. Trong UWP, cùng một cơ sở mã được sử dụng cho tất cả các hệ số dạng. –

+2

sửa tôi nếu tôi sai, nhưng tôi nghĩ XAML không giống với winRT như trong WPF. – mFeinstein

0

Tôi rất muốn giới thiệu chuỗi thảo luận này trong chế độ chờ, nó có nhiều chi tiết hơn và explanation of the concepts behind WPF, UWP And WinRT .

Đối với WinForms, tôi tin rằng đó là lịch sử ngay bây giờ. Đã gần như được thay thế bởi WPF. Tôi tin rằng Microsoft đã ngừng phát triển Windows Forms và có thể đã ngừng duy trì nó là tốt.

+0

Winforms chắc chắn không phải là "lịch sử". Nó có sự hỗ trợ chủ đạo từ nhiều nhà cung cấp bên thứ ba (DevExpress, Syncfusion, Telerik, Infragistics, ComponentOne, Dart, vv) và các diễn đàn vẫn phát triển mạnh. Và, không có hành vi phạm tội, nhưng các câu trả lời không có thẩm quyền "Tôi tin rằng" loại thực tế có ít liên quan đến những người đang tìm kiếm câu trả lời. – Jazimov

Các vấn đề liên quan