Czy WinForms już jest niemodne?

Czy WinForms już jest niemodne?
CI
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 11 lat
  • Postów:184
2

Witam

Od dłuższego czasu czytam strony poświęcone WPF i na każdej z nich autorzy opisują że Windows Forms już jest niemodne, jednakże 90% aplikacji jakie widzę to właśnie WForms, jak Wy się na to zaopatrujecie?

n0name_l
ostatnio WPF bylo na okladce glamour, stad to zainteresowanie...
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:4 minuty
1

jak Wy się na to zaopatrujecie?
Że znacznie łatwiej jest zbudować prawidłowy interfejs w WinForms, niż w WPF.

WPF vs WinForms to coś jak LaTeX vs Word: niby to pierwsze ma ogrooomne możliwości, ale na każdym kroku problem i pół godziny góglania. A i tak rozwiązanie nie jest zadowalające, a próbują ci wmówić, że „tak ma być”.

nerf
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 11 lat
1

a_s_f
bo w Winformsach nie włączyli SuspendLayout() :P
RE
takie porównanie nie ma sensu - widać, że kod z windows forms jest po prostu skopany. takiej ilości elementów nie dodaje się w ten sposób.
Azarien
hehe, doświadczyłem tego DZISIAJ, trzeba będzie poprawić ;)
CI
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 11 lat
  • Postów:184
0

Ze strony Azareina rozumiem, że WForms jest modny, w miarę prosty ( prostszy niż WPF ) i że ciągle stosowany.

Co do filmiku nerf, ciekawe zjawisko, nieraz doświadczyłem tego w Windows Forms.

nerf
  • Rejestracja:ponad 14 lat
  • Ostatnio:prawie 11 lat
1

Chyba nie można jednoznacznie powiedzieć, że windows forms jest już nie modny. WPF jest po prostu mocniejszy? Więc używa się ich według tego co się chcę osiągnąć.
Jakieś proste apki WF a kombajny WPF. Z tego, że w WPF ujednolicono cały model programowania wszystko masz w nim razem muzyka,grafika,rysowanie,kontroli a w WF rozrzucone na WF,GDI+,API Directx,api wmp.

XS
  • Rejestracja:około 12 lat
  • Ostatnio:około 7 lat
  • Postów:8
1

WF jest stosowany z dwoch powodow:

  1. Programy napisane w WF nie oplaca sie przenosic na WPFa
  2. Nie oplaca sie przenosic na nowe nieznane technologie

dlatego WF jest taki modny

AlfaLeporis
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 10 lat
  • Lokalizacja:Polska
1

Witam wszystkich!

Swoją przygodę zaczynałem w C# oczywiście od WinFormsów. Rzeczywiście na początku jest euforia, moc możliwości i różnych pierdółek do ustawiania. Gdy opanowałem podstawy, zająłem się poważniejszym projektem, w tym przypadku "My Organiserem" (być może ktoś pamięta, temat miał w końcu 1600 wejść).

Rzecz, która mnie jednak zniechęciła do WinFormsów było brak dowolności ustawiania pożądanego wyglądu. Prosty przykład: chciałeś mieć ładny przycisk z opcją zaokrąglania i gradientem? O nie panie, nie ma mowy, musisz albo przeciążyć klasę i zajmować się pisaniem tych funkcjonalności lub szukać jakichś kontrolek w internecie (z których sporo nie działa, przerabiałem to). Była to bariera z którą nie mogłem sobie za bardzo poradzić więc... postanowiłem nauczyć się WPF.

Początek był trudny - kompletnie nie mogłem zrozumieć filozofii przypinania danych do kontrolek oraz ustawiania schematów elementów. Było jednak coś, co zachęcało mnie do dalszej nauki: OGROMNE możliwości ustawiania wyglądu każdej części kontrolki. Gradienty to już nie problem. Chcesz mieć CheckListBox z podświetlanymi elementami na różowo? Nie ma problemu. A może DataGridView, gdzie komórka będzie miała gradient? Jasne! I spróbujcie teraz coś takiego zrobić w WinFormsach :)

