Asp Net Core 2 i Angular 5 Przewodnik dla Full Stack Web Developera - Valerio De Sanctis Jutrosin

Framework ASP.NET Core odzwierciedla zmianę podejścia do technologii strony klienta: niezależność od platformy sprzętowej, łatwiejsze prowadzenie testów jednostkowych i rozbudowa tworzonych systemów. Kolejna wersja frameworka odzwierciedla dalszą ewolucję koncepcji: od aplikacji, które miały być …

od 51,50 Najbliżej: 46 km

Liczba ofert: 2

Oferta sklepu

Opis

Framework ASP.NET Core odzwierciedla zmianę podejścia do technologii strony klienta: niezależność od platformy sprzętowej, łatwiejsze prowadzenie testów jednostkowych i rozbudowa tworzonych systemów. Kolejna wersja frameworka odzwierciedla dalszą ewolucję koncepcji: od aplikacji, które miały być reaktywne i responsywne, do progresywnej realizacji zadań. Również technologia strony serwera poczyniła postępy w zakresie stabilności i wydajności pracy, co w widoczny sposób przyczyniło się do radykalnych zmian kolejnych wersji Angulara. Poprzednie wersje ASP.NET Core i Angulara były znakomitą propozycją dla projektantów całościowych rozwiązań. Czy bezproblemowe stosowanie obu tych narzędzi będzie możliwe w przypadku ich najnowszych wersji? Dzięki tej książce dowiesz się, w jaki sposób zrealizować kompleksowy projekt aplikacji internetowej, zapewniając efektywną pracę jej części klienckiej i serwerowej za pomocą frameworków ASP.NET Core 2 i Angular 5. Dowiesz się, jak zapewnić obsługę wywołań API oraz routingu po stronie serwera, czym jest dowiązanie dwukierunkowe, jak wykorzystać obiekty Observable i jak wstrzykiwać zależności. Nauczysz się stosować framework Entity Framework Core do tworzenia modelu danych, a framework Bootstrap i narzędzie LESS do nadania odpowiednich stylów. Poznasz różne techniki uwierzytelniania klientów, w tym protokół OAuth 2. Dowiesz się też, jak poprawnie skonfigurować mechanizm odwrotnego pośrednika miedzy serwerami IIS i Kestrel. W tej książce między innymi: Solidne wprowadzenie do frameworków i przygotowanie środowiska pracy Entity Framework Core i implementacja modelu danych Nowoczesne podejście do interfejsu graficznego Zaawansowane funkcje formularzy, w tym walidacja i weryfikacja danych Uwierzytelnianie i autoryzacja oraz praca z tokenami Wdrażanie aplikacji w środowisku produkcyjnym Nowoczesne aplikacje: oszałamiająca wydajność, wszechobecna prostota! 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 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 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/ 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 Odnośniki Poruszana tematyka Podsumowanie 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 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 Obsługa pojedynczych elementów Poruszana tematyka Podsumowanie 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 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 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 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 Poruszana tematyka Podsumowanie 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 Pełnowymiarowy test aplikacji Poruszana tematyka Podsumowanie 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 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 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 Całościowy test zmian interfejsu Poruszana tematyka Podsumowanie Rozdział 7. Formularze i weryfikacja danych Walidacja danych Formularze we frameworku Angular Formularze sterowane szablonami Zalety Wady Formularze sterowane modelem 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 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 Poruszana tematyka Podsumowanie Rozdział 8. Uwierzytelnianie i autoryzacja Uwierzytelniać czy tego nie robić? Uwierzytelnianie Uwierzytelnianie przy udziale strony trzeciej Wzlot i upadek OpenID OpenID Connect Autoryzacja Autoryzacja przy udziale strony trzeciej Rozwiązania własne czy firm trzecich? 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 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 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 Poruszana tematyka Podsumowanie 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 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 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 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 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 Poruszana tematyka Podsumowanie 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 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 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 Poruszana tematyka Podsumowanie O autorze: Valerio De Sanctis od kilkunastu lat zarządza projektami budowania profesjonalnych witryn internetowych. Zdobył również spore doświadczenie w branży finansowej i w ubezpieczeniach. Specjalizuje się w implementacji i utrzymaniu rozwiązań wykorzystujących technologię .NET. Współpracował między innymi z London Stock Exchange Group, Zurich Insurance Group, Allianz, Generali, Harmonie Mutuelle, AIG, QBE, Marsh & McLennan, Lloyd's, Honda Motor, FCA Group, Luxottica, ANSA, Saipem, ENI, Enel, Terna, Banzai Media, Virgilio.it, Repubblica.it i Corriere.it.

Specyfikacja

Podstawowe informacje

Autor
  • Valerio De Sanctis
Wybrane wydawnictwa
  • Helion
Okładka
  • Miękka
Rok wydania
  • 2018
Ilość stron
  • 472
Tematyka
  • Programowanie
  • Webmasterstwo
ISBN
  • 9788328346437
Model
  • miękka