WPF, czy WinForms (2017)

WPF, czy WinForms (2017)
Czy używasz WinForms, czy WPF (w aplikacjach desktop)?
Od zawsze używam WPF, a z WinForms nie mam nic wspólnego
13%
13% [4]
Od jakiegoś czasu używam WPF, przestałem używać WinForms
29%
29% [9]
Do niektórych nowych projektów używam WPF, a do innych nowych WinForms
16%
16% [5]
Do nowych używam WPF, tylko stare utrzymuję w WinForms
6%
6% [2]
Używam WinForms, ale planuję przerzucić się na WPF
10%
10% [3]
Używałem, używam i będę używał WinForms
26%
26% [8]
JU
  • Rejestracja:około 22 lata
  • Ostatnio:2 miesiące
  • Postów:5042
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) :)

E9
  • Rejestracja:ponad 13 lat
  • Ostatnio:12 miesięcy
  • Postów:395
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.

grzesiek51114
grzesiek51114
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:2442
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ę :)

edytowany 2x, ostatnio: grzesiek51114
Ktos
Moderator
  • Rejestracja:prawie 23 lata
  • Ostatnio:około 10 godzin
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 ;-)

grzesiek51114
grzesiek51114
Dokładnie. WPF wcale nie jest takie nowe jak się ludziom wydaje. :)
Ktos
Pisałem w WPF jak jeszcze się nazywało WinFX! Wynocha z mojego trawnika! ;-)
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:minuta
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?

JU
No to ja się pytam, bo w necie czytam różne rzeczy :)
JU
  • Rejestracja:około 22 lata
  • Ostatnio:2 miesiące
  • Postów:5042
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

grzesiek51114
grzesiek51114
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:2442
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.

edytowany 3x, ostatnio: grzesiek51114
LA
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 9 godzin
  • Postów:471
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

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:minuta
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.

edytowany 1x, ostatnio: Azarien
HI
  • Rejestracja:około 13 lat
  • Ostatnio:2 dni
  • Postów:1857
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.

Ktos
Moderator
  • Rejestracja:prawie 23 lata
  • Ostatnio:około 10 godzin
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.

T9
  • Rejestracja:około 10 lat
  • Ostatnio:prawie 6 lat
  • Postów:329
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ę.

edytowany 1x, ostatnio: topik92
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około godziny
  • Lokalizacja:Wrocław
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.

grzesiek51114
grzesiek51114
Na pewno są ich bardziej świadomi, bo prawie zawsze kiedy mowa jest o WPF trąbi się także o MVVM.
grzesiek51114
grzesiek51114
Bo wiesz, to że w Modelu z MVVM odwołuje się do bazy danych, to jeszcze nie jest separacja. - wszędzie można pchać encje do GUI...
BO
  • Rejestracja:około 8 lat
  • Ostatnio:23 dni
  • Postów:34
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?

grzesiek51114
grzesiek51114
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 4 lata
  • Postów:2442
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:

Kopiuj
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.

edytowany 1x, ostatnio: grzesiek51114
Zobacz pozostały 1 komentarz
grzesiek51114
grzesiek51114
@Bogu kiedy jest dokładnie odwrotnie. Pisałem dość duże aplikacje w WPF i naprawdę ani razu nie użyłem designera, który mówiąc szczerze nie jest dla WPF najlepszy, ponieważ stanowczo za dużo chce zrobić za programistę.
BO
Za szybko poleciałem, miało być że "Brak podobnych możliwości jest po prostu dziwne i wybrakowane". Czyli krótko mówiąc jak chcę coś pisać w WPF to powinienem najpierw ogarnąć pisanie kontrolek w XAMLu?
grzesiek51114
grzesiek51114
@Bogu no a jak inaczej? Tak samo w WinForms: Jeżeli chcesz pisać efektywnie w formsach to MUSISZ nauczyć się składać GUI imperatywnie. Jak się tego nie nauczysz to (nawet w formsach) nie będziesz w stanie sklecić w dwie minutki głupiej formy do testów. Zamiast tego będziesz ją wyklikiwał pół godziny, a ktoś tutaj na forum już odpowie w wątku i Ci punkty przepadną :P
BO
Czyli krótko mówiąc wracamy do punktu wyjścia: bez porządnego tutka będzie ciężko. O MSDN nie wspominam bo często artykuły tam zamieszczone pozostawiają wiele do życzenia.
grzesiek51114
grzesiek51114
@Bogu co Ci mam powiedzieć? Chyba tylko to, że kropla drąży skałę. Push, push, push...
KA
  • Rejestracja:około 8 lat
  • Ostatnio:5 miesięcy
  • Postów:35
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.

edytowany 1x, ostatnio: Kamil A
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:minuta
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.

edytowany 1x, ostatnio: Azarien

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.