Tanya Jawab Umum pengembang Windows

Artikel ini dimaksudkan untuk mempromosikan pemahaman umum tentang pengalaman pengembangan Windows dan arah produk.

Memulai

Apa yang harus saya gunakan untuk membangun aplikasi Windows?

Untuk pengembangan aplikasi desktop Windows, kami merekomendasikan WinUI 3 dan SDK Aplikasi Windows. WinUI berisi kontrol dan gaya modern untuk membangun aplikasi Windows yang memanfaatkan fitur Windows 11 terbaru dan bekerja menurun ke Windows 10, versi 1809.

Opsi lain mungkin lebih tepat tergantung pada apa yang Anda bangun dan bagaimana Anda membangunnya:

  • Jika SDK Aplikasi Windows / WinUI 3 tidak memenuhi kebutuhan Anda, WPF mungkin.
  • Jika Anda menargetkan lintas platform: React Native dan .NET MAUI memungkinkan Anda membangun aplikasi lintas platform. .NET MAUI adalah pilihan yang bagus untuk pengembang C#. React Native akan terasa akrab bagi pengembang JavaScript/TypeScript.
  • Jika Anda adalah pengembang web: Anda dapat menggunakan WebView2 sebagai host aplikasi. Ini memungkinkan Anda menggunakan teknologi web untuk membangun aplikasi desktop yang dapat mengakses Windows SDK dan API SDK Aplikasi Windows. Anda juga dapat menggunakan React Native untuk Windows.
  • Jika Anda adalah pengembang C++: Untuk aplikasi desktop, SDK Aplikasi Windows / WinUI 3 adalah pilihan yang bagus. Jika Anda membangun game, pertimbangkan untuk menggunakan DirectX.
  • Jika Anda adalah pengembang Rust: Lihat Rust untuk Windows.

Ada teknologi pengembangan lain yang mungkin lebih tepat tergantung pada kebutuhan dan preferensi teknologi Anda. Lihat Gambaran umum opsi kerangka kerja.

Di mana saya dapat menemukan perbandingan langsung dari teknologi pengembangan Windows?

Lihat Gambaran umum opsi pengembangan aplikasi.

SDK Aplikasi Windows / WinUI 3

Apa itu SDK Aplikasi Windows?

SDK Aplikasi Windows adalah platform pengembangan aplikasi Windows yang memungkinkan Anda membuat aplikasi desktop yang indah, modern, kompatibel mundur (hingga Windows 10 1809). WinUI 3 adalah kerangka kerja UI yang dikirim dengan SDK Aplikasi Windows.

Apa perbedaan antara SDK Aplikasi Windows dan Windows SDK?

Keduanya adalah kit pengembangan perangkat lunak (SDK) yang memungkinkan Anda membangun aplikasi Windows.

SDK Aplikasi Windows adalah platform pengembangan baru yang memungkinkan Anda membangun aplikasi desktop modern yang dapat diinstal di seluruh versi Windows (hingga Windows 10 1809). Saat menggunakan SDK Aplikasi Windows untuk membuat aplikasi, Anda akan memiliki akses ke fitur platform pengembangan Windows terbaru. SDK Aplikasi Windows mencakup WinUI 3.

Windows SDK adalah platform pengembangan yang memungkinkan Anda membangun aplikasi UWP dan aplikasi Win32/desktop. Ini dirancang di sekitar API Windows yang digabungkan dengan versi OS tertentu.

SDK Aplikasi Windows tidak menggantikan Windows SDK. Sebaliknya, SDK Aplikasi Windows adalah pelengkap untuk Windows SDK. Ini menyediakan abstraksi yang nyaman dan dipisahkan OS di sekitar katalog API OS Windows yang kaya yang sudah dapat Anda akses menggunakan Windows SDK. Saat membuat aplikasi dengan SDK Aplikasi Windows, Anda mungkin akhirnya menggunakan beberapa API Windows SDK tergantung pada fungsionalitas yang Anda butuhkan. Seiring waktu, lebih banyak fungsionalitas Windows SDK akan diangkat ke SDK Aplikasi Windows.

Dapatkah saya menggunakan SDK Aplikasi Windows / WinUI 3 di aplikasi Windows saya yang sudah ada?

Perhatikan bahwa WinUI 3 (kerangka kerja UI) dikirim dengan SDK Aplikasi Windows (kerangka kerja pengembangan platform Windows).

Secara umum, Anda tidak dapat menggunakan WinUI 3 kecuali Anda siap untuk memigrasikan kerangka kerja UI Sepenuhnya. Kami sedang mengerjakan fitur yang disebut kepulauan XAML yang memungkinkan Anda menghosting konten WinUI 3 dalam kerangka kerja UI lainnya (WPF, Win32).

