Pertanyaan yang Sering Diajukan Pengembangan Aplikasi Windows

FAQ ini memberikan jawaban atas pertanyaan umum tentang pengembangan aplikasi Windows, termasuk panduan tentang memilih kerangka kerja yang tepat untuk proyek Anda. Topik yang dibahas meliputi:

  • Memulai dan lanskap pengembangan aplikasi Windows.
  • Pengembangan aplikasi khusus Windows asli dengan WinUI 3, Windows Presentation Foundation (WPF), dan Formulir Windows (WinForms).
  • Windows Software Development Kit (SDK) dan SDK Aplikasi Windows.
  • Menargetkan Windows sebagai bagian dari strategi pengembangan lintas platform Anda.
  • Pengembangan aplikasi hibrid dan web dengan .NET MAUI, Blazor, dan ASP.NET Core.
  • Cara memilih pendekatan sambil memahami investasi Microsoft.

lanskap pengembangan aplikasi Windows

Di mana saya dapat menemukan gambaran umum langsung tentang teknologi pengembangan Windows?

Untuk ulasan bagus tentang pilihan terkini untuk pengembang Windows, tonton episode Windows Dev Chat terbaru, Memilih platform pengembangan ideal Anda yang membahas WinUI, .NET MAUI, React Native, Blazor, dan Progressive Web Apps (PWAs).

Anda juga dapat merujuk ke ringkasan opsi pengembangan aplikasi untuk pengembang Windows.

Mengapa pengembangan aplikasi klien masih penting untuk transformasi digital modern di era layanan cloud?

Di era layanan cloud, pengembangan aplikasi klien tetap penting untuk memberikan interaksi yang responsif dan bermakna pada perangkat pengguna.

Inilah mengapa aplikasi klien penting:

  • Jangkauan perangkat: Aplikasi klien memungkinkan Anda membawa aplikasi Anda langsung ke pengguna di perangkat pilihan mereka.
  • Gateway ke Layanan Cerdas: aplikasi klien sering kali merupakan interaksi pertama yang dimiliki pengguna dengan layanan Anda. Mereka menawarkan antarmuka interaktif yang kaya yang memungkinkan Anda menampilkan fitur cerdas dan membedakan produk Anda dari orang lain.
  • Skalabilitas dengan Integrasi Cloud: Aplikasi klien yang terintegrasi dengan baik dapat disinkronkan dengan mudah dengan layanan cloud di backend, memungkinkan akses data secara real-time dan skalabilitas yang mulus saat basis pengguna Anda bertambah.
  • Peningkatan Produktivitas dan Loyalitas Pengguna: Aplikasi yang dirancang dengan cermat dapat meningkatkan produktivitas dan menjaga pengguna tetap terlibat dengan produk atau layanan Anda dari waktu ke waktu.

Pengembangan aplikasi khusus Windows asli

Apa itu SDK Aplikasi Windows?

SDK Aplikasi Windows menyediakan komponen yang dilayankan secara independen untuk aplikasi desktop Windows, termasuk WinUI, siklus hidup aplikasi, jendela, pemberitahuan, sumber daya, dan API teks. Ini mendukung aplikasi yang berjalan pada Windows 10, versi 1809 dan yang lebih baru, tunduk pada siklus hidup dukungan rilis Windows dan versi SDK Aplikasi Windows.

Apa perbedaan antara SDK Aplikasi Windows dan SDK Windows?

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

SDK Aplikasi Windows menyediakan komponen yang dikirim secara independen dari Windows dan bekerja di seluruh rilis Windows yang didukung hingga Windows 10 versi 1809. Ini termasuk WinUI dan API untuk siklus hidup aplikasi, jendela, pemberitahuan, sumber daya, teks, dan kemampuan lainnya.

SDK Windows menyediakan header, pustaka, metadata, dan alat untuk API sistem operasi seperti kemampuan Win32, WinRT, COM, DirectX, perangkat, dan shell.

SDK Aplikasi Windows tidak menggantikan SDK Windows. Aplikasi yang mengadopsi SDK Aplikasi Windows dapat terus menggunakan API SDK Windows, dan aplikasi WinUI yang biasanya menggunakan keduanya.

Aku membangun tim baru untuk mengembangkan aplikasi khusus Windows. Mengapa saya harus memilih untuk mengembangkan dengan kerangka kerja Windows asli seperti WinUI, WPF, atau WinForms?

Berikut adalah beberapa alasan untuk memilih kerangka kerja Windows asli untuk aplikasi Windows-saja Anda:

  • Performance: Kerangka kerja Windows asli dioptimalkan untuk memanfaatkan perangkat keras Windows modern, memberikan pengalaman pengguna yang cepat dan responsif.
  • Integration: Windows dilengkapi dengan berbagai API yang memungkinkan pengalaman canggih yang hanya tersedia di Windows. Kerangka kerja asli menyediakan integrasi mendalam dengan fitur dan API ini.
  • Pengalaman pengguna asli: Kerangka kerja asli memberikan pengalaman yang konsisten di seluruh perangkat Windows, memastikan bahwa aplikasi Anda terlihat dan berfungsi dengan baik di mana saja.
  • Dukungan offline: Kerangka kerja asli mendukung skenario offline, memungkinkan aplikasi berfungsi bahkan tanpa konektivitas internet.
  • Dukungan dan alat: Microsoft mempertahankan kerangka kerja asli dan menyediakan SDK, dokumentasi, alat penelusuran kesalahan, dan sampel saat ini.
