Visual Studio 2017. Tworzenie aplikacji Windows w języku C# (2018, Helion) -

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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ę. 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 O autorze Jacek Matulewski - fizyk zajmujący się na co dzień optyką kwantową i układami nieuporządkowanymi na Wydziale Fizyki, Astronomii i Informatyki Stosowanej Uniwersytetu Mikołaja Kopernika w Toruniu. Jego specjalnością są symulacje ewolucji układów kwantowych oddziaływujących z silnym światłem lasera. Od 1998 interesuje się programowaniem dla systemu Windows, w szczególności w środowisku Borland C++Builder. Ostatnio zainteresowany platformą .NET i językiem C#. Poza opublikowanymi u nas książkami dotyczącymi programowania przygotował również cykl artykułów dla czasopisma "PC World Komputer" (od sierpnia 2005). Wierny użytkownik kupionego w połowie lat osiemdziesiątych "komputera osobistego" ZX Spectrum 48k.

Author(s): Jacek Matulewski
Publisher: Helion
Year: 2018

Language: Polish
Pages: 0

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