Anda harus dapat menggunakan elemen SDK Aplikasi Windows di aplikasi Win32/desktop apa pun, tergantung pada bagaimana aplikasi yang ada dibuat. Aplikasi UWP tidak didukung oleh SDK Aplikasi Windows / WinUI 3.

Ini berarti bahwa aplikasi WPF/MFC/WinForms dapat menggunakan API SDK Aplikasi Windows yang tidak terkait dengan WinUI 3. Contoh API tersebut termasuk Siklus Hidup Aplikasi, Windowing, dan Pemberitahuan Toast.

Apakah saya perlu menggunakan Visual Studio untuk membuat aplikasi WinUI 3?

Sebaiknya gunakan Visual Studio 2022 versi 17.1 ke atas untuk mengembangkan aplikasi SDK Aplikasi Windows / WinUI 3. Menggunakan versi terbaru Visual Studio akan memberi Anda akses ke fitur pengembangan yang kaya seperti Hot Reload.

Anda mungkin dapat menggunakan ID lain dan alur kerja pengembangan, tetapi Visual Studio saat ini adalah satu-satunya IDE yang didukung secara resmi untuk SDK Aplikasi Windows / WinUI 3. Perhatikan bahwa MSBuild diperlukan untuk mengkompilasi proyek yang menggunakan XAML atau SDK Aplikasi Windows / WinUI 3.

Saat saya membuat aplikasi menggunakan SDK Aplikasi Windows / WinUI 3, apakah saya membangun "aplikasi WinUI 3"?

Ya - "Aplikasi WinUI 3" adalah istilah yang kami sarankan Anda gunakan.

Dapatkah saya secara bertahap memperbarui aplikasi WinUI 2 saya ke WinUI 3 dengan secara bertahap mengganti komponen WinUI 2 dengan komponen WinUI 3?

Tidak. SDK Aplikasi Windows tidak dapat digunakan di aplikasi UWP, dan WinUI 2 tidak dapat dicampur dengan WinUI 3. Lihat Migrasi dari UWP ke SDK Aplikasi Windows.

Seberapa sulit untuk memigrasikan aplikasi UWP ke SDK Aplikasi Windows / WinUI 3?

