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.
Odpowiedzi:
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.
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 ...
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.
Obsługa wiązania danych jest naprawdę niesamowita. To moja najbardziej lubiana funkcja na platformie. Sprawdź tę wspaniałą ściągawkę do wiązania danych .
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.
źródło
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)
źródło
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 ().
źródło
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.
źródło
Niezupełnie duplikat, ale ten post może być pomocny w informowaniu o zaletach WPF oprócz nowych bitów graficznych.
WPF czy WinForms dla narzędzi wewnętrznych?
źródło
Po prostu sprawdź wyniki wyszukiwania tutaj w Stackoverflow, aby uzyskać liczne odpowiedzi. https://stackoverflow.com/search?q=WPF+Winforms
źródło
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.
źródło