Zaleta aplikacji WPF vs Winform dla aplikacji biznesowych? [Zamknięte]

84

Znam rozwój asp.net i winform. Nie jestem typem programisty, który wskakuje do nowej technologii tylko dlatego, że jest nowa. Musi dać mi dodatkowe korzyści, takie jak wyższa produktywność.

Jakie są zalety WPF w porównaniu z Winforms w przypadku aplikacji czysto biznesowych? Nie interesują mnie dodatkowe przyjemności dla oczu, animacje, gradienty, efekty wyświetlania obrazu i tym podobne, które zapewnia WPF. Aplikacje biznesowe służą do wprowadzania danych, raportowania danych, a może niektórych wykresów i statycznego wyświetlania zdjęć.

W jaki sposób WPF pomoże w tych aplikacjach? Lepsze bogatsze wiązanie danych? WinForm jest dojrzałą, sprawdzoną technologią i podoba mi się fakt, że mogę zrobić wszystko w Visual Studio w porównaniu z wieloma IDE dla WPF (rodzina VS i Blend). Plus myślę, że WPF nie ma tak bogatych formantów powiązań danych, jak ich odpowiedniki w Winform (DataGridView..etc). AFAIK, Microsoft będzie nadal obsługiwał Winforms przez wiele lat.

Spróbuj przekonać kogoś takiego jak ja do zmiany.

Abdu
źródło
1
Myślę, że istnieje kilka ważnych powodów, dla których warto przejść na WPF. Nie chcę powtarzać bloga, który właśnie napisałem , więc umieści link do niego tutaj.
Andy Brown,
7
To doskonałe pytanie. Powinien zostać ponownie otwarty. Jestem programistą WinForm dokonującym przejścia na WPF. Krzywa uczenia się jest ogromna. Ale WPF to przyszłość, ponieważ jest z natury językiem deklaratywnym, takim jak HTML. Winform jest głównie proceduralny, który jest bardziej odpowiedni dla algorytmów, ale bardziej szczegółowy do wyświetlania interfejsu użytkownika. Spróbuj rozpakować plik wydruku .XPS, zobaczysz tam WPF xaml. Winforms ma zbyt wiele ograniczeń. Chociaż nadal działa, to „cukierek dla oczu” WPF może pomóc zmniejszyć poziom stresu użytkownika. Możesz przedstawić wiele wierszy rekordów w bardziej znaczący sposób inny niż listview lub datagrid.
Jeson Martajaya,

Odpowiedzi:

101

Znam rozwój asp.net i winform. Nie jestem typem programisty, który wskakuje do nowej technologii tylko dlatego, że jest nowa. Musi dać mi dodatkowe korzyści, takie jak wyższa produktywność.

Dla mojego zespołu, WPF okazał się znacznie szybszy niż WinForms do tworzenia aplikacji z. Niedawno wydaliśmy średniej wielkości aplikację w 32 dni robocze. Mieliśmy przewagę w zespole z doświadczonego programisty WPF i niedoświadczonych facetów, którzy chcieli poznać technologię. Było świetne morale, a produktywność imponująca.

WinForm jest dojrzałą, sprawdzoną technologią i podoba mi się fakt, że mogę zrobić wszystko w Visual Studio w porównaniu z wieloma IDE dla WPF (rodzina VS i Blend).

Czy uważasz się za programistę ręcznego czy kodera typu „przeciągnij i upuść”? Jeśli uważasz się za drag-and-dropper, to bieżące kadrowanie narzędzi WPF może nie być dla Ciebie odpowiednie. Może poczekaj na Visual Studio 2010? Pracuję prawie wyłącznie w języku XAML. Większość użytkowników WPF prawdopodobnie zgodzi się, że jest to obecnie najbardziej efektywny sposób tworzenia aplikacji WPF. Ale ja też ręcznie tworzę kod HTML, więc wydaje mi się to naturalne ...

Jakie są zalety WPF w porównaniu z Winforms w przypadku aplikacji czysto biznesowych? Nie interesują mnie dodatkowe przyjemności dla oczu, animacje, gradienty, efekty wyświetlania obrazu i tym podobne, które zapewnia WPF.

Kiedyś myślałem w ten sposób, ale niedawno opracowałem aplikację biznesową, która ma gradienty, podstawową animację i efekty. Te fantazyjne funkcje zostały dodane w celu zwiększenia komfortu użytkowania. Dlaczego aplikacje biznesowe powinny być Battleship Grey? Dlaczego miałyby być bezużyteczne? To prawda, że ​​to nie kolor, gradienty, animacja sprawiają, że aplikacja biznesowa jest użyteczna, ale użycie tych efektów może pomóc użytkownikowi w odczuciu i to jest dla mnie ważne. Mogłem zrobić wszystko, co zrobiłem w aplikacji WPF w WinForms - zajęłoby to znacznie więcej czasu.

Lepsze bogatsze wiązanie danych?

Obsługa wiązania danych jest naprawdę niesamowita. To moja najbardziej lubiana funkcja na platformie. Sprawdź tę wspaniałą ściągawkę do wiązania danych .

Spróbuj przekonać kogoś takiego jak ja do zmiany.

Zdecydowałem, że nie zamierzam nikogo przekonywać do przejścia na WPF. Deweloperzy, których próbowałem "przekonać" (wszyscy doświadczeni programiści Winforms) zwykle borykali się z platformą. Nie inwestują w technologię. Oni tego nie rozumieją. Zachęcam ludzi do sprawdzenia technologii, aby przekonać się, czy jest ona odpowiednia dla nich jako programisty. Krzywa uczenia się jest ogromna. Jeśli uczysz się z książek, zapoznaj się z tym postem SO, aby uzyskać kilka mini-recenzji książek WPF. Jeśli uczysz się z filmów, obejrzyj filmy Windowsclient.net WPF . Jeśli uczysz się na przykładzie, sprawdź to lub toPoczta. Zapomnij o wszystkim, co wiesz o WinForms. WPF naprawdę wydaje się bliższy ASP niż WinForms. Utwórz przykładowe aplikacje. Sprawdź, czy to działa dla Ciebie i Twojego zespołu.

Ponieważ posiadasz wiele umiejętności (umiejętności asp.net/winform), możesz dostrzec zaletę zwiększania umiejętności w WPF, ponieważ jest ona bardzo blisko związana z Silverlight. Silverlight wypełnia tę lukę między bogatymi aplikacjami klienckimi a aplikacjami internetowymi.

Osobiście uważam, że WPF jest najlepszą technologią po stronie klienta dostępną dla platformy .NET i generalnie unikam programowania w WinForms do przyszłych prac. YMMV

Powodzenia w podjęciu decyzji.

Brad Leach
źródło
10
Niesamowita odpowiedź Brad - nasza firma boryka się teraz z tą decyzją. Twoje obserwacje są dobrze przemyślane i bardzo spójne z tym, co widzieliśmy do tej pory. Nie podjęliśmy jeszcze decyzji, ale twój akapit dotyczący Battleship Grey mocno nas przemawia, ponieważ widzieliśmy wpływ świetnie wyglądającego interfejsu użytkownika na sprzedaż. Dziękuję za poświęcenie czasu na napisanie doskonałej odpowiedzi.
gidmanma
3
Istnieje ogromna różnica między posiadaniem jednego doświadczonego programisty WPF w zespole a brakiem go w ogóle. Połącz to ze stromą krzywą uczenia się, a jeśli prowadzisz biznes, niewiele osiągniesz. Realistycznie WPF jest świetny, jeśli masz kogoś, kto cię poprowadzi, a nie tak bardzo, jeśli się uczysz. A jeśli to zrobisz, przygotuj się na poważną refaktoryzację.
Sergey Akopov
3
+1 - „Dlaczego aplikacje biznesowe powinny mieć nazwę Battleship Grey?” - Zgadzać się w zupełności!
Samuel Slade
5
-1 Jeśli jedynym powodem przejścia na WPF jest możliwość tworzenia gradientów i zmiany okien dialogowych aplikacji z "szarego okrętu wojennego", to musisz faktycznie nauczyć się korzystać z WinForms.
deegee
1
+1, pełna odpowiedź. Link do filmów Windowsclient.net WPF nie działa, ktoś wie, gdzie je znaleźć?
Damien
11

Mam spore doświadczenie z WinForms i grałem tylko trochę z WPF, ale jestem sprzedany.

Czemu?

  • DUŻO większa elastyczność. Jeśli chcesz zrobić coś niestandardowego w Winforms, pojawia się ból i cierpienie, ale w WPF jest to proste.

  • Znacznie lepsze wiązanie danych

  • Łatwiejsze w opracowaniu (gdy zrozumiesz podstawowe pojęcia, co niestety zajmie trochę czasu)

Orion Edwards
źródło
4

Kiedy zacząłem patrzeć na WPF, potraktowałem go jako „Winformy z grafiką wektorową” i pobiegłem prosto na zbocze klifu do nauki. Prawidłowym sposobem przejścia z WinForms do WPF jest przyjęcie heroicznej dawki jakiegokolwiek narkotyku, jaki możesz położyć w swoje ręce, aby zapomnieć o wszystkim, co wiesz, a następnie zacząć od zera.

Poważnie - jest to o wiele czystsze i łatwiejsze, jeśli używasz wzorca takiego jak Model-View-ViewModel. Przeczytaj więcej na The Orbifold , w tym wątku Grup dyskusyjnych Google i na Channel9

Wtedy w pewnym momencie będziesz miał objawienie i zaczniesz wiązać wszystko z danymi. Twój kod związany z kodem stanie się niczym więcej niż wywołaniem metody InitializeComponent ().

geofftnz
źródło
4

Dzięki za post. Moja firma zainwestowała mnóstwo czasu w WinForms. Nie wyobrażam sobie wydania średniej wielkości aplikacji w 32 osobodni; nasze okresy certyfikacji to miesiące po zakończeniu, a cykle wydawania czasami roczne lub dłuższe (pomimo jak najściślejszego trzymania się filozofii rozwoju Agile), taki jest charakter tworzonych przez nas aplikacji.

Właśnie grałem z WPF po raz pierwszy i odkryłem, że mogę uzyskać pewne korzyści z WPF w WinForms przy użyciu ElementHost. Rozszerzyłem WPF TextBox, a następnie zawinąłem moją rozszerzoną klasę w kontrolkę UserControl Win Forms i mam teraz aplikację WinForms używającą tego pola tekstowego WPF, wraz z obsługą sprawdzania pisowni.

Jestem pod wrażeniem, że Microsoft pomyślał o tym (hosting WPF w WinForms i na odwrót), ponieważ naprawdę nie widzę, jak moja firma przechodzi do WPF, chyba że możemy przejść przez długi okres czasu; po prostu za dużo zainwestowano w WinForms, aby zacząć od nowa. Dzięki mojemu ostatniemu doświadczeniu mogę zacząć rozmawiać z innymi programistami o moich ostatnich doświadczeniach i zobaczyć, co o nich myślą. Myślę, że przyzwyczajenie się do WPF zajmie trochę czasu i wydaje się to zgodne z innymi komentarzami.

Wayne H.
źródło
0

Po prostu sprawdź wyniki wyszukiwania tutaj w Stackoverflow, aby uzyskać liczne odpowiedzi. https://stackoverflow.com/search?q=WPF+Winforms

Jobi Joy
źródło
3
Mam nadzieję, że myślisz, że już tego próbowałem!
Abdu,
0

Wyobraź sobie, że możesz użyć tego samego interfejsu użytkownika (XAML) ze strony ASP.NET/(Silverlight) w aplikacji klasycznej. Zbudowałbyś go tylko raz, ale połączyłby go albo… to jeden z celów WPF / XAML… czy naprawdę już tam jesteśmy? Jeszcze nie, ale coraz bliżej.

Webjedi
źródło
4
Próba użycia tego samego interfejsu użytkownika w Silverlight i aplikacji komputerowej jest jedną z tych rzeczy, które w teorii brzmią fajnie, ale w praktyce myślę, że doprowadzi to do kiepskiego interfejsu użytkownika na obu platformach.
Orion Edwards
Tak, nakładanie się WPF i Silverlight2 jest duże, ale nie wystarczające, aby uczynić Twój kod przenośnym. Różnice w możliwościach wiązania spowodują nadmierne ograniczenie rozwoju WPF.
geofftnz
1
Cóż, powiedziałem, że jeszcze nie jesteśmy ... ale to jest ostateczny cel.
Webjedi
geofftnz: czy miałeś na myśli ograniczenie rozwoju Silverlight ?
Abdu,