Windows Runtime
Tên khác | WinRT |
---|---|
Phát triển bởi | Microsoft |
Phát hành lần đầu | 26 tháng 10 năm 2012 |
Viết bằng | C++ |
Hệ điều hành | Microsoft Windows |
Thể loại | Giao diện nhị phân ứng dụng, Giao diện lập trình ứng dụng |
Website | https://docs.microsoft.com/en-us/windows/apps/ |
Windows Runtime (WinRT) là kiến trúc ứng dụng không cần biết nền tảng được giới thiệu lần đầu tiên trong Windows 8 và Windows Server 2012 năm 2012. WinRT hỗ trợ phát triển trong C++/WinRT (C++ chuẩn), C++/CX (Component Extensions, một ngôn ngữ dựa trên C++), JavaScript-TypeScript, và các ngôn ngữ mã được quản lý C# và Visual Basic.NET (VB.NET). Các ứng dụng WinRT vốn hỗ trợ cả bộ xử lý x86 và ARM, và có thể chạy trong môi trường sandbox để cho phép bảo mật và ổn định cao hơn.[1][2] Các thành phần WinRT được thiết kế với khả năng tương tác giữa nhiều ngôn ngữ và API, bao gồm các ngôn ngữ gốc, được quản lý và viết kịch bản.
Windows Phone 8.1 dùng một phiên bản Windows Runtime có tên Windows Phone Runtime. Nó cho phép phát triển các ứng dụng bằng C# và VB.NET, và các thành phần Windows Runtime trong C++/CX.[3]
Công nghệ
[sửa | sửa mã nguồn]WinRT được triển khai theo ngôn ngữ lập trình C++[4] và được thiết kế theo mô hình hướng đối tượng.[4] Tiền thân của nó,, Windows API (Win32 API) được viết chủ yếu bằng C.[5] Đó là một giao diện lập trình ứng dụng mã (API) không được quản lý dựa trên Mô hình đối tượng thành phần (COM) cho phép giao tiếp từ nhiều ngôn ngữ, cũng như COM. Tuy nhiên, các định nghĩa API được lưu trữ trong các file .winmd
, được mã hóa theo định dạng ECMA 335 metadata, mà.NET Framework cũng sử dụng với một vài sửa đổi.[6][7] Định dạng siêu dữ liệu phổ biến này cho phép ít hơn đáng kể chi phí hoạt động khi gọi WinRT từ các ứng dụng.NET, liên quan đến P/Invoke, và cú pháp đơn giản hơn nhiều.[8]
Ngôn ngữ C++/CX (Component Extensions) mới, mượn một số cú pháp C++/CLI, cho phép viết và sử dụng các thành phần WinRT với ít mã hiển thị hơn cho lập trình viên, so với lập trình COM cổ điển trong C ++ và áp đặt ít hạn chế hơn so với C++/CLI về các loại trộn. Các phần mở rộng thành phần của C++/CX chỉ được khuyến nghị sử dụng tại ranh giới API, không dành cho các mục đích khác.[9] C++ thông thường (với đặc tả dành riêng cho COM) cũng có thể được sử dụng để lập trình với các thành phần WinRT,[10] với sự trợ giúp của Windows Runtime C++ Template Library (WRL), tương tự như mục đích mà Active Template Library cung cấp cho COM.[11]
Các ứng dụng WinRT chạy trong hộp cát và cần sự chấp thuận rõ ràng của người dùng để truy cập các tính năng quan trọng của hệ điều hành và phần cứng cơ bản. Quyền truy cập file bị giới hạn ở một số vị trí được xác định trước, chẳng hạn như thư mục Documents or Pictures.
Các ứng dụng WinRT cho Windows RT, Windows 8 trở lên được đóng gói ở định dạng file .appx
; dựa trên Open Packaging Conventions, nó dùng một định dạng ZIP với các tệp XML được thêm vào.[12] Các ứng dụng WinRT được phân phối chủ yếu thông qua một cửa hàng ứng dụng có tên Microsoft Store, nơi phần mềm WinRT (được gọi là ứng dụng Windows Store) có thể được người dùng tải xuống và mua. Các ứng dụng WinRT chỉ có thể được tải từ bên ngoài Windows Store trên các hệ thống Windows 8 hoặc RT là một phần của miền Windows hoặc được trang bị khóa kích hoạt đặc biệt thu được từ Microsoft.[13][14][15][16]
Trong một sự khởi đầu lớn từ Win32 và tương tự như.NET Framework 4.5, hầu hết các API dự kiến sẽ mất nhiều thời gian để hoàn thành đều được triển khai dưới dạng không đồng bộ không đồng bộ. Ứng dụng gửi lệnh gọi API, trả về ngay lập tức, giải phóng ứng dụng để thực hiện các tác vụ khác trong khi chờ kết quả.[17] Mô hình không đồng bộ yêu cầu các cấu trúc ngôn ngữ lập trình mới (từ khóa async
và toán tử await
trong C # và Visual Basic, class task
và method .then
trong C++, được cung cấp bởi bộ phát triển phần mềm WinRT (SDK), từ khóa promise
và function then
JavaScript- HTML5), tương tự như try
/catch
dùng trong xử lý ngoại lệ.Các phần của API cần truy cập không đồng bộ bao gồm các tin nhắn và hộp thoại trên màn hình, truy cập file, kết nối Internet, ổ cắm, luồng, thiết bị và dịch vụ và lịch, danh bạ và cuộc hẹn.
Dịch vụ
[sửa | sửa mã nguồn]Metadata
[sửa | sửa mã nguồn]Windows Phone Runtime
[sửa | sửa mã nguồn]Bắt đầu từ Windows Phone 8 có thể phát triển các ứng dụng bằng phiên bản Windows Runtime có tên Windows Phone Runtime (WPRT). Mặc dù WP8 mang đến sự hỗ trợ hạn chế, nền tảng cuối cùng đã hội tụ với Windows 8.1 trong Windows Phone 8.1.
Windows Phone 8
[sửa | sửa mã nguồn]Windows Phone 8 đã hỗ trợ hạn chế để phát triển và tiêu thụ các thành phần Windows Runtime thông qua Windows Phone Runtime. Nhiều API Windows Runtime trong Windows 8 xử lý các chức năng hệ điều hành cốt lõi đã được port sang Windows Phone 8.[18] Hỗ trợ phát triển trò chơi gốc bằng C++/CX và DirectX đã được thêm vào, theo yêu cầu từ ngành công nghiệp phát triển trò chơi.
Tuy nhiên, Windows Phone XAML Framework vẫn dựa trên cùng một framework Microsoft Silverlight, như trong Windows Phone 7, để tương thích ngược. Do đó, tính đến năm 2016[cập nhật], việc phát triển bằng XAML là không thể trong C++/CX. Phát triển bằng HTML5 hoặc WinJS không được hỗ trợ trên Windows Phone 8.
Windows Phone 8.1
[sửa | sửa mã nguồn]Hỗ trợ Windows Runtime trên Windows Phone 8.1 hội tụ với Windows 8.1. Bản phát hành mang đến Windows Runtime API đầy đủ cho nền tảng, bao gồm các hỗ trợ cho Windows Runtime XAML Framework, và các ràng buộc ngôn ngữ cho C++/CX, và HTML5-JavaScript. Ngoài ra còn có một loại dự án gọi là Universal apps để cho phép các ứng dụng chia sẻ mã trên các phiên bản 8.1 của Windows Phone và Windows.
Windows Phone 8 Silverlight Framework đã được cập nhật. Nó có thể khai thác một số tính năng mới trong Windows Runtime.
Windows Phone Runtime sử dụng định dạng gói AppX từ Windows 8, sau khi sử dụng Silverlight XAP.
Xem thêm
[sửa | sửa mã nguồn]Chú thích
[sửa | sửa mã nguồn]- ^ Avram, Abel (ngày 21 tháng 9 năm 2011). “Design Details of the Windows Runtime”. InfoQ.
- ^ Klug, Brian; Smith, Ryan (ngày 13 tháng 9 năm 2011). “Microsoft Build: Windows 8, A Pre-Beta Preview”. AnandTech.
- ^ “Windows Phone API reference”. Windows Phone API reference. Microsoft. ngày 21 tháng 7 năm 2014.
- ^ a b Michael, Mayberry (2012). WinRT Revealed. New York City: Apress. tr. 3. ISBN 978-1-4302-4585-8.
- ^ “Creating Win32 Applications (C++)”. MSDN. Microsoft. Truy cập ngày 12 tháng 1 năm 2014.
- ^ “Windows Metadata (WinMD) files”. API reference for UWP apps. Microsoft Docs. Truy cập ngày 20 tháng 7 năm 2019.
- ^ De Icaza, Miguel (ngày 15 tháng 9 năm 2011). “WinRT demystified”. Personal blog of Miguel de Icaza. Self-published. Truy cập ngày 15 tháng 1 năm 2014.
- ^ “What is the COM marshaling overhead in calling the WinRT API from C#?”. MSDN forum. Self-published. ngày 20 tháng 9 năm 2011. Bản gốc lưu trữ ngày 16 tháng 1 năm 2014. Truy cập ngày 15 tháng 1 năm 2014.
- ^ “Using the Windows Runtime from C++ | Build2011 | Channel 9”. Channel9.msdn.com. ngày 14 tháng 9 năm 2011. Bản gốc lưu trữ ngày 12 tháng 10 năm 2011. Truy cập ngày 24 tháng 4 năm 2012.
- ^ Sivakumar, Nish (ngày 29 tháng 9 năm 2011). “Visual C++ and WinRT/Metro - Some fundamentals - CodeProject®”. Codeproject.com. Truy cập ngày 24 tháng 4 năm 2012.
- ^ “Using the Windows Runtime from C++ | Build2011 | Channel 9”. Channel9.msdn.com. ngày 14 tháng 9 năm 2011. Bản gốc lưu trữ ngày 12 tháng 10 năm 2011. Truy cập ngày 24 tháng 4 năm 2012.
- ^ “Designing a simple and secure app package – APPX”. Windows 8 app developer blog. Truy cập ngày 30 tháng 12 năm 2013.
- ^ “How to Add and Remove Apps”. TechNet. Microsoft. ngày 31 tháng 5 năm 2012. Truy cập ngày 4 tháng 10 năm 2012.
To enable sideloading on a Windows 8 Enterprise computer that is not domain-joined or on any Windows® 8 Pro computer, you must use a sideloading product activation key. To enable sideloading on a Windows® RT device, you must use a sideloading product activation key. For more information about sideloading product activation keys, see Microsoft Volume Licensing.
- ^ “Windows 8: The Metro Mess”. PC Magazine. Bản gốc lưu trữ ngày 18 tháng 11 năm 2018. Truy cập ngày 8 tháng 9 năm 2012.
- ^ “Microsoft now using 'Modern UI Style' to refer to Windows 8 'Metro Style' apps”. Truy cập ngày 10 tháng 8 năm 2012.
- ^ “What's a Microsoft Store app?”. Windows Dev Center. Truy cập ngày 1 tháng 10 năm 2012.
- ^ “Asynchronous programming (Windows Store apps)”. MSDN. Microsoft. Truy cập ngày 12 tháng 1 năm 2014.
- ^ “Windows Phone Runtime API”. microsoft.com. Microsoft.