ASP.NET Core 2 i Angular 5. Przewodnik dla Full-Stack Web Developera - Helion
Autor: Valerio De Sanctis
Tytu艂 orygina艂u: ASP.NET Core 2 and Angular 5: Full-Stack Web Development with .NET Core and Angular
ISBN: 978-83-283-4643-7
ok艂adka: mi臋kka
Data wydania: 2018-08-01
Ksi臋garnia: Helion
Cena ksi膮偶ki: 23,90 z艂 (poprzednio: 77,10 z艂)
Oszcz臋dzasz: 69% (-53,20 z艂)
Tytu艂 orygina艂u: ASP.NET Core 2 and Angular 5: Full-Stack Web Development with .NET Core and Angular
ISBN: 978-83-283-4643-7
ok艂adka: mi臋kka
Data wydania: 2018-08-01
Ksi臋garnia: Helion
Cena ksi膮偶ki: 23,90 z艂 (poprzednio: 77,10 z艂)
Oszcz臋dzasz: 69% (-53,20 z艂)
Osoby kt贸re kupowa艂y "ASP.NET Core 2 i Angular 5. Przewodnik dla Full-Stack Web Developera", wybiera艂y tak偶e:
- Windows Media Center. Domowe centrum rozrywki 66,67 z艂, (8,00 z艂 -88%)
- Ruby on Rails. 膯wiczenia 18,75 z艂, (3,00 z艂 -84%)
- Przyw贸dztwo w 艣wiecie VUCA. Jak by膰 skutecznym liderem w niepewnym 艣rodowisku 58,64 z艂, (12,90 z艂 -78%)
- Scrum. O zwinnym zarz膮dzaniu projektami. Wydanie II rozszerzone 58,64 z艂, (12,90 z艂 -78%)
- Od hierarchii do turkusu, czyli jak zarz膮dza膰 w XXI wieku 58,64 z艂, (12,90 z艂 -78%)
Spis tre艣ci
ASP.NET Core 2 i Angular 5. Przewodnik dla Full-Stack Web Developera -- spis tre艣ci
- Zesp贸艂 wydania oryginalnego
- O autorze
- O redaktorach merytorycznych
- Wst臋p
- Zawarto艣膰 ksi膮偶ki
- Oprogramowanie wymagane do wykonania przyk艂ad贸w
- Do kogo skierowana jest ta ksi膮偶ka?
- Konwencje typograficzne
- Pomoce dla czytelnika
- Przyk艂adowy kod
- Rozdzia艂 1. Przygotowanie 艣rodowiska
- Dw贸ch graczy, jeden cel
- Rewolucja ASP.NET
- Co nowego w Angularze?
- Podej艣cie od pocz膮tku do ko艅ca
- Aplikacja typu SPA
- Typowe funkcjonalno艣ci nowoczesnych aplikacji SPA
- Oczekiwania w艂a艣ciciela produktu
- Projekt przyk艂adowej aplikacji SPA
- Wizja
- To nie b臋dzie typowa aplikacja Witaj, 艣wiecie
- Aplikacja TestMakerFree
- Podstawowe funkcjonalno艣ci i wymagania
- Wizja
- Przygotowanie 艣rodowiska pracy
- Uwaga pomy艣l, zanim to zrobisz
- Mit niedzia艂aj膮cego kodu
- Pozosta艅 otwarty na nowo艣ci, ale wprowadzaj je odpowiedzialnie
- Wersje narz臋dzi i bibliotek
- Konfiguracja projektu
- Alternatywna konfiguracja z wykorzystaniem wiersza polece艅
- Test konfiguracji 艣rodowiska
- Uwaga pomy艣l, zanim to zrobisz
- Poznawanie projektu
- Pliki konfiguracyjne
- Plik Program.cs
- Plik Startup.cs
- Plik appsettings.json
- Plik package.json
- Aktualizacja (lub dezaktualizacja) Angulara
- Aktualizacja (lub dezaktualizacja) pozosta艂ych pakiet贸w
- Plik tsconfig.json
- Pliki konfiguracyjne narz臋dzia Webpack
- Aktualizacja pliku webpack.config.js
- Uaktualnienie pliku webpack.config.vendor.js
- Dlaczego warto korzysta膰 z dynamicznego mechanizmu pakowania modu艂贸w?
- Od艣wie偶enie plik贸w generowanych przez Webpack
- Kod po stronie serwerowej
- Plik Controllers/HomeController.cs
- Plik Controllers/SampleDataController.cs
- Folder /Views/
- Kod po stronie klienckiej
- Folder /ClientApp/app/
- Pliki konfiguracyjne
- Przygotowanie projektu
- Pami臋膰 podr臋czna i pliki statyczne
- Mechanizm stosowany w przesz艂o艣ci
- Powr贸t do przysz艂o艣ci
- Czas na test
- Podej艣cie z u偶yciem silnego typowania
- Czyszczenie aplikacji klienckiej
- Ograniczenie liczby komponent贸w
- Klasy AppModule
- Aktualizacja NavMenu
- Pami臋膰 podr臋czna i pliki statyczne
- Odno艣niki
- Poruszana tematyka
- Podsumowanie
- Dw贸ch graczy, jeden cel
- Rozdzia艂 2. Cz臋艣膰 serwerowa wykorzystuj膮ca .NET Core
- Przep艂yw danych
- Zadania modelu widoku
- Pierwszy model widoku
- Klasa QuizViewModel
- Klasa QuizController
- Dodatkowe metody akcji
- Metoda ByTitle
- Metoda Random()
- Sprawdzenie, czy wszystko dzia艂a
- Dodatkowe metody akcji
- Dodawanie pozosta艂ych kontroler贸w
- Klasa QuestionViewModel
- Klasa QuestionController
- Klasa AnswerViewModel
- Klasa AnswerController
- Klasa ResultViewModel
- Klasa ResultController
- Dzia艂anie routingu
- Definiowanie routingu
- Routing dawniej i dzi艣
- Obs艂uga routingu w .NET Core
- Trzy sposoby routingu
- Dodawanie nowych 艣cie偶ek
- Atrapa dostawcy danych
- Definiowanie routingu
- Obs艂uga pojedynczych element贸w
- Poruszana tematyka
- Podsumowanie
- Przep艂yw danych
- Rozdzia艂 3. Cz臋艣膰 kliencka korzystaj膮ca z frameworka Angular
- Wzorzec nawigacji
- Powi膮zanie og贸艂-szczeg贸艂y
- Kliencka cz臋艣膰 interfejsu dotycz膮cego quizu
- Komponent QuizListComponent
- Nowa klasa HttpClient
- Por贸wnanie ze starszym standardem
- Jak zainstalowa膰 klas臋 HttpClient?
- Jak jej u偶y膰?
- Wstrzykni臋cie jako zale偶no艣ci
- Pobranie i subskrypcja
- Metoda onSelect()
- Plik szablonu
- Plik arkusza styl贸w
- Dodanie komponentu
- Plik modu艂u (klasa AppModule)
- Szablon komponentu HomeComponent
- Test
- Nowa klasa HttpClient
- Klasa QuizComponent
- Dodanie plik贸w komponentu
- Dodanie komponentu
- Test
- Do艂膮czanie dodatkowych list
- Wiele instancji jednego komponentu
- Testowanie i debugowanie
- Interfejs OnInit i zdarzenia cyklu 偶ycia
- Implementacja metody ngOnInit
- Testowanie poprawionej wersji
- Wiele instancji jednego komponentu
- Dwukierunkowe dowi膮zanie danych
- Wy艂膮czenie dwukierunkowego dowi膮zania danych
- Routing po stronie klienckiej
- Strategie PathLocationStrategy i HashLocationStrategy
- Refaktoryzacja aplikacji
- Rejestracja nowej 艣cie偶ki
- Aktualizacja komponentu QuizComponent
- Pobranie identyfikatora quizu
- Dodanie obiektu HttpClient
- Pobieranie danych
- Aktualizacja komponentu QuizListComponent
- Test routingu
- Aktualizacja komponentu QuizComponent
- Dodanie nowych komponent贸w
- Komponent AboutComponent
- Komponent LoginComponent
- Komponent PageNotFoundComponent
- Aktualizacja klasy AppModule
- Test ca艂ej aplikacji
- Poruszana tematyka
- Podsumowanie
- Rozdzia艂 4. Model danych wykorzystuj膮cy Entity Framework Core
- Przygotowania
- Instalacja Entity Framework Core
- Podej艣cia do modelowania danych
- Najpierw model
- Najpierw baza danych
- Najpierw kod
- Podj臋cie decyzji
- Tworzenie encji
- Klasa ApplicationUser
- Klasa Quiz
- Klasa Question
- Klasa Answer
- Klasa Result
- Definiowanie relacji
- Wzorzec leniwego wczytywania danych w relacjach jeden-do-wielu
- Konfiguracja obiektu DbContext
- Strategie inicjalizacji bazy danych
- Wyb贸r bazy danych
- Aktualizacja pliku appsettings.json
- Tworzenie bazy danych
- Aktualizacja pliku Startup.cs
- Dodanie migracji pocz膮tkowej
- B艂膮d braku pliku
- Dzia艂anie mechanizmu migracji
- Implementacja wype艂niania bazy danymi
- Utworzenie klasy DbSeeder
- U偶ycie DbSeeder w Startup.cs
- Wype艂nienie bazy danymi pocz膮tkowymi
- Aktualizacja klasy QuizController
- Narz臋dzie Mapster
- Instalacja
- Podstawy u偶ycia
- Aktualizacja klasy
- Testowanie dostawcy danych
- Narz臋dzie Mapster
- Poruszana tematyka
- Podsumowanie
- Przygotowania
- Rozdzia艂 5. Interakcje po stronie klienckiej
- Dodawanie, aktualizacja i usuwanie quiz贸w
- Aktualizacja klasy QuizController
- Dostosowanie cz臋艣ci klienckiej
- Dodanie komponentu QuizEditController
- Aktywacja trybu edycji
- Obs艂uga zdarze艅 lub linki routera
- Dodanie 艣cie偶ki edycji
- Implementacja funkcjonalno艣ci usuwania
- Kilka s艂贸w o obiektach Observable
- Pierwszy test powa偶nej interakcji klienta z serwerem
- Przep艂yw komunikacji mi臋dzy klientem i serwerem
- Pytania, odpowiedzi i wyniki
- Zadania po stronie serwerowej
- Klasa QuestionController
- Klasa AnswerController
- Klasa ResultController
- Klasa BaseApiController
- Zastosowanie klasy BaseApiController
- Zadania po stronie klienckiej
- Dodanie interfejs贸w
- Komponent QuestionListComponent
- Wprowadzenie do metody ngOnChanges()
- Dlaczego powinni艣my si臋 tym przejmowa膰?
- Plik szablonu
- Dodanie referencji
- Komponent QuestionEditComponent
- Referencje i routing
- Komponent AnswerListComponent
- Komponent AnswerEditComponent
- Plik szablonu
- Referencje i routing
- Komponent ResultListComponent
- Referencje i routing
- Komponent ResultEditComponent
- Zadania po stronie serwerowej
- Pe艂nowymiarowy test aplikacji
- Poruszana tematyka
- Podsumowanie
- Dodawanie, aktualizacja i usuwanie quiz贸w
- Rozdzia艂 6. Arkusze styl贸w i uk艂ad interfejsu graficznego
- Czy jest a偶 tak 藕le?
- Wprowadzenie do LESS
- J臋zyki arkuszy styl贸w
- CSS
- Przyk艂adowy kod CSS
- Czym jest LESS i dlaczego warto go u偶ywa膰?
- Zmienne
- Dyrektywy importu
- Zagnie偶d偶anie selektor贸w
- Domieszki (mixin)
- Pseudoklasa :extend
- Dokumentacja LESS
- Sass, Stylus i inne mo偶liwo艣ci
- Implementacja LESS
- Instalacja kompilatora LESS
- Kompilacja plik贸w LESS za pomoc膮 narz臋dzia Webpack
- Samodzielne definiowanie styl贸w kontra u偶ycie frameworka CSS
- Podej艣cie zr贸bmy wszystko sami
- Zalety
- Wady
- Podej艣cie wykorzystuj膮ce framework CSS
- Zalety
- Wady
- Wnioski
- Podej艣cie zr贸bmy wszystko sami
- Praca z Bootstrapem
- Zmiana motywu
- Przebudowanie plik贸w dystrybucyjnych zewn臋trznych dostawc贸w
- Usuni臋cie folderu /wwwroot/dist/
- Uaktualnienie pliku .csproj
- Utworzenie pliku update-webpack.bat
- Sprawdzenie nowego motywu
- Przebudowanie plik贸w dystrybucyjnych zewn臋trznych dostawc贸w
- Zmiana struktury interfejsu u偶ytkownika
- Komponent AppComponent
- Komponent NavMenuComponent
- Komponent QuizSearchComponent
- Rejestracja komponentu QuizSearchComponent
- Plik SVG z logo
- Szybki test
- Stylowanie komponent贸w
- Enkapsulacja CSS
- Wbudowana enkapsulacja wykorzystuj膮ca Shadow DOM
- Wy艂膮czenie enkapsulacji
- Komponent HomeComponent
- Komponent QuizListComponent
- Nast臋pny test interfejsu u偶ytkownika
- Komponent QuizComponent
- Test interfejsu u偶ytkownika
- Komponent QuizEditComponent
- Komponenty pytania, odpowiedzi i wyniku
- Przyciski i ikony
- Tabele i elementy div
- Formularze i pola tekstowe
- Enkapsulacja CSS
- Ca艂o艣ciowy test zmian interfejsu
- Zmiana motywu
- Poruszana tematyka
- Podsumowanie
- Rozdzia艂 7. Formularze i weryfikacja danych
- Walidacja danych
- Formularze we frameworku Angular
- Formularze sterowane szablonami
- Zalety
- Wady
- Formularze sterowane modelem
- Formularze sterowane szablonami
- Pierwszy reaktywny formularz
- Dodanie referencji do ReactiveFormsModule
- Uaktualnienie komponentu QuizEditComponent
- Dodanie walidator贸w
- Dodanie skr贸t贸w
- Uaktualnienie komponent贸w
- Komponent QuestionEditComponent
- Komponent AnswerEditComponent
- Komponent ResultEditComponent
- Formularze we frameworku Angular
- Debugowanie i testowanie
- Jak wygl膮da model formularza?
- Operator potoku
- Reagowanie na zmiany
- Obserwowanie obiektu Observable
- Rozbudowa dziennika aktywno艣ci
- Debugowanie po stronie klienta
- Testy jednostkowe formularzy
- Jak wygl膮da model formularza?
- Poruszana tematyka
- Podsumowanie
- Walidacja danych
- Rozdzia艂 8. Uwierzytelnianie i autoryzacja
- Uwierzytelnia膰 czy tego nie robi膰?
- Uwierzytelnianie
- Uwierzytelnianie przy udziale strony trzeciej
- Wzlot i upadek OpenID
- OpenID Connect
- Uwierzytelnianie przy udziale strony trzeciej
- Autoryzacja
- Autoryzacja przy udziale strony trzeciej
- Rozwi膮zania w艂asne czy firm trzecich?
- Uwierzytelnianie
- Mechanizmy uwierzytelniania wbudowane w .NET Core
- Konfiguracja .NET Core Identity
- Konfiguracja us艂ugi Identity
- Klasa ApplicationUser jako klasa potomna
- Uaktualnienie klasy DbContext
- Modyfikacja klasy DbSeeder
- Kilka s艂贸w na temat zada艅 asynchronicznych i blokad wzajemnych
- Konfiguracja .NET Core Identity
- Aktualizacja bazy danych
- Dodanie migracji dotycz膮cej us艂ugi Identity
- Zastosowanie migracji
- Opcja 1. aktualizacja
- Opcja 2. usuni臋cie i ponowne utworzenie
- Wype艂nienie bazy danymi
- Sposoby uwierzytelniania
- Sesje
- Tokeny
- Sygnatury
- Uwierzytelnianie dwuetapowe
- Wnioski
- Implementacja uwierzytelniania JWT
- Dodanie us艂ugi uwierzytelniania do klasy startowej
- Aktualizacja plik贸w AppSettings
- Klasa TokenController
- Aktualizacja klasy BaseApiController
- Aktualizacja kontroler贸w dziedzicz膮cych po klasie bazowej
- Dodanie klasy TokenController
- Klasa TokenRequestViewModel
- Klasa TokenResponseViewModel
- Test narz臋dziem Postman
- Aktualizacja klasy BaseApiController
- Formularz logowania w Angularze
- Interfejs TokenResponse
- Klasa AuthService
- Aktualizacja klasy AppModule
- Nowa wersja komponentu LoginComponent
- Pierwszy test logowania
- Dodanie tokena do nag艂贸wka 偶膮dania HTTP
- Klasa AuthInterceptor
- Dodanie AuthInterceptor do AppModule
- Wymuszenie autoryzacji
- Dostosowanie klienta
- Komponent NavMenuComponent
- Komponent QuizComponent
- Ochrona serwera
- Pobranie identyfikatora aktualnego u偶ytkownika
- Sprawdzenie uwierzytelniania na styku klient-serwer
- Dostosowanie klienta
- Poruszana tematyka
- Podsumowanie
- Uwierzytelnia膰 czy tego nie robi膰?
- Rozdzia艂 9. Tematy zaawansowane
- Wygasanie tokena i tokeny od艣wie偶ania
- Czym jest token od艣wie偶ania?
- Zadania po stronie serwerowej
- Dodanie encji dla tokena
- Aktualizacja encji u偶ytkownika
- Aktualizacja ApplicationDbContext
- Przygotowanie i zastosowanie migracji w EF Core
- Implementacja tokena od艣wie偶ania
- Aktualizacja klasy TokenResponseViewModel
- Aktualizacja klasy TokenRequestViewModel
- Aktualizacja klasy TokenController
- Dodanie encji dla tokena
- Zadania po stronie klienckiej
- Aktualizacja interfejsu TokenResponse
- Aktualizacja klasy AuthService
- Dodanie klasy AuthResponseInterceptor
- Dodanie nowej klasy AuthResponseInterceptor do AppModule
- Test dzia艂ania aplikacji
- Rejestracja nowego u偶ytkownika
- Zadania po stronie serwerowej
- Klasa UserController
- Klasa UserViewModel
- Zadania po stronie klienckiej
- Interfejs User
- Klasa RegisterComponent
- W艂asne walidatory
- Pliki szablonu i arkusza styl贸w
- Plik AppModule
- Komponent LoginComponent
- Komponent NavMenu
- Test dzia艂ania aplikacji
- Zadania po stronie serwerowej
- Uwierzytelnianie dzi臋ki firmom trzecim
- Dzia艂anie uwierzytelniania OAuth2
- Mechanizm jawny czy niejawny?
- Zalety i wady podej艣cia niejawnego
- Zalety i wady podej艣cia jawnego
- Wnioski
- Mechanizm jawny czy niejawny?
- Logowanie do Facebooka
- Tworzenie aplikacji Facebooka
- Mechanizm niejawny
- Aktualizacja klasy TokenController
- Dodanie metody GenerateRandomPassword()
- Dodanie komponentu LoginFacebookComponent
- Dzia艂anie stref
- Dodanie pliku szablonu
- Aktualizacja AppModule
- U偶ycie komponentu LoginFacebookComponent
- Test dzia艂ania aplikacji
- Aktualizacja klasy TokenController
- Mechanizm jawny
- Instalacja pakietu Authentication.Facebook
- Konfiguracja us艂ugi uwierzytelniania poprzez Facebooka
- Aktualizacja pliku appsettings.json
- Aktualizacja klasy TokenController
- Metoda ExternalLogin
- Dodanie klasy SignInManager
- Metoda ExternalLoginCallback
- Komponent LoginExternalProvider
- Aktualizacja AppModule
- U偶ycie komponentu LoginExternalProvidersComponent
- Test dzia艂ania aplikacji
- Dzia艂anie uwierzytelniania OAuth2
- Poruszana tematyka
- Podsumowanie
- Wygasanie tokena i tokeny od艣wie偶ania
- Rozdzia艂 10. Prace wyko艅czeniowe i wdro偶enie
- Przej艣cie na SQL Server
- Instalacja SQL Server 2017 Express Edition
- Instalacja SQL Server Management Studio
- Konfiguracja bazy danych
- Zmiana sposobu uwierzytelniania
- Dodanie bazy danych TestMakerFree
- Dodanie nowego u偶ytkownika dla bazy danych
- Powi膮zanie loginu z baz膮 danych
- Konfiguracja bazy danych
- Dodanie konfiguracji po艂膮czenia z baz膮 SQL Server
- Modyfikacja konfiguracji po艂膮czenia z baz膮 danych
- Dodanie produkcyjnego adresu URL u zewn臋trznych dostawc贸w
- Aktualizacja pliku launchSettings.json
- Publikacja aplikacji internetowej
- Tworzenie profilu publikacji
- Publikacja poprzez protok贸艂 FTP
- Profil publikacji do folderu
- Publikacja aplikacji internetowej
- Tworzenie profilu publikacji
- Konfiguracja serwera i IIS
- Instalacja modu艂u ASP.NET Core dla IIS
- Dodanie nowej witryny
- Konfiguracja puli aplikacji
- Uruchamianie silnika
- Analiza typowych b艂臋d贸w po wdro偶eniu
- Przeanalizowanie komunikatu w przegl膮darce
- Plik web.config
- Narz臋dzie Event Viewer
- Modu艂 logowania w ASP.NET Core
- Sprawdzenie serwera Kestrel
- Uruchomienie serwera Kestrel w Visual Studio
- Wy艂膮czenie renderowania po stronie serwera
- Przeanalizowanie komunikatu w przegl膮darce
- Analiza typowych b艂臋d贸w po wdro偶eniu
- Poruszana tematyka
- Podsumowanie
- Przej艣cie na SQL Server