Desktop Apps

Aplikacje desktopowe

Aplikacje desktopowe to programy uruchamiane lokalnie w systemie operacyjnym użytkownika (Windows, macOS, Linux), niezależne od przeglądarki. Dają dostęp do zasobów komputera (plików, drukarek, portów), działają offline i zwykle oferują lepszą responsywność niż aplikacje webowe.

W kontekście INF.04 tworzymy je w C# na platformie .NET, najczęściej w dwóch technologiach: Windows Forms (szybkie formularze i zdarzenia) oraz WPF (XAML, łatwiejsze stylowanie i wzorzec MVVM). Typowe zadania to obsługa wielu okien, walidacja danych, praca z lokalną bazą (np. SQLite/LocalDB) i generowanie raportów. Całość buduje się i debuguje w Visual Studio, a gotową aplikację można opublikować jako samodzielny plik wykonywalny lub przygotować instalator.

W Visual Studio masz gotowe szablony projektów (WinForms, WPF), projektanty UI (drag-and-drop), IntelliSense i bardzo dobry debuger z podglądem stanu aplikacji w czasie działania. Dla WPF dostajesz Live Visual Tree i edycję XAML „na żywo”, a dla obu technologii łatwe zarządzanie pakietami przez NuGet (bazy danych, PDF, wykresy). Publikacja jest prosta: możesz generować buildy self-contained na .NET 8/9, ClickOnce/MSIX lub klasyczny instalator wszystko z poziomu jednego kreatora. Do tego dochodzą testy jednostkowe, profiler wydajności i narzędzia do diagnostyki pamięci, które pomagają dopieścić aplikację przed oddaniem na INF.04.

MVVM (Model–View–ViewModel)

To sposób organizacji aplikacji, który rozdziela warstwę logiki od widoku interfejsu. Model trzyma dane i reguły domenowe, View to XAML-owy interfejs (okna, kontrolki), a ViewModel pośredniczy między nimi: dostarcza właściwości do bindowania i komendy do obsługi akcji. Klucz to data binding i komendy – zamiast „klikać” zdarzenia w code-behind, wiążesz kontrolki z właściwościami i poleceniami w ViewModelu. ViewModel implementuje zwykle INotifyPropertyChanged, dzięki czemu UI automatycznie odświeża się, gdy zmieniają się dane.
Taki podział poprawia testowalność: logikę w ViewModelu sprawdzisz testami jednostkowymi bez uruchamiania okien. Zmniejsza też sprzężenie ten sam ViewModel możesz podpiąć do różnych widoków, a widok łatwo prze-stylować bez dotykania logiki. MVVM ułatwia utrzymanie większych projektów: klarowna struktura folderów, prosta nawigacja, łatwiejsza walidacja i wstrzykiwanie zależności (np. serwisów danych).
W WPF to „naturalny” wzorzec, bo XAML, binding i Command są wbudowane w platformę. W praktyce dostajesz czystszy kod, mniej kleju w zdarzeniach i szybszy rozwój funkcji, bo UI i logika mogą powstawać równolegle.