Używamy cookies, aby ułatwić korzystanie z Portalu. Możesz określić warunki przechowywania, dostępu do plików cookies w Twojej przeglądarce. Dowiedz się więcej.
strona główna Strona główna | Nowości | Promocje | Zapowiedzi Twoje konto | Zarejestruj | Schowek | Kontakt | Pomoc
mapa działów
Szukaj: szukanie zaawansowane
Koszyk
Książki \ Programowanie \ ASP, ADO

Programowanie w ASP.NET Core Język: 1

978-83-7541-364-9

Cena Brutto: 98.70

Cena netto: 94.00

Ilość:
Wersja: Drukowana
Autor Dino Esposito
Liczba_stron 508
Wydawnictwo Microsoft Press
Oprawa miękka
Data_Wydania 2018-09-24
Programowanie w

ASP.NET

Core

Kompletny podręcznik budowania wysokiej jakości rozwiązań przy użyciu ASP.NET Core
Programowanie w ASP.NET Core to wyczerpujący podręcznik praktycznego tworzenia aplikacji WWW przy użyciu nowej platformy ASP.NET Core firmy Microsoft. Autor Dino Esposito (Microsoft MVP) przedstawia sprawdzone techniki oraz dobrze opracowany kod przykładowy, pokazując rozwiązywanie rzeczywistych problemów przy użyciu ASP.NET Core. Prowadzi czytelnika przez korzystanie ze wszystkich kluczowych technologii ASP.NET Core. Dokładnie omawia możliwości wieloplatformowe ASP.NET Core oraz zmiany w stosunku do wcześniejszych wersji ASP.NET, ale nie poprzestaje na tym: oferuje kompletną ścieżkę edukacyjną każdemu programiście, który chce budować rozwiązania produkcyjne, w tym roz-wiązania specyficzne dla urządzeń mobilnych.

Dowiedz się, jak:
  • Tworzyć nowe projekty i zrozumieć ich strukturę
  • Wykorzystać znany model aplikacyjny MVC w ASP.NET Core
  • Pisać kod klas kontrolerów, obsługujący wszystkie etapy przetwarzania żądań
  • Generować kod HTML z kontrolerów lub bezpośrednio poprzez strony Razor
  • Opanować język Razor do szybkiego definiowania układów widoków HTML
  • Radzić sobie z problemami związanymi z globalnymi danymi konfiguracyjnymi, obsługą błędów i wyjątków, projektowaniem klas kontrolerów oraz wstrzykiwaniem zależności
  • Zabezpieczać aplikacje ASP.NET Core przy pomocy uwierzytelniania użytkowników oraz autoryzacyjnych interfejsów API opartych na zasadach
  • Projektować wydajny dostęp do danych i wybierać odpowiednie opcje odczytywania i zapisywania danych
  • Budować interfejsy Web API oparte na ASP.NET Core i zwracające JSON, XML lub inne rodzaje danych
  • Wykorzystywać wiązanie danych do programowego aktualizowania składników wizualnych świeżymi informacjami
  • Budować przyjazne widoki WWW dla systemów iOS i Android
  • Zapoznać się z radykalnie nowym środowiskiem uruchomieniowym ASP.NET Core oraz infrastrukturą wstrzykiwania zależności

O autorze
Dino Esposito jest cyfrowym strategiem w firmie BaxEnergy, która zajmuje się tworzeniem oprogramowania sterującego wszelkimi działaniami elektrowni. Dino napisał ponad 20 książek i 1000 artykułów w swojej 25-letniej karierze, a powszechnie uważa się, że jego książki i artykuły pomogły w zawodowym rozwoju wielu tysiącom programistów i architektów .NET na całym świecie. Dino zaczął jako programista C w roku 1992 i był świadkiem debiutu .NET, rozwoju i wycofania Silverlight oraz wzlotów i upadków różnych wzorców architektonicznych.

O autorze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x

Wprowadzenie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi

Część I: Rzut oka na nową technologię ASP.NET

 

1. Dlaczego kolejna wersja ASP.NET? . . . . . . . . . . . . . . . .  . . . . . . . . . 3

Obecna platforma .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Najważniejsze cechy platformy .NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

