Breaking

Showing posts with label WinForms. Show all posts
Showing posts with label WinForms. Show all posts

Sunday, December 11, 2016

December 11, 2016

Windows Presentation Foundation Vs Windows Forms


Dari sekian banyak lingkungan pengembang untuk platform windows beberapa pengembang mungkin akan memilih .NET sebagai framework untuk membuat aplikasi, selain kemudahan yang diberikan dalam proses pembuatan aplikasi dan banyaknya komponen pihak ketiga yang dapat Anda gunakan dalam proyek Anda. Framework .NET sendiri memliki beberapa GUI Framework yang berbeda.

Tapi apa itu GUI Framework? GUI adalah singkatan dari Graphical User Interface, dan Anda mungkin melihatnya sekarang. Windows memiliki GUI untuk bekerja dengan PC Anda, dan browser yang Anda gunakan untuk membaca artikel ini memiliki GUI yang memungkinkan Anda untuk menjelajahi web.

Sebuah GUI Framework memungkinkan Anda untuk membuat aplikasi dengan berbagai elemen GUI, seperti label, teks dan lain sebagainya. Tanpa GUI Framework Anda harus membuat elemen antar muka ini secara manual dan menangani semua skenario interaksi pengguna seperti input teks dan mouse. Ini pekerjaan yang sangat banyak, selain membuat proses aplikasi Anda juga harus membuat semua elemen GUI dan penanganan interkasinya secara manual, jadi sebagian besar pengembang akan lebih memilih untuk menggunakan GUI Framework yang akan melakukan semua pekerjaan dasar dan memungkinkan pengembang untuk fokus pada pembuatan aplikasi.

Dari beberapa GUI Framework yang disebutkan sebelumnya, yaitu WPF (Windows Presentation Foundation) dan Windows Forms, WPF merupakan GUI Framework terbaru dari Microsoft. Terdapat beberapa perbedaan diantara kedua GUI Framework ini namun tujuannya adalah sama yaitu untuk mempermudah pembuatan aplikasi dengan menggunakan komponen GUI yang baik.

Perbedaan yang paling penting antara WinForms dan WPF adalah fakta bahwa WinForms hanyalah sebuah lapisan di atas kontrol standar Windows (misalnya TextBox), sedangkan WPF dibangun dari awal dan tidak bergantung pada kontrol standar Windows. Hal ini mungkin tampak seperti perbedaan yang halus, tetapi sebenarnya tidak, yang pasti Anda akan melihat jika Anda pernah bekerja dengan framework yang bergantung pada Win32 / WinAPI.

Sebuah contoh yang bagus dari hal ini adalah tombol dengan gambar dan teks di atasnya. Ini bukan kontrol Windows standar, sehingga WinForms tidak menawarkan kemungkinan ini. Sebaliknya Anda harus membuat gambar sendiri, menerapkan tombol Anda sendiri yang mendukung gambar atau menggunakan kontrol pihak ke-3. Dengan WPF, tombol dapat berisi apapun karena tombol dasarnya hanyalah sebuah garis batas dengan konten dan berbagai state/keadaan (mis untouched, hovered, pressed). Tombol di WPF kurang-lebih, seperti kontrol WPF yang lain, yang berarti bahwa tombol dapat berisi berbagai kontrol lain di dalamnya. Anda ingin tombol dengan gambar dan beberapa teks? Anda hanya perlu menempatkan sebuah gambar dan kontrol TextBlock di dalam tombol dan Anda selesai! Anda tidak mendapatkan fleksibilitas semacam ini dari kontrol standar WinForms, itu sebabnya mengapa ada banyak market yang menjual komponen dengan implementasi sederhana seperti tombol dengan gambar dan sebagainya.

Kelemahan fleksibilitas ini adalah bahwa kadang-kadang Anda harus bekerja extra keras untuk mencapai sesuatu yang sangat mudah dengan WinForms, karena WPF diciptakan hanya untuk skenario yang Anda butuhkan. Setidaknya itulah bagaimana rasanya di awal, di mana Anda menemukan diri Anda membuat template untuk membuat ListView dengan gambar dan beberapa teks selaras, sesuatu yang WinForms ListViewItem lakukan dalam satu baris kode.

Ini hanya satu perbedaan, tetapi saat Anda bekerja dengan WPF, Anda akan menyadari bahwa itu sebenarnya alasan yang mendasari untuk banyak perbedaan lainnya - WPF hanya melakukan hal-hal dengan caranya sendiri, untuk lebih baik dan buruk. Anda tidak lagi dibatasi untuk melakukan hal-hal dengan cara Windows.

Berikut ini adalah daftar subjektif dari keuntungan utama untuk WPF dan WinForms.

Keuntungan WPF

  • WPF masih terbilang baru dan dengan demikian lebih selaras dengan standar saat ini, serta Microsoft juga menggunakannya untuk banyak aplikasi baru, misalnya Visual Studio.
  • WPF lebih fleksibel, sehingga Anda dapat melakukan lebih banyak hal tanpa harus menulis atau membeli kontrol baru dan menggunakan kontrol pihak ke-3.
  • XAML mempermudah untuk membuat dan mengedit GUI Anda, dan memungkinkan pekerjaan yang dibagi antara desainer (XAML) dan program (C #, VB.NET dll).
  • Penyatuan data, yang memungkinkan Anda untuk mendapatkan pemisahan yang lebih bersih dari data dan tata letak Menggunakan akselerasi hardware dalam menggambar GUI, untuk kinerja yang lebih baik.
  • WPF memungkinkan Anda membuat user interface untuk aplikasi Windows dan aplikasi web (Silverlight / XBAP)

Keuntungan WinForms

  • Lebih teruji
  • Sudah banyak kontrol pihak ke-3 yang dapat Anda beli atau dapatkan secara gratis