Dataniedziela, 9 sierpnia 2026 Czas08:06:18
← Aplikacje desktopowe (WPF)

Lekcja 3. Środowisko i technologie — Visual Studio, WPF, WinForms, Qt

Podstawowy

Po co się tego uczymy?

Podstawa programowa (INF.04.5.1 i INF.04.5.2) wymaga znajomości środowiska programistycznego dla aplikacji desktopowych oraz świadomego wyboru frameworku. Zanim zaczniesz pisać kod, warto wiedzieć, czym różni się WPF od WinForms i Qt — i dlaczego to właśnie WPF będzie naszym głównym narzędziem w tym dziale.

Teoria

IDE (Integrated Development Environment) — zintegrowane środowisko programistyczne — to program łączący w jednym miejscu: edytor kodu z podpowiedziami składni (IntelliSense), kompilator, debugger (narzędzie do wyszukiwania błędów krok po kroku) oraz często wizualny projektant interfejsu (przeciąganie i upuszczanie kontrolek na okno). Dla platformy .NET/Windows standardem jest Visual Studio — to w nim będziemy tworzyć wszystkie aplikacje desktopowe w tym dziale.

Frameworki do tworzenia aplikacji desktopowych w C#:

  • WPF (Windows Presentation Foundation) — nowocześniejszy framework Microsoftu, interfejs opisywany w języku XAML (podobnym do HTML/XML), z wbudowanym wsparciem dla data binding (automatycznego łączenia danych z interfejsem), animacji, stylów i wzorca MVVM (poznamy go w dalszych lekcjach). To on jest naszym głównym narzędziem w tym dziale;
  • Windows Forms (WinForms) — starszy framework, gdzie interfejs projektuje się głównie wizualnie (przeciąganie kontrolek), a kod generowany jest automatycznie w tle. Prostszy na start, ale mniej elastyczny i rzadziej wybierany w nowych projektach;
  • Qt — framework wieloplatformowy (C++/Python), pozwalający napisać jedną aplikację działającą na Windows, macOS i Linux bez przepisywania kodu. Wymieniony w podstawie programowej jako alternatywa, ale w naszym dziale skupiamy się na WPF.

Dlaczego WPF? Bo rozdziela wygląd (XAML) od logiki (C# w tzw. code-behind), co ułatwia pracę zespołową (jedna osoba projektuje wygląd, druga pisze logikę) i jest zgodne z nowoczesnym podejściem do programowania interfejsów, które poznasz też przy okazji aplikacji mobilnych (.NET MAUI używa bardzo podobnej koncepcji XAML).

Schemat

Porownanie frameworkow do aplikacji desktopowych w C#:

              WPF                  WinForms              Qt
Jezyk UI:     XAML                 kod C# (generowany)   C++/Python
Wyglad:       elastyczny,          prostszy, mniej        wieloplatformowy
              stylowany            elastyczny
Wzorzec:      MVVM (rozdzielenie   kod czesto zmieszany   rozne podejscia
              logiki od UI)        z UI
Platforma:    tylko Windows        tylko Windows          Windows/macOS/Linux
Nasz wybor:   ✓ GLOWNA TECHNOLOGIA  wspomniana             wspomniana
              w tym dziale          do porownania          jako alternatywa

Przykład z życia

Wiele profesjonalnych aplikacji biznesowych na Windows — systemy księgowe, programy do zarządzania magazynem, aplikacje bankowe na komputery stacjonarne w oddziałach — jest pisanych właśnie w WPF, bo pozwala on tworzyć rozbudowane, estetyczne interfejsy z możliwością łatwej zmiany stylu graficznego (np. dopasowanie do identyfikacji wizualnej firmy) bez przepisywania logiki aplikacji.

Kod (XAML)

<!-- Podglad tego, co dopiero nadejdzie: minimalny szkielet okna WPF w XAML -->
<Window x:Class="MojaPierwszaAplikacja.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Moja pierwsza aplikacja WPF" Height="300" Width="450">
    <Grid>
        <TextBlock Text="Czesc, WPF!"
                   FontSize="24"
                   HorizontalAlignment="Center"
                   VerticalAlignment="Center" />
    </Grid>
</Window>

Komentarz i wyjaśnienie kodu

To zapowiedź tego, co zaczniemy pisać w kolejnej lekcji — nie musisz na razie rozumieć każdej linijki. Zwróć uwagę na strukturę: <Window> to całe okno aplikacji, <Grid> to kontener układający elementy wewnątrz, a <TextBlock> to pojedynczy element tekstowy — dokładnie tak, jak w HTML zagnieżdżamy znaczniki jeden w drugim. To podobieństwo do HTML/XML jest celowe i bardzo pomaga, jeśli znasz już dział HTML i CSS z INF.03.

Ćwiczenie samodzielne

Zainstaluj (jeśli jeszcze nie masz) Visual Studio 2022 lub 2026 Community z obciążeniem ".NET desktop development" (Programowanie aplikacji klasycznych .NET) w Visual Studio Installer. To jedyny konkretny warunek techniczny, żeby móc wykonywać kolejne lekcje tego działu.

Zadania do pracy własnej

  1. Wypisz 3 różnice między WPF a WinForms, korzystając z tabeli porównawczej z tej lekcji.

  2. Sprawdź (np. w dokumentacji Microsoft Learn), czym jest XAML użyty w .NET MAUI (aplikacje mobilne) — czy jest to ta sama technologia co w WPF, czy tylko podobna składnia? Zapisz wnioski w 2-3 zdaniach.

  3. Zainstaluj Visual Studio z obciążeniem do WPF, utwórz nowy, pusty projekt "Aplikacja WPF (.NET)", uruchom go (bez zmiany kodu) i zrób zrzut ekranu domyślnego, pustego okna.

Typowe błędy

Instalacja Visual Studio bez obciążenia ".NET desktop development" — bez tego szablony projektów WPF w ogóle się nie pojawią. To najczęstszy problem na starcie tego działu.

Mylenie WPF z Windows Forms — to dwa RÓŻNE frameworki o różnej filozofii pracy; kod i podejście do projektowania interfejsu nie są przenoszalne wprost między nimi.

Oczekiwanie, że aplikacja WPF uruchomi się na macOS/Linux — WPF jest technologią WYŁĄCZNIE dla Windows. Do aplikacji wieloplatformowych desktopowych służy np. .NET MAUI (o którym więcej w dziale aplikacji mobilnych) albo wspomniany Qt.

Nawiązanie do egzaminu zawodowego

To realizacja INF.04.5.1 ("wykorzystuje środowisko programistyczne dla aplikacji desktopowych") i INF.04.5.2 ("wykorzystuje frameworki do programowania aplikacji desktopowych — WPF, Qt"). Od kolejnej lekcji zaczynamy pisać prawdziwy kod.