1. Biblioteka a Framework – Kto tu kim rządzi? (Zasada Hollywoodzka)
Bardzo częstym błędem na egzaminie zawodowym jest mylenie biblioteki (library) z frameworkiem (szkieletem programistycznym). Obie rzeczy to cudzy kod, którego używamy, by nie wymyślać koła na nowo. Różnica tkwi w tym, kto sprawuje kontrolę nad działaniem aplikacji.
Tradycyjny program (Biblioteka):
TWÓJ KOD ──[wywołuje]──► BIBLIOTEKA (np. Math.Sqrt)
Program oparty o Framework:
FRAMEWORK (Silnik WPF) ──[wywołuje w odpowiednim momencie]──► TWÓJ KOD (np. Obsługa kliknięcia)
Biblioteka = Skrzynka z narzędziami / Market budowlany
Gdy piszecie tradycyjny program i musicie obliczyć pierwiastek kwadratowy, sięgacie po Math.Sqrt(). Gdy chcecie zapisać plik JSON, sięgacie po bibliotekę Newtonsoft.Json.
- To Wasz kod decyduje, kiedy biblioteka ma zacząć działać, kiedy skończyć i co z jej wynikiem zrobić.
- Wy jesteście szefem na budowie, a biblioteka to Wasz młotek.
Framework = Gotowa linia montażowa lub szkielet biurowca
Framework to gotowa architektura. Wyobraźcie sobie fabrykę samochodów: taśmociąg jedzie sam, silniki są montowane w określonym rytmie, a Wy dostajecie tylko jedno, ściśle wyznaczone stanowisko np. wkręcanie kierownicy.
- Nie Wy decydujecie, kiedy fabryka startuje ani jak działa taśma transmisyjna.
- W świecie programowania nazywa się to Inversion of Control (IoC) lub potocznie Zasadą Hollywoodzką:
„Nie dzwoń do nas – to my zadzwonimy do ciebie”
W aplikacjach okienkowych to framework zarządza pętlą zdarzeń systemu Windows. Czeka na ruch myszką, kliknięcie klawiatury, odrysowuje piksele na ekranie i dopiero w odpowiedzi na te zdarzenia wywołuje funkcje, które Wy napisaliście (np. Button_Click).
2. WPF: Dwa światy pod jednym dachem
.NET to cała platforma, a WPF (Windows Presentation Foundation) to wyspecjalizowany framework wewnątrz .NET, stworzony do pisania nowoczesnych aplikacji okienkowych dla systemu Windows.
Dlaczego w uczymy się WPF, a nie starego Windows Forms? Z trzech kluczowych powodów:
A. Rozdzielenie wyglądu od logiki (XAML + C#)
W WPF interfejs aplikacji budujemy zupełnie inaczej niż w starych technologiach:
- XAML: Deklaratywny język (oparty o znaczniki, bardzo podobny do HTML/XML), w którym definiujemy WYGLĄD: gdzie ma stać przycisk, jaki ma mieć kolor, marginesy i animacje.
- C#: Czysty kod obiektowy, w którym piszemy LOGIKĘ: co ma się stać po pobraniu danych z bazy, jak przeliczyć cenę towaru itp.
B. Grafika wektorowa i potęga karty graficznej (DirectX)
- Kontrolki w WPF są wektorowe - niezależnie od tego, czy uruchomicie program na starym laptopie z ekranem HD, czy na nowoczesnym monitorze 4K, Wasze przyciski i teksty będą idealnie ostre, bez brzydkiej pikselozy.
- Za wyświetlanie okna odpowiada silnik DirectX. Oznacza to, że za wygląd aplikacji odpowiada Wasza karta graficzna (GPU), odciążając główny procesor komputera (CPU).
C. CKE nie pozwala :(
- CKE pozwalało na rozwiązywanie egzaminu z dopuszczeniem do Windows Forms do ostatniej sesji 2026 roku. Od teraz już tylko WPF.
3. Dlaczego Visual Studio (IDE), a nie Notatnik?
Podczas instalacji Visual Studio z dodatkiem dla .NET desktop instalator pobiera kilkanaście gigabajtów danych. Dlaczego zatem nie możemy używać głupiego notatnika, który nie zajmuje kilkunastu gigabajtów?
Odpowiedź brzmi: możesz, ale praca zajmie Ci 10 razy więcej czasu i oszalejesz od szukania literówek.
Visual Studio to nie edytor tekstu to IDE (Integrated Development Environment). Łączy w jednym oknie dziesiątki narzędzi inżynieryjnych:
| Narzędzie w Visual Studio | Co nam daje podczas pracy z WPF? |
|---|---|
| XAML Designer (Podgląd) | Widzimy tworzone okno w czasie rzeczywistym w trybie podziału ekranu (Split View). Zmiana w kodzie natychmiast odświeża podgląd. |
| IntelliSense & IntelliCode | Prawdziwy anioł stróż. Podpowiada nazwy kontrolek, atrybutów, a wciśnięcie klawisza Tab po wpisaniu zdarzenia (np. Click=) samo tworzy odpowiednią metodę w pliku C#. |
| XAML Hot Reload | Magia! Możecie uruchomić program, zmienić kolor tła lub rozmiar marginesu w kodzie XAML, a aplikacja natychmiast się zaktualizuje bez konieczności zatrzymywania i ponownej kompilacji. |
| Debugger i punkty wstrzymania | Zatrzymywanie programu w dowolnej linii, podglądanie wartości zmiennych w pamięci RAM i tropienie błędów linijka po linijce. |
⚠️ Ważna uwaga: Za skompilowanie programu odpowiada zestaw narzędzi .NET SDK (polecenie
dotnet build/ silnik MSBuild), a nie sam program Visual Studio. Oznacza to, że z poziomu konsoli da się skompilować kod z Notatnika, ale Visual Studio daje nam potężne ułatwienia, bez których współczesne programowanie komercyjne byłoby koszmarem.