TOC

This article has been localized into Indonesian by the community.

Tentang WPF:

Perbedaan WPF dan WinForms

Pada bab sebelumnya, kita berbicara tentang apa itu WPF dan sedikit tentang WinForms. Pada bab ini, kita akan mencoba untuk membandingkan keduannya, karena keduanya memiliki tujuan yang sama, terdapat BANYAK perbedaan antara mereka. Apabila anda tidak pernah bekerja dengan WinForms sebelumnya, terutama jika WPF merupakan kerangka kerja GUI pertama anda, anda dapat melewatkan bab ini, namun jika anda penasaran dengan perbedaannya maka lanjutkan membaca.

Perbedaan utama yang paling penting antara WinForms dan WPF adalah pada faktanya ketika WinForms secara simpel hanya sebuah layer diatas kontrol Windows yang standar (contoh: Textbox), WPF dibuat dari nol dan tidak bergantung pada kontrol Windows standar pada hampir semua situasi. Ini mungkin terlihat seperti perbedaan sepele, namun sebenarnya tidak, dan pasti akan terlihat jika anda pernah berkerja pada kerangka kerja yang bergantung pada Win32/WinAPI.

Contoh bagusnya adalah sebuah tombol dengan gambar dan teks yang menyertainya. Ini bukan merupakan kontrol Windows biasa, sehingga WinForms tidak menyediakan hal tersebut. Sehingga anda diharuskan untuk menggambar gambar tersebut sendiri, mengimplementasikan tombol anda sendiri yang dapat mendukung gambar atau menggunakan kontrol-buatan-pihak-lain. Dengan WPF, sebuah tombol dapat mengandung apapun karena tombol secara esensial merupakan sebuah garis batas dengan konten dan berbagai kondisi (cth: untouched, hovered, pressed). Tombol pada WPF terlihat sederhana, seperti kontrol WPF lainnya, yang mana artinya kontrol WPF dapat mengandung kontrol-kontrol lain di dalamnya. Anda ingin tombol dengan gambar dan teks didalamnya? Tinggal letakkan kontrol Image dan TextBlock didalam sebuah tombol dan beres! Anda tidak akan mendapatkan fleksibilitas semacam ini pada kontrol standar WinForms, yang mana inilah mengapa terdapat pasar besar untuk implementasi sederhana dari kontrol seperti tombol dengan gambar dan lainnya.

Kekurangan dari fleksibilitas ini adalah terkadang anda harus bekerja lebih keras untuk mendapatkan sesuatu yang dengan mudah jika menggunakan WinForms, karena hanya dibuat untuk skenario yang anda butuhkan. Setidaknya seperti itu rasanya pada awalnya, dimana anda akan membuat pola kode untuk membuat ListView dengan gambar and teks yang sejajar, sesuatu yang WinForms ListViewItem dapat lakukan dengan hanya satu baris kode.

Ini hanya satu perbedaan, namun ketika anda bekerja dengan WPF, anda akan menyadari bahwa pada faktanya, alasan yang mendasari perbedaan-perbedaan lainnya - WPF hanya melakukan sesuai sesuai caranya, lebih baik maupun lebih buruk. Anda tidak perlu lagi terkekang untuk melakukan sesuatu dengan cara Windows, namun untuk mendapatkan fleksibilitas semacam ini, anda harus bekerja lebih keras ketika benar-benar hanya berniat untuk melakukan sesuatu dengan cara Windows.

Dibawah ini merupakan daftar kelebihan dari WPF dan WinForms. Ini seharusnya memberikan anda ide yang lebih baik terhadap apa yang akan anda hadapi.

Kelebihan WPF

  • Lebih baru dan lebih cocok dengan standar saat ini.
  • Microsoft menggunakan WPF untuk banyak aplikasi baru (contoh: Visual Studio)
  • Lebih fleksible, jadi anda dapat melakukan lebih banyak tanpa harus menulis ataupun membeli kontrol baru.
  • Ketika anda perlu menggunakan kontrol pihak ketiga, pengembang kontrol tersebut akan lebih berfokus pada WPF karena WPF lebih baru.
  • XAML mempermudah membuat dan mengedit GUI anda, dan memungkinkan pekerjaan untuk dipisah antara desainer (XAML) dan programmer (C#, VB.NET, dll)
  • Databinding, yang memungkinkan anda untuk mendapatkan pemisahan antara data dan layout yang lebih bersih.
  • Menggunakan akselerasi perangkat keras untuk menggambar GUI untuk performa yang lebih baik.
  • Memungkinkan untuk membuat antarmuka pengguna baik untuk aplikasi windows maupun aplikasi web.

Kelebihan WinForms

  • Lebih tua sehingga telah banyak dicoba dan teruji.
  • Sudah tersedia banyak kontrol pihak ketiga yang dapat anda beli atau dapatkan secara gratis.
  • Designer di Visual Studio masih dalam hal penulisan, lebih baik WinForms daripada WPF, dimana anda harus bekerja lebih banyak dengan WPF.