İş uygulamaları için WPF uygulamasının Winform'a karşı avantajı? [kapalı]


84

Asp.net ve winform geliştirmeyi biliyorum. Sırf yeni diye yeni bir teknolojiye atlayan bir geliştirici değilim. Bana daha yüksek verimlilik gibi ekstra faydalar sağlaması gerekiyor.

Saf iş uygulamaları için WPF'nin Winforms'a göre avantajları nelerdir? WPF'nin sağladığı ekstra göz şekeri, animasyon, gradyanlar, görüntü görüntüleme efektleri vb. İle ilgilenmiyorum. İş uygulamaları veri girişi, veri raporlama ve belki bazı grafikler ve fotoğrafların statik gösterimi içindir.

WPF bu uygulamalarda nasıl yardımcı olacak? Daha zengin veri bağlama? WinForm, kanıtlanmış olgun bir teknolojidir ve WPF için birden çok IDE'ye (VS & Blend ailesi) karşı her şeyi Visual Studio'da yapabildiğim gerçeğini seviyorum. Artı, WPF'nin Winform muadilleri (DataGridView..etc) gibi zengin veri bağlama kontrollerine sahip olmadığını düşünüyorum. AFAIK, Microsoft hala Winforms'u yıllarca destekleyecektir.

Benim gibi birini değiştirmeye ikna etmeye çalış.


1
WPF'ye geçmek için bazı güçlü nedenler olduğunu düşünüyorum. Az önce yazdığım bir blogu tekrarlamak istemiyorum , bu yüzden buraya bir link koyacağım.
Andy Brown

7
Bu harika bir soru. Yeniden açılmalıdır. WPF'ye geçiş yapan bir winform geliştiricisiyim. Öğrenme eğrisi çok büyük. Ancak WPF, HTML gibi doğası gereği bildirim dili olduğu için geleceğin ta kendisidir. Winform çoğunlukla yordamsaldır ve algoritmalar için daha uygundur, ancak kullanıcı arayüzünü görüntülemek için daha ayrıntılıdır. Bir .XPS yazdırma dosyasını açmayı deneyin, orada WPF xaml göreceksiniz. Winforms ile ilgili çok fazla sınırlama vardır. Hala işe yarıyor olsa da, WPF "göze hitap eden" kullanıcı stres düzeyini azaltmaya yardımcı olabilir. Listview veya datagrid dışında birden çok kayıt satırını daha anlamlı bir şekilde sunabilirsiniz.
Jeson Martajaya

Yanıtlar:


101

Asp.net ve winform geliştirmeyi biliyorum. Sırf yeni diye yeni bir teknolojiye atlayan bir geliştirici değilim. Bana daha yüksek verimlilik gibi ekstra faydalar sağlaması gerekiyor.

Ekibim için WPF, WinForms ile uygulama geliştirmek için çok daha hızlı olduğunu kanıtladı. Kısa süre önce 32 adam gününde orta büyüklükte bir uygulama yayınladık. Ekipte deneyimli bir WPF geliştiricisinin ve teknolojiyi öğrenmeye istekli deneyimsiz adamların avantajına sahiptik. Büyük bir moral vardı ve üretkenlik etkileyiciydi.

WinForm, kanıtlanmış olgun bir teknolojidir ve WPF için birden çok IDE'ye (VS & Blend ailesi) karşı her şeyi Visual Studio'da yapabildiğim gerçeğini seviyorum.

Kendinizi bir el kodlayıcı mı yoksa sürükle ve bırak kodlayıcı olarak mı düşünüyorsunuz? Kendinizi bir sürükle ve bırak aracı olarak görüyorsanız, WPF araçlarının mevcut kesimi sizin için uygun olmayabilir. Belki Visual Studio 2010'u bekleyin? Neredeyse yalnızca XAML'de çalışıyorum. Çoğu WPF kullanıcısı, muhtemelen şu anda WPF uygulamaları oluşturmanın en etkili yolu olduğu konusunda hemfikir olacaktır. Ama sonra, HTML'mi elle de oluşturuyorum, böylece bana doğal geliyor ...

Saf iş uygulamaları için WPF'nin Winforms'a göre avantajları nelerdir? WPF'nin sağladığı ekstra göz şekeri, animasyon, gradyanlar, görüntü görüntüleme efektleri vb. İle ilgilenmiyorum.

Eskiden böyle düşünürdüm, ancak son zamanlarda gradyanlar, temel animasyon ve efektler içeren bir iş uygulaması geliştirdim. Kullanıcı deneyimini geliştirmek için bu süslü özellikler eklendi. İş uygulamaları neden Battleship Grey olmalı? Neden kullanılamaz olmalılar? Doğrusu, bir iş uygulamasını kullanılabilir kılan şey renk, gradyanlar, animasyon değil, ancak bu efektleri kullanmak kullanıcı deneyimine yardımcı olabilir ve benim için önemli olan budur. WinForms'taki WPF uygulamasında yaptığım her şeyi yapabilirdim - sadece çok daha uzun sürerdi.

Daha zengin veri bağlama?

Veri bağlama desteği gerçekten harika. Platformdaki en sevdiğim tek özellik. Bu harika Veri Bağlama Hile Sayfasına göz atın .

Benim gibi birini değiştirmeye ikna etmeye çalış.

Başka kimseyi WPF'ye geçmeye ikna etmeye çalışmayacağıma karar verdim. "İkna etmeye" çalıştığım geliştiriciler (tüm deneyimli Winforms geliştiricileri) genellikle platformla mücadele etti. Teknolojiye yatırım yapmazlar. "Anlamıyorlar". İnsanları, bir geliştirici olarak kendileri için doğru olup olmadığını görmek için teknolojiye bakmaya teşvik ediyorum. Öğrenme eğrisi çok büyük. Kitaplarla öğreniyorsanız , WPF kitaplarıyla ilgili bazı mini incelemeler için bu SO gönderisine göz atın. Videolarla öğreniyorsanız, windowsclient.net WPF videolarına göz atın . Eğer örnek öğrenirseniz, kontrol bu veya bu gönderiye atın. WinForms hakkında bildiğiniz her şeyi unutun. WPF, ASP'ye WinForms'tan daha yakın görünüyor. Bazı örnek uygulamalar oluşturun. Siz ve ekibiniz için işe yarayıp yaramadığını görün.

Çok yetenekli olduğunuz için (asp.net/winform becerileri), Silverlight ile çok yakından ilişkili olduğu için WPF'de beceri geliştirmenin avantajını görebilirsiniz. Silverlight, zengin istemci uygulamalarınız ve web uygulamalarınız arasındaki boşluğu doldurur.

Kişisel olarak, WPF'nin .NET çerçevesi için mevcut en iyi istemci tarafı teknolojisi olduğunu düşünüyorum ve genel olarak gelecekteki çalışmalar için WinForms'da geliştirmekten kaçınacaktır. YMMV

Kararınızda iyi şanslar.


10
Müthiş yanıt Brad - şirketimiz şu anda bu kararla mücadele ediyor. Gözlemleriniz iyi düşünülmüş ve şimdiye kadar gördüklerimizle çok tutarlı. Henüz bir karara varmadık, ancak Savaş Gemisi Grisi paragrafınız, harika görünümlü bir kullanıcı arayüzünün satışlar üzerindeki etkisini gördüğümüz için bizde güçlü bir yankı uyandırıyor. Zaman ayırıp mükemmel bir cevap yazdığınız için teşekkürler.
gidmanma

3
Bir ekipte tek bir deneyimli WPF geliştiricisine sahip olmak ile hiç sahip olmamak arasında çok büyük bir fark vardır. Bunu dik bir öğrenme eğrisiyle birleştirin ve eğer iş yapıyorsanız, pek bir şey başaramayacaksınız. Gerçekçi olarak, WPF, size rehberlik edecek birisine sahipseniz harikadır ve ilerledikçe öğreniyorsanız çok fazla değil. Ve yaparsanız, büyük çapta yeniden düzenleme için hazır olun.
Sergey Akopov

3
+1 - "İş uygulamaları neden Battleship Grey olmalı?" - Kesinlikle katılmak!
Samuel Slade

5
-1 WPF'ye geçmenin tek nedeni degradeler oluşturma ve uygulama diyaloglarınızı "savaş gemisi grisi" nden değiştirme becerisine dayanıyorsa, o zaman WinForms'u nasıl kullanacağınızı öğrenmeniz gerekir.
deegee

1
+1, tam yanıt. Windowsclient.net WPF videoları bağlantısı kapalı, bunları nerede bulacağını bilen var mı?
Damien

11

Oldukça fazla winforms deneyimim var ve sadece WPF ile biraz oynadım ama satıldım.

Neden?

  • ÇOK daha fazla esneklik. Winformlarda standart olmayan bir şey yapmak istiyorsanız, acı ve ıstırap ortaya çıkar, ancak WPF'de bu basittir.

  • Çok daha iyi veri bağlama

  • Geliştirmesi daha kolay (maalesef biraz zaman alacak olan temel kavramları anladıktan sonra)


4

WPF'ye bakmaya başladığımda, ona "Vektör Grafikli Winforms" muamelesi yaptım ve doğruca öğrenme uçurumunun kenarına koştum. WinForms'tan WPF'ye geçmenin doğru yolu, bildiğiniz her şeyi unutmak için ellerinizi koyabileceğiniz narkotikten kahramanca bir doz almak ve sonra sıfırdan başlamaktır.

Cidden - Model-View-ViewModel gibi bir desen kullanırsanız çok daha temiz ve daha kolaydır. The Orbifold , bu Google Grupları dizisi ve Channel9'da daha fazlasını okuyun

Sonra bir noktada bir aydınlanma yaşayacak ve her şeyi veri toplamaya başlayacaksınız. Arka plan kodunuz, InitializeComponent () çağrısından çok daha fazlası olmayacaktır.


4

Gönderi için teşekkürler. Şirketimin WinForms'a yatırdığı tonlarca zaman var. 32 adam gününde orta büyüklükte bir uygulama almayı hayal edemiyorum; Sertifikasyon dönemlerimiz aylardır ve bazen yıllık veya daha uzun süreli yayın döngüleridir (yapabildiğimiz kadar çevik geliştirme felsefesine bağlı kalmamıza rağmen), geliştirdiğimiz uygulamaların doğası budur.

WPF ile ilk kez oynadım ve ElementHost kullanarak WinForms'ta WPF'nin bazı avantajlarından yararlanabileceğimi öğrendim. Bir WPF TextBox'ı genişlettim, sonra genişletilmiş sınıfımı bir Win Forms UserControl'e sardım ve şimdi bu WPF metin kutusunu kullanan ve yazım denetimi desteğiyle tamamlanmış bir WinForms uygulamasına sahibim.

Microsoft'un bunu düşündüğünü görmekten etkilendim (WPF'yi WinForms'da barındırmak ve bunun tersi), çünkü uzun bir süre boyunca geçiş yapamazsak şirketimin WPF'ye geçtiğini gerçekten göremiyorum; yeniden başlamak için WinForms'a çok fazla yatırım yapıldı. Son deneyimimle, bazı geliştiricilerle son deneyimim hakkında konuşmaya ve düşüncelerinin ne olduğunu görmeye başlayabilirim. Bence WPF'ye alışmak biraz zaman alacak ve bu diğer yorumlarla tutarlı görünüyor.




0

Masaüstü uygulamanızla ASP.NET/(Silverlight) sayfanızdan aynı UI'yi (XAML) kullanabileceğinizi hayal edin. Sadece bir kez inşa edersiniz ama ikisine de bağlarsınız .... bu WPF / XAML'nin amaçlarından biridir ... gerçekten orada mıyız? Henüz değil ama yaklaşıyor.


4
Aynı kullanıcı arayüzünü silverlight'ta ve bir masaüstü uygulamasında kullanmaya çalışmak teoride kulağa hoş gelen şeylerden biridir, ancak pratikte her iki platformda da berbat bir kullanıcı arayüzüne yol açacağını düşünüyorum.
Orion Edwards

Evet, WPF ve Silverlight2 arasındaki örtüşme büyüktür, ancak kodunuzu taşınabilir hale getirmek için yeterli değildir. Bağlama yeteneklerindeki farklılıklar, WPF geliştirmenizi aşırı derecede kısıtlayacaktır.
geofftnz

1
Henüz orada olmadığımızı söylemiştim ... ama nihai niyet bu.
Webjedi

geofftnz: Silverlight geliştirmesini kısıtlamak mı istediniz ?
Abdu
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.