WinForms vs WPF

0

Zdaje sobie sprawę z tego, że były już poruszane takie tematy, jednak jak wiadomo czas leci szybko i wszystkie cały czas sie zmienia. Zabieram się za swój pierwszy większy projekcik, który kto wie, być może za jakiś czas znajdzie się w moim cv, ale to już mniejsza z tym... Zastanawiam się czy robić go w starym dobrym Windows Forms czy może na bazie tego właśnie projektu zacząć naukę WPF.
Przede wszystkim jak to wygląda w pracy programisty C#, czy firmy korzystają z WinForms, czy już bardziej przerzucają się na WPF?
Czytałem coś, że praca z WPF jest dobrym bodźcem wspomagającym do nauki ASP.NET, czy to prawda?

0

Przede wszystkim jak to wygląda w pracy programisty C#, czy firmy korzystają z WinForms, czy już bardziej przerzucają się na WPF?
Nie wiem.

w starym dobrym Windows Forms
WinForms ma 10 lat, WPF ma 7. To nie jest aż taka wielka różnica by jedno traktować jak staroć a drugie jako coś supernowoczesnego.

Osobiście uważam, że WPF jest ciężkie w użyciu i bardzo trudno jest w nim zrobić interfejs dobrze. Ponieważ większość programów nie potrzebuje graficznych wodotrysków z WPF (które to pod WinForms trzeba by po prostu samemu oprogramować), uważam że nie ma sensu się z WPF męczyć.

Jest też dość istotna różnica między tymi bibliotekami: WinForms to wrapper na WinAPI, a WPF renderuje wszystkie kontrolki samodzielnie. Dzięki temu WinForms wygląda bardziej natywnie, lepiej się wtapia w skórkę systemową.

0
Azarien napisał(a):

w starym dobrym Windows Forms
WinForms ma 10 lat, WPF ma 7. To nie jest aż taka wielka różnica by jedno traktować jak staroć a drugie jako coś supernowoczesnego.

Bez przesady, WinForms ma już chyba prawie 12.

malymakar napisał(a):

Przede wszystkim jak to wygląda w pracy programisty C#, czy firmy korzystają z WinForms, czy już bardziej przerzucają się na WPF?

Raczej przerzucają się na ASP.NET MVC. Ale są również projekty w technologiach desktopowych, niemniej jednak jest ich znacznie mniej. Z tego, co widzę po ofertach pracy, jest mniej więcej po równo obu tych technologii, chociaż z moich własnych obserwacji wynika, że nowo rozpoczynane projekty to częściej WPF niż WinForms.

Czytałem coś, że praca z WPF jest dobrym bodźcem wspomagającym do nauki ASP.NET, czy to prawda?

WPF nie ma nic z ASP.NET wspólnego, ani na poziomie kodu, ani na poziomie podejścia. Do WPF jest podobny Silverlight, bo w obu tworzy się interfejs za pomocą XAMLa.

Osobiście uważam WPF za bardzo przekombinowany, ale może to dlatego, że nigdy nie chciało mi się w niego zagłębiać. Na pewno łatwiej w nim zrobić pewne rzeczy (np. zagnieżdżanie kontrolek), które w WinFormsach są męczarnią ze względu na konieczność rycia w WinAPI.

1

firmy raczej korzystają z WPF
wcale nie jest trudniejsze, ale wymaga innego podejścia, ktoś po doświadczeniu z WinForms będzie miał problemy z WPF i będzie się dusił bo coś prostego zajmie mu dużo więcej czasu, zwłaszcza jeśli będzie się chciało trzymać modelu stricte MVVM

z drugiej strony ktoś kto już zna WPF, będzie to samo czuł odnośnie WinForms

przykładowo w WPF dowolna kontrolka może zawierać inne kontrolki, możesz je ustawiać obok siebie, animować i reagować w dowolny sposób, możesz do listboxa wstawić od razu całą kolekcję obiektów, od razu z ikonkami wyświetlającymi się na podstawie jednej z własności tego obiektu

w WinForms musiałbyś rysować wszystko samemu, albo stworzyć własną kontrolkę i stracić mnóstwo czasu żeby zachowywała się tak samo jak standardowa

w skrócie:

w WinForms dużo łatwiej zrobić łatwe rzeczy
w WPF dużo łatwiej zrobić trudne

zdecydowanie warto iść w stronę WPF
chyba że chcesz żeby Twoje aplikacje uruchamiały się na linuksie - bo MONO nie ma dla niego wsparcia

1 użytkowników online, w tym zalogowanych: 0, gości: 1