Ứng dụng Universal Windows Platform

Khan Academy, một ví dụ về một Universal Windows App
Tập tin:Wikipedia_App_snapped_to_Windows_8_desktop.png|nhỏ|Trái: Một ứng dụng desktop truyền thống chưa có nội dung gì; nó đang hiển thị 60 thành tố đồ họa, và một đường viền dày.
Phải: Ứng dụng kiểu Metro; có nội dung đầy đủ
Ứng dụng Universal Windows Platform (UWP) (trước đây là Ứng dụng Windows Store và Ứng dụng kiểu Metro) là phần mềm có thể được sử dụng trên khắp tất cả các thiết bị Microsoft Windows, bao gồm máy tính cá nhân (PC), máy tính bảng, điện thoại thông minh, Xbox One, Microsoft HoloLens, và Internet of Things. Các ứng dụng UWP chủ yếu được mua và tải về qua Windows Store

**Tên gọi**
Bắt đầu từ Windows 10, một ứng dụng UWP sẽ được gọi là một "ứng dụng Windows"; một ứng dụng UWP đáp ứng đầy đủ yêu cầu của Microsoft, được cài đặt từ Windows Store, là một "Ứng dụng Windows Store tin cậy"; và các chương trình ứng dụng khác chạy trên một máy tính để bàn là các "ứng dụng desktop".

**Trong Windows 8.x**
Các ứng dụng Windows lần đầu được xuất hiện với tên "Ứng dụng kiểu Metro" khi Windows Store được bắt đầu năm 2012 và được đi kèm với Windows 8.

**Giao diện**
Trong Windows 8.x, các ứng dụng Metro không chạy trong một cửa sổ. Thay vào đó, chúng có thể chiếm toàn bộ màn hình hoặc được gắn sang một bên, khiến chúng sẽ chiếm toàn bộ chiều cao màn hình nhưng bị giới hạn trong chiều rộng của nó. Chúng không có thanh tiêu đề, menu hệ thống, viền cửa sổ hay các nút điều khiển. Các giao diện lệnh như thanh trượt thường được ẩn đi lúc đầu. Các menu được hiện lên trong "thanh charm". Các ứng dụng Metro sử dụng các điều khiển giao diện người dùng của Windows 8.x và thường tuân theo các hướng dẫn giao diện của Windows 8.x, ví dụ như cuộn theo chiều ngang và bao gồm các thành phần giao diện kiểu cạnh, như thanh ứng dụng.
Để đáp lại các chỉ trích từ phía người dùng, trong Windows 8.1, một thanh tiêu đề được thêm vào nhưng sẽ bị ẩn đi trừ khi người dùng di chuyển chuột đến cạnh trên của màn hình. Nút menu kiểu "hamburger" trên thanh này sẽ dùng để truy cập vào các cài đặt charm.

**Phân phối và giấy phép**
Với hầu hết người dùng, con đường để tải về các ứng dụng kiểu Metro chỉ có duy nhất Windows Store. Các doanh nghiệp vận hành một hạ tầng tên miền Windows có thể liên hệ với Microsoft để cho phép họ cài đặt các dòng ứng dụng kiểu Metro cho công việc của họ, không cần dùng Windows Store. Hơn nữa, các hãng trình duyệt web lớn như Google và Mozilla Foundation còn được lựa chọn để được miễn khỏi quy định này; họ được phép bỏ qua các hướng dẫn của Microsoft và Windows Store để chạy một phiên bản kiểu Metro của chính họ nếu người dùng chọn làm các sản phẩm của họ thành trình duyệt mặc định.
Các ứng dụng kiểu Metro là các ứng dụng bên thứ ba duy nhất chạy trên Windows RT. Các ứng dụng bên thứ ba truyền thống không chạy trên hệ điều hành này.

**Nhiều bản sao**
Trước Windows 8, các chương trình máy tính được nhận dạng bằng các biểu tượng máy tính tĩnh của chúng. Thanh tác vụ Windows có nhiệm vụ biểu thị mỗi ứng dụng có cửa sổ khi chúng chạy. Các ứng dụng kiểu Metro lại được nhận dạng qua các "ô xếp" của chúng hiển thị biểu tượng và các nội dung động khác. Ngoài ra, trong Windows 8 và Windows 8.1 RTM, chúng không được hiển thị trên thanh tác vụ khi chạy, mà trên một trình chuyển ứng dụng ở cạnh trái màn hình. Windows 8.1 Update đã khôi phục các biểu tượng thanh tác vụ cho các ứng dụng kiểu Metro.
Không có giới hạn nào về số lượng các bản sao của các ứng dụng desktop có thể chạy cùng lúc. Ví dụ, một người dùng có thể chạy bao nhiêu bản sao chương trình cũng được ví dụ như Notepad, Paint hay Firefox khi tài nguyên hệ thống hỗ trợ. (Một số ứng dụng desktop, như Windows Media Player, được thiết kế để cho phép chỉ một quá trình, nhưng điều này không bị hệ điều hành bắt buộc.) Tuy nhiên, trong Windows 8, chỉ một bản sao của ứng dụng kiểu Metro có thể chạy tại một thời điểm; chạy ứng dụng sẽ khiến quá trình đang chạy quay lại từ đầu.