.NET Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

Platforma ASP.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

Platforma Web API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Potrzeba niezwykle prostych usług Web . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

.NET 15 lat później . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . 8

Bardziej zwarta platforma .NET Framework . . . . . . . . . . . . . . . . . . . . . . . . 9

Oddzielenie ASP.NET od serwera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Nowa platforma ASP.NET Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Narzędzia wiersza pleceń .NET Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Instalowanie narzędzi CLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Narzędzie sterownika dotnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Predefiniowane polecenia dotnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15


2. Pierwszy projekt ASP.NET Core . . . . . . . . . . . . . . . . . .  . . . . . . . . . . 17

Anatomia projektu ASP.NET Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Struktura projektu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Interakcja ze środowiskiem uruchomieniowym . . . . . . . . . . . . . . . . . . . . 25

Podsystem wstrzykiwania zależności . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Rzut oka na wstrzykiwanie zależności . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

Wstrzykiwanie zależności w ASP.NET Core . . . . . . . . . . . . . . . . . . . . . . . . . 34

Integracja z zewnętrznymi bibliotekami wstrzykiwania zależności . . . . 38

Budowanie mini witryny Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Tworzenie witryny Web z pojedynczym punktem końcowym . . . . . . . . 41

Dostęp do plików na serwerze Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

 

Część II: Model aplikacji ASP.NET MVC

3. Ładowanie ASP.NET MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Włączanie modelu aplikacji MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Rejestrowanie usługi MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Włączanie konwencjonalnego routingu . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Konfigurowanie tabeli routingu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

Anatomia trasy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

Zaawansowane aspekty routingu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Mapa maszynerii ASP.NET MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

Element wywołujący akcje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

Przetwarzanie wyników akcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

Filtry akcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

 

4. Kontrolery ASP.NET MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Klasy kontrolerów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Ustalanie nazwy kontrolera . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Dziedziczone kontrolery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Kontrolery POCO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Akcje kontrolerów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Mapowanie akcji do metod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Routing oparty na atrybutach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

Implementacja metod akcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

Podstawowe pobieranie danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

Wiązanie modelu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

Wyniki akcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Filtry akcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Anatomia filtrów akcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Mała galeria filtrów akcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

 

5. Widoki ASP.NET MVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

Serwowanie zawartości HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121

Serwowanie HTML z kończącego oprogramowania pośredniego . . . . 121

Serwowanie HTML z kontrolerów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

Serwowanie HTML ze stron Razor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

Silnik widoków . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

Wywoływanie silnika widoków . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

Silnik widoków Razor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

Dodawanie niestandardowego silnika widoków . . . . . . . . . . . . . . . . . . . 133

Struktura widoku Razor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

Przekazywanie danych do widoku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

Wbudowane słowniki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

Silnie typowane modele widoków . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

Wstrzykiwanie danych poprzez system wstrzykiwania zależności . . . . 145

Strony Razor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

Uzasadnienie dla stron Razor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

Implementacja stron Razor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

Przesyłanie danych ze strony Razor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

 

6. Składnia Razor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

Elementy składni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

Przetwarzanie wyrażeń kodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

Szablony układów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158

Widoki częściowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

Pomocnicy znacznikowi w Razor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

Korzystanie z pomocników znacznikowych . . . . . . . . . . . . . . . . . . . . . . . 164

Wbudowani pomocnicy znacznikowi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

Pisanie niestandardowych pomocników znacznikowych. . . . . . . . . . . . 170

Komponenty widoków Razor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

Pisanie komponentu widoku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

Wzorzec Composition UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

 

Część III: Najważniejsze zagadnienia

7. Uwarunkowania projektowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

Infrastruktura wstrzykiwania zależności. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

Refaktoring w celu wyizolowania zależności . . . . . . . . . . . . . . . . . . . . . . 181

Ogólne zasady systemu wstrzykiwania zależności w ASP.NET Core . . 185

Aspekty pojemnika wstrzykiwania zależności . . . . . . . . . . . . . . . . . . . . . 189

Wstrzykiwanie danych i usług w warstwach . . . . . . . . . . . . . . . . . . . . . . 189

Zbieranie danych konfiguracyjnych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191

Obsługiwani dostawcy danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192

Budowanie modelu obiektów dokumentu dla danych

konfiguracyjnych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

Przekazywanie danych konfiguracyjnych . . . . . . . . . . . . . . . . . . . . . . . . . 198

Architektura warstwowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200

Warstwa prezentacyjna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202

Warstwa aplikacyjna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

Warstwa domenowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

Warstwa infrastrukturalna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

Obsługa wyjątków . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205

Oprogramowanie pośrednie do obsługi wyjątków . . . . . . . . . . . . . . . . 205

Filtry wyjątków . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

Rejestrowanie wyjątków . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213

 

8. Zabezpieczanie aplikacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

Infrastruktura zabezpieczeń Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

Protokół HTTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215

Obsługa certyfikatów zabezpieczeń . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

Stosowanie szyfrowana w HTTPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

Uwierzytelnianie w ASP.NET Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

Uwierzytelnianie oparte na plikach cookie . . . . . . . . . . . . . . . . . . . . . . . 217

Obsługa wielu schematów uwierzytelniania . . . . . . . . . . . . . . . . . . . . . . 219

Modelowanie tożsamości użytkowników . . . . . . . . . . . . . . . . . . . . . . . . . 222

Uwierzytelnianie zewnętrzne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

Uwierzytelnianie użytkowników poprzez ASP.NET Identity . . . . . . . . . . . . 233

Ogólne zasady ASP.NET Identity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233

Praca z menedżerem użytkowników . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

Zasady autoryzacji. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244

Autoryzacja oparta na rolach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244

Autoryzacja oparta na zasadach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

 

9. Dostęp do danych aplikacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

W stronę ogólnego mechanizmu wewnętrznego aplikacji . . . . . . . . . . . . 258

Aplikacje monolityczne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259

Podejście wykorzystujące CQRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260

Wewnątrz warstwy infrastrukturalnej . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

Dostęp do danych w .NET Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

Entity Framework 6.x . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264

Adaptery ADO.NET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

Wykorzystanie mikroplatform O/RM . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269

Wykorzystanie magazynów NoSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271

Typowe zadania EF Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

Modelowanie bazy danych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

Praca z danymi tabelarycznymi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278

Obsługa transakcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284

Kilka słów na temat asynchronicznego przetwarzania danych . . . . . . 286

Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

 

Część IV: Po stronie klienta

10. Projektowanie interfejsu Web API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

Budowanie interfejsu Web API w ASP.NET Core . . . . . . . . . . . . . . . . . . . . . 293

Udostępnianie punktów końcowych HTTP . . . . . . . . . . . . . . . . . . . . . . . 294

Serwery plików . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297

Projektowanie interfejsu typu REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298

Rzut oka na REST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299

REST w ASP.NET Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303

Zabezpieczanie interfejsu Web API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

Planowanie naprawdę potrzebnych zabezpieczeń . . . . . . . . . . . . . . . . . 307

Prostsze metody kontroli dostępu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308

Wykorzystanie serwera zarządzania tożsamością . . . . . . . . . . . . . . . . . . 310

Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318

 

11. Przekazywanie danych ze strony klienta . . . . . . . . . . . . . . . . . . . . . . . 319

Organizowanie formularzy HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

Definiowanie formularza HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320

Wzorzec Post-Redirect-Get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

Przesyłanie formularzy przez JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328

Ładowanie zawartości formularza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328

Odświeżanie fragmentów bieżącego ekranu . . . . . . . . . . . . . . . . . . . . . . 334

Ładowanie plików do serwera Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335

Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339

 

12. Wiązanie danych po stronie klienta . . . . . . . . . . . . . . . . . . . . . . . . . . . 341

Odświeżanie widoku poprzez HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341

Przygotowywanie gruntu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

Definiowanie obszarów, które mogą być odświeżane . . . . . . . . . . . . . . 342

Łączenie wszystkiego razem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343

Odświeżanie widoku poprzez JSON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

Wprowadzenie do biblioteki Mustache.JS . . . . . . . . . . . . . . . . . . . . . . . . 349

Wprowadzenie do biblioteki KnockoutJS . . . . . . . . . . . . . . . . . . . . . . . . . 354

Budowanie aplikacji Web przy pomocy Angular . . . . . . . . . . . . . . . . . . . . . 361

Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361

 

13. Budowanie widoków przyjaznych dla różnych urządzeń . . . . . . . 363

Adaptowanie widoków do faktycznego urządzenia . . . . . . . . . . . . . . . . . . 364

Scenariusze najlepszego wykorzystania funkcji HTML5 dla urządzeń 364

Wykrywanie funkcji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368

Wykrywanie urządzeń po stronie klienta . . . . . . . . . . . . . . . . . . . . . . . . . 369

Client Hints . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373

Obrazy przyjazne dla urządzeń . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374

Element PICTURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374

Platforma ImageEngine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376

Automatyczne zmienianie rozmiarów obrazów . . . . . . . . . . . . . . . . . . . 376

Strategie programowania zorientowanego na urządzenia . . . . . . . . . . . . 379

Strategie koncentrujące się na kliencie . . . . . . . . . . . . . . . . . . . . . . . . . . 379

Strategie koncentrujące się na serwerze . . . . . . . . . . . . . . . . . . . . . . . . . 383

Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

 

Część V: Ekosystem ASP.NET Core

14. Środowisko uruchomieniowe ASP.NET Core. . . . . . . . . . . . . . . . . . . . 389

Host ASP.NET Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389

Klasa WebHost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390

Niestandardowe ustawienia hostingu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394

Wbudowany serwer HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400

Wybór serwera HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400

Konfigurowanie odwróconego serwera proxy . . . . . . . . . . . . . . . . . . . . 403

Parametry konfiguracyjne serwera Kestrel . . . . . . . . . . . . . . . . . . . . . . . . 406

Oprogramowanie pośrednie ASP.NET Core . . . . . . . . . . . . . . . . . . . . . . . . . 408

Architektura potoku przetwarzania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408

Pisanie składników oprogramowania pośredniego . . . . . . . . . . . . . . . . 412

Pakowanie składników oprogramowania pośredniego . . . . . . . . . . . . . 416

Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419

 

15. Wdrażanie aplikacji ASP.NET Core . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421

Publikowanie aplikacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422

Publikowanie z poziomu Visual Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . 422

Publikowanie przy użyciu narzędzi CLI. . . . . . . . . . . . . . . . . . . . . . . . . . . 428

Wdrażanie aplikacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430

Wdrażanie na serwerze IIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430

Wdrażanie w Microsoft Azure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433

Wdrażanie na serwerach Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438

Kontenery Docker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441

Kontenery kontra maszyny wirtualne . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441

Od kontenerów do architektury mikrousług . . . . . . . . . . . . . . . . . . . . . . 442

Docker i Visual Studio 2017 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442

Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444

 

16. Strategie migracji i przystosowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445

W poszukiwaniu wartości biznesowej . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446

Szukanie korzyści . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 446

Rozwijanie starszych aplikacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451

Rozwijanie nowych aplikacji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452

Strategia pośrednia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455

Radzenie sobie z brakującymi zależnościami . . . . . . . . . . . . . . . . . . . . . 456

.NET Portability Analyzer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456

Windows Compatibility Pack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458

Odkładanie obsługi wieloplatformowej na później . . . . . . . . . . . . . . . . 458

Droga do architektury mikrousług . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460

Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462

Indeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463

powrót
 
Produkty Podobne
Programowanie w ASP.NET Core
Programming ASP.NET Core
ASP.NET Core MVC 2. Zaawansowane programowanie. Wydanie VII
Zestaw 2 książek z serii Tajniki (C# i .NET Framework + ASP.NET Core 2.0)
Tajniki ASP.NET Core 2.0. Wzorzec MVC, konfiguracja, routing, wdrażanie i jeszcze więcej
ASP.NET Core in 24 Hours, Sams Teach Yourself
ASP.NET Core Application Development: Building an application in four sprints
Nowoczesne API. Ewoluujące aplikacje sieciowe w technologii ASP.NET
ASP.NET MVC 5, Bootstrap i Knockout.js. Tworzenie dynamicznych i elastycznych aplikacji internetowych
ASP.NET MVC 5. Zaawansowane programowanie
Więcej produktów