Jacek Matulewski
Programowanie aplikacji dla systemu Windows w C#

Uwaga!
Materiały do zajęć "Programowanie Windows" w formie online dostępne są pod adresem:
http://fizyka.umk.pl/~jacek/dydaktyka/winprog_v2/online/.


Plan wykładu:

  1. Interfejs programowania aplikacji Windows (WinAPI)
    1. Czym jest WinAPI?
      Komunikaty Windows
    2. GUI
      Procesy i wątki
  2. Platforma .NET
    1. Platformy .NET, UWP, .NET Core.
      Język XAML

      (elementy XAML i korespondencja z klasami kontrolek WPF, zagnieżdżanie kontrolek, dynamiczne tworzenie kontrokek w kodzie C#, pędzle, atrybuty i znaczniki zagnieżdżone, zasoby, style, wyzwalacze, szablony, pojemniki, kontrolki ułożenia)
    2. Architektura MVVM. Wiązania
    3. Zaawansowane mechanizmy WPF: polecenia, zmiana zdarzeń na polecenia, zachowania, własności zależności, własności doczepiane
    4. Projektowanie kontrolek i elementów XAML
    5. Kolekcje danych a MVVM


Zagadnienia na laboratorium:

  1. Aplikacja WPF. Paradygmat zdarzeniowy. Aplikacja WPF "Rozwiązywanie równań kwadratowych". Podstawowe kontrolki XAML. Wyodrębianie modelu. Biblioteki DLL [2h]
  2. Zdarzenia trasowane [1h]
  3. Mechanizm drag & drop [2h]
  4. Transformacje i animacje [1h]
  5. Mechanizm P/Invoke (Windows Forms) [2h]
  6. Kolokwium [2h]
  7. Aplikacja zgodna ze wzorcem MVVM: Przekształcenie aplikacji "Rozwiązywania równań kwadratowych" do wzorca MVVM [2h]
  8. Aplikacja zgodna ze wzrocem MVVM: Przykłady Slider-ProgressBar, TextBox-TextBlock. + Ustawienia aplikacji [2h]
  9. Zachowania. Własności zależności i własności doczepiane. Zamiana zdarzeń na polecenia [2h]
  10. Odtworzenie projektu "Rozwiązywanie równań kwadratowych" w UWP (skopiowana większość kodu) [1h]
  11. Grafika w WPF: zegar analogowy - od kształtów po shadery [3h]
  12. Kolekcje w .NET i ich prezentacja w WPF. LINQ [4h]
  13. Powtórzenie: aplikacja MVVM kolory (WPF i UWP) [2h]
  14. Kolokwium [2h]
  15. Bonus: Programowanie wielowątkowe w aplikacjach konsolowych (Task, Parallel.For) [2h]
  16. Bonus: WinAPI. Aplikacja C++ z GUI napisana w czystym WinAPI
Kody źródłowe


Literatura (WinAPI):

  1. Jeffrey Richter, Christopher Nasarre Windows via C/C++ (wydanie 5), Microsoft Press, Warszawa 2009
  2. Johnson M. Hart Programowanie w systemie Windows (wydanie 4), Helion 2010
Literatura (.NET):
  1. Anna Kempa Wprowadzenie do WPF, Helion 2017
  2. Jacek Matulewski Visual Studio 2017. Tworzenie aplikacji Windows w języku C#, Helion 2018
  3. Adam Nathan WPF 4.5. Księga Eksperta, Helion 2015
Linki:
  1. EFNet #Winprog 2007 - strona dla początkujących, Tutorial, FAQ
  2. MSDN Windows Development
  3. PInvoke.net - dla programistów .NET