Kerangka kerja yang harus saya gunakan untuk memanfaatkan investasi terbaru Microsoft dalam pengembangan aplikasi Windows?

Jika Anda membangun aplikasi Windows-saja baru, sebaiknya gunakan WinUI. WinUI adalah kerangka kerja UI asli terbaru untuk pengembangan aplikasi Windows dan dirancang untuk bekerja di berbagai perangkat Windows. Ini menyediakan kerangka kerja UI modern dan fleksibel untuk membuat aplikasi Windows yang menarik dan interaktif secara visual. WinUI adalah bagian dari SDK Aplikasi Windows dan bekerja paling baik dengan versi terbaru Windows.

Bisa saya menggunakan SDK Aplikasi Windows /WinUI di aplikasi Windows saya yang ada?

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

Anda dapat memigrasikan UI aplikasi ke WinUI, atau menggunakan Kepulauan WinUI XAML untuk menghosting kontrol SDK Aplikasi Windows di host desktop yang ada yang didukung. Sistem warisan XAML Islands menghosting kontrol XAML UWP dan menggunakan API yang berbeda.

Elemen SDK Aplikasi Windows sering dapat digunakan di aplikasi desktop, tergantung pada bagaimana aplikasi yang ada dibuat. Aplikasi UWP tidak didukung oleh SDK Aplikasi Windows.

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

Lihat Gunakan SDK Aplikasi Windows dalam proyek yang sudah ada untuk informasi selengkapnya.

Aku perlu menggunakan Visual Studio untuk membangun aplikasi WinUI?

Tidak. Build WinUI XAML menggunakan MSBuild, tetapi Anda juga dapat melakukan build dengan .NET SDK dan templat WinUI terkini melalui baris perintah di editor lain. Lihat jalur .NET dan baris perintah.

Visual Studio 2026 memberikan pengalaman pengeditan, penelusuran kesalahan, pembuatan profil, dan Hot Reload XAML terintegrasi terkaya. Gunakan alur kerja yang sesuai dengan persyaratan peralatan Anda.

I mendapatkan kesalahan "Tidak dapat memuat DLL 'Microsoft.ui.xaml.dll'" saat menjalankan aplikasi saya. Bagaimana cara memperbaikinya?

Kesalahan ini biasanya terjadi dalam skenario aplikasi unpackaged di mana runtime SDK Aplikasi Windows belum diinstal pada komputer. Cobalah langkah-langkah berikut:

  • Jika Anda menjalankan aplikasi paket (default yang disarankan), pastikan Anda meluncurkan melalui Visual Studio dengan profil peluncuran MsixPackage dipilih (bukan profil yang dapat dieksekusi biasa). Langkah pengemasan MSIX menginstal komponen runtime yang diperlukan.
  • Jika Anda menjalankan aplikasi tak dipaketkan yang bergantung pada kerangka kerja, instal runtime SDK Aplikasi Windows yang sesuai. Penyebaran mandiri mencakup dependensi SDK Aplikasi Windows.
  • Konfirmasikan bahwa proyek Anda cocok dengan model penyebaran Anda. Untuk aplikasi .NET normal yang tidak dikemas, menetapkan <WindowsPackageType>None</WindowsPackageType> mengaktifkan inisialisasi otomatis runtime SDK Aplikasi Windows. Gunakan API bootstrapper secara langsung hanya ketika Anda memerlukan kontrol eksplisit atas inisialisasi dependensi dinamis.

Lihat aplikasi Deploy yang menggunakan SDK Aplikasi Windows untuk detail selengkapnya tentang persyaratan penyebaran.

Apa perbedaan antara WinUI 3 dan WinUI 2 untuk UWP?

WinUI (sebelumnya disebut sebagai WinUI 3) adalah kerangka kerja UI asli terbaru untuk pengembangan aplikasi Windows. Ini menyediakan kerangka kerja UI modern dan fleksibel untuk membuat aplikasi Windows yang menarik dan interaktif secara visual. WinUI adalah bagian dari SDK Aplikasi Windows dan bekerja paling baik dengan versi terbaru Windows.

WinUI untuk UWP (sebelumnya disebut sebagai WinUI 2) adalah sekumpulan kontrol dan gaya UI yang dibangun di atas UWP. Ini memberikan tampilan dan nuansa modern untuk aplikasi UWP dan dirancang untuk Windows 10.

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

Ya — "Aplikasi WinUI" adalah istilah yang direkomendasikan. Aplikasi WinUI disebut sebagai "aplikasi WinUI" karena WinUI untuk UWP bukan jenis aplikasi tetapi satu set komponen yang digunakan dalam aplikasi UWP.

Dapatkah saya secara bertahap memperbarui aplikasi UWP saya dengan WinUI untuk kontrol UWP ke WinUI dengan secara bertahap mengganti WinUI untuk komponen UWP dengan komponen WinUI?

Tidak. SDK Aplikasi Windows tidak dapat digunakan di aplikasi UWP, dan WinUI untuk UWP tidak dapat dicampur dengan WinUI. Lihat Migrate dari UWP ke SDK Aplikasi Windows.

Seberapa sulit untuk memigrasikan aplikasi UWP ke WinUI?

Memigrasikan komponen UI umumnya mudah (untuk C# dan C++/WinRT). Jika tidak, biaya migrasi terutama bergantung pada:

  1. Project file dan penyesuaian MSBuild: Upaya migrasi bervariasi tergantung pada penggunaan MSBuild tingkat lanjut.
  2. .NET migrasi API: Aplikasi UWP menggunakan .NET Native dapat berpindah ke rilis .NET yang saat ini didukung dengan Native AOT. Modernisasi ini terpisah dari migrasi UI ke WinUI.
  3. Pustaka komponen UI: Pustaka harus memiliki versi yang menargetkan WinUI.
  4. Jika aplikasi UWP ditulis dalam C++/CX yang sekarang digantikan, beberapa port kode sumber diperlukan. Lihat Pindah ke C++/WinRT dari C++/CX.

Untuk informasi selengkapnya, lihat Migrate dari UWP ke SDK Aplikasi Windows.

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

Ya, aplikasi yang ditingkatkan dapat diterbitkan tanpa memperbarui identitas aplikasi. Pengguna versi lama akan diperbarui ke versi baru. Ini hanya berlaku untuk aplikasi desktop. aplikasi Xbox, HoloLens, dan Surface Hub tidak dapat bermigrasi ke WinUI.

Bagaimana cara saya mengemas/mendistribusikan aplikasi WinUI saya?

Lihat Gambaran Umum Penyebaran.

Apakah saya dapat menemukan panduan migrasi SDK Aplikasi Windows?

Lihat Migrate dari UWP ke SDK Aplikasi Windows.

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

Tidak. Kontrol UI dapat dibuat dalam kode. Namun, mewakili UI dalam markup XAML deklaratif memberikan banyak manfaat, termasuk pengalaman pengembang yang ditingkatkan.

  • Migrasi dari UWP ke WinUI: Banyak komponen XAML dan UI dapat digunakan kembali, meskipun beberapa penyesuaian sintaks diperlukan.
  • Migrasi dari WPF ke WinUI: Banyak konsep yang dibawa, tetapi set kontrol dan API berbeda.
Apakah Visual Studio memiliki permukaan desain / perancang UI untuk WinUI?

Tidak saat ini. Gunakan XAML Hot Reload, Live Visual Tree, Live Property Explorer, dan alat runtime terkait untuk memeriksa dan memperbarui XAML saat aplikasi berjalan.

Untuk panduan lengkap alat desain runtime yang tersedia untuk WinUI 3, lihat Alat desain runtime XAML untuk WinUI 3.

Apakah SDK Aplikasi Windows memasukkan WinUI?

Ya. WinUI dikirim sebagai bagian dari SDK Aplikasi Windows.

Does SDK Aplikasi Windows menyertakan WinUI untuk UWP?

Tidak. WinUI untuk UWP adalah bagian dari platform UWP.

Apakah WinUI untuk UWP dan WinUI dibangun di atas teknologi yang sama?

Tidak sepenuhnya benar. Meskipun WinUI awalnya dimulai dari WinUI untuk basis kode UWP, mereka adalah teknologi yang berbeda. Keduanya adalah kerangka kerja UI berbasis XAML yang berfungsi di .NET dan C++, tetapi WinUI untuk UWP dan WinUI tidak kompatibel satu sama lain.

Bisa saya menggunakan WinUI tanpa menggunakan SDK Aplikasi Windows?

Tidak. WinUI dikirim sebagai bagian dari SDK Aplikasi Windows.

Dapatkah saya menggunakan WinUI di aplikasi yang tidak dikemas?

Ya. WinUI dan banyak API SDK Aplikasi Windows berfungsi di aplikasi yang tidak dikemas. Namun, beberapa kemampuan Windows memerlukan identitas paket, dan aplikasi yang tidak dipaket tergantung kerangka kerja harus menginisialisasi runtime SDK Aplikasi Windows. Bandingkan opsi dalam Ringkasan Kemasan dan Fitur yang memerlukan identitas paket.

Apa perbedaan antara Kepulauan XAML dan WinUI?

WinUI adalah kerangka kerja UI yang disertakan dalam SDK Aplikasi Windows. Kepulauan XAML adalah teknik hosting yang memungkinkan aplikasi desktop yang ada menempatkan konten XAML bersama UI dari kerangka kerja lain.

Istilah ini dapat merujuk ke sistem warisan Kepulauan XAML yang menghosting kontrol XAML UWP, atau ke Kepulauan WinUI XAML yang menghosting kontrol SDK Aplikasi Windows di host desktop yang didukung. API, namespace, dan persyaratan host berbeda.

Jika saya membuat aplikasi WinUI, apakah 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.

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

Ya. Lihat materi Apply Mica atau Acrylic di aplikasi desktop untuk Windows 11.

Di mana saya dapat menemukan sampel WinUI?

Lihat Sampel dan sumber daya. Beberapa repositori penting:

Jika saya telah banyak berinvestasi di WPF, haruskah saya terus menggunakan WPF atau mempertimbangkan untuk bermigrasi ke WinUI?

Jika Anda sudah banyak berinvestasi di WPF, Anda dapat terus menggunakannya untuk aplikasi yang ada. WPF adalah kerangka kerja yang matang dan stabil yang banyak digunakan untuk membangun aplikasi desktop Windows.

Gunakan upgrade GitHub Copilot untuk menilai dan memutakhirkan aplikasi WPF .NET Framework ke .NET modern. Tinjau paket yang dihasilkan dan validasi setiap perubahan di aplikasi Anda.

Jika saya membuat aplikasi WPF baru, apakah aplikasi tersebut akan terlihat tanggal dibandingkan dengan aplikasi Windows baru lainnya?

Saat mengembangkan aplikasi WPF dengan .NET 9 atau yang lebih baru, Anda dapat memastikan aplikasi Anda cocok dengan tampilan Windows 11 yang ramping dan modern. Tema Fluent baru untuk WPF memperkenalkan estetika Windows 11 kontemporer, dengan mode Terang/Gelap terintegrasi dan dukungan warna aksen sistem. Ini memodernisasi tampilan aplikasi Anda dan memberikan pengalaman pengguna yang dipolihkan dan kohesif.

Tim saya nyaman membangun aplikasi WinForms, dan sesuai dengan kebutuhan kami. Haruskah kita mempertimbangkan untuk bermigrasi ke WinUI atau kerangka kerja lain?

Jika WinForms memenuhi kebutuhan Anda dan tim Anda nyaman dengan itu, Anda dapat terus menggunakan WinForms untuk aplikasi yang ada. WinForms adalah kerangka kerja yang matang dan stabil yang banyak digunakan untuk pengembangan desktop Windows.

Tim WinForms terus berinvestasi dalam platform. Beberapa area investasi saat ini meliputi:

  • Dukungan asinkron untuk kontrol umum
  • Mode gelap
  • Fleksibilitas tata letak
  • Fitur keamanan desktop seperti clipboard access

Pengembangan aplikasi native lintas platform

Apa alasan untuk membangun aplikasi lintas platform asli yang menargetkan Windows?

Jika Anda menargetkan pengguna di beberapa platform OS, membangun aplikasi lintas platform dengan .NET MAUI atau React Native dapat menawarkan beberapa manfaat:

  • Mencapai: Aplikasi lintas platform menjangkau audiens yang lebih besar di berbagai perangkat dan sistem operasi.
  • Penggunaan kembali kode: Menggunakan kembali kode di seluruh platform mengurangi waktu dan biaya pengembangan. Membangun aplikasi terpisah untuk Windows, Android, iOS, dan macOS bisa sangat mahal.
  • Pengalaman pengguna yang konsisten: Kerangka kerja lintas platform membantu memberikan tampilan dan nuansa yang konsisten di seluruh platform.
  • Integrasi: Aplikasi lintas platform masih dapat diintegrasikan dengan layanan khusus platform untuk memberikan pengalaman yang komprehensif.
Bisa saya yakin bahwa aplikasi .NET MAUI akan berjalan dengan baik di Windows?

Saat Anda membuat aplikasi .NET MAUI untuk Windows, outputnya adalah aplikasi WinUI. Selama pengembangan, .NET MAUI menawarkan pengalaman .NET tunggal di seluruh platform, tetapi menghasilkan kode khusus platform di balik layar. Ini memastikan bahwa aplikasi .NET MAUI berperforma baik di setiap platform dan memberikan pengalaman pengguna asli.

Cara .NET MAUI dapat menyediakan API perangkat asli di setiap platform?

.NET MAUI memberikan pengalaman .NET terpadu di Windows, iOS, Android, dan macOS. Ini menawarkan API lintas platform untuk kemampuan umum seperti penyimpanan, jaringan, dan sensor perangkat. Anda juga dapat memanggil API khusus platform atau menyediakan implementasi khusus untuk setiap platform.

Bisa saya mulai dengan WinUI, dan kemudian mengintegrasikan .NET MAUI jika saya akhirnya ingin menargetkan skenario lintas platform?

Tidak saat ini. Meskipun .NET MAUI menggunakan WinUI saat berjalan di Windows, tim yang mengharapkan untuk menargetkan beberapa platform harus dimulai dengan .NET MAUI atau React Native untuk Desktop.

Tim kami memiliki keterampilan pengembangan front-end web yang kuat. Haruskah kita mempertimbangkan untuk menggunakan React Native untuk Desktop?

Tim dengan pengalaman pengembangan web yang kuat mungkin ingin mempertimbangkan React Native untuk Desktop. Ini termasuk React Native untuk Windows dan macOS. Dengan pendekatan "Pelajari sekali, tulis di mana saja", keterampilan JavaScript, TypeScript, dan React yang ada dapat digunakan untuk membangun Windows asli dan aplikasi macOS.

React Native for Desktop menerjemahkan UI langsung ke elemen asli, memberikan performa dan kemampuan platform yang setara dengan aplikasi native.

Lihat dokumentasi React Native for Desktop untuk memulai.

Apakah ada perangkat Windows lain yang didukung oleh React Native for Desktop?

Aplikasi React Native dapat disebarkan ke semua perangkat yang didukung oleh Windows 10 dan yang lebih baru, termasuk PC, tablet, 2-in-1, Xbox, dan perangkat realitas campuran.

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, UWP disarankan. SDK Aplikasi Windows tidak mendukung platform ini. Untuk pengembangan game, gunakan Kit Pengembangan Game Microsoft.

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

Jika Anda menargetkan hub Windows dan Surface, UWP disarankan.

Pengembangan hibrid dan web

Apa itu aplikasi hibrid, dan mengapa saya harus mempertimbangkan untuk membuatnya?

Aplikasi hibrid memadukan pengembangan aplikasi web dan native terbaik. Intinya dibangun menggunakan teknologi web seperti HTML, CSS, dan JavaScript, dan dibungkus dalam kontainer asli yang memberikan akses pada fitur dan perangkat keras dari platform asli tertentu. Mereka juga dapat didistribusikan melalui toko aplikasi.

Keuntungan utamanya adalah aplikasi hibrid memungkinkan Anda membuat satu aplikasi yang dapat berjalan di beberapa platform asli dan di web, mengurangi waktu dan biaya pengembangan. Contoh platform pengembangan aplikasi hibrid meliputi:

  • Electron untuk aplikasi desktop
  • Ionic untuk aplikasi seluler
  • .NET MAUI Blazor Hybrid untuk aplikasi lintas platform
Cara saya membangun aplikasi web progresif (PWAs) yang terasa asli di Windows?

Lihat Pengembangan Web pada Windows dan Gambaran Umum Aplikasi Web Progresif.

Apa itu adalah aplikasi hibrid Blazor .NET MAUI?

Dengan .NET MAUI, aplikasi Blazor dapat berjalan secara native di Windows, iOS, Android, dan macOS. Ini memungkinkan Anda membuat aplikasi klien hibrid yang menggabungkan komponen Blazor dan .NET MAUI dalam satu aplikasi klien asli, dengan akses penuh ke kemampuan platform asli.

Pelajari lebih lanjut di ASP.NET Core Blazor Hybrid.

Apakah komponen web dari aplikasi hibrid .NET MAUI perlu dibuat dengan Blazor?

Tidak. Dimulai dengan .NET 9, .NET MAUI menyertakan kontrol HybridWebView yang memungkinkan hosting UI berbasis JavaScript lainnya di dalam aplikasi asli.

Ini memungkinkan Anda untuk menghosting aplikasi Angular, React, Vue, atau HTML/JavaScript lainnya di dalam aplikasi .NET MAUI. Kontrol hibrid menyediakan interop antara C# dan JavaScript, sehingga kode C# dapat memanggil fungsi JavaScript dan sebaliknya.

Dapatkah jenis aplikasi asli lainnya menghosting komponen hibrid Blazor?

Ya. aplikasi WPF dan WinForms juga dapat menghosting komponen hibrid Blazor, memungkinkan penambahan antarmuka pengguna web modern ke aplikasi yang ada. Ini tidak didukung untuk aplikasi WPF atau WinForms yang dibangun di .NET Framework.

Apakah seluruh aplikasi saya harus berupa aplikasi hibrid, atau dapatkah saya mencampur dan mencocokkan komponen asli dan hibrid?

Komponen asli dan hibrid dapat dicampur dalam aplikasi. Misalnya, inti aplikasi dapat dibangun dengan komponen .NET MAUI sementara komponen hibrid menyediakan fungsionalitas tambahan. Hal ini memungkinkan penggabungan performa dan kemampuan komponen asli dengan fleksibilitas dan efisiensi biaya komponen hibrid.

Apa pilihan saya untuk membangun aplikasi web berbasis .NET yang terlihat bagus di browser modern di Windows?

Web apps menawarkan jangkauan terluas dari platform aplikasi klien mana pun. Opsi untuk membuat aplikasi web .NET yang indah meliputi:

  • Aplikasi ASP.NET Core dengan Razor Pages
  • aplikasi ASP.NET Core MVC
  • Aplikasi Blazor ASP.NET Core, dengan opsi model hosting:
    • Blazor WebAssembly
    • Blazor Server

Model hosting Blazor sekarang dapat dikonfigurasi di tingkat komponen, memungkinkan skenario seperti menghosting komponen Blazor WebAssembly dalam aplikasi Blazor Server.

Lihat dokumentasi ASP.NET Core untuk detail selengkapnya.

Pilih pendekatan dan pahami investasi Microsoft

Ada begitu banyak opsi kerangka kerja untuk membangun aplikasi yang menargetkan Windows! Bagaimana cara memutuskan?

Windows adalah platform terbuka yang mendukung banyak teknologi. Berikut adalah beberapa kriteria yang dapat membantu Anda memilih platform:

  • Apakah Anda mengembangkan terlebih dahulu untuk Windows atau untuk lintas platform?
  • Bahasa atau keterampilan apa yang sudah Anda miliki — .NET, JavaScript, sesuatu yang lain?
  • Apakah Anda memerlukan akses ke API khusus Windows?
  • Kemampuan kerangka kerja mana yang paling sesuai dengan persyaratan aplikasi Anda?
  • Lihat tabel ini untuk faktor perbandingan tambahan.

Untuk banyak aplikasi bisnis, tim sering memilih berdasarkan keterampilan yang ada dan apa yang paling nyaman digunakan oleh tim.

Bagaimana cara memilih pendekatan pengembangan terbaik untuk aplikasi web saya?

Pertimbangkan hal berikut saat memilih pendekatan pengembangan untuk aplikasi web Anda:

  • Blazor direkomendasikan untuk membangun aplikasi web front-end dengan .NET. Ini memungkinkan Anda membangun front-end dan back-end menggunakan .NET, menghemat waktu dan biaya, dan itu sangat baik untuk aplikasi perusahaan.
  • JavaScript web apps masih masuk akal jika Anda ingin memanfaatkan keterampilan JavaScript yang ada atau perlu berintegrasi dengan pustaka atau kerangka kerja JS yang dibuat.
  • Aplikasi yang ada yang menggunakan kerangka kerja lama seperti Formulir Web, MVC, atau Halaman Razor tetap didukung dan dapat terus dikembangkan dan dikelola.
Siapa yang membangun aplikasi dengan WinUI hari ini?

Banyak pelanggan membangun dengan WinUI saat ini, termasuk Adobe dan Apple:

Microsoft juga telah membangun banyak aplikasi WinUI, seperti Windows 11 File Explorer dan aplikasi Foto.

Who membangun aplikasi .NET MAUI hari ini?

Banyak pelanggan, termasuk Microsoft, membangun aplikasi lintas platform dengan .NET MAUI. Misalnya, aplikasi seluler Microsoft Azure dibuat menggunakan .NET MAUI.

Lihat lebih lanjut tentang pameran pelanggan .NET.

Who membangun aplikasi WPF hari ini?

Sebagian besar UI Microsoft Visual Studio dibangun dengan WPF. IDE Visual Studio itu sendiri adalah contoh utama dari aplikasi WPF berkinerja tinggi yang kompleks.

Siapa yang membangun aplikasi Blazor hari ini?

Sistem maskapai penerbangan FlightPulse dari GE Digital menggunakan Blazor untuk konfigurasi backend dari semua yang dilihat pilot, membawa data sensor dan analisis langsung ke pilot untuk meningkatkan keselamatan dan efisiensi.

Lihat selengkapnya Blazor customer stories di situs .NET.

Pilihan bahasa (.NET vs C++)

Haruskah saya menggunakan C# atau C++ untuk aplikasi Windows saya?

Gunakan C# (.NET) dalam banyak kasus. C# menawarkan pengembangan yang lebih cepat, keamanan memori, pustaka yang kaya, dan peralatan yang sangat baik. Sebagian besar aplikasi Windows — termasuk aplikasi WinUI 3, WPF, WinForms, dan .NET MAUI — paling baik dibuat dengan C#.

Gunakan C++ saat Anda memerlukan akses perangkat keras langsung, overhead runtime minimal, atau interop dengan basis kode C++ yang ada. Skenario C++ umum termasuk mesin game (DirectX), driver, utilitas tingkat sistem, dan komponen penting performa.

Faktor C# (.NET) C++
Kecepatan pengembangan ✅ Lebih cepat — memori terkelola, ekosistem yang kaya ⚠️ Lebih lambat — manajemen sumber daya manual
Kinerja waktu proses ✅Sangat cocok untuk .NET modern (AOT, Span<T>) ✅ Semaksimal mungkin — tanpa jeda GC
Keamanan memori ✅ Sampah yang dikumpulkan ⚠️ Manual - risiko kebocoran dan kerentanan
akses API Windows ✅ Melalui proyeksi C#/WinRT ✅ Melalui proyeksi C++/WinRT
Dukungan WinUI 3 ✅ Dukungan penuh ✅ Dukungan penuh melalui C++/WinRT
Multiplatform ✅.NET berjalan di Windows, Linux, macOS ✅ Dengan kode khusus platform
Paling cocok untuk Aplikasi bisnis, CRUD, layanan, aplikasi yang berfokus pada UI Game, driver, alat bantu sistem, latensi rendah

Anda juga dapat mencampur keduanya: membuat aplikasi di C# dan memanggil kode asli kritis performa melalui P/Invoke (CsWin32) atau komponen C++/WinRT.

Bagaimana cara memanggil WIN32 API dari C#?

Gunakan CsWin32, generator kode sumber yang membuat deklarasi P/Invoke yang aman terhadap tipe saat proses build. Anda menambahkan Microsoft.Windows.CsWin32 paket NuGet, mencantumkan API yang NativeMethods.txt Anda butuhkan dalam file, dan memanggilnya melalui kelas yang dihasilkan PInvoke .

CsWin32 menggantikan deklarasi tulisan [DllImport] tangan dan bekerja dalam proyek C# apa pun — WinUI, WPF, WinForms, atau konsol. Lihat Memanggil API Win32 dari aplikasi C# Windows (CsWin32) untuk panduan langkah demi langkah.

Apa itu C++/WinRT dan kapan saya harus menggunakannya?

C++/WinRT adalah proyeksi bahasa C++17 standar untuk API Windows Runtime. Gunakan saat membangun aplikasi Windows di C++ yang menggunakan atau menulis API WinRT. Ini menggantikan C++/CX dan Windows Runtime C++ Template Library (WRL).

Pilih C++/WinRT saat:

  • Anda sedang membangun aplikasi C++ WinUI 3
  • Anda perlu menulis komponen Windows Runtime yang digunakan oleh bahasa lain
  • Anda melakukan porting dari C++/CX
Apa itu C#/WinRT dan kapan saya membutuhkannya?

C#/WinRT menyediakan dukungan proyeksi WinRT untuk C#. Dalam kebanyakan hal, Anda tidak berinteraksi dengannya secara langsung — aplikasi .NET yang ditujukan untuk Windows secara otomatis memperoleh akses ke API WinRT melalui moniker kerangka kerja target (TFM). Anda memerlukan C#/WinRT secara eksplisit saat menulis komponen Windows Runtime di C# atau saat membuat rakitan interop untuk komponen WinRT pihak ketiga.

Pengemasan, penyebaran, dan pembaruan

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

Aplikasi paket berisi file, identitas, dan informasi penyebarannya dalam paket seperti MSIX. Aplikasi yang tidak dikemas menggunakan proses penginstal atau penyebaran di luar sistem paket Windows dan tidak memiliki identitas paket secara default. Aplikasi yang dikemas di lokasi eksternal menggunakan paket identitas berukuran kecil dengan tetap mempertahankan biner yang berada di lokasi eksternal serta installer dan proses pembaruannya yang sudah ada.

Lihat Ikhtisar pengemasan untuk persyaratan dan kompromi.

Apakah saya memerlukan identitas paket?

Ini tergantung pada fitur Windows yang digunakan aplikasi Anda. Beberapa eksekusi latar belakang, pemberitahuan push, ekstensi shell, asosiasi, dan skenario AI Windows memerlukan identitas paket. Kemampuan SDK Aplikasi Windows lainnya, termasuk WinUI dan pemberitahuan aplikasi lokal, dapat berfungsi tanpanya.

Lihat Fitur yang memerlukan identitas paket. Jika Anda memerlukan identity tetapi harus tetap mempertahankan installer yang sudah ada, pertimbangkan pengemasan dengan lokasi eksternal.

Apa perbedaan antara penyebaran yang bergantung pada kerangka kerja dan mandiri?

Aplikasi yang bergantung pada kerangka kerja menggunakan paket runtime SDK Aplikasi Windows yang diinstal secara terpisah pada perangkat. Ini mengurangi ukuran penyebaran aplikasi. Aplikasi mandiri menyertakan isi paket SDK Aplikasi Windows Framework bersama aplikasi, yang menambah ukuran deployment tetapi memungkinkan aplikasi itu sendiri menangani komponen framework tersebut.

API yang bergantung pada paket MSIX tambahan, seperti paket Singleton, dapat memerlukan penyebaran terpisah atau pemeriksaan dukungan runtime bahkan di aplikasi mandiri. Pengemasan dan penerapan runtime adalah dua keputusan yang terpisah. Lihat gambaran umum penyebaran SDK Aplikasi Windows.

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

Aplikasi WinUI dapat dikirimkan melalui Store, file .appinstaller, atau melalui 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 harus menyediakan mekanisme pembaruan mereka sendiri.

Bisa saya menggunakan SDK Aplikasi Windows tanpa menggunakan MSBuild?

Proyek WinUI XAML memerlukan MSBuild, tetapi Visual Studio tidak diperlukan. Anda dapat menggunakan templat SDK dan WinUI .NET untuk menjalankan MSBuild melalui dotnet build dari baris perintah. SDK Aplikasi Windows komponen yang tidak menggunakan WinUI juga dapat diintegrasikan ke dalam proyek desktop berbasis MSBuild yang didukung.

Windows AI (Kecerdasan Buatan)

Bagaimana cara memilih antara API AI Windows, Foundry Local, dan Windows ML?

Gunakan API AI Windows untuk kemampuan AI yang siap digunakan dan dikelola Windows. Gunakan Foundry Local untuk menemukan, mengunduh, dan menjalankan model bahasa dan ucapan yang didukung secara lokal. Gunakan Windows ML untuk menjalankan model ONNX kustom dengan penyedia eksekusi untuk perangkat keras CPU, GPU, dan NPU yang tersedia.

Perangkat keras, versi Windows, identitas paket, model, dan persyaratan distribusi bervariasi. Periksa persyaratan saat ini untuk API atau runtime yang Anda pilih alih-alih dengan asumsi setiap kemampuan AI Windows tersedia di setiap PC.

Apa yang harus saya pertimbangkan sebelum mengirimkan fitur yang dibantu AI?

Tentukan penggunaan dan batasan yang dimaksudkan fitur, evaluasi kualitas dan keamanan dengan data representatif, ungkapkan perilaku AI jika sesuai, lindungi data pengguna, dan berikan fallback saat model atau perangkat keras yang diperlukan tidak tersedia. Lihat Pengembangan AI generatif yang bertanggung jawab pada Windows.

Performa dan pengoptimalan

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

Lihat Windows pengembangan aplikasi - Praktik terbaik dan Windows gambaran umum performa dan dasar-dasar aplikasi.

Compatibility

Apa pengguna saya harus memperbarui Windows untuk menggunakan aplikasi WinUI saya?

SDK Aplikasi Windows aplikasi dapat berjalan pada edisi Windows 10 yang didukung, versi 1809, dan yang lebih baru, tetapi API individu dan fitur aplikasi dapat memerlukan rilis atau perangkat keras Windows yang lebih baru. Untuk dukungan produksi, perangkat harus menjalankan edisi dan versi Windows yang masih didukung, dan aplikasi harus menggunakan rilis SDK Aplikasi Windows yang didukung dengan pembaruan layanan saat ini. Lihat dukungan untuk SDK Aplikasi Windows dan Saluran rilis.

Dapatkah saya menargetkan Arm64 dengan aplikasi WinUI saya?

Ya. Bangun aplikasi Arm64 asli untuk performa dan efisiensi terbaik. Untuk basis kode C++ besar dengan dependensi x64, Arm64EC memungkinkan Anda memigrasikan modul secara bertahap. Windows 11 di Arm juga dapat menjalankan banyak aplikasi x86 dan x64 yang ada melalui emulasi Prism, tetapi Anda harus menguji performa dan kompatibilitas pada perangkat Arm yang representatif.

Penghentian dan migrasi

Apakah UWP/WinUI untuk UWP tidak digunakan lagi?

Tidak. UWP dan WinUI untuk UWP tetap didukung dan menerima bug, keandalan, dan perbaikan keamanan. Namun, WinUI dan SDK Aplikasi Windows adalah jalur yang direkomendasikan untuk aplikasi desktop Windows tujuan umum baru dan menerima sebagian besar investasi platform baru.

Dukungan UWP untuk .NET modern dengan Native AOT umumnya tersedia dan merupakan jenis proyek C# UWP default pada Visual Studio 2026. Memindahkan aplikasi UWP yang ada dari .NET Native ke .NET modern adalah langkah modernisasi terpisah dari memigrasikan UI-nya ke WinUI. Lihat Memodernisasi aplikasi UWP Anda dengan .NET dan Native AOT.

Kapan saya harus memigrasikan UWP / WinUI untuk aplikasi UWP ke WinUI?

Pengembang UWP tidak boleh merasa tertekan untuk bermigrasi jika mereka puas dengan UWP dan set fiturnya - untuk banyak aplikasi, pilihan yang tepat mungkin adalah tetap berada di UWP.

Aplikasi yang ingin mendapatkan manfaat dari platform Windows terbaru dan investasi .NET harus mempertimbangkan untuk pindah ke SDK Aplikasi Windows. Lihat Migrate dari UWP ke SDK Aplikasi Windows.

Kapan saya tidak harus memigrasikan aplikasi UWP + WinUI ke WinUI?

Lanjutkan menggunakan UWP jika Anda membangun untuk Xbox, Surface Hub, atau HoloLens.

Apakah WPF sudah tidak digunakan lagi?

Tidak. WPF didukung, direkomendasikan, dan terus menerima pembaruan fitur. Lihat peta strategi WPF pada GitHub.

Apakah WinForms tidak digunakan lagi?

Tidak. WinForms didukung dan terus menerima pembaruan fitur. Lihat roadmap Formulir Windows pada GitHub.

Apakah Windows Runtime (WinRT) sudah usang?

Tidak. WinRT adalah antarmuka biner aplikasi (ABI) yang memungkinkan interop di beberapa bahasa. WinRT adalah evolusi COM, dan SDK Aplikasi Windows menyediakan sebagian besar fungsionalitasnya melalui API WinRT.

Catatan rilis

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

Catatan rilis terbaru dapat ditemukan di halaman Apa yang baru .