E-book details

Visual Studio 2017. Tworzenie aplikacji Windows w języku C#

Visual Studio 2017. Tworzenie aplikacji Windows w języku C#

Jacek Matulewski

Ebook

Programuj w C# i odkryj możliwości Visual Studio 2017!

Microsoft Visual Studio to znakomite środowisko programistyczne, w którym bardzo wydajnie, a przy tym z przyjemnością, można projektować i testować aplikacje desktopowe, mobilne i webowe w kilku językach programowania, z wykorzystaniem bogatego zbioru bibliotek oraz interesujących dodatków dostępnych w usłudze NuGet, wydatnie skracających czas pracy. Jeśli chcesz poznać możliwości tego pakietu dla języka C# i nauczyć się tworzyć kompletne, dobrze przemyślane i doskonale działające aplikacje, nie zwlekaj, tylko czym prędzej sięgnij po tę książkę.

Pomoże Ci ona zorientować się, jakie techniki oraz jakie wzorce projektowe będą najlepsze dla Twoich projektów aplikacji desktopowych Windows Presentation Foundation (WPF). Krok po kroku przejdziesz przez proces ich tworzenia z wykorzystaniem narzędzi na różnym poziomie zaawansowania. Poznasz kontrolki WPFi wzorzec architektoniczny MVVM (model - widok - model widoku). Opanujesz język XAML służący do opisu graficznego interfejsu użytkownika w WPF, a w szczególności style, transformacje i animacje, a także szablony kontrolek, czy szablony danych. W tej książce jest również miejsce na zagadnienia związane z wykorzystaniem shaderów tj. prostych programów napisanych w języku HLSL, które umożliwiają kontrolowanie tego, jak kontrolki są rysowane przez karty graficzne oraz na omówienie przykładu, w którym aplikacja pobiera dane z prywatnej chmury w postaci usługi REST działającej na serwerze. A gdy poznasz już wszystkie przykłady i zrobisz zaproponowany na ich końcach zadania, ze zdumieniem stwierdzisz, że umiesz zbudować porządną aplikację desktopową WPF!

Twórz fantastyczne aplikacje z Visual Studio i C# w WPF!

  • Pierwsza aplikacja i przegląd kontrolek WPF
  • Języki C#, XAML a nawet odrobinę HLSL
  • Budowanie złożonych kontrolek, szablony
  • Style, transformacje i animacje
  • Pojemniki i listy oraz prezentacja danych w WPF
  • Wzorzec MVVM: model, model widoku i widok
  • Wiązania, konwersja danych w wiązaniach, polecenia
  • Zachowania, własności zależności i własności doczepione
  • Testy jednostkowe
  • Rozwiązanie problemu okien dialogowychw MVVM

Wstęp 15

CZĘŚĆ I. PROJEKTOWANIE APLIKACJI WPF STEROWANYCH ZDARZENIAMI 17

Rozdział 1. Szybki start. Pierwsza aplikacja WPF 19

  • Wzorzec widoku autonomicznego 19
  • Tworzenie projektu 20
  • Projektowanie interfejsu 21
  • Kilka uwag na temat kodu XAML opisującego interfejs okna 25
  • Zdarzenia 26
  • Własności 32
  • Zapisywanie i odtwarzanie stanu aplikacji 33
  • Zadania 37