**Trong Windows 10**
Windows 10 mang lại một số thay đổi đáng kể về giao diện và cách làm việc của ứng dụng UWP.

**Giao diện**
Giao diện của các ứng dụng UWP sẽ tùy vào từng ứng dụng. Các ứng dụng UWP dành riêng cho Windows 10 thường có một giao diện khác, khi chúng dùng các phần điều khiển giao diện khác biệt so với các phiên bản Windows trước. Các ngoại lệ là các ứng dụng sử dụng giao diện tùy chỉnh, đặc biệt là các trò chơi. Các ứng dụng được thiết kế cho Windows 8.x sẽ có khác biệt rõ rệt so với ứng dụng cho Windows 10.
Các ứng dụng UWP cũng có thể giống gần như y hệt các ứng dụng desktop truyền thống, sử dụng các phần điều khiển giao diện giống như từ các phiên bản Windows từ Windows 95 trở đi. Đây là các ứng dụng desktop cũ được chuyển đổi thành các ứng dụng UWP và được phân phối bằng APPX.

**Đa nhiệm**
Trong Windows 10, hầu hết ứng dụng UWP, kể cả các ứng dụng được thiết kế cho Windows 8.x, đều chạy trong các cửa sổ nổi, và người dùng sẽ dùng thanh tác vụ và Task View để chuyển giữa cả các ứng dụng UWP và desktop. Windows 10 cũng giới thiệu "Continuum" hay "Tablet Mode". Chế độ này được mặc định tắt trên các máy tính để bàn và bật trên các máy tính bảng, nhưng người dùng máy để bàn vẫn có thể bật tắt nó thủ công. Khi tắt Tablet Mode is off, các ứng dụng sẽ có các cửa sổ chỉnh sửa được kích thước và thanh tiêu đề luôn hiện. Khi bật Tablet Mode các ứng dụng có thể chỉnh kích thước sẽ dùng hệ thống cửa sổ tương tự như các ứng dụng kiểu Metro trên Windows 8.x nên chúng sẽ bị buộc dùng toàn màn hình hoặc được gắn vào một bên.
Các ứng dụng UWP trong Windows 10 có thể mở trong nhiều ứng dụng. Microsoft Edge, Máy tính tay, và Ảnh là các ví dụ về các ứng dụng cho phép điều này.

**Giấy phép và phân phối**
Các ứng dụng UWP có thể được tải về từ Windows Store hoặc được sideload từ thiết bị khác. Yêu cầu sideload đã giảm đáng kể từ Windows 8.x tới 10, nhưng ứng dụng vẫn phải được ký bởi một chứng nhận số tin cậy cùng với một chứng nhận gốc.

**Thời gian chạy**
Các ứng dụng desktop truyền thống được bắt đầu và đóng lại khi có lệnh của người dùng. Tuy nhiên, các ứng dụng kiểu Metro không bao giờ đóng hay mở thực sự theo lệnh của người dùng. Các ô xếp động, các thành phần nền và các giao diện tương tác với các ứng dụng khác có thể yêu cầu ứng dụng hoạt động trước khi người dùng bật ứng dụng lên. Ngoài ra, khi người dùng đóng một ứng dụng thì các quá trình của ứng dụng sẽ không bị ngừng hoàn toán hay lượng bộ nhớ đã dùng cũng không được giải phóng; thay vào đó, chúng chỉ bị ngừng tạm thời. Một trình quản lý ứng dụng của Windows sẽ tự động ngừng các ứng dụng đang treo, không hoạt động và đã đóng.

**Phát triển**