Obecnie, w trakcie pisania My Organiser 2.0 korzystam z WPF i wniosek mam następujący - WinFormsy są fajne na początek ale w praktyce mało konfigurowalne (przynajmniej z poziomu "design") i mało wydajne (efekt migających kontrolek i te sprawy). WPF zapewnia wydajność, duże możliwości dostosowania wyglądu (dzięki wykorzystaniu XAML'a), łatwość przypinania danych do kontrolek. Może rzeczywiście nie jest to materiał łatwy do przyswojenia ale opłaca się - uwierzcie mi :)

Pozdrawiam! AlfaLeporis

CI
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 11 lat
  • Postów:184
0

Dokładnie masz rację, ja po opanowaniu WF i MVC i innych typu Singleton ( z rodziny Creational etc ) biore się za MVVM i WPF. Mam już małą bazę i walczę z interfejsem.

Pozdrawiam

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:4 minuty
0

A może DataGridView, gdzie komórka będzie miała gradient? Jasne! I spróbujcie teraz coś takiego zrobić w WinFormsach

Oczywiście że się da, tylko nie ma gotowca i trzeba rysować kontrolkę samemu...
Tak, WPF wygrywa pod względem graficznych bajerów.
Ale z jakiegoś powodu, w samym VS jest znacznie więcej różnych kontrolek dla WinForms niż WPF...

CI
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 11 lat
  • Postów:184
0

Azarien warto pisać małe aplikacje bazodanowe oparte o WPF ( tym samym się go uczyć ) czy lepiej drążyć WF. Wiadomo, że na moje potrzeby programistyczne aplikację są raczej nie wielkie, dopiero w firmach zaczyna się prawdzie programowanie.

AlfaLeporis
  • Rejestracja:ponad 12 lat
  • Ostatnio:prawie 10 lat
  • Lokalizacja:Polska
1

Ależ ja nie mówiłem że się nie da (chyba że to tak zabrzmiało) - da się ale o wiele większym kosztem niż w WPF gdzie wystarczy dodać kilka linii w XAML'u.

Co do ilości kontrolek - owszem, ale popatrz na ten przykład: w WinFormsach jest coś takiego jak checkListBox, w WPF natomiast nie ma czegoś takiego. Można by powiedzieć: "Schrzanili sprawę, toż to jest przecież niemal podstawowa kontrolka". Nic bardziej mylnego, do stworzenia checkListBoxa w WPF'ie wystarczy dodać ListBoxa i zmodyfikować szablon Itema na CheckBox'a - sumując jest to 5 dodatkowych linii kodu w XAML'u. Po co więc niemal powielać kontrolki?

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około godziny
  • Lokalizacja:Wrocław
2

Do WinFormsów jest masa kontrolek zewnętrznych firm (Telerik, DevExpress, itp.), które pozwalają osiągnąć wypasione efekty graficzne i zapewniają znacznie większą konfigurowalność niż standardowe. Efekt nie jest wcale dużo gorszy niż WPF.
WinFormsy są i długo będą popularniejsze, bo są starsze, więc więcej aplikacji powstało w tej technologii. Z kolei nowsze programy coraz częściej są tworzone w WPF.
A tak w ogóle, to w porównaniu z webowymi frameworkami .NET, obie te technologie są mało popularne. ;P

edytowany 1x, ostatnio: somekind
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:4 minuty
1

Tak naprawdę obie biblioteki od paru lat stoją w miejscu. Microsoft nie potrafi chyba się zająć więcej niż jedną na raz, a ostatnio było to WinRT...

edytowany 1x, ostatnio: Azarien
JH
  • Rejestracja:prawie 18 lat
  • Ostatnio:ponad 11 lat
1

Miałem napisaną aplikację, dość rozbudowaną w WinForms z wykorzystaniem komercyjnych bibliotek, po czasie stwierdziłem, że może warto przepisać GUI na WPF, a jeszcze lepiej Silverlight. Po ok 3 miesiącach zwątpiłem. Produktywność dostępnych kontrolek jest dużo większa dla technologii WF niż dla WPF/Silverlight. Inaczej ujmując trzeba się kilkukrotnie więcej napracować, żeby osiągnąć interfejs o takim samym stopniu skomplikowania, a korzyści żadnych odczuwalnych nie zauważyłem. W komercyjnych bibliotekach WF dostępne są skórki, czyli zestawy gotowych tematów profesjonalnie przygotowanych co znacznie poprawia wygląd aplikacji, praktycznie bez żadnego nakładu pracy. Dodatkowo można skórki edytować i tworzyć nowe. Wiem, że WPF ma większe możliwości pod tym względem, ale w ogromnej większości problemów WF w zupełności wystarcza. Osobnym tematem jest to co przyniesie przyszłość, WPF/Silverlight miało być rozwiązaniem na lata, teraz MS znów promuje WinRT nie rozwijając poprzednich technologii, a wręcz powoli się z nich wycofuje (Silverlight), a szkoda.

AlfaLeporis
Widzisz, tutaj jest mowa o komercyjnych kontrolkach, które są o niebo ładniejsze od tych standardowych. Zgadzam się, ale mi na przykład (i myślę że wielu innym osobom z małym budżetem) zostaje tylko WPF w którym wszystko sobie dostosuje ponieważ moje kieszonkowe nie starczy na taką inwestycje :)
Q4
  • Rejestracja:około 12 lat
  • Ostatnio:ponad 11 lat
  • Postów:103