Memigrasikan komponen UI umumnya mudah (untuk C# dan C++/WinRT). Jika tidak, biaya migrasi dari UWP ke SDK Aplikasi Windows / WinUI 3 akan tergantung terutama pada faktor-faktor ini:

  1. File proyek dan kustomisasi MSBuild: Memigrasikan proyek Anda mungkin memerlukan tingkat upaya yang signifikan, tergantung pada apakah Anda menggunakan fitur MSBuild tingkat lanjut.
  2. Migrasi .NET API: Jika aplikasi UWP Anda bergantung pada .NET, maka Anda harus meningkatkan ke .NET 6 atau yang lebih baru. Dalam kebanyakan kasus, mengadopsi .NET 6 sangat mudah.
  3. Pustaka komponen UI: Jika Anda menggunakan pustaka komponen UI, maka Anda akan memerlukan versi baru dari pustaka tersebut yang menargetkan WinUI 3.
  4. Jika kode sumber UWP Anda ditulis dalam C++/CX yang sekarang digantikan, maka beberapa porting kode sumber akan terlibat. Lihat Pindah ke C++/WinRT dari C++/CX.

Untuk informasi selengkapnya tentang migrasi UWP, lihat Migrasi dari UWP ke SDK Aplikasi Windows.

Jika saya memiliki aplikasi UWP yang sudah ada di Store, dapatkah saya menerbitkan aplikasi WinUI 3 paket baru menggunakan pengidentifikasi yang sama?

Ya, aplikasi yang ditingkatkan dapat diterbitkan tanpa harus memperbarui identitas aplikasi Anda. Pengguna yang memiliki versi lama akan diperbarui ke versi baru. Panduan ini hanya berlaku untuk aplikasi desktop. Aplikasi Xbox, HoloLens, dan Surface Hub tidak dapat bermigrasi ke WinUI 3.

Bagaimana cara mengemas/mendistribusikan aplikasi WinUI 3 saya?

Lihat Gambaran umum penyebaran.

Di mana saya dapat menemukan panduan migrasi SDK Aplikasi Windows?

Apakah saya perlu menggunakan markup XAML jika saya ingin menggunakan WinUI 3?

Tidak. Kontrol UI dapat dibuat dalam kode. Tetapi ada banyak manfaat untuk mewakili WinUI 3 UI Anda dalam bentuk markup XAML deklaratif, seperti pengalaman pengembang yang ditingkatkan.

Jika Anda bermigrasi dari UWP ke WinUI 3, Anda mungkin dapat menggunakan kembali banyak markup XAML dan kode terkait UI Anda (tetapi Anda harus memperbarui beberapa sintaks). Jika Anda bermigrasi dari WPF ke WinUI 3, Anda akan dapat menggunakan kembali banyak konsep, tetapi set kontrol dan API akan berbeda.

Apakah Visual Studio memiliki desainer permukaan / GUI untuk WinUI 3?

Tidak. Kami menyadari bahwa ini adalah celah dalam pengalaman pengembang WinUI 3. Alat seperti XAML Hot Reload dapat membantu dalam banyak skenario.

Apakah SDK Aplikasi Windows menyertakan WinUI 3?

Ya. WinUI 3 dikirim sebagai bagian dari SDK Aplikasi Windows.

Apakah SDK Aplikasi Windows menyertakan WinUI 2?

Tidak. WinUI 2 adalah bagian dari platform UWP.

Apakah WinUI 2 dan WinUI 3 dibangun di atas teknologi yang sama?

Tidak cocok. Meskipun WinUI 3 dimulai dari basis kode WinUI 2, mereka adalah teknologi yang berbeda. WinUI 2 dan WinUI 3 adalah kerangka kerja UI berbasis XAML yang berfungsi di .NET dan C++. Perhatikan bahwa WinUI 2 dan WinUI 3 tidak kompatibel satu sama lain.

Dapatkah saya menggunakan WinUI 3 tanpa menggunakan SDK Aplikasi Windows?

Tidak. WinUI 3 kapal sebagai bagian dari SDK Aplikasi Windows.

Dapatkah saya menggunakan WinUI 3 di aplikasi yang tidak dikemas?

Ya. Semua teknologi dalam SDK Aplikasi Windows berfungsi di aplikasi yang tidak dikemas, termasuk WinUI 3.

Apa perbedaan antara Kepulauan XAML dan WinUI 3?

Kepulauan XAML memungkinkan Anda untuk menghosting kontrol WinUI modern bersama UI Win32 yang ada dari kerangka kerja lain, seperti WinForms dan WPF. Saat ini, Kepulauan XAML didukung dengan sebagian besar kontrol XAML dan WinUI 2 sistem. Lihat di sini untuk informasi selengkapnya. Dukungan Kepulauan XAML untuk kontrol WinUI 3 tersedia mulai SDK Aplikasi Windows 1.4.

Jika saya menggunakan WinUI 3, apakah aplikasi saya akan terlihat modern di Windows 11 dan Windows 10?

Ya, UI aplikasi Anda akan mewarisi prinsip desain UI Fluent terbaru pada semua versi Windows 11 dan Windows 10 yang didukung hingga versi 1809 dalam skenario yang dikemas dan tidak dikemas.

Dapatkah saya menggunakan latar belakang Mica atau Acrylic di aplikasi yang dibangun dengan SDK Aplikasi Windows?

Di mana saya dapat menemukan sampel WinUI 3?

Lihat Sampel dan sumber daya. Beberapa repositori penting:

UWP dan WinUI 2

Dapatkah aplikasi UWP didistribusikan di luar Microsoft Store?

Ya. Jika paket MSIX Anda ditandatangani, sertifikat penandatanganan harus valid dan tepercaya pada perangkat target.

Dapatkah saya mencampur kontrol UI UWP XAML dengan kontrol UI Win32, WPF, atau WinForms?

Ya - Kepulauan XAML memungkinkan Anda melakukan ini. Pelajari selengkapnya tentang Kepulauan XAML.

Pengembangan lintas platform

Dapatkah saya mulai dengan WinUI 3 dan App SDK, dan kemudian mengintegrasikan .NET MAUI jika saya akhirnya ingin menargetkan skenario lintas platform?

Tidak untuk saat ini. Meskipun aplikasi .NET MAUI menggunakan SDK Aplikasi Windows / WinUI 3 saat berjalan di Windows, sebaiknya mulai dengan .NET MAUI atau React Native untuk Windows jika Anda mengantisipasi kebutuhan untuk menargetkan beberapa platform.

Apa yang harus saya gunakan jika saya ingin membuat aplikasi yang berfungsi di Windows dan Xbox?

Jika aplikasi Anda perlu mendukung Xbox, HoloLens, atau IoT, sebaiknya gunakan UWP. SDK Aplikasi Windows tidak mendukung platform ini. Untuk pengembangan game, sebaiknya gunakan Microsoft Game Development Kit.

Apa yang harus saya gunakan jika saya ingin membuat aplikasi yang berfungsi di Windows dan Surface Hub?

Jika Anda menargetkan hub Windows dan Surface, sebaiknya gunakan UWP.

Bagaimana cara membangun aplikasi web progresif (PWAs) native-feeling di Windows?

Pengemasan, penyebaran, dan pembaruan

Apa perbedaan antara aplikasi yang dikemas, dibongkar, dan dikemas dengan lokasi eksternal?

Untuk definisi aplikasi yang dikemas, tidak dikemas, dan dikemas dengan lokasi eksternal, lihat Gambaran umum penyebaran. Topik itu juga menjelaskan kelebihan dan kekurangan dari setiap opsi.

Apakah aplikasi WinUI 3 saya akan diperbarui secara otomatis untuk pengguna akhir?

Aplikasi SDK Aplikasi Windows / WinUI 3 dapat dikirimkan melalui Store, file .appinstaller, atau di paket MSI atau setup.exe yang ada. Store dan AppInstaller mendukung pembaruan otomatis untuk pengguna akhir yang mengaktifkan pembaruan otomatis, tetapi aplikasi MSI/setup.exe Anda harus memiliki pembaruannya sendiri.

Dapatkah saya menggunakan SDK Aplikasi Windows tanpa menggunakan MSBuild?

Secara umum, tidak. WinUI 3 dan SDK Aplikasi Windows memerlukan MSBuild, itulah sebabnya Visual Studio adalah prasyarat untuk SDK Aplikasi Windows / WinUI 3 pengembangan aplikasi. Meskipun secara teknis dimungkinkan untuk membangun aplikasi SDK Aplikasi Windows yang tidak menggunakan WinUI 3 menggunakan toolchain lain, ini tidak didukung.

Performa dan pengoptimalan

Apa yang dapat saya lakukan untuk membuat aplikasi Windows saya terasa hebat bagi pengguna akhir?

Kompatibilitas

Apakah pengguna saya harus memperbarui Windows untuk menggunakan aplikasi SDK Aplikasi Windows / WinUI 3 saya?

Pengguna yang memiliki Windows 10, versi 1809 dan seterusnya akan dapat menginstal aplikasi WinUI 3 / SDK Aplikasi Windows Anda tanpa memperbarui OS mereka.

Dapatkah saya menargetkan Arm64 dengan aplikasi WinUI 3 saya?

Ya.

Penghentian dan migrasi

Apakah UWP/WinUI 2 tidak digunakan lagi?

Tidak. UWP dan WinUI 2 masih didukung dan akan menerima bug, keandalan, dan perbaikan keamanan. Namun, sebagian besar fitur dan kemampuan baru, termasuk dukungan untuk runtime .NET terbaru, hanya akan ditambahkan ke SDK Aplikasi Windows / WinUI 3.

Kapan saya harus memigrasikan aplikasi UWP / WinUI 2 ke WinUI 3?

Pengembang UWP seharusnya tidak merasakan tekanan untuk memigrasikan aplikasi mereka ke SDK Aplikasi Windows, jika mereka senang dengan UWP dan set fiturnya. Pilihan terbaik untuk beberapa aplikasi mungkin tidak pernah bermigrasi. Untuk aplikasi yang ingin mendapatkan manfaat dari platform Windows terbaru dan investasi .NET dari Microsoft, aplikasi ini harus mempertimbangkan untuk pindah ke SDK Aplikasi Windows. Lihat Migrasi dari UWP ke SDK Aplikasi Windows).

Kapan saya harus *tidak* memigrasikan aplikasi UWP + WinUI 2 ke WinUI 3?

Sebaiknya terus gunakan UWP jika Anda membangun untuk Xbox, Surface Hub, atau HoloLens.

Apakah WPF tidak digunakan lagi?

Tidak. WPF masih didukung dan menerima beberapa pembaruan fitur juga.

Apakah WinForms tidak digunakan lagi?

Tidak. WinForms masih didukung dan menerima beberapa pembaruan fitur juga.

Apakah Windows Runtime (WinRT) tidak digunakan lagi?

Tidak. WinRT mengacu pada antarmuka biner aplikasi (ABI) yang memungkinkan Anda menginteropsi antara beberapa bahasa. WinRT adalah evolusi COM. SDK Aplikasi Windows menyediakan sebagian besar fungsionalitasnya melalui API WinRT.

Catatan rilis

Di mana saya dapat menemukan catatan rilis untuk SDK Aplikasi Windows?