Untuk waktu yang lama sekarang, saya telah terjebak dengan pengembangan Windows Forms (dimulai dengan VB6, dan berlanjut hingga C # .NET 4.5), dan saya telah mencapai batas yang dapat dilakukan Windows Forms, keduanya menggunakan murni .NET , dan efek khusus dengan Kode Asli.
Saya telah mencoba mempelajari WPF dan XAML, tetapi saya terjebak di desainer baru WPF. Tampaknya sangat sulit untuk digunakan dibandingkan dengan desainer Windows Forms.
Saya ingin tahu apakah ada alternatif untuk desainer WPF .NET, yang lebih cocok untuk pengembang Windows Forms?
Jawaban:
Saya suka menulis blog tentang artikel pemula untuk WPF, dan ada beberapa secara khusus yang dapat membantu Anda:
Untuk meringkas, perbedaan terbesar antara Winforms dan WPF adalah bahwa di WPF lapisan data Anda (the
DataContext
) adalah aplikasi Anda, sedangkan di Winforms lapisan UI Anda adalah aplikasi Anda.Untuk melihatnya dengan cara lain, dengan WPF aplikasi Anda terdiri dari objek yang Anda buat, dan Anda menggunakan Template dan objek UI lainnya untuk memberi tahu WPF cara menggambar komponen aplikasi Anda.
Itu kebalikan dari WinForms di mana Anda membangun aplikasi Anda dari objek UI, dan kemudian memasoknya dengan data yang dibutuhkan.
Karena itu, desainer sebenarnya tidak banyak digunakan karena komponen aplikasi Anda dirancang dalam kode, dan desainer hanya perlu menggambar antarmuka yang ramah pengguna yang mencerminkan kelas data Anda (biasanya
Models
danViewModels
)Dan secara pribadi, saya lebih suka mengetik semua XAML saya dengan tangan karena lebih cepat dan tidak membuat kekacauan sebanyak yang dilakukan oleh desainer WPF drag / drop, meskipun saya menggunakan Designer pada kesempatan untuk melihat tampilan UI saya. Suka.
Jadi, untuk menjawab pertanyaan Anda tentang apakah ada desainer WPF lain yang cocok untuk pengembang WinForms, saya sarankan daripada mencari desainer lain, alih-alih mencari cara untuk mempelajari cara menggunakan WPF dengan cara yang dimaksudkan untuk digunakan. Menggunakan WPF seperti WinForms berarti Anda kehilangan banyak hal yang membuatnya begitu hebat :)
sumber
Meskipun, beberapa orang tidak setuju, saya juga akan merekomendasikan untuk tidak menggunakan desainer VS. Setidaknya untuk tidak membuat antarmuka. Jika Anda mungkin ingin mendapatkan kesan pertama dari implementasi Anda tanpa memulai aplikasi, itu adalah penampil yang baik setidaknya selama tidak ada hal-hal canggih yang disukai
Styles
danTemplates
digunakan. Namun menurut IMHO, hasil drag and drop -nya hanya boleh digunakan sebagai prototipe saja dan oleh karena itu dibuang setelah tidak diperlukan lagi.Berikut beberapa alasan yang penting bagi saya untuk tidak menggunakannya.
Perancang VS bekerja dengan margin tetap dan perataan (yang biasanya tidak diperlukan, jika Anda menggunakan kontrol tata letak), berarti Anda harus menyentuh banyak kontrol, jika persyaratan diubah. Jika Anda mendalami XAML dan mekanika WPF, Anda dapat membuat aplikasi yang dapat dimodifikasi dengan sedikit usaha, terkait tampilan dan nuansanya.
Karena perancang membuat xaml, komposisinya tidak optimal dan UI dapat berkinerja buruk. Saya tidak mengukurnya, itu hanya perasaan.
Alternatif yang jauh lebih baik adalah MS Blend , meskipun memulainya adalah segalanya tetapi mudah. Hasil drag and dropnya jauh lebih baik dari hasil desainer VS.
Tetapi ini adalah alat yang cukup kuat, yang membantu Anda menggunakan elemen yang cukup kuat untuk membuat UI yang canggih. Saya merekomendasikan untuk mengunjungi setidaknya lokakarya singkat untuk mendapatkan gambaran tentang peluangnya.
Kembali ke pertanyaan Anda, IMHO, dan saya pikir banyak orang setuju, dapatkan sendiri buku yang bagus misalnya WPF Unleashed dan nanti, jika Anda ingin tahu lebih banyak tentang detailnya, WPF Pro . Ada banyak fitur yang berbeda
Winforms
. Anda tidak akan mengenal mereka dengan menggunakan desainer mana pun. Saya pikir itu pendekatan terbaik.Harap pertimbangkan juga bahwa ada banyak kerangka kerja dan pustaka (misalnya lampu MVVM , WPFToolkit ) di luar sana, yang sudah memecahkan beberapa masalah umum. Jadi tidak perlu menemukan kembali roda.
sumber
Saya tahu ini adalah pertanyaan lama tetapi untuk kepentingan orang lain yang melihat ini, saya pikir saya harus memperbaiki keseimbangan sedikit - membaca beberapa jawaban lain, saya merasa bahwa beberapa 'tidak menggunakan desainer 'sentimen berasal dari tidak menggunakannya dengan benar. Tutorial ini cukup bagus untuk membantu Anda dan menjawab beberapa kritik di posting lain.
Misalnya, Anda dapat beralih dari tata letak berbasis margin seperti Winforms yang merupakan default saat Anda melepaskan kontrol, ke gaya WPF yang lebih dengan mengklik kanan dan memilih 'Atur Ulang Tata Letak'
Video ini membahas dasar yang serupa.
Saya masih lebih suka perancang VS2010 yang seimbang - VS2013 tampaknya agak bermasalah saat menyeret dan menjatuhkan ke TabItems **, (yang banyak digunakan proyek saya saat ini) - tetapi tampilan Garis Besar Dokumen VS2013 memungkinkan Anda memindahkan berbagai hal dalam tampilan itu juga , yang bisa menjadi nilai tambah yang nyata.
Sungguh, untuk mendapatkan hasil maksimal dari WPF dan xaml Anda harus cukup fasih baik dalam tampilan desainer maupun tampilan xaml dan beralih di antara keduanya; jika Anda menghindar dari desainer, Anda kehilangan sesuatu yang dapat sangat membantu Anda.
** Edit - meskipun ini tampaknya telah diperbaiki di Pembaruan 3 untuk VS 2013, dan dalam pratinjau VS14, sampai saat ini saya masih mendapatkan perilaku aneh di kali.
sumber
Pertama-tama, di WPF (XAML) di Visual Studio deisgner, Anda harus selalu menggunakan kode xaml untuk membangun UI Anda dan jangan seret dan lepas kendali Anda! Anda harus menjaga kode Anda tetap bersih. Anda dapat menggunakan Expression Blend untuk membantu Anda, ini lebih berorientasi grafis dengan drag and drop, tetapi tidak gratis.
Ini bukan kurva belajar yang besar, tapi saya pikir Anda harus belajar bagaimana mengerjakan xaml Anda dengan tangan daripada mencari alternatif.
sumber
Saya telah melalui proses ini seperti Anda. Setelah itu saya mengajar semua orang di perusahaan saya WPF. Ada beberapa pelajaran penting yang telah saya pelajari dan semua orang yang saya kenal bekerja dengan WPF.
Itu membuat pengembangan UI menyenangkan. Terutama setelah Anda mengetahui bagaimana ia suka bermain bersama dengan proses Asyc. Ini benar-benar menghilangkan banyak sakit kepala yang disebabkan oleh Winforms.
sumber