0

Raczej nie warto mówić o wyższości jednej technologii nad inną. Nie wiem jak inni, ale ja osobiście trafiam na jedno zlecenie w wpf, na 20/30 w winforms. Często na anglojęzycznych stronach w tematach "czy warto?" odnośnie wpf, w odpowiedziach pojawia się : "steeper learning curve" i to właśnie jest powodem takiego podejścia do tej technologii. Osobną (ale ważną) sprawą jest też podejście microsoftu, gdzie nikt nie zna dnia ani godziny, kiedy powiedzą, że wsparcie dla WPF zostaje zakończone (albo wyskoczą z jakąś (ich zdaniem) świetną nową technologią).

Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:4 minuty
0

To jest właśnie bolączka Microsoftu, że średnio raz na dwa lata zmienia się kierunek wiatru.

Dlatego lepiej olać ich marketingowy bełkot i trzymać się tego co już jest i działa. A działać będzie (bardzo) długo, dla przykładu: runtime Visual Basic 6 (jeszcze nie .Net) ma oficjalny support do 2023 roku.

Niby to wycofany Silverlight też będzie jeszcze wspierany długo.

edytowany 1x, ostatnio: Azarien
somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około godziny
  • Lokalizacja:Wrocław
0

Ja ostatnio miałem propozycję wzięcia udziału w nowym projekcie tworzonym w WinFormsach. Coś mi się zdaje, że ta technologia prawdopodobnie przeżyje WPFa.

AC
  • Rejestracja:około 15 lat
  • Ostatnio:ponad 6 lat
0

Warto byłoby po ponad roku odświeżyć sporo temat.
Ciekawe byłyby także ponowne wypowiedzi ludzi, którzy wcześniej brali udział w dyskusji, czy ich zdanie się zmieniło.

Wydaje się, że mimo wszystko świat powoli odchodzi od WF na rzecz WPF.

Choć może wydać się to zaprzeczeniem mojego zdania powyżej, to napiszę: obecnie w firmie komercyjnie piszemy nadal w WF, lecz tylko i wyłącznie ze względu na to, że dużych projektów nie opłaca się przepisywać. Każdy nowy projekt od razu startuje w WPF, nie ma sensu brnąć w WF. Nawet, jeżeli początkowo wydaje się, że aplikacja nie musi być atrakcyjna wizualnie (sic! każda musi być! to jest marketing). W przyszłości klient zażyczy sobie gdzieś gradient i już nic się nie zrobi, bo przecież przepisanie WF->WPF będzie nieopłacalne. Warto patrzeć w przyszłość.

Dodatkowych kontrolek obecnie także jest więcej dla WPFa niż WFa.

Reasumując: zaczynacie? startujcie w WPF. Nie myślcie o WF. To, że dla WF są nadal ogłoszenia o pracę, oznacza tylko, że potrzeba ludzi do starych projektów. W takiej pracy na pewno się nie rozwinie człowiek.

Riw
Mimo wszystko wg mnie dobrze by było mieć jakiekolwiek pojęcie zarówno o WF jak i o WPF
Ktos
Można też wspomnieć, że coś się powoli rusza w sprawie WPF - Microsoft z powrotem się zaczął przyznawać do tej technologii ;-)
somekind
Co do ostatniego zdania - na pewno pracując w WF nie rozwinie się w WPF, ale tworzenie oprogramowania ma tyle aspektów, że można się rozwinąć w wielu innych dziedzinach, np. architekturze, pisaniu testów, używaniu ORMów lub innych bibliotek, itd.
Azarien
  • Rejestracja:ponad 21 lat
  • Ostatnio:4 minuty
0

Wydaje się, że mimo wszystko świat powoli odchodzi od WF na rzecz WPF.
Świat w ogóle odchodzi od dekstopa na rzecz telefonów, tabletów i takich tam, a nawet na desktopie coraz więcej rzeczy jest robionych webowo. Tendencja utrzymuje się od lat, i moje niezadowolenie z tego stanu rzeczy nie ma żadnego wpływu na rzeczywistość ;-)

Każdy nowy projekt od razu startuje w WPF, nie ma sensu brnąć w WF
Ja często nie widzę sensu „brnąć” w WPF. Nie lubię go bo jest czasochłonne.

AM
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 10 lat
  • Postów:10
0

W ktorym momencie WPF jest bardziej czasochlonny niz WF ?
Chyba podstawowa zaleta WPF to ze renderuje okienka na GPU a nie CPU, przy rzeczach typu zwykly edytor map 2D to zaczyna odgrywac role.
W WPF mamy tez o niebo lepszy binding, w WF to jest tragiczne. W WPF na gridach mozna robic samoskalujace sie okienka bardzo latwo.
Poza tym templaty i MVVM(ja tam go lubie).

T2
  • Rejestracja:prawie 11 lat
  • Ostatnio:9 miesięcy
  • Postów:194
0

Warto uczyć się WPF zamiast WP.
Tak jak napisał Amphhh, duża zaletą są templaty oraz duże wsparcie dla MVVM.

Nawiązując do posta Azarien.
Korzystając z WPF i tworząc z duchem MVVM, zawsze będzie nam się łatwiej przerzucić na Angulara i inne rozwiązania webowe które wspierają MVVM.

Chdzk
  • Rejestracja:ponad 10 lat
  • Ostatnio:2 minuty
  • Lokalizacja:Poznań
0

Ja dodam od siebie, ze oczywiscie web + mobilki przewazaja. Natomiast "biznesowe swinie" sa pisane i beda pisane jako aplikacje desktopowe na PC'ty, bo maja sluzyc do pracy i w pelni wykorzystywac mozliwosci obliczeniowe maszyny. Do tego klienci chca miec ladny, nowoczesny interfejs i tutaj WPF w pelni zdaje egzamin, do tego jest bardzo elastyczny. Dodam, ze WPF to przede wszystkim XAML, a polityka Microsoftu zmierza do tego, ze nie bedzie rozroznienia Windows Phone/Windows.Bedzie po prostu Windows (zarowno na PC i na urzadzenia mobilne) i ta sama aplikacja bedzie uruchamiana zarowno na urzadzeniu mobilnym jak i na PC. Wiec warto znac WPF przynajmniej dla samego XAML'a.

Zobacz pozostałe 4 komentarze
somekind
A jakie to korzyści? Ja generalnie tworzę soft biznesowy, który raczej żyje na serwerach, a interfejs jeśli jakiś jest, to jest webowy. Brałem też parę razy udział w przepisywaniu aplikacji desktopowej na web.
Chdzk
Responsywnosc, komunikacja z zewn. urzadzeniami, szybkosc (zwlaszcza przy obsludze plikow), skroty klawiszowe i rozne niestandardowe rozwiazania (security w wielu przypadkach mocno ogranicza przegladarki). Backend zazwyczaj jest rozproszony na roznych serwisach i klastrach, a WPF to tylko UI.
somekind
Skróty klawiaturowe to akurat mały problem. Ale tak czy siak, ja raczej widzę tendencję zwyżkową w webie i przechodzenie z desktopa na web, o odwrotnym przypadku jeszcze nie słyszałem.
n0name_l
@Chdzk Zapominasz o waznym czynniku - pani basii. Taka pania nie obchodzi skad sie aplikacja wezmie (ani tymbardziej nie ma w planach instalowac czegokolwiek). Nie obchodza ja skroty klawiaturowe - tak czy siak ich nie zapamieta ani nie bedzie uzywac. Obchodzi ja jedynie, zeby moc odwalic robote i ogladac koty w internecie. A przegladarka do tego to jest akurat najlepsza, bo pani basia umie jej uzywac w stopni pozwalajacym przeklikac formularz.
Chdzk
Nie w kazdej branzy sa "panie Basie" ;), no chyba ze mowa o ksiegowych. Natomiast w bankowosci czesto sa specjalisci, ktorzy szybko chca pozmieniac duza ilosc danych albo szybko zrealizowac jakies zlecenie. Czasami widze jak obsluguja sprawnie system (wlasnie glownie skrotami), to jestem pelen podziwu, bo nie nadazam. A juz najgorsze sa przyzwyczajenia typu: "bo w starym systemie wystarczy ze nacisnalem 'X' i juz mialem w oknie 'Y'" Klient nasz Pan, w jakiej formie UI chce, takie dostanie ;)

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.