C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych - ebook
C# 7.1 i .NET Core 2.0 dla programistów aplikacji wieloplatformowych - ebook
Powszechnie uważa się, że C# jest świetnym językiem ogólnego zastosowania, który nadaje się do tworzenia każdego rodzaju oprogramowania - od serwisów internetowych poprzez aplikacje biznesowe aż po gry. Oprogramowanie takie działa na komputerach biurkowych, serwerach, urządzeniach mobilnych, a także na specjalizowanych systemach do gier. Z kolei .NET Core pozwala na tworzenie rozwiązań serwerowych w chmurze oraz na pracę z urządzeniami wirtualnej lub rozszerzonej rzeczywistości. To wszystko sprawia, że technologie C# i .NET Core umożliwiają tworzenie nowoczesnych systemów, które będą wydajnie działać na wielu różnych platformach.
Ta książka jest znakomitym, spójnym i bardzo praktycznym podręcznikiem do nauki języka C#. Pokazuje również najlepsze praktyki stosowane na platformie .NET Core. Z publikacji skorzysta każdy, kto pragnie zdobyć dobre przygotowanie do pracy z językiem i platformą. Znalazły się tu przystępnie wyłożone podstawy języka C#, a także sposoby debugowania kodu i zasady programowania obiektowego. Nie zabrakło informacji o najnowszych elementach języka C# 7.1, takich jak domyślne literały, krotki, dopasowywanie wzorców, zmienne typu out i inne. Dokładnie opisano biblioteki klas .NET Standard 2.0. Zaprezentowano najważniejsze rodzaje aplikacji, takie jak witryny i aplikacje internetowe, serwisy sieciowe, aplikacje UWP oraz aplikacje mobilne.
W tej książce między innymi:
- Solidne podstawy C# 7.1 i .NET Core 2.0
- Profesjonalne aplikacje w ASP.NET Core 2.0 i wielozadaniowość
- Stosowanie Entity Framework Core oraz LINQ do pracy nad danymi
- Korzystanie ze środowiska UWP oraz z Xamarin.Forms
- Szyfrowanie, strumienie i serializacja
- Planowane funkcje języka C# w wersji 8
Wieloplatformowa aplikacja - profesjonalny deweloper!
Spis treści
O autorze 18
O recenzentach 20
Wstęp 21
Rozdział 1. Cześć, C#! Witaj, .NET Core 27
- Konfigurowanie środowiska programistycznego 28
- Używanie innych IDE dla języka C# 29
- Instalowanie na wielu platformach 30
- Instalowanie Microsoft Visual Studio 2017 30
- Instalowanie Microsoft Visual Studio Code 33
- Instalowanie Visual Studio for Mac 37
- Poznawanie .NET 38
- Poznawanie .NET Framework 39
- Poznawanie projektów Mono i Xamarin 39
- Poznawanie .NET Core 40
- Poznawanie .NET Standard 42
- Poznawanie .NET Native 43
- Porównanie technologii .NET 43
- Pisanie i kompilowanie kodu przy użyciu narzędzi wiersza poleceń z .NET Core 44
- Pisanie kodu za pomocą prostego edytora tekstu 44
- Tworzenie i kompilowanie aplikacji za pomocą narzędzi wiersza poleceń .NET Core 46
- Naprawianie błędów kompilacji 48
- Poznawanie języka pośredniego 49
- Pisanie i kompilowanie kodu za pomocą Visual Studio 2017 49
- Pisanie kodu w Visual Studio 2017 50
- Kompilowanie kodu za pomocą Visual Studio 2017 53
- Poprawianie pomyłek z listy błędów 54
- Dodawanie istniejących projektów do Visual Studio 2017 55
- Automatyczne formatowanie kodu 56
- Eksperymentowanie z interaktywnym C# 57
- Inne przydatne okna 59
- Pisanie i kompilowanie kodu w Visual Studio Code 60
- Pisanie kodu w Visual Studio Code 60
- Kompilowanie kodu w Visual Studio Code 61
- Automatyczne formatowanie kodu 62
- Pisanie i kompilowanie kodu za pomocą Visual Studio for Mac 62
- Następne kroki 65
- Zarządzanie kodem źródłowym przy użyciu platformy GitHub 65
- Używanie systemu Git w Visual Studio 2017 66
- Używanie systemu Git w Visual Studio Code 68
- Praktyka i ćwiczenia 69
- Ćwiczenie 1.1 - sprawdź swoją wiedzę 69
- Ćwiczenie 1.2 - ćwicz C# gdzie się da 70
- Ćwiczenie 1.3 - dalsza lektura 70
- Podsumowanie 70
CZĘŚĆ I. C# 7.1 71
Rozdział 2. Mówimy w C# 73
- Poznawanie podstaw języka C# 73
- Używanie Visual Studio 2017 74
- Używanie Visual Studio Code w systemach macOS, Linux i Windows 76
- Gramatyka języka C# 78
- Słownictwo języka C# 79
- Pomoc przy pisaniu kodu 81
- Czasowniki jako metody 82
- Rzeczowniki to typy, pola i zmienne 83
- Ujawnienie wielkości słownika języka C# 84
- Deklarowanie zmiennych 86
- Nazywanie zmiennych 87
- Literały 87
- Przechowywanie tekstu 88
- Przechowywanie liczb 88
- Przechowywanie wartości logicznych 93
- Typ object 93
- Typ dynamic 94
- Zmienne lokalne 94
- Zapisywanie wartości null w typach wartości 96
- Poznawanie typów referencyjnych z wartością null 96
- Zapisywanie wielu wartości w tablicy 98
- Dokładniejsze poznawanie aplikacji konsoli 99
- Wyświetlanie informacji dla użytkownika 99
- Pobieranie danych od użytkownika 100
- Importowanie przestrzeni nazw 100
- Uproszczone korzystanie z konsoli 101
- Odczytywanie parametrów i praca z tablicami 102
- Działania na zmiennych 106
- Eksperymenty z operatorami jednoargumentowymi 107
- Eksperymentowanie z operatorami arytmetycznymi 108
- Porównania i operatory logiczne 109
- Praktyka i ćwiczenia 109
- Ćwiczenie 2.1 - sprawdź swoją wiedzę 109
- Ćwiczenie 2.2 - poznaj wielkości i zakresy liczb 109
- Ćwiczenie 2.3 - dalsza lektura 110
- Podsumowanie 111
Rozdział 3. Sterowanie przepływem i konwertowanie typów 113
- Instrukcje wyboru 113
- Visual Studio 2017 113
- Visual Studio Code w systemach macOS, Linux i Windows 114
- Instrukcja if 114
- Instrukcja switch 115
- Instrukcje iteracji 118
- Instrukcja while 118
- Instrukcja do 119
- Instrukcja for 119
- Instrukcja foreach 120
- Rzutowanie i konwertowanie między typami 121
- Rzutowanie z liczby na liczbę 121
- Używanie typu Convert 123
- Zaokrąglanie liczb 123
- Konwersja z dowolnego typu na ciąg znaków 124
- Konwertowanie obiektu binarnego na ciąg znaków 124
- Parsowanie ciągów znaków z liczbami, datami i czasem 126
- Obsługa wyjątków podczas konwertowania typów 127
- Instrukcja try 127
- Przechwytywanie wszystkich wyjątków 128
- Przechwytywanie wybranych wyjątków 129
- Wykrywanie przepełnień 130
- Instrukcja checked 130
- Instrukcja unchecked 131
- Gdzie znaleźć pomoc 132
- Microsoft Docs i MSDN 133
- Przejdź do definicji 133
- Stack Overflow 134
- Google 134
- Subskrybowanie blogów 136
- Wzorce projektowe 136
- Praktyka i ćwiczenia 138
- Ćwiczenie 3.1 - sprawdź swoją wiedzę 138
- Ćwiczenie 3.2 - pętle i przepełnienia 138
- Ćwiczenie 3.3 - pętle i operatory 139
- Ćwiczenie 3.4 - obsługa wyjątków 139
- Ćwiczenie 3.5 - dalsza lektura 140
- Podsumowanie 140
Rozdział 4. Pisanie, debugowanie i testowanie funkcji 141
- Tworzenie funkcji 141
- Tworzenie funkcji wypisującej sekwencję mnożenia 142
- Pisanie funkcji zwracającej wartość 144
- Pisanie funkcji matematycznych 146
- Debugowanie tworzonego programu 149
- Tworzenie aplikacji z celowym błędem 149
- Tworzenie punktu przerwania 150
- Pasek narzędzi debugowania 151
- Okna debugowania 152
- Krokowe wykonywanie kodu 154
- Dostosowywanie punktów przerwania 155
- Protokołowanie błędów 156
- Używanie typów Debug i Trace 157
- Przełączanie poziomów śledzenia 160
- Testy jednostkowe 162
- Tworzenie biblioteki klas wymagającej testowania w Visual Studio 2017 162
- Tworzenie projektu testów jednostkowych w Visual Studio 2017 163
- Tworzenie biblioteki klas wymagającej testowania w Visual Studio Code 164
- Tworzenie testów jednostkowych 166
- Uruchamianie testów jednostkowych w Visual Studio 2017 167
- Uruchamianie testów jednostkowych w Visual Studio Code 168
- Praktyka i ćwiczenia 170
- Ćwiczenie 4.1 - sprawdź swoją wiedzę 170
- Ćwiczenie 4.2 - tworzenie funkcji z wykorzystaniem debugowania i testów jednostkowych 170
- Ćwiczenie 4.3 - dalsza lektura 171
- Podsumowanie 171
Rozdział 5. Tworzenie własnych typów w programowaniu obiektowym 173
- Rozmowy o programowaniu obiektowym 174
- Tworzenie bibliotek klas 174
- Tworzenie biblioteki klas w Visual Studio 2017 175
- Tworzenie biblioteki klas w Visual Studio Code 175
- Definiowanie klasy 176
- Tworzenie obiektów 177
- Zarządzanie wieloma projektami w Visual Studio Code 180
- Dziedziczenie po System.Object 181
- Przechowywanie danych w polach 182
- Definiowanie pól 182
- Zapisywanie wartości za pomocą słowa kluczowego enum 184
- Zapisywanie wielu wartości za pomocą kolekcji 187
- Tworzenie pól statycznych 188
- Tworzenie stałych pól 189
- Tworzenie pól tylko do odczytu 190
- Inicjowanie pól w konstruktorach 190
- Nadawanie polom domyślnego literału 191
- Tworzenie i wywoływanie metod 193
- Łączenie wielu wartości za pomocą krotki 194
- Sterowanie przekazywaniem parametrów 197
- Przeciążanie metod 198
- Parametry opcjonalne i nazywane 198
- Sposoby przekazywania parametrów 200
- Dzielenie klas na części 202
- Kontrola dostępu za pomocą właściwości i indekserów 203
- Definiowanie właściwości tylko do odczytu 203
- Definiowanie właściwości z możliwością przypisania 204
- Definiowanie indekserów 205
- Praktyka i ćwiczenia 206
- Ćwiczenie 5.1 - sprawdź swoją wiedzę 206
- Ćwiczenie 5.2 - dalsza lektura 207
- Podsumowanie 207
Rozdział 6. Implementowanie interfejsów i dziedziczenie klas 209
- Konfigurowanie biblioteki klas i aplikacji konsoli 210
- Visual Studio 2017 210
- Visual Studio Code 210
- Definiowanie klas 212
- Upraszczanie metod za pomocą operatorów 213
- Implementowanie działań w metodzie 213
- Implementowanie działań za pomocą operatora 214
- Definiowanie funkcji lokalnych 216
- Wywoływanie i obsługa zdarzeń 217
- Wywoływanie metod za pomocą delegatów 217
- Definiowanie zdarzeń 218
- Implementowanie interfejsów 220
- Typowe interfejsy 220
- Porównywanie obiektów podczas sortowania 221
- Wykorzystywanie typów generycznych 225
- Tworzenie typu generycznego 225
- Tworzenie generycznej metody 227
- Zarządzanie pamięcią za pomocą typów referencyjnych i typów wartości 228
- Definiowanie typu kategorii struct 229
- Zwalnianie niezarządzanych zasobów 230
- Wymuszanie wywołania metody Dispose 232
- Dziedziczenie klas 233
- Rozbudowywanie klasy 233
- Ukrywanie elementów 234
- Pokrywanie elementów klasy 235
- Blokowanie dziedziczenia i pokrywania 236
- Polimorfizm 237
- Rzutowanie w ramach hierarchii dziedziczenia 238
- Rzutowanie niejawne 238
- Rzutowanie jawne 238
- Obsługa wyjątków rzutowania 239
- Dziedziczenie i rozbudowywanie typów .NET 240
- Dziedziczenie po wyjątku 240
- Rozszerzanie typów, po których nie można dziedziczyć 241
- Praktyka i ćwiczenia 244
- Ćwiczenie 6.1 - sprawdź swoją wiedzę 244
- Ćwiczenie 6.2 - tworzenie hierarchii dziedziczenia 244
- Ćwiczenie 6.3 - dalsza lektura 244
- Podsumowanie 245
CZĘŚĆ II. .NET CORE 2.0 I .NET STANDARD 2.0 247
Rozdział 7. Poznawanie typów .NET Standard 249
- Zestawy i przestrzenie nazw 249
- Bazowe biblioteki klas i CoreFX 250
- Poznawanie zależnych zestawów 251
- Związki między zestawami i przestrzeniami nazw 252
- Związki słów kluczowych języka C# z typami .NET 257
- Wieloplatformowe współdzielenie kodu z bibliotekami klas .NET Standard 258
- Tworzenie biblioteki klas .NET Standard 2.0 259
- Pakiety NuGet 260
- Metapakiety 261
- Czym są frameworki? 263
- Stabilizowanie zależności 263
- Publikowanie własnych aplikacji 265
- Tworzenie aplikacji konsoli do publikacji 265
- Publikowanie za pomocą Visual Studio 2017 w systemie Windows 266
- Publikowanie za pomocą Visual Studio Code w macOS 269
- Przygotowywanie własnych pakietów NuGet 270
- Poznawanie poleceń narzędzia dotnet 270
- Dodawanie odwołania do pakietu 271
- Tworzenie pakietu dla NuGet 273
- Testowanie pakietu 277
- Przenoszenie kodu z .NET Framework do .NET Core 278
- Co można przenieść? 279
- Co należy przenieść? 279
- Różnice między .NET Framework i .NET Core 280
- Korzystanie z programu .NET Portability Analyzer 280
- Używanie bibliotek spoza .NET 280
- Praktyka i ćwiczenia 282
- Ćwiczenie 7.1 - sprawdź swoją wiedzę 282
- Ćwiczenie 7.2 - dalsza lektura 282
- Podsumowanie 283
Rozdział 8. Używanie typów biblioteki .NET Standard 285
- Praca z liczbami 285
- Praca z wielkimi liczbami całkowitymi 286
- Praca z liczbami zespolonymi 286
- Praca z tekstem 287
- Odczytywanie długości ciągu znaków 287
- Odczytywanie znaków z ciągu 288
- Dzielenie ciągu znaków 288
- Pobieranie części ciągu znaków 288
- Poszukiwanie tekstu w ciągu 289
- Inne elementy klasy string 289
- Wydajne tworzenie ciągów znaków 290
- Dopasowywanie wzorców za pomocą wyrażeń regularnych 291
- Praca z kolekcjami 293
- Wspólne funkcje wszystkich kolekcji 294
- Poznawanie kolekcji 295
- Praca z listami 297
- Praca ze słownikami 298
- Sortowanie kolekcji 299
- Używanie specjalizowanych kolekcji 300
- Używanie kolekcji niezmiennych 300
- Praca z zasobami sieciowymi 301
- Praca z adresami URI, serwerami DNS i adresami IP 301
- Pingowanie serwera 302
- Praca z typami i atrybutami 303
- Numery wersji zestawów 304
- Odczytywanie metadanych zestawu 304
- Tworzenie własnych atrybutów 306
- Inne możliwości refleksji 308
- Internacjonalizacja kodu 308
- Globalizacja aplikacji 308
- Praktyka i ćwiczenia 310
- Ćwiczenie 8.1 - sprawdź swoją wiedzę 310
- Ćwiczenie 8.2 - wyrażenia regularne 311
- Ćwiczenie 8.3 - metody rozszerzające 311
- Ćwiczenie 8.4 - dalsza lektura 311
- Podsumowanie 312
Rozdział 9. Praca z plikami, strumieniami i serializacją 313
- Praca z systemem plików 313
- Obsługa środowisk i systemów plików na wielu platformach 314
- Obsługa napędów 316
- Praca z katalogami 318
- Praca z plikami 320
- Praca ze ścieżkami 321
- Odczytywanie informacji o pliku 322
- Zarządzanie plikami 323
- Odczytywanie i zapisywanie w strumieniach 324
- Zapisywanie do strumieni tekstowych i XML 327
- Zwalnianie zasobów plików 329
- Kompresowanie strumieni 331
- Kodowanie tekstu 333
- Kodowanie ciągu znaków jako tablicy bajtów 333
- Kodowanie i dekodowanie tekstu w plikach 336
- Serializacja obiektów 337
- Serializacja do formatu XML 337
- Deserializacja danych z formatu XML 340
- Dostosowywanie formatu XML 340
- Serializowanie do formatu JSON 341
- Serializowanie w innych formatach 342
- Praktyka i ćwiczenia 342
- Ćwiczenie 9.1 - sprawdź swoją wiedzę 342
- Ćwiczenie 9.2 - serializowanie do formatu XML 343
- Ćwiczenie 9.3 - dalsza lektura 344
- Podsumowanie 344
Rozdział 10. Ochrona danych i aplikacji 345
- Poznawanie słownictwa związanego z ochroną 345
- Klucze i wielkości kluczy 346
- Wektor inicjujący i wielkość bloku 347
- Sól 347
- Generowanie kluczy i wektorów inicjujących 348
- Szyfrowanie i rozszyfrowywanie danych 349
- Szyfrowanie symetryczne algorytmem AES 350
- Funkcje skrótu 354
- Obliczanie skrótu za pomocą algorytmu SHA256 356
- Podpisywanie danych 358
- Podpisywanie za pomocą SHA256 i RSA 359
- Testowanie i kontrolowanie podpisów 360
- Generowanie liczb losowych 361
- Generowanie liczb losowych na potrzeby gier 362
- Generowanie liczb losowych dla kryptografii 363
- Testowanie generatora losowego klucza lub wektora inicjującego 363
- Uwierzytelnianie i autoryzacja użytkowników 364
- Implementowanie uwierzytelniania i autoryzacji 366
- Testowanie autoryzacji i uwierzytelniania 367
- Ochrona funkcji aplikacji 369
- Praktyka i ćwiczenia 370
- Ćwiczenie 10.1 - sprawdź swoją wiedzę 370
- Ćwiczenie 10.2 - ochrona danych za pomocą szyfrowania i funkcji skrótu 370
- Ćwiczenie 10.3 - ochrona danych przez rozszyfrowywanie 371
- Ćwiczenie 10.4 - dalsza lektura 371
- Podsumowanie 371
Rozdział 11. Praca z bazami danych przy użyciu Entity Framework Core 373
- Nowoczesne bazy danych 373
- Używanie przykładowej relacyjnej bazy danych 374
- Microsoft SQL Server 375
- SQLite 379
- Konfigurowanie EF Core 383
- Wybieranie dostawcy danych EF Core 383
- Łączenie z bazą danych 384
- Definiowanie modeli EF Core 387
- Konwencje w EF Core 387
- Atrybuty EF Core 387
- Płynne API EF Core 388
- Tworzenie modelu w EF Core 388
- Zapytania do modelu EF Core 393
- Protokołowanie w EF Core 395
- Dopasowywanie wzorców za pomocą instrukcji Like 399
- Definiowanie globalnych filtrów 400
- Wzorce ładowania w EF Core 401
- Manipulowanie danymi w EF Core 404
- Wstawianie encji 404
- Aktualizowanie encji 405
- Usuwanie encji 406
- Grupowanie kontekstów baz danych 407
- Transakcje 407
- Jawne definiowanie transakcji 408
- Praktyka i ćwiczenia 409
- Ćwiczenie 11.1 - sprawdź swoją wiedzę 409
- Ćwiczenie 11.2 - eksportowanie danych z wykorzystaniem różnych formatów serializacji 410
- Ćwiczenie 11.3 - przeglądanie dokumentacji EF Core 410
- Podsumowanie 410
Rozdział 12. Odczytywanie danych i manipulowanie nimi za pomocą LINQ 411
- Tworzenie zapytań LINQ 411
- Rozbudowa sekwencji za pomocą klas wyliczeniowych 412
- Filtrowanie encji za pomocą metody Where 412
- Sortowanie encji 417
- Filtrowanie według typu 418
- Praca ze zbiorami 420
- Używanie LINQ z EF Core 421
- Projekcje encji w metodzie Select 422
- Tworzenie modelu danych EF Core 422
- Łączenie i grupowanie 425
- Agregowanie sekwencji 428
- Upiększanie składni 429
- Używanie wielu wątków w równoległych zapytaniach LINQ 430
- Tworzenie własnych metod rozszerzających dla LINQ 433
- Praca z LINQ to XML 436
- Generowanie danych XML za pomocą LINQ to XML 437
- Odczytywanie danych XML za pomocą LINQ to XML 437
- Praktyka i ćwiczenia 438
- Ćwiczenie 12.1 - sprawdź swoją wiedzę 438
- Ćwiczenie 12.2 - zapytania LINQ 439
- Ćwiczenie 12.3 - dalsza lektura 439
- Podsumowanie 440
Rozdział 13. Poprawianie wydajności i skalowalności za pomocą wielozadaniowości 441
- Monitorowanie wydajności i wykorzystania zasobów 442
- Ocena wydajności typów 442
- Monitorowanie wydajności i zużycia pamięci 443
- Procesy, wątki i zadania 448
- Asynchroniczne uruchamianie zadań 449
- Synchroniczne uruchamianie wielu operacji 450
- Asynchroniczne uruchamianie wielu operacji z wykorzystaniem zadań 451
- Oczekiwanie na zadania 453
- Kontynuowanie pracy w innym zadaniu 454
- Zadania zagnieżdżone i potomne 455
- Synchronizowanie dostępu do wspólnych zasobów 456
- Używanie wspólnego zasobu w wielu wątkach 457
- Nakładanie na zasoby wzajemnie wykluczającej blokady 459
- Jak działa instrukcja lock 459
- Tworzenie operacji atomowych 461
- Stosowanie innych rodzajów synchronizacji 462
- Słowa kluczowe async i await 462
- Poprawianie reakcji aplikacji konsoli 463
- Poprawianie reakcji aplikacji z interfejsem graficznym 464
- Poprawianie skalowalności aplikacji i serwisów WWW 465
- Często używane typy pozwalające na pracę wielowątkową 465
- Instrukcja await w bloku catch 465
- Praktyka i ćwiczenia 466
- Ćwiczenie 13.1 - sprawdź swoją wiedzę 466
- Ćwiczenie 13.2 - dalsza lektura 466
- Podsumowanie 467
CZĘŚĆ III. MODELE APLIKACJI 469
Rozdział 14. Tworzenie witryn WWW przy użyciu ASP.NET Core Razor Pages 473
- Tworzenie w sieci WWW 473
- Protokół HTTP 473
- Tworzenie oprogramowania dla sieci WWW po stronie klienta 477
- ASP.NET Core 478
- Klasyczna ASP.NET kontra ASP.NET Core 479
- Tworzenie projektu ASP.NET Core w Visual Studio 2017 480
- Tworzenie projektu ASP.NET Core w Visual Studio Code 480
- Przeglądanie pustego szablonu projektu ASP.NET Core 480
- Testowanie pustej witryny 483
- Włączanie plików statycznych 484
- Włączanie plików domyślnych 487
- Technologia Razor Pages 487
- Włączanie technologii Razor Pages 487
- Definiowanie strony Razor 488
- Używanie wspólnego układu w wielu stronach Razor 489
- Używanie plików code-behind w stronach Razor 492
- Używanie Entity Framework Core z ASP.NET Core 494
- Tworzenie modelu encji dla firmy Northwind 494
- Tworzenie bazy danych Northwind dla witryny 502
- Konfigurowanie Entity Framework Core jako serwisu 502
- Manipulowanie danymi 504
- Praktyka i ćwiczenia 507
- Ćwiczenie 14.1 - tworzenie witryny obsługującej dane 507
- Ćwiczenie 14.2 - dalsza lektura 507
- Podsumowanie 507
Rozdział 15. Tworzenie aplikacji WWW przy użyciu ASP.NET Core MVC 509
- Konfigurowanie witryny ASP.NET Core MVC 509
- Tworzenie witryny ASP.NET Core MVC 510
- Przegląd szablonu projektu ASP.NET Core MVC 513
- Migrowanie bazy danych 515
- Testowanie witryny ASP.NET Core MVC 517
- Mechanizm uwierzytelniania systemu ASP.NET Identity 519
- Poznawanie mechanizmów ASP.NET Core MVC 520
- Rozruch ASP.NET Core 520
- Czym jest domyślna ścieżka 522
- Kontrolery ASP.NET Core MVC 522
- Modele ASP.NET Core MVC 523
- Widoki ASP.NET Core MVC 525
- Przekazywanie parametrów przy użyciu wartości ścieżki 532
- Przekazywanie parametrów za pomocą ciągu znaków zapytania 534
- Praktyka i ćwiczenia 536
- Ćwiczenie 15.1 - poprawianie skalowalności przez poznawanie i implementowanie asynchronicznych metod akcji 536
- Ćwiczenie 15.2 - dalsza lektura 537
- Podsumowanie 538
Rozdział 16. Tworzenie usług i aplikacji WWW przy użyciu ASP.NET Core 539
- Tworzenie serwisów w technologii ASP.NET Core Web API 539
- Kontrolery ASP.NET Core 540
- Tworzenie projektu ASP.NET Core Web API 540
- Tworzenie serwisu internetowego dla bazy danych Northwind 544
- Tworzenie repozytorium danych dla encji 545
- Dokumentowanie i testowanie serwisów przy użyciu narzędzia Swagger 551
- Testowanie żądań GET za pomocą przeglądarki 551
- Testowanie żądań POST, PUT i DELETE w narzędziu Swagger 553
- Instalowanie pakietu Swagger 553
- Testowanie żądań GET w narzędziu Swagger 554
- Testowanie żądań POST za pomocą narzędzia Swagger 557
- Tworzenie aplikacji SPA przy użyciu biblioteki Angular 561
- Szablon projektu Angular 561
- Wywoływanie serwisu Northwind 565
- Testowanie wywołań serwisu z...
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-4451-8 |
Rozmiar pliku: | 30 MB |