**Windows Runtime**
Ban đầu, các phần mềm Windows được phát triển sử dụng Windows API. Các phần mềm có quyền truy cập vào API mà không bị hạn chế. Các nhà phát triển được tự do chọn ngôn ngữ lập trình và công cụ phát triển của họ. Tuy nhiên, các ứng dụng kiểu Metro chỉ được phát triển bằng Windows Runtime (WinRT). Nếu sử dụng một API bị cấm sẽ khiến ứng dụng không đủ điều kiện xuất hiện trên Windows Store.
Không phải ứng dụng WinRT nào cũng là ứng dụng kiểu Metro; một lượng nhỏ WinRT có sẵn cho các ứng dụng desktop.
Các ứng dụng kiểu Metro chỉ có thể được phát triển bằng các công cụ phát triển của chính Microsoft. Theo Bauer, Giám đốc Khoa học của Embarcadero Technologies, có các API mà mọi chương trình máy tính đều phải gọi nhưng Microsoft đã cấm chúng, trừ khi chính thời gian chạy Visual C++ của Microsoft thực hiện gọi các API đó.

**Ứng dụng Universal**
Các ứng dụng được phát triển để làm việc trên cả điện thoại thông minh, máy tính cá nhân, video game console và HoloLens được gọi là các ứng dụng universal. Việc này được thực hiện bằng các dùng các API ứng dụng universal, lần đầu giới thiệu trong Windows 8.1 và Windows Phone 8.1. Visual Studio 2013 with Update 2 có thể dùng để phát triển các ứng dụng này. Windows 10 giới thiệu Universal Windows Platform (UWP) 10 để phát triển các ứng dụng universal. Các ứng dụng sử dụng nền tảng này được phát triển với Visual Studio 2015. Các ứng dụng kiểu Metro cũ cho Windows 8.1, Windows Phone 8.1 hay cả hai (universal 8.1) cần phải điều chỉnh để chuyển sang nền tảng này.
UWP thực chất không khác Windows Runtime; đúng hơn thì nó là một phần mở rộng của nó. Các ứng dụng không còn được biểu thị là được viết riêng cho một HĐH nào cụ thể trong manifest của chúng nữa; thay vào đó, chunhs tập trung vào một hoặc nhiều họ thiết bị, v.d. máy tính để bàn, di động, Xbox hay Internet of Things (IoT). Chúng phản ứng với các chức năng có sẵn trong thiết bị. Một ứng dụng universal có thể chạy trên cả điện thoại di động nhỏ và máy tính bảng và đem lại trải nghiệm phù hợp. Ứng dụng universal chạy trên điện thoại có thể bắt đầu y như trên máy tính bảng khi điện thoại được kết nối với màn hình phụ hoặc một dock cắm phù hợp.

**APPX**
APPX là định dạng tập tin dùng để phân phối và cài đặt các ứng dụng trên Windows 8.x và 10, Windows Phone 8.1, Windows 10 Mobile, Xbox One, Hololens, và Windows 10 IoT Core. Không giống các ứng dụng desktop cũ, APPX là hệ thống cài đặt duy nhất cho ứng dụng UWP. Nó thay thế định dạng XAP trên Windows Phone 8.1, trong nỗ lực thống nhất việc phân phối ứng dụng cho Windows Phone và Windows 8. Các tập tin APPX chỉ tương thích với phiên bản Windows Phone 8.1 về sau.
Windows Phone 8.x Marketplace cho phép người dùng tải các tập tin APPX vào một thẻ SD và cài đặt chúng thủ công. Trái lại, sideload (cài đặt ứng dụng ngoài) bị cấm trên Windows 8.x, trừ khi người dùng có giấy phép phát triển hay trong tên miền doanh nghiệp.date=March 2016

**Bảo mật**
Phần mềm Windows có quyền sử dụng và thay đổi hệ sinh thái của chúng. Các quyền tài khoản người dùng Windows, User Account Control và phần mềm diệt virus sẽ kiểm tra khả năng này và thông báo người dùng nếu ứng dụng cố sử dụng nó với mục đích xấu. Tuy nhiên, các ứng dụng kiểu Metro bị sandbox và không thể thay đổi hệ sinh thái Windows. Chúng cần cho phép quyền để truy cập các thiết bị phần cứng như webcam và microphone và quyền truy cập hệ thống tập tin của chúng bị giới hạn trong các thư mục người dùng, ví dụ như My Documents. Microsoft còn tiếp tục giám sát các ứng dụng này và sẽ có thể xóa chúng nếu chúng có vấn đề về bảo mật hoặc riêng tư.

**Xem thêm**
 WinJS

**Tham khảo**
Thể loại:Công nghệ Windows
Thể loại:Cấu trúc Windows
Thể loại:Định dạng tập tin thực thị
Thể loại:Windows API
Thể loại:.NET