Saya telah membaca sebagian besar utas tentang WPF vs WinForms dan saya menemukan diri saya terjebak dalam ambivalensi malang yang dapat Anda alami ketika memutuskan antara teknologi sebelumnya yang sudah dicoba dan benar (Winforms), dan itu penerusnya (WPF).
Saya seorang programmer veteran Delphi bertahun-tahun yang akhirnya membuat lompatan ke C #. Rekan programer Delphi saya di luar sana akan mengerti bahwa saya senang mengetahui bahwa Anders Hejlsberg, dari ketenaran Delphi, adalah arsitek di balik C #. Saya memiliki kecanduan yang kuat untuk komponen khusus VCL Delphi, terutama yang terlibat dalam pembuatan Wizards multi-langkah dan komponen yang bertindak sebagai wadah untuk komponen anak.
Dengan latar belakang itu, saya berharap Anda yang beralih dari Delphi ke C # dapat membantu saya dengan keputusan WinForms vs WPF saya untuk menulis aplikasi awal saya. Catatan, saya sangat tidak sabar ketika pengkodean dan hal-hal seperti dukungan debugger otomatis lengkap dan lengkap yang lengkap dapat membuat atau menghancurkan proyek untuk saya, termasuk dapat menemukan informasi yang tersedia tentang fitur dan panggilan API dan terlebih lagi, solusi untuk bug .
Utas dan komentar SO dalam rentang tanggal awal 2009 memberi saya perhatian besar terhadap WPF ketika sampai pada frustrasi potensial yang dapat merusak kode pengembangan C # UI saya. Di sisi lain, menghabiskan banyak waktu mempelajari teknologi API yang, bahkan jika tidak ditinggalkan, akan segera diganti (WinForms), sama-sama meresahkan dan saya menemukan dukungan GPU di WPF yang menggoda.
Karena itu ambivalensi saya. Karena saya belum belajar teknologi baik namun saya memiliki kesempatan langka untuk mendapatkan awal yang baru dan tidak harus menghadapi kurva "unlearning" besar saya telah melihat orang menyebutkan dalam berbagai utas ketika seorang programmer WinForms membuat pindah ke WPF. Di sisi lain, jika menggunakan WPF hanya akan terlalu membuat frustrasi atau memiliki konsekuensi negatif besar lainnya untuk pengembang RAD yang tidak sabar seperti saya, maka saya akan tetap menggunakan WinForms hingga WPF mencapai tingkat dukungan dan kemudahan penggunaan yang sama. Untuk memberikan Anda sebuah contoh nyata ke dalam psikologi saya sebagai seorang programmer, saya menggunakan VB dan kemudian Delphi untuk sepenuhnya menghindari rasa sakit yang sangat nyata dari pengodean dengan MFC, perpustakaan Windows UI yang banyak dialami pengembang saat mengembangkan aplikasi Windows awal. Saya tidak pernah menyesali keberuntungan saya karena menghindari MFC.
Juga menyenangkan untuk mengetahui apakah Anders Hejlsberg memiliki andil dalam arsitektur WPF dan / atau WinForms, dan jika ada perbedaan dalam visi kreatif dan kemudahan penggunaan yang terkandung dalam basis kode mana pun. Akhirnya, untuk programmer Delphi lagi, beri tahu saya berapa banyak "IDE schock" yang saya gunakan ketika menggunakan WPF yang bertentangan dengan WinForms, terutama ketika datang ke dukungan debugger. Setiap komentar pasar kerja yang diperbarui untuk 2011 akan dihargai juga.
Jawaban:
Jika Anda memiliki latar belakang Delphi, Anda akan kecewa dengan WinForms. Anda akan mencoba melakukan hal-hal yang mudah di VCL, hanya untuk menemukan bahwa mereka sangat sulit, atau bahkan tidak mungkin. WPF akan jauh lebih sedikit membatasi.
Sebagai contoh, berikut adalah beberapa batasan WinForms yang kami alami:
WPF sedikit lebih sederhana dalam beberapa hal daripada WinForms, tetapi jauh lebih fleksibel.
WPF memiliki kurva belajar yang sangat curam, tetapi jika Anda mengambil buku yang bagus (mis. " WPF 4 Unleashed "), itu akan membantu Anda mengatasi yang terburuk - dan Anda akan senang bekerja dengan kerangka kerja yang tidak akan menahan Anda seperti WinForms.
sumber
Saya biasanya sangat terkejut dengan orang yang mengatakan bahwa mereka tidak memiliki pengalaman yang baik dengan WPF. Saya seorang pengembang yang beralih dari C ++ / MFC ke C # / WinForms ke C # / WPF. Transisi dari WinForms ke WPF tidak mudah karena mempelajari XAML tidak terlalu mudah tetapi begitu Anda mendapatkannya, itu adalah teknologi yang luar biasa. Saya, untuk satu, tidak bisa kembali ke WinForms. WPF sangat luar biasa.
Hal lain yang mengganggu saya adalah bagaimana orang biasanya mengasosiasikan WPF dengan UI saja. Ini memang 100 kali lebih baik daripada WinForms menurut saya dalam kemudahan desain UI, tetapi ada banyak alasan lain Anda akan senang menggunakan WPF:
Anda mungkin tidak setuju dengan saya tentang poin terakhir sebagai alasan bagi Anda untuk belajar WPF, tetapi jika Anda bertanya kepada saya, itu adalah salah satu yang terbesar. Anda belajar WPF, Anda dapat dengan mudah beralih ke Silverlight. Silverlight tumbuh besar, dan juga merupakan teknologi yang luar biasa.
Dan alasan terbesarnya adalah, ini adalah masa depan. Mungkin digabung dengan Silverlight tetapi keterampilannya akan tetap sama.
Jadi, saya akan sangat menyarankan Anda untuk menggunakan WPF.
sumber
Jelas WPF adalah cara untuk berpikir di masa depan. Menguasai itu sulit, tetapi platform ini dirancang dengan sangat baik dan fleksibel.
Beberapa baris saran:
sumber
Saya pertama-tama harus mencatat bahwa saya sebagian besar adalah pengembang asp.net, meskipun saya telah menggunakan banyak winforms sebelumnya. Beralih ke WPF tidak sebesar yang Anda buat (imo) setelah sekitar satu minggu (40+ jam), sebagian besar adalah sifat kedua lagi.
Bagaimanapun saya percaya Anders Hejlsberg adalah salah satu arsitek di balik WPF, setidaknya menurut penerbit buku ini->
" Sebagai salah satu arsitek di balik WPF, Chris Anderson terampil menjelaskan tidak hanya 'bagaimana,' tetapi juga 'mengapa.' Buku ini adalah sumber yang bagus untuk siapa pun yang ingin memahami prinsip-prinsip desain dan praktik terbaik WPF. ”–Anders Hejlsberg, rekan teknis, Microsoft Corporation
http://www.amazon.com/Essential-Windows-Presentation-Foundation-WPF/dp/0321374479
sumber
WinForms hampir identik dengan pengembangan Delphi. Dan, tentu saja, ada alasan untuk itu. Sama seperti model objek Delphi / Object Pascal sangat memengaruhi C #, demikian pula sistem formulir memengaruhi Winforms.
WPF tampaknya menjadi arah yang dituju; sudah dikatakan bahwa (cantik!) VS2010 UI berbasis WPF, tidak seperti generasi sebelumnya yang dibangun di WinForms.
Jika Anda ingin tetap berada di zona nyaman Anda, gunakan winforms. Jika Anda ingin terjebak pada yang terbaru & terhebat, benamkan diri Anda di WPF.
sumber
Saya bukan programmer Delphi, tapi ya saya telah bekerja pada WinForm (berat) dan WPF (kurang dari sedang). Saya setuju dengan Anda sampai batas tertentu pada tingkat frustrasi untuk seseorang yang akan beralih dari WinForm ke WPF karena saya sendiri berada dalam situasi itu, tetapi hanya sampai saya terbiasa. Pelajari dan lihat betapa indah dan fleksibelnya WPF dibandingkan dengan WinForm. Ini memiliki kurva belajar yang berat, setidaknya untuk seseorang yang berasal dari latar belakang Delphi, dan bukan Winform. Bagi Anda, itu pasti layak bergerak ke arah WPF daripada WinForm, dan nilainya waktu.
Anda mungkin ingin melihat tautan di bawah ini untuk memulai dengan:
sumber
Saya telah melakukan beberapa pekerjaan Windows Forms (kebanyakan di Pocket PCs), ditambah beberapa lingkungan non-NET lainnya yang menggunakan prinsip yang sama. Ketika saya pindah ke WPF sekitar tiga tahun yang lalu, selama beberapa bulan pertama saya bersumpah. Akhirnya itu hanya "diklik" dan saya belum melihat ke belakang - sebenarnya saya akan kecewa jika proyek saya berikutnya mengharuskan saya untuk kembali ke Formulir Windows.
Terakhir kali Formulir Windows diperbarui pada 2005 (VS 2005.) Masih ada di sana tetapi tidak lagi ditingkatkan oleh Microsoft. WPF adalah anak baru di blok untuk aplikasi desktop, jadi jika Anda akan pindah ke platform .NET menggunakan alat MS, maka saya akan mengatakan itu adalah taruhan yang aman. Beberapa orang mendorong Silverlight sebagai solusi desktop, tetapi ketika saya melihatnya sebagai kemungkinan, saya menemukan bahwa itu memiliki terlalu banyak keterbatasan (yang mungkin masuk akal dalam konteks web, tetapi tidak begitu banyak pada desktop.)
Intinya: Ada kurva belajar yang curam, dan saya masih mempelajarinya. Tapi itu semua sepadan. Sangat menyenangkan.
sumber
Jika Anda akan menulis aplikasi baru dari awal, menggunakan WinForms akan menjadi kesalahan. Itu pada dasarnya mati dari perspektif investasi. Microsoft akan mempertahankannya untuk waktu yang lama, tetapi Anda tidak akan mendapatkan fitur baru, atau dukungan baru, dll. WPF adalah arah yang jelas untuk aplikasi desktop untuk masa depan pada platform MS.
Dari perspektif karir, Anda juga jauh lebih baik mengetahui WPF vs WinForms. Untuk alasan yang sama di atas. Juga, Anda akan memiliki pengetahuan yang baik tentang belajar Silverlight. Ada satu ton tumpang tindih antara kedua platform tersebut.
Dan akhirnya, WPF lebih menyenangkan. Dan lebih kuat.
Kurva pembelajaran lebih curam, saya berikan itu. Tetapi pada akhirnya lebih bermanfaat.
sumber
Satu pertimbangan tambahan yang harus disebutkan adalah bahwa tidak ada rencana untuk dukungan WPF di mono . Saya menyadari Anda tidak menyatakan minat pada dukungan lintas platform (mono), tetapi mungkin ada peluang untuk ini di masa depan Anda (jika Anda menggunakan Winforms). Agaknya, dukungan untuk WPF dalam mono (atau serupa) akan datang.
sunting: Seperti tautan yang saya berikan, dan komentar Gulshan menyoroti, Moonlight adalah upaya open-source yang dipimpin oleh tim mono untuk memberikan dukungan Silverlight lintas-platform .
sumber
Saya senang ketika saya mendengar tentang WPF, ide itu terdengar hebat, dan semua yang saya lihat di WPF sangat indah. Namun, ketika saya datang untuk menggunakannya dalam Visual Studio 2008 (diakui, beta) saya merasa frustasi dan unik untuk bekerja dengan perancang / IDE.
Saya memposting sedikit info di blog saya saat itu:
http://blog.dantup.com/2007/08/visual-studio-2008-beta-2-first.html
http://blog.dantup.com/2007 /08/wpf-designer-cider-part-2.html
Saya belum mencobanya pada tahun 2010, meskipun saya telah berbicara dengan beberapa orang yang pernah melakukannya, dan sepertinya masih sedikit rumit / menjengkelkan untuk bisa dipahami.
Saya pikir aplikasi Anda tidak diragukan lagi akan terlihat / terasa lebih baik di WPF, tapi saya juga berpikir itu akan membuat Anda lebih lama untuk membangun dan Anda akan sering membenturkan kepala Anda di sepanjang jalan.
sumber