Nauka WPF w 2022, a praca

Nauka WPF w 2022, a praca
FF
  • Rejestracja:około 4 lata
  • Ostatnio:około 2 lata
  • Postów:8
0

Witajcie,

Dłuższą chwilę, choć dosyć leniwie, klepię sobie kod w platformie .Net. Spróbowałem co nie co ASP, ale nie czuję tego do końca. Zawsze byłem fanem małych, portable .exeków, które miały własne gui, miały do spełnienia swoje zadanie i działały szybko. Również nigdy nie pałałem miłością do pozycjonowania w CSS. Stąd moje aspiracje do tworzenia tego typu aplikacji. Dosyć romantyzmu, do rzeczy.

Zwracam się zwłaszcza do pracujących w branży. Czy w 2022 dalej warto zainwestować czas w ten framework? Już słyszałem, że UWP odpada przede wszystkim za podejście do uprawnień. Natomiast WPF za swoją niezawodność dalej jest w grze. Wyczytałem na quorze i zapamiętałem fragment:

Anecdotally, a client of mine has been looking for WPF developers for a long time. In particular, they were looking for both senior and intermediate developers. There were none to be found. None. In 2+ years of searching.

Dlatego niezmiernie interesuje mnie rynek polski.

Mam już swój pełnoprawny projekt, którego nie pokażę, bo to jest gwałt na projektowaniu aplikacji. Stosowanie polskiego nazewnictwa naprzemian z angielskim, wszystko sklepane tak, aby działało, brak wzorca MVVM. Ale jest to aplikacja, która umożliwia wprowadzanie, edycję danych do pamięci RAM, ich serializację do XML, backupy - generalnie jest to wyszukiwarka wpisów. Tym razem mam ochotę przepisać projekt z zastosowaniem wzorca MVVM, bazą danych SQL z Dapperem lub EF, obsługą wielu instancji aplikacji na różnych komputerach za pomocą SignalR.

Stworzenie tego tematu jest wynikiem wątpliwości co do kierunku, który chcę wybrać. Za wszystkie odpowiedzi z góry dziękuję.

edytowany 1x, ostatnio: fffffffff
MrMadMatt
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 14 godzin
  • Postów:373
1

IMHO nie ma sensu uczyć się frameworka który jest dedykowany aplikacjom deskopowym. Czy to WPF w .NET czy JavaFX w świecie JVM. W obu ekosystemach prym wiedzie tandem fancy frontend w webowej technologii + backend serwis w C# / Javie. Jak już klepiesz w C# to poszedłbym w naukę projektowania API backendowych.

kzkzg
  • Rejestracja:ponad 8 lat
  • Ostatnio:około 7 godzin
  • Postów:926
0

obsługą wielu instancji aplikacji na różnych komputerach za pomocą SignalR.

Hmm, możesz rozwinąć?


Keep calm and blame frontend.
Tell your cat I said pspsps.
FF
  • Rejestracja:około 4 lata
  • Ostatnio:około 2 lata
  • Postów:8
0
MrMadMatt napisał(a):

IMHO nie ma sensu uczyć się frameworka który jest dedykowany aplikacjom deskopowym. Czy to WPF w .NET czy JavaFX w świecie JVM. W obu ekosystemach prym wiedzie tandem fancy frontend w webowej technologii + backend serwis w C# / Javie. Jak już klepiesz w C# to poszedłbym w naukę projektowania API backendowych.

Tak, doskonale zdaję sobie sprawę, co jest aktualnie na topie, ale czy idąc tą drogą nie skreślałbym od razu na przykład takiego machine learning? Aktualnie piszę backend dla webówki z kumplem, ale ciągnie mnie do fullstacka software. Stąd jest też temat, bo desktop jest niszą i pytanie, czy junior może się odnaleźć na rynku.

kzkzg napisał(a):

obsługą wielu instancji aplikacji na różnych komputerach za pomocą SignalR.

Hmm, możesz rozwinąć?

Jedna instancja aplikacji na komputer, wiele komputerów. Ciągłe pilnowanie, aby załadowane dane z bazy były aktualne, żeby nie dochodziło do konfliktów. A tak poza tym nauka tego narzędzia.

Miang
a co ma to wspólnego z machine learning?
FF
Również jest niszą
katakrowa
  • Rejestracja:około 10 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Chorzów
  • Postów:1670
2
MrMadMatt napisał(a):

IMHO nie ma sensu uczyć się frameworka który jest dedykowany aplikacjom deskopowym. Czy to WPF w .NET czy JavaFX w świecie JVM. W obu ekosystemach prym wiedzie tandem fancy frontend w webowej technologii + backend serwis w C# / Javie. Jak już klepiesz w C# to poszedłbym w naukę projektowania API backendowych.

Jaki sens ma ta odpowiedź? Mieszasz dwie różne architektury aplikacji sugerując żeby robić same backEndy bez interfejsu zamiast kompletnych aplikacji korzystając np. z WPF.
Wciąż ogrom profesjonalnych aplikacji pisany jest na desktopy a ich zalety jeszcze wiele lat będą niedoścignione dla architektury backend+frontend.

Odpowiadając na pytanie z tematu. Tak ma sens uczenie się pisania tego typu aplikacji. Jest to jeden ze sposobów pisania programów i będzie popularny jeszcze wiele wiele lat. Nawet na urządzenia mobilne tak się pisze.


Projektowanie i programowanie. Hobbystycznie elektronika i audio oszołom.
edytowany 1x, ostatnio: katakrowa
MrMadMatt
Taki ma sens moja odpowiedź aby nakierować autora na zmianę stacku na web frontend + backend API niż ma się pchać w stack z desktop frameworkiem który IMHO jest absolutnie bez przyszłości.
markone_dev
  • Rejestracja:około 3 lata
  • Ostatnio:dzień
  • Postów:816
3

Z moich obserwacji wynika, że ofert pracy w WPF dla .NET developerów jest dużo mniej niż w ASP.NET Core, ale są więc warto to mieć na uwadze decydując się poświęcić lata na specjalizację w pisaniu aplikacji desktopowych na Windows. Jeżeli Ci to nie przeszkadza, że nie będziesz mógł tak łatwo zmieniać pracy jak web developerzy to działaj w tym kierunku.


Programujący korpo architekt chmurowy.
Udzielam konsultacji i szkoleń w obszarze szeroko pojętego cloud computingu (Azure, AWS) i architektury systemów IT. Dla firm i prywatnie.
DevOps to proces nie stanowisko.
katakrowa
  • Rejestracja:około 10 lat
  • Ostatnio:około 2 lata
  • Lokalizacja:Chorzów
  • Postów:1670
0

@MrMadMatt Taki ma sens moja odpowiedź aby nakierować autora na zmianę stacku na web frontend + backend API niż ma się pchać w stack z desktop frameworkiem który IMHO jest absolutnie bez przyszłości.

Ocenianie i wybór kierunku rozwoju po popularności technologii to jeden z większych błędów jaki można popełnić.
Napisz mi jeszcze skąd ta informacja, że desktop frameworkiem który IMHO jest absolutnie bez przyszłości ? Kierujesz się własnymi odczuciami czy popularnością architektury a może dysponujesz jakimiś badaniami? Jeśli popularnością to wiedz, że wciąż większość aplikacji użytkowych jest właśnie typu Desktop.
Wiedz też, że programowanie ARM64 również nie jest popularne a trudno powiedzieć, że nie ma przyszłości.


Projektowanie i programowanie. Hobbystycznie elektronika i audio oszołom.
MrMadMatt
Twój komentarz dobitnie pokazuje że masz problemy z czytaniem ze zrozumieniem, wiesz co oznacza IMHO? W skrócie: w mojej ocenie (która z natury rzeczy jest subiektywna) a Ty mnie pytasz czym się kieruje. Czy badaniami czy odczuciami. Ręce opadają.
katakrowa
Wyrażasz swoje zdanie nie mając żadnych przesłanek ani podstaw ku temu? Zgadzam się tylko w jednym Ręce opadają.
MrMadMatt
Mam swoje podstawy do swojego zdania jednak podejmowanie polemiki z człowiekiem nie potrafiącym (bądź przez złośliwość niechcącym) czytać ze zrozumieniem jest marnowaniem czasu. Pozdrawiam cieplutko, miłego dzionka smacznej kawusi.
FR
  • Rejestracja:około 11 lat
  • Ostatnio:około 9 godzin
  • Postów:932
1

Z własnych obserwacji na 50 ofert na LI może 2-5 to oferty gdzie potrzebny jest WPF/WCF i najczęściej są to jakieś legacy gnioty.
Moim zdaniem nie ma sensu aktualnie uczenie się WPF'a.

A teraz naprowadzę swoim doświadczeniem:

Spróbowałem co nie co ASP, ale nie czuję tego do końca.

Na początku też nie byłem fanem. Teraz już wiem dlaczego - po prostu było to odrobinę trudniejsze. Próg wejścia i zrozumienia aplikacji internetowych jest trochę większy. W WPF robisz hello worlda i "widzisz namacalny efekt" bardzo szybko. Po prostu przyszło z czasem.

Zawsze byłem fanem małych, portable .exeków, które miały własne gui, miały do spełnienia swoje zadanie i działały szybko. Również nigdy nie pałałem miłością do pozycjonowania w CSS. Stąd moje aspiracje do tworzenia tego typu aplikacji. Dosyć romantyzmu, do rzeczy.

Też kiedyś nie byłem fanem CSS i dalej nie jestem, ale znowu j/w - im lepiej to poznałem tym mniej tego nienawidzę.
Co do spełniania swojego zadania i działania szybko. Opisywane "zapotrzebowanie" przez powyższą osobę na aplikacje desktopowe to na pewno nie idzie w parze z "działały szybko" i "małych". Najczęściej to korporacyjne nudne kobyły (systemy typu NFZ, Tauron, Asseco, Comarch i ogólnie chyba wszystko złe)

Zwracam się zwłaszcza do pracujących w branży. Czy w 2022 dalej warto zainwestować czas w ten framework? Już słyszałem, że UWP odpada przede wszystkim za podejście do uprawnień. Natomiast WPF za swoją niezawodność dalej jest w grze. Wyczytałem na quorze i zapamiętałem fragment:

W zasadzie ogólnie podsumowując Twoje pytania - osobiście to sam nawet programować nie chciałem w życiu, ale wybór programowania i webówki to po prostu porzucenie idealizmu na rzecz dobrze płatnej i ciekawej pracy :)

Mam już swój pełnoprawny projekt, którego nie pokażę, bo to jest gwałt na projektowaniu aplikacji. Stosowanie polskiego nazewnictwa naprzemian z angielskim, wszystko sklepane tak, aby działało, brak wzorca MVVM. Ale jest to aplikacja, która umożliwia wprowadzanie, edycję danych do pamięci RAM, ich serializację do XML, backupy - generalnie jest to wyszukiwarka wpisów. Tym razem mam ochotę przepisać projekt z zastosowaniem wzorca MVVM, bazą danych SQL z Dapperem lub EF, obsługą wielu instancji aplikacji na różnych komputerach za pomocą SignalR.

Wiele rzeczy które tutaj wypisałeś użyjesz bez problemu w aplikacjach webowych. Najczęściej aplikacje webowe to po prostu aplikacje, które mimo wszystko hostowane są na desktopie (serwerze) więc takie rzeczy jak pamięć, zapis plików na dysk, serializacja, backupy, operowanie na plikach są naturalne także dla weba.
Sql, dapper, ef, wiele instacji, signalR, to wszystko idzie w parze z webówką.

Trzeba rozdzielić backend od frontendu. Da się być backendowcem nie ruszającym frontu (czyli np. CSS'ów) ale pewne rzeczy trzeba poznać, żeby z frontem współpracować :)

W zasadzie cały Twój wpis moim zdaniem opiera się o lęk przed wyjściem ze swojej strefy komfortu. Poświęciłeś jakiś czas na edukację i uważasz, że nie lubisz webówki bo Cię "przeraża" niewiedza w jej zakresie. Jak to poznasz to moim zdaniem zmienisz zdanie, a dalej trzymając się pytania - moim zdaniem ciężko będzie z pracą w desktopowych technologiach i wybór miejsca pracy na pewno będzie mocno ograniczony.

PS. @katakrowa programistów COBOL'a też szukają, bo ostatnie sztuki powoli umierają/przechodzą na emeryturę.

edytowany 1x, ostatnio: froziu
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)