Forms vs WPF vs UWP

0

Witam,
mam takie pseudo luźne pytanie, mam za sobą x linii kodu i staram się uczyć C#.
A więc spotkałem się z projektami Formsowymi, WPF i UWP.
I mam do Was pytanie, czy różnią się dane kategorie, domyślam się, że technologicznie są inne, różnią się datą "wydania". Czy istnieje coś takiego, że dany format jest polecany do tworzenia w nim aplikacji w owych czasach? Czy mają po prostu specyficzne zostawania(jakie?)? Polecacie naukę jakiegoś konkretnego/tworzenie własnie w nim?

Dodatkowo wykorzystam ten wątek by nie robić kolejnego. Mam świeżo zainstalowanego Win10 Education, Wersja: 1703, Nr kompilacji systemu: 15063.877, SDK w wersji 10.1.16299.15
Przechodzę do VS 2017 i tworzę projekt UWP, wszystko pojawia się bez problemu do momentu kiedy chce zobaczyć projektant aplikacji wtedy dostaję informacje "Program VS wymaga nowszej wersji systemu Windows do wyświetlenia tej zawartości. Przeprowadź aktualizację do wersji UAP(10.0.16299.0) lub nowszej.
Sprawdzam aktualizację, nie mam żadnych nowych. VS "naprawiałem" reinstalowałem SDK i nadal nic. Macie jakieś pomysły co mogę zrobić.
Gdy tworzę apkę wybieram:
Docelowa wersja: Win10 Fall Creators Update (10.0; kompilacja 16299)
Wersja minimalna: Win10 November Update (10.0; kompilacja 10586)
Rozumiem, że wina stoi po stronie nieaktualnego Windowsa, tylko rodzi się pytanie jak go zaktualizować?

3

WinForms to najstarsza opcja tworzenia .NET-owych aplikacji okienkowych.

WPF to opcja młodsza, w której pojawia się XAML, czyli język do opisu wyglądu okna aplikacji; pozwala na więcej bajerów graficznych i wszystko robi się trochę inaczej niż w WinForms. Jeżeli potrzebujesz budować aplikacje desktopowe, to prawdopodobnie obecnie wybrałbym WPF na początek. Ale pośrednio wynika to z tego, że mi się w WPF wygodniej pisze niż w WinForms - choć wymagało to ogarnięcia o co chodzi i jak to działa.

UWP to opcja najmłodsza, przeznaczona dla "aplikacji Windows 10", czyli w zasadzie tych, które dopasowują się do urządzenia (desktop, tablet, Xbox, IoT), są pobierane ze Sklepu, raczej są przeznaczone do obsługi dotykiem i mają trochę ograniczeń w stosunku do "zwykłych" aplikacji desktopowych (przede wszystkim kwestia uprawnień). UWP również opiera się o język XAML. Jeżeli chcesz budować aplikacje na tablety czy Xbox to powinieneś wybrać UWP. Pisze się w nim całkiem nieźle, ale wiele rzeczy robi się inaczej niż w WPF (i to też takich prostych jak np. dostęp do pliku).

Więcej:
https://4programmers.net/Forum/C_i_.NET/286010-wpf_czy_winforms_2017
https://4programmers.net/Forum/Newbie/269365-przyszlosc_wpf_i_aplikacji_desktopowych
https://4programmers.net/Forum/Newbie/303816-wpf_vs_window_forms_ktora_lepsza_do_zapoznania_przy_tworzeniu_aplikacji_natywnych
https://4programmers.net/Forum/Newbie/226491-winforms_vs_wpf?p=996366#id996366


Co do twojej wersji Windows: a co jeśli wybierzesz tworzenie wersji docelowej na Creators Update (15063)? Wtedy jest zgodne z twoją wersją systemu i powinno działać.

Windows 10 Education to odmiana która jest mniej-więcej równoważna wersji Enterprise i aktualizację zawsze przeprowadzałem przez pobranie nowego obrazu ISO, zamontowanie go i uruchomienie aktualizacji. Nie wiem czy wersja 1709 jest zwyczajnie wypychana do użytkowników przez Windows Update dla tej odmiany.

0

Dziękuje za odpowiedź, na coś takiego liczyłem, a więc postaram się rozwijać w WPF.
Docelowej wersji zmienić nie mogę, tak po prostu.
Zmiana wersji minimalnej na jakąkolwiek dostępna nie przynosi nic co naprawiałoby problem.
Może wraz z aktualizacjami coś się zmieni na lepsze. Już parę razy miałem tak, że niby aktualizacji nie było, gdzie po paru minutach kolejne się dociągały. Ale z tego opisu wynika, że raczej UWP nie będzie mi na razie najbliższe.
Jeszcze raz bardzo dziękuję.

0

Jeżeli nie możesz zmienić wersji docelowej, musisz doinstalować sobie SDK UWP dla Windows 10 1703 (Creators Update) po prostu; w dodatkowych opcjach instalatora Visual Studio. Problem jest taki, że masz Windows w wersji 1703, a SDK dla wersji 1709.

0

Tak też zrobię!
Mam w sumie jeszcze jedno pytanie, studiuję Informatykę, jestem po przedmiocie Programowanie Obiektowe na którym miałem C++, sam staram się uczyć C#, czeka mnie Java, a wcześniej miałem C.
Czasem na forum, odnoszę wrażenie.. negowania (?) języka C++, ciężko mi to opisać, z forum (możliwe, że błędnie) odniosłem wrażenie, że C++ jest przeżytkiem i teraz większość świata patrzy na Jave w wersji Script, a jak to realnie wygląda?
Domyślam się, że nauka C++ to na pewno nie czas wyrzucony w błoto, ale czy definitywnie cały świat kręci się dookoła Javy, a potem jest cała reszta?
Jest jakaś "hierarchia wartości" języków, sensu ich nauki?

1

Dodatkowo wykorzystam ten wątek by nie robić kolejnego. Mam świeżo zainstalowanego Win10 Education, Wersja: 1703

Jeśli nie masz konkretnego powodu by trzymać się nienajnowszej wersji (a jeśli nie wiesz to znaczy że nie masz) to zaktualizuj system do 1709.

rodzi się pytanie jak go zaktualizować?

Ja używam programu Windows Media Creator Tool, który zawsze pobiera najnowszą wersję.
Ale uwaga: w tym programie nie wybieram opcji zaktualizowania systemu. To się często nie udaje, z niezrozumiałych dla mnie powodów.
Zamiast tego wybieram opcję ściągnięcia obrazu ISO. Potem montuję obraz jako wirtualny napęd i odpalam instalator.

0

Na razie taka mi się nie pojawia, w sumie po prostu Windows informuje mnie, że nie ma dla mnie aktualizacji, ale może uda się jakoś ją "wymusić" czy coś takiego.

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