Bagikan melalui


Pilih kerangka kerja aplikasi Anda

Artikel ini berisi informasi yang Anda butuhkan untuk mulai membangun aplikasi untuk Windows dan memilih kerangka kerja UI yang sesuai dengan set keterampilan dan skenario Anda.

Windows menawarkan berbagai bahasa, kerangka kerja, dan alat untuk membangun aplikasi, termasuk WinUI, React Native untuk Desktop, WPF, C++, C#, .NET, dan berbagai kerangka kerja lintas platform. Di sini, kami menyediakan informasi untuk membantu Anda memutuskan opsi mana yang terbaik untuk Anda.

WinUI

Logo WinUI.

Gunakan WinUI dan Windows App SDK untuk membuat aplikasi yang terlihat hebat dan memanfaatkan rilis Windows terbaru. Jika Anda baru menggunakan pengembangan Windows, atau mulai mengerjakan aplikasi Windows baru, WinUI menyediakan sumber daya yang Anda butuhkan untuk membuat aplikasi hebat untuk Windows 11.

WinUI adalah lapisan antarmuka pengguna berbasis markup XAML yang berisi kontrol dan gaya modern untuk membangun aplikasi Windows. Sebagai lapisan UI asli untuk SDK Aplikasi Windows, ini mewujudkan Desain Fasih, memberikan setiap aplikasi Windows nuansa yang dipolihkan yang diharapkan pelanggan.

Catatan

SDK Aplikasi Windows adalah sekumpulan komponen dan alat pengembang baru yang mewakili evolusi terbaru di platform pengembangan aplikasi Windows. Windows App SDK menyediakan sekumpulan API dan alat terpadu yang dapat digunakan aplikasi desktop di Windows 11 dan downlevel ke Windows 10, versi 1809, dapat digunakan dengan cara yang konsisten.

Meskipun WinUI adalah lapisan UI asli, Anda dapat menggunakan SDK Aplikasi Windows dengan aplikasi WPF, WinForms, atau Win32. Jika Anda mengembangkan aplikasi untuk Windows sebelumnya, tetapi ingin mulai menggunakan Windows App SDK di aplikasi yang sudah ada, lihat Panduan khusus kerangka kerja.

React Native untuk Desktop

React Native adalah platform pengembangan yang memungkinkan pembuatan aplikasi lintas platform. React Native untuk Desktop mencakup React Native untuk Windows dan macOS, menghadirkan dukungan React Native ke Windows SDK. React Native for Desktop memungkinkan Anda menggunakan JavaScript untuk membangun aplikasi Windows asli untuk semua perangkat yang didukung oleh Windows 10 dan Windows 11. Dukungan ini termasuk PC, tablet, 2-in-1s, Xbox, perangkat Mixed Reality, dan banyak lagi.

Dengan React Native for Desktop, Anda menulis sebagian besar atau semua kode aplikasi Anda di JavaScript atau TypeScript. Kerangka kerja ini menghasilkan aplikasi UWP XAML asli. Jika aplikasi Anda perlu memanggil API platform, Anda biasanya dapat melakukannya melalui salah satu dari banyak modul komunitas. Jika modul belum ada, Anda dapat dengan mudah menulis modul asli untuk mengeksposnya.

Berikut adalah beberapa alasan untuk memilih React Native for Desktop:

  • Anda ingin berbagi kode di seluruh platform sebanyak mungkin, atau Anda memiliki properti web yang ingin Anda bagikan kodenya.
  • Peningkatan produktivitas pengembang dan perulangan dalam, berkat refresh cepat.
  • Dasar-dasar aplikasi Anda (performa, aksesibilitas, internasionalisasi) sama baiknya dengan aplikasi UWP asli.
  • Anda memiliki pengalaman dengan dan preferensi untuk JavaScript atau TypeScript.
  • Anda ingin memanfaatkan pustaka khusus JavaScript di npmjs.com, dan banyak pustaka asli juga.
  • Aplikasi Anda menggunakan kontrol asli, tampilan visual, animasi, dan warna, sehingga terasa terintegrasi ke dalam bahasa desain yang digunakan di Windows. Selain itu, Aplikasi React Native for Desktop tidak perlu membahayakan kumpulan API yang dapat mereka panggil. Kerangka kerja ini memungkinkan Anda memanggil API platform serta menulis manajer tampilan dan modul asli Anda sendiri.
  • Momentum komunitas yang besar dan berkembang, dengan banyak modul komunitas.

Untuk informasi selengkapnya tentang React Native untuk Desktop, lihat tautan berikut ini:

WPF (Windows Presentation Foundation)

WPF adalah kerangka kerja yang dibuat dengan baik untuk aplikasi desktop Windows dengan akses ke .NET atau .NET Framework. Seperti WinUI, ia juga menggunakan markup XAML untuk memisahkan UI dari kode. WPF menyediakan serangkaian fitur pengembangan aplikasi komprehensif yang mencakup kontrol, pengikatan data, tata letak, grafik 2D dan 3D, animasi, gaya, templat, dokumen, media, teks, dan tipografi. WPF adalah bagian dari .NET, sehingga Anda dapat membangun aplikasi yang menggabungkan elemen lain dari .NET API.

Selain itu, Anda sekarang dapat mengintegrasikan lingkungan kotak pasir ke dalam aplikasi WPF paket Anda, memberikan lapisan keamanan tambahan. Peningkatan ini membutuhkan sedikit atau tidak ada perubahan pada kode Anda, berkat fitur keamanan Isolasi Aplikasi Win32 yang baru.

Petunjuk / Saran

Jika Anda sudah berinvestasi di WPF, Anda dapat terus menggunakannya dan memanfaatkan opsi modernisasi di .NET 9. Anda dapat membangun aplikasi yang mengetahui bahwa Microsoft terus berinvestasi di WPF. Lihat FAQ pengembang Windows untuk informasi selengkapnya.

Jika Anda memiliki aplikasi WPF .NET, Anda juga memiliki akses ke fitur platform Windows modern dan API yang disediakan oleh SDK Aplikasi Windows. Untuk informasi selengkapnya, lihat Menggunakan SDK Aplikasi Windows di aplikasi WPF dan Memodernisasi aplikasi desktop Anda.

Petunjuk / Saran

Jika Anda memerlukan bantuan lebih lanjut untuk memutuskan kerangka kerja mana yang merupakan pilihan terbaik untuk aplikasi Anda, lihat memilih kerangka kerja aplikasi terbaik untuk modul pelatihan proyek pengembangan Windows.

Opsi platform asli lainnya

Banyak aplikasi untuk Windows ditulis menggunakan Win32, Formulir Windows, atau UWP. Masing-masing framework ini didukung dan terus menerima perbaikan bug, keandalan, dan keamanan, tetapi tingkat investasi yang berbeda-beda untuk fitur dan gaya baru. Untuk informasi selengkapnya tentang jenis aplikasi ini, lihat tab berikut.

Aplikasi desktop Win32 (juga terkadang disebut aplikasi desktop klasik) adalah jenis aplikasi asli untuk aplikasi Windows asli yang memerlukan akses langsung ke Windows dan perangkat keras. Akses ini menjadikan Win32 sebagai jenis pilihan aplikasi untuk aplikasi yang membutuhkan tingkat performa tertinggi dan akses langsung ke perangkat keras sistem.

Dengan menggunakan API Win32 dengan C++, Anda dapat mencapai tingkat performa dan efisiensi tertinggi. Anda mengambil lebih banyak kontrol platform target dengan kode yang tidak dikelola daripada yang dimungkinkan pada lingkungan runtime terkelola seperti WinRT dan .NET. Namun, menjalankan tingkat kontrol atas eksekusi aplikasi Anda membutuhkan perawatan dan perhatian yang lebih besar untuk mendapatkan yang benar, dan memperdagangkan produktivitas pengembangan untuk performa runtime.

Berikut adalah beberapa sorotan dari apa yang ditawarkan Win32 API dan C++ untuk memungkinkan Anda membangun aplikasi berkinerja tinggi.

  • Pengoptimalan tingkat perangkat keras, termasuk kontrol ketat atas alokasi sumber daya, masa pakai objek, tata letak data, perataan, pengemasan byte, dan banyak lagi.
  • Akses ke set instruksi berorientasi performa seperti SSE dan AVX melalui fungsi intrinsik.
  • Pemrograman generik yang efisien dan aman jenis dengan menggunakan templat.
  • Kontainer dan algoritma yang efisien dan aman.
  • DirectX, khususnya Direct3D dan DirectCompute.
  • Gunakan C++/WinRT untuk membuat aplikasi Win32 desktop modern dengan akses kelas satu ke API Windows Runtime (WinRT).

Selain itu, Anda sekarang dapat mengintegrasikan lingkungan kotak pasir ke dalam aplikasi Win32 Anda, memberikan lapisan keamanan tambahan. Peningkatan ini membutuhkan sedikit atau tidak ada perubahan pada kode Anda, berkat fitur keamanan Isolasi Aplikasi Win32 yang baru.

Anda juga memiliki akses ke fitur platform Windows modern dan API yang disediakan oleh SDK Aplikasi Windows. Untuk informasi selengkapnya, lihat Menggunakan SDK Aplikasi Windows dalam proyek yang sudah ada dan Memodernisasi aplikasi desktop Anda.

Opsi lintas platform lainnya

Jika Anda memerlukan aplikasi Anda untuk menjadi lintas platform, selain React Native for Desktop, pertimbangkan .NET MAUI, Blazor Hybrid, atau Progressive Web App (PWA). Banyak pilihan lain yang tersedia (berikut adalah daftar opsi populer), tetapi opsi ini adalah titik awal yang baik.

.NET MAUI memanfaatkan kekuatan WinUI di Windows, sekaligus mengaktifkan eksekusi pada sistem operasi lainnya. Blazor Hybrid memadukan kerangka kerja klien asli desktop dan seluler dengan .NET dan Blazor. Opsi lintas platform lainnya, Progressive Web Apps (PWAs), adalah situs web yang berfungsi seperti terinstal, aplikasi asli di Windows dan platform lain yang didukung, sambil berfungsi seperti situs web biasa di browser.

Untuk informasi selengkapnya, lihat tab berikut ini.

.NET Multi-platform App UI (MAUI) adalah kerangka kerja lintas platform sumber terbuka untuk membangun aplikasi Android, iOS, macOS, dan Windows. Dengan .NET MAUI, Anda dapat memanfaatkan UI asli dan layanan setiap platform dari satu basis kode .NET. Karena .NET MAUI mendukung pengalaman asli platform, ia menggunakan WinUI dan SDK Aplikasi Windows sehingga aplikasi mendapatkan pengalaman pengguna terbaru di Windows. Pendekatan ini memberi aplikasi Anda akses ke semua yang Anda dapatkan dengan WinUI ditambah kemampuan untuk menjangkau platform lain.

.NET MAUI untuk Windows adalah pilihan yang bagus jika Anda:

  • Ingin berbagi kode .NET sebanyak mungkin di seluruh aplikasi seluler dan desktop.
  • Ingin mengirimkan aplikasi Anda di luar Windows ke target desktop dan seluler lainnya dengan pengalaman platform asli.
  • Ingin menggunakan C# dan/atau XAML untuk membangun aplikasi lintas platform.
  • Menggunakan Blazor untuk pengembangan web dan ingin menyertakan semua atau sebagiannya dalam aplikasi seluler atau desktop.

Untuk informasi selengkapnya tentang .NET MAUI, lihat tautan berikut ini:

Perbandingan fitur kerangka kerja pengembangan aplikasi

Anda memiliki banyak opsi untuk mengembangkan aplikasi untuk Windows. Opsi terbaik untuk Anda tergantung pada persyaratan aplikasi Anda, kode yang ada, dan keakraban Anda dengan teknologi. Tabel berikut mencantumkan kerangka kerja pengembangan aplikasi paling populer yang tersedia di Windows dan fitur yang didukung oleh setiap kerangka kerja.

Fitur .NET MAUI Blazor Hibrid React Native untuk Desktop UWP XAML (Windows.UI.Xaml) Win32 (MFC atau ATL) Formulir Windows WinUI 3 WPF (Windows Presentation Foundation)
Bahasa C# C# JavaScript, TypeScript C#, C++, Visual Basic C++, Karat C#, Visual Basic C#, C++ C#, Visual Basic
Bahasa UI XAML/Kode Pisau cukur JSX XAML Kode Kode XAML XAML
Perancang UI
(seret & jatuhkan)
Tidak didukung Tidak didukung Tidak didukung Dukungan Tidak didukung Dukungan Tidak didukung Dukungan
Penelusuran kesalahan UI Isi Ulang Panas Isi Ulang Panas Refresh Cepat Isi Ulang Panas - Isi Ulang Panas Isi Ulang Panas Isi Ulang Panas
Desain Yang Fasih Dukungan Dukungan Dukungan Didukung (melalui WinUI 2) Tidak didukung Tidak didukung Dukungan Tidak didukung
.JARING .JARING .JARING T/A .NET Core & .NET Asli T/A Kerangka Kerja .NET & .NET .JARING Kerangka Kerja .NET & .NET
SDK Aplikasi Windows Didukung (info selengkapnya) Didukungmelalui MAUI Didukung (info selengkapnya) Tidak didukung Dukungan Didukung (info selengkapnya) Dukungan Didukung (info selengkapnya)
Bagus untuk disentuh Dukungan Dukungan Dukungan Dukungan Tidak didukung Tidak didukung Dukungan Tidak didukung
Lintas platform Dukungan Dukungan Dukungan Tidak didukung Tidak didukung Tidak didukung Tidak didukung Tidak didukung
Aplikasi Xbox/HoloLens Tidak didukung Tidak didukung Dukungan Dukungan Tidak didukung Tidak didukung Tidak didukung Tidak didukung
Sandboxing (AppContainer) Tidak didukung Tidak didukung Dukungan Dukungan Tidak didukung Tidak didukung Tidak didukung Tidak didukung
Saat ini didukung Dukungan Dukungan Dukungan Dukungan Dukungan Dukungan Dukungan Dukungan
Menerima pembaruan Dukungan Dukungan Dukungan Didukung (keamanan &bugfix) Dukungan Dukungan Dukungan Dukungan
Peta strategi GitHub GitHub GitHub N/a N/a GitHub GitHub GitHub

Pelajari selengkapnya tentang masing-masing opsi ini:

Langkah berikutnya