Rozdział 2. Notatnik. Przegląd komponentów WPF 39

  • Projektowanie interfejsu aplikacji i menu główne 39
    • Tworzenie projektu aplikacji i jej interfejsu 40
    • Zmiana nazwy okna 42
    • Zmiana ikony okna i aplikacji 42
    • Zgodność projektu z wersjami platformy .NET 43
    • Pasek stanu 43
    • Menu główne aplikacji 44
  • Okna dialogowe i pliki tekstowe 45
    • Wybór pliku za pomocą okna dialogowego 46
    • Zapisywanie tekstu do pliku 49
    • Potwierdzenie zamknięcia aplikacji 50
    • Czyszczenie zawartości pola tekstowego 54
  • Menu Edycja 55
  • Menu Widok 56
    • Pozycje menu z możliwością zaznaczania 56
    • Kolor tła. Współpraca z obiektami Windows Forms 58
    • Czcionki 61
  • Drukowanie 65
  • Obsługa klawiszy skrótów 67
  • Ikony menu 68
  • Pasek narzędzi 71
  • Wstążka 73
    • Menu aplikacji 73
    • Pasek szybkiego dostępu 76
    • Zakładki 77
  • Lokalizacja 80
  • Zadania 84

Rozdział 3. Zdarzenia trasowane (routed events) i polecenia trasowane (routed commands) 87

  • Pojedyncza kontrolka 87
  • Zagnieżdżanie przycisków 89
  • Kontrola przepływu zdarzeń trasowanych 90
  • Przerwanie serii 92
  • Bulgotanie (bubbling) i tunelowanie (tunneling) 93
  • Dynamiczne tworzenie przycisków zagnieżdżonych 94
  • Polecenia trasowane 95

Rozdział 4. Przeciągnij i upuść (drag & drop) 103

  • Interfejs przykładowej aplikacji 104
  • Rozszerzanie kontrolki ListBox 105
  • Inicjacja procesu przeciągania i przenoszone dane 107
  • Akceptacja upuszczenia elementu 109
  • Reakcja na upuszczenie elementu 110
  • Przenoszenie elementów między aplikacjami 111
  • Opóźnione inicjowanie procesu przenoszenia 114
  • Przenoszenie wielu elementów 115
  • Zadania 118

Rozdział 5. Choinka. Zabawa w WPF 119

  • Okno o dowolnym kształcie 119
  • Przesuwanie okna 121
  • Zamykanie okna 122
  • Splash screen 124
  • Ikony w obszarze powiadamiania 125
  • Odtwarzanie pliku dźwiękowego 128
  • Zadania 129

Rozdział 6. Gra Reversi. Model i widok 131

  • Model - silnik gry 132
    • Stan planszy 133
    • Konstruktor klasy 134
    • Implementacja zasad gry 134
    • Obliczanie liczb pól zajętych przez graczy 137
  • Testy jednostkowe 138
  • Widok 142
    • Graficzna prezentacja planszy 142
    • Interakcja z użytkownikiem 146
    • Historia ruchów 147
  • Wykrywanie szczególnych sytuacji w grze 148
  • Komputer gra w Reversi 153
    • Rozbudowa silnika 153
    • Jak znaleźć najlepszy ruch? 154
    • Gra z komputerem 160
  • Menu 161
  • Zadania 164
  • Zadania zaawansowane 164

Rozdział 7. Separacja modułów 167

  • Kontrolka prezentująca planszę 168
  • Interfejs to kontrakt 178
  • Biblioteka 180
  • Zadania 182

Rozdział 8. Przechowywanie danych w plikach XML 183

  • Podstawy języka XML 183
    • Deklaracja 183
    • Elementy 184
    • Atrybuty 184
    • Komentarze 184
  • LINQ to XML 185
    • Tworzenie pliku XML za pomocą klas XDocument i XElement 185
    • Pobieranie wartości z elementów o znanej pozycji w drzewie 188
    • Odwzorowanie struktury pliku XML w kontrolce TreeView 190
    • Zapisywanie danych do obiektów. Kursy walut NBP 193
    • Zapisywanie danych z kolekcji do pliku XML 196
  • Zadania 197

Rozdział 9. Multimedia 199

  • Odtwarzanie wideo 199
  • Synteza mowy 203
  • Zadanie 205

CZĘŚĆ II. XAML 207

Rozdział 10. Budowanie złożonych kontrolek 209

  • Konfiguracja przycisku w podoknie Properties 209
  • Pędzle 213
  • Formatowanie tekstu na przycisku 216
  • Kontrola ułożenia elementów w pojemniku 218

Rozdział 11. Style 221

  • Siatka i wiele kontrolek 221
  • Zasoby okna 224
  • Style 225
  • Wyzwalacze 227
  • Zasoby aplikacji 228

Rozdział 12. Transformacje i animacje 233

  • Transformacje kompozycji i renderowania 233
  • Uruchamianie transformacji w wyzwalaczu stylu 239
  • Animacje 240
  • Animacja w stylu 242
  • Funkcje w animacji 243
  • Animacja koloru 245

Rozdział 13. Szablony kontrolek 247

Rozdział 14. Projektowanie własnych kontrolek 251

  • User Control 251
  • Custom Control 253

Rozdział 15. Przegląd pojemników WPF 257

  • Pojemniki (Layout Containers) 257
  • Kontrolki ułożenia (Layout Controls) 263
  • Projektowanie własnego pojemnika 267
  • Listy (Items Controls) 269
    • Szablony 270
    • Zestaw przydatnych list 273
  • Zadania 279

CZĘŚĆ III. MVVM 281

Rozdział 16. Wzorzec MVVM 283

  • Model 284
  • Widok 284
  • Model widoku 285

Rozdział 17. Implementacja modelu i modelu widoku 287

  • Model 287
  • Warstwa dostępu do danych 288
  • Model widoku 289
  • Alternatywne rozwiązania 292
  • Ratujemy widok 294
  • Zadania 295

Rozdział 18. Wiązanie danych (data binding) 297

  • Instancja modelu widoku i kontekst danych 297
  • Alternatywne rozwiązanie 298
  • Wiązanie pozycji suwaków i koloru prostokąta 299
  • Zmiany w code-behind 300
  • Implementacja interfejsu INotifyPropertyChanged 301
  • Powiadomienia w alternatywnych modelach widoku 305
  • Interfejs INotifyDataErrorInfo 310
  • Klasa ObservedObject 311

Rozdział 19. Konwersja danych w wiązaniu 313

  • Prosta konwersja typów 313
  • Konwersja klas Color i SolidColorBrush 315
  • Multibinding 317
  • Wiązanie między kontrolkami 318
  • Konwersje "wbudowane" 321
  • Zadania 321

Rozdział 20. Polecenia (commands) 323

  • Interfejs ICommand 323
  • Przycisk uruchamiający polecenie 324
  • Sprawdzanie, czy wykonanie polecenia jest możliwe 327
  • Resetowanie stanu suwaków po naciśnięciu klawisza 328
  • Klasa RelayCommand 329
  • Zdarzenia a polecenia 331
  • Zamykanie okna 334
  • Zadanie 335

Rozdział 21. Zachowania, własności zależności i własności doczepione 337

  • Zachowania (behaviors) 337
  • Własność zależności (dependency property) 339
  • Własność doczepiona (attached property) i zachowanie doczepione (attached behavior) 343
  • Zadania 345

Rozdział 22. Testy jednostkowe 347

  • Testy jednostkowe w Visual Studio 2015 i 2017 348
  • Uruchamianie testów 350
  • Testy wielokrotne 352
  • Dostęp do prywatnych pól testowanej klasy 353
  • Atrapy obiektów (mock objects) 355
  • Testowanie konwerterów 359
  • Testowanie wyjątków 360

Rozdział 23. Powtórzenie 363

  • Model 363
  • Widok 364
  • Model widoku 366
  • Wiązanie 367
  • Konwerter 368
  • Wzorzec MVVM 370
  • Zadania 371

CZĘŚĆ IV. MVVM W PRZYKŁADACH 373

Rozdział 24. Okna dialogowe w MVVM 375

  • Klasa bazowa okna dialogowego 375
  • Polecenia wykonywane przed wyświetleniem i po wyświetleniu okna dialogowego 378
  • Okno dialogowe MessageBox 382
  • Warunkowe wyświetlenie okna dialogowego 385
  • Okna dialogowe wyboru pliku 387
  • Łańcuch okien dialogowych 391
  • Okna dialogowe z dowolną zawartością 393
  • Zadania 402

Rozdział 25. Kontrolki w kontekście MVVM 403

  • Kontrolka MVVM 403
  • Kontrolka prawie MVVM 409
  • Kontrolka FileBrowse 412
  • Kontrolka FontDialogBox 416
  • Zadania 423

Rozdział 26. Notatnik w MVVM 425

  • Widok 426
  • Model 428
  • Model widoku 430
  • Zmiana rozmiaru czcionki rolką myszy 432
  • Polecenia 434
  • Wybór czcionki 437
  • Drukowanie 441
  • Zawijanie wierszy i inne ustawienia 442
  • Edycja 444
  • Historia zmian 450
  • Klawisze skrótów 453
  • Zadania 455

Rozdział 27. Grafika w WPF 457

  • Kształty. Zegar 457
    • Model widoku 458
    • Widok - zegar cyfrowy 460
    • Wykrycie trybu projektowania 461
    • Widok - zegar analogowy 461
    • Zmiana kształtu okna 465
  • Efekty 469
    • Cień 469
    • Potok renderowania 473
    • Własny efekt 474
    • Kompilacja z pakietem Microsoft.HLSL.CSharpVB 485
  • Grafika per pixel 488
  • Zadania 492

Rozdział 28. Kolekcje w MVVM 495

  • Model 495
  • Operacje CRUD 499
  • Przechowywanie danych w pliku XML 499
  • Model widoku zadania 501
  • Kolekcja w modelu widoku 505
  • Zadania 507

Rozdział 29. Szablony danych 509

  • Prezentacja kolekcji w widoku 509
  • Style elementów kontrolki ListBox 511
  • Konwertery 513
  • Zapisywanie danych przy zamknięciu okna 517
  • Modyfikacje kolekcji 519
  • Polecenia CRUD 526
  • Sortowanie 527
  • Użycie okien dialogowych 529
  • Zadania 534

Rozdział 30. Usługa REST 535

  • Protokół HTTP 535
  • Dlaczego usługi REST? 536
  • Tworzenie usługi REST 537
    • Rejestrowanie zdarzeń 537
    • Model 539
    • Kontroler. Metody GET 542
    • Wybór formatu zwracanych danych 546
    • Kontroler. Szablon adresu api/{controller}/{action}/{id} 548
  • Korzystanie z metod GET usługi REST 550
  • Metody POST 552
  • Metoda DELETE 554
  • Zadania 558

Dodatek A. LINQ 559

  • Operatory LINQ 560
  • Pobieranie danych (filtrowanie i sortowanie) 562
  • Analiza pobranych danych 563
  • Wybór elementu 563
  • Weryfikowanie danych 563
  • Prezentacja w grupach 564
  • Łączenie zbiorów danych 564
  • Łączenie danych z różnych źródeł (operator join) 565
  • Możliwość modyfikacji danych źródła 566

Dodatek B. Pakiety NuGet 569

  • Instalacja nuget.exe 570
  • Tworzenie pakietu z projektu biblioteki klas 571
  • Publikacja pakietu 572
  • Test pakietu 574
  • Zależności między pakietami 574
  • Tworzenie pakietu z zestawem bibliotek 575
  • Pakiet dla wielu platform 576

Dodatek C. Kowariancja i kontrawariancja typów parametrycznych 579

Skorowidz 585

  • Title: Visual Studio 2017. Tworzenie aplikacji Windows w języku C#
  • Author: Jacek Matulewski
  • ISBN: 978-83-283-5305-3, 9788328353053
  • Date of issue: 2018-10-11
  • Format: Ebook
  • Item ID: vs17za
  • Publisher: Helion