Memetakan fitur UWP ke SDK Aplikasi Windows
Topik ini membandingkan area fitur utama dalam berbagai bentuk di mana mereka muncul di UWP dan di SDK Aplikasi Windows. Konten dalam panduan migrasi ini mendukung perpindahan dari UWP XAML ke SDK Aplikasi Windows XAML—berpindah ke kerangka kerja UI yang berbeda, seperti Windows Presentation Foundation (WPF), berada di luar cakupan panduan ini.
Fitur | UWP | SDK Aplikasi Windows (aplikasi paket) | Catatan migrasi |
---|---|---|---|
Pengemasan | MSIX Aplikasi memiliki identitas |
MSIX Aplikasi memiliki identitas |
Aplikasi UWP yang bermigrasi ke SDK Aplikasi Windows harus tetap berada di MSIX untuk memastikan pengalaman penginstalan dan penghapusan instalasi bersih tepercaya, serta akses ke semua API, termasuk yang memerlukan identitas. |
Kontainer | Kontainer aplikasi: - keamanan = LowIL - akses sistem file ditengahi - tidak ada akses registri |
Kontainer MSIX: - keamanan = MediumIL - akses sistem file sama dengan pengguna, AppData menulis divirtualisasi - Penulisan registri HKCU divirtualisasi |
Pindah ke tingkat integritas yang lebih tinggi dengan SDK Aplikasi Windows memungkinkan aplikasi Anda memiliki fungsionalitas yang lebih besar. Namun, waspadai virtualisasi jika Anda ingin memperluas kemampuan aplikasi yang dimigrasikan untuk menulis ke HKCU atau AppData. |
Aktivasi dan instancing | Identitas paket + Aktivasi CoreApplication, instans tunggal secara default | Identitas paket, Aktivasi Main/WinMain + SDK Aplikasi Windows, multi-instans secara default | Pastikan aplikasi Anda dapat menangani perilaku multi-instans, atau menggunakan AppInstance untuk mengelola instans Anda. |
Dikelola siklus hidup | Tangguhkan/lanjutkan | Pemberitahuan Power/State | Anda dapat menggunakan pemberitahuan perubahan Power/State untuk mengurangi beban sistem. |
Tugas latar belakang | Tugas latar belakang InProc dan OOP | Tugas latar belakang COM dan OOP inproc | Anda dapat terus menggunakan tugas latar belakang OOP Anda. Jika aplikasi memerlukan komunikasi ke proses utama Anda, maka evaluasi mekanisme IPC Anda, karena tugas latar belakang OOP berjalan di LowIL, dan proses utama SDK Aplikasi Windows Anda berjalan di MediumIL. Setiap tugas latar belakang inproc perlu dimigrasikan ke tugas latar belakang COM—lihat Membuat dan mendaftarkan tugas latar belakang COM winmain. Untuk tugas latar belakang C# OOP, lihat Menulis komponen Windows Runtime dengan C#/WinRT dan sampel tugas Latar Belakang. |
Windowing | CoreWindow, AppWindow (pratinjau) | HWND, AppWindow v2 | Perilaku windowing telah berubah secara signifikan dalam SDK Aplikasi Windows. Lihat Migrasi fungsionalitas windowing. |
Olahpesan | CoreDispatcher dan DispatcherQueue | DispatcherQueue, WndProc | DispatcherQueue mendukung aplikasi Win32. Untuk detail tambahan tentang pemindahan dari CoreDispatcher ke DispatcherQueue, lihat Migrasi fungsionalitas threading. |
UI Platform | Sistem XAML, WebView, DirectX, dan lainnya | WinUI 3, Webview2, DirectX, dan lainnya | Untuk informasi selengkapnya, lihat migrasi WinUI. |
Penyajian teks | DirectWrite | DWriteCore | Memungkinkan aplikasi mengakses fitur DWrite terbaru downlevel dan menerima pembaruan DWrite baru yang terpisah dari jadwal rilis OS. Untuk informasi selengkapnya, lihat DirectWrite ke migrasi DWriteCore. |
Sumber | MRT | MRTCore | Untuk informasi selengkapnya, lihat migrasi MRT ke MRTCore. |
.NET Runtime | .NET Native / C# 7 | .NET 6+/C# 9 | SDK Aplikasi Windows menyediakan akses ke runtime .NET modern, dan akses ke fitur bahasa baru. Namun, kompilasi .NET ReadyToRun tidak sama dengan .NET Native, jadi Anda harus mengevaluasi tradeoff performa. |
Grafik 2D | Win2D | Win2D untuk WinUI 3 | Saat ini kami sedang mengerjakan versi Win2D yang berfungsi dengan SDK Aplikasi Windows, sedang berlangsung. Lihat dokumentasi untuk informasi selengkapnya. |
Komponen Windows Runtime | Templat proyek komponen Windows Runtime untuk UWP | - C++: Gunakan templat proyek Windows Runtime Component (WinUI 3). - C#: Gunakan C#/WinRT untuk menulis Komponen Runtime Windows di Pustaka Kelas .NET. |
Saat ini kami sedang berupaya mendukung Komponen Penulis Windows Runtime menggunakan C#/WinRT untuk digunakan dalam SDK Aplikasi Windows dan WinUI 3. |
Lihat Juga
Berkolaborasi dengan kami di GitHub
Sumber untuk konten ini dapat ditemukan di GitHub, yang juga dapat Anda gunakan untuk membuat dan meninjau masalah dan menarik permintaan. Untuk informasi selengkapnya, lihat panduan kontributor kami.
Windows developer
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk