WPF, czy WinForms (2017)

1

Cześć, jedno z tych odwiecznych pytań. W necie oczywiście jak zwykle burza. Jedni mówią, że zdecydowanie WPF, bo WinForms jest przeżytkiem. Inni, że to właściwie zależy od aplikacji. Jeszcze inni, że WinForms jest kompletny i nie ma bugów, natomiast WPF ma ciągle sporo różnych problemów. Osobiście nigdy niczego w WPF nie robiłem. Podobają mi się WinFormsy i nie widzę potrzeby zmieniać tego na WPF. Może poza tym, że to nowa technologia, która ponoć ma wyprzeć WinFormsy.

Jak to jest z Wami? Czy nowe aplikacje warto pisać w WPF (i dlaczego), czy nie ma to znaczenia (i dlaczego) :)

0

Używam Winformsów w pracy ale planuję poduczyć się WPF. Głównie ze względów wymagań firm które widzę w ogłoszeniach.

0

Nowe, ciekawsze projekty, programowanie w oparciu na MVVM (bo pisać w WPF bez MVVM można ale to masochizm), porządek i nowoczesne tworzenie GUI versus głównie stare projekty, różnie pisane, często bez znajomości MVP czyli logika przytwierdzona do widoku, bo ludzie nie byli świadomi, że można inaczej etc...

Zdecydowanie przyszłością desktopu są technologie oparte o XAML czyli właśnie WPF i UWP. Nie wszędzie wciśniesz web'a, a jak trzeba utworzyć nowy projekt to już raczej w WPF, ponieważ UWP jest jeszcze bardzo młode.

Pisałem dość dużo w formsach, a od mniej więcej 3 lat piszę w WPF i powiem szczerze, że do formsów już nigdy nie wrócę :)

1

Według mnie: jeżeli nie masz jakiś konkretnych przesłanek, aby używać koniecznie WinForms (uruchamianie na Mono, dostępność kontrolek 3rd party, kompatybilność z Windows 98) to użyj WPF. Ale może już się po prostu przyzwyczaiłem do tworzenia interfejsu w XAML i jest to dla mnie wygodniejsze.

Może poza tym, że to nowa technologia, która ponoć ma wyprzeć WinFormsy.

WPF to jest stara technologia, sama będzie wyparta przez UWP.... za jakieś 20 lat ;-)

0
Juhas napisał(a):

Może poza tym, że to nowa technologia, która ponoć ma wyprzeć WinFormsy.

Windows Forms - 2002.
Windows Presentation Framework - 2006.

Faktycznie, o całe cztery lata nowsza. To kiedy to wypieranie?

0
Ktos napisał(a):

Według mnie: jeżeli nie masz jakiś konkretnych przesłanek, aby używać koniecznie WinForms (uruchamianie na Mono, dostępność kontrolek 3rd party, kompatybilność z Windows 98) to użyj WPF

Co do tych kontrolek 3rd party. Jak to jest? Bo trochę używam. Czy WPF ma więcej kontrolek w standardzie niż WinForms? Jak wygląda sprawa z Ribbonami? Albo takim side panelem:
title

0

Możesz mieć wstążkę dla WPF od MS albo z biblioteki FluentRibbon. Obie działają mniej więcej podobnie, ale ta od MS jest trochę uboższa. Dodatkowych kontrolek trochę jest i ja tam nigdy nie miałem z nimi problemów. Ot instalujesz, dodajesz nowego namespace'a w kodzie XAML'a, a samą kontrolkę wstawiasz używając już tego namespace'a np: <ctrlns:TextBox/> itd... Nazwę namespace'a czyli tutaj ctrlns możesz sobie zrobić taką jak Ci się podoba. Wszystko definiuje się w nagłówku okna w XAML'u.

Słyszałem, że do WPF kontrolek jest trochę mniej ale nigdy mnie jakoś te statystyki nie interesowały, bo zawsze znajdowałem co trzeba.

0

Porzuciles Delphi na rzecz C# żeby pisać w winforms? Dziwne.

CIągnie Ciebie do formsów (przypuszczam tylko) gdyż pewnie masz wieloletnie przyzwyczajenia z Delphi.
Gdybym dziś się uczył programować to na pewno nie wybrałbym winformsów, chyba że na pół roku nauki podstaw samego c#.
Chociaż należy pamiętać o tym, że liczy się czas - kto pierwszy ten lepszy - zamiast uczyć się nowych hiper uper technologii, lepiej zrobić coś w technologii którą się zna najlepiej.
Jeżeli masz pomysł na super aplikację i w winformsach powstanie o wiele szybciej to OK - kto pierwszy ten lepszy. Jeżeli jednak chodzi Ci o przejście i masz dużo czasu na swoje prace to odpuść winforms.
pozdro

0

Czy WPF ma więcej kontrolek w standardzie niż WinForms?

Wystarczy odpalić nowy projekt, by się dowiedzieć że WPF ma mniej kontrolek w standardzie niż WinForms.

0
lampasss napisał(a):

Jeżeli jednak chodzi Ci o przejście i masz dużo czasu na swoje prace to odpuść winforms.

Dlaczego?
Co daje WPF czego nie daje WF?

Sam pisze w Windows Form.
Ostatnio przy okazji nowego projektu na własne potrzeba zacząłem bawić się z WPF i jakoś (póki co) nie widzę profitów zastosowania tej technologii.

1

Dlaczego?
Co daje WPF czego nie daje WF?

WPF ma znacznie lepszy i bardziej rozbudowany data binding niż to, co było dostępne w WinForms. Do tego choćby DataTemplate oraz rozbudowane mechanizmy stylów.

0

WPF ma znacznie lepszy i bardziej rozbudowany data binding niż to, co było dostępne w WinForms. Do tego >choćby DataTemplate oraz >rozbudowane mechanizmy stylów.

Które są tak intuicyjne że trzeba przeglądać tematy na stacku w których pytania mają mniej niż 10 łapek w górę.

0
grzesiek51114 napisał(a):

Nowe, ciekawsze projekty, programowanie w oparciu na MVVM (bo pisać w WPF bez MVVM można ale to masochizm), porządek i nowoczesne tworzenie GUI versus głównie stare projekty, różnie pisane, często bez znajomości MVP czyli logika przytwierdzona do widoku, bo ludzie nie byli świadomi, że można inaczej etc...

No już bez przesady, że wszyscy programiści WPF tak świetnie znają wzorce i tak dobrze separują logikę od widoku... Bo wiesz, to że w Modelu z MVVM odwołuje się do bazy danych, to jeszcze nie jest separacja.

0

No dobra, wszystko ładnie pięknie. Tylko może jestem zbyt leniwy, ale większość tutków które znalazłem w necie są krótko mówiąc badziewne. Piszę od zawsze w WF ale planuję się przerzucić na WPF m.in ze względu na stronę wizualną ale odstrasza mnie ustawianie kontrolek i część rzeczy których brakuje mi w podstawowym pakiecie kontrolek np. button z obrazkiem. Macie coś takiego zwięzłego do obejrzenia/poczytania?

0

Nie ma buttona z obrazkiem, ponieważ takie coś w WPF spina się bardzo prosto i nie ma sensu tworzyć osobno takiej kontrolki. W skrócie robi się to tak:

Pisane z pamięci:

<Button>
	<StackPanel Orientation="Horizontal">
		<Image Source="../Dir/Image.png" Width="45"/>
		<Label Content="Press me!"/>
	</StackPanel>
</Button>

Proste i czytelne.

Co do jednej rzeczy się natomiast zgodzę: Zazwyczaj tutki dotyczące WPF wespół z MVVM są rzeczywiście marnej jakości.

0

Poza świetnym mechanizmem bindowania - WPF jest lepszy od WinForms, bo wymusza/zachęca do:

  • projektowania responsywnych interfejsów
  • programowania opartego na zdarzeniach

a to są dziś standardy.

Rozpoczynanie nauki WinForms w 2017 roku porównał bym do biegania z maczugą. Można, dla sportu, rozrywki, ale po co :)
Za 2-3 lata połowa komputerów będzie miała monitory 4k.

1
Kamil A napisał(a):

WPF jest lepszy od WinForms, bo wymusza/zachęca do:

  • projektowania responsywnych interfejsów
  • programowania opartego na zdarzeniach

A WinForms nie? o_O

grzesiek51114 napisał(a):

Zdecydowanie przyszłością desktopu są technologie oparte o XAML czyli właśnie WPF i UWP.

Byłbym ostrożny w nazywaniu czegokolwiek „przyszłością”. WPF to nie przyszłość tylko teraźniejszość, i to teraźniejszość która ma ponad 10 lat. Za parę lat Microsoft kolejny raz wymyśli coś nowego „wspaniałego” i będzie napierać by wszyscy się przerzucili.

Co do UWP to... jakoś nie mogę się przekonać. Z tego co widzę, to to się nadaje do robienia minimalistycznego GUI dla badziewnych apek, nie do „poważnych” programów. Może zmienię zdanie jak zobaczę GUI na miarę Photoshopa czy choćby samego Visuala.

Jedyny program UWP jakiego używam na codzień to Kalkulator z Windows 10, i tak, uważam go za badziewny w porównaniu z poprzednimi wersjami.

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