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

44,50

SKU: e0cec1a27a8c Category: Tags: , ,

Description

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 pracyEntity Framework Core i implementacja modelu danychNowoczesne podejście do interfejsu graficznegoZaawansowane funkcje formularzy, w tym walidacja i weryfikacja danychUwierzytelnianie i autoryzacja oraz praca z tokenamiWdrażanie aplikacji w środowisku produkcyjnymNowoczesne aplikacje: oszałamiająca wydajność, wszechobecna prostota!Spis treści:Zespół wydania oryginalnegoO autorzeO redaktorach merytorycznychWstępZawartość książkiOprogramowanie wymagane do wykonania przykładówDo kogo skierowana jest ta książka?Konwencje typograficznePomoce dla czytelnikaPrzykładowy kodRozdział 1. Przygotowanie środowiskaDwóch graczy, jeden celRewolucja ASP.NETCo nowego w Angularze?Podejście od początku do końcaAplikacja typu SPATypowe funkcjonalności nowoczesnych aplikacji SPAOczekiwania właściciela produktuProjekt przykładowej aplikacji SPAWizjaTo nie będzie typowa aplikacja Witaj, świecieAplikacja TestMakerFreePodstawowe funkcjonalności i wymaganiaPrzygotowanie środowiska pracyUwaga pomyśl, zanim to zrobiszMit niedziałającego koduPozostań otwarty na nowości, ale wprowadzaj je odpowiedzialnieWersje narzędzi i bibliotekKonfiguracja projektuAlternatywna konfiguracja z wykorzystaniem wiersza poleceńTest konfiguracji środowiskaPoznawanie projektuPliki konfiguracyjnePlik Program.csPlik Startup.csPlik appsettings.jsonPlik package.jsonAktualizacja (lub dezaktualizacja) AngularaAktualizacja (lub dezaktualizacja) pozostałych pakietówPlik tsconfig.jsonPliki konfiguracyjne narzędzia WebpackAktualizacja pliku webpack.config.jsUaktualnienie pliku webpack.config.vendor.jsDlaczego warto korzystać z dynamicznego mechanizmu pakowania modułów?Odświeżenie plików generowanych przez WebpackKod po stronie serwerowejPlik Controllers/HomeController.csPlik Controllers/SampleDataController.csFolder /Views/Kod po stronie klienckiejFolder /ClientApp/app/Przygotowanie projektuPamięć podręczna i pliki statyczneMechanizm stosowany w przeszłościPowrót do przyszłościCzas na testPodejście z użyciem silnego typowaniaCzyszczenie aplikacji klienckiejOgraniczenie liczby komponentówKlasy AppModuleAktualizacja NavMenuOdnośnikiPoruszana tematykaPodsumowanieRozdział 2. Część serwerowa wykorzystująca .NET CorePrzepływ danychZadania modelu widokuPierwszy model widokuKlasa QuizViewModelKlasa QuizControllerDodatkowe metody akcjiMetoda ByTitleMetoda Random()Sprawdzenie, czy wszystko działaDodawanie pozostałych kontrolerówKlasa QuestionViewModelKlasa QuestionControllerKlasa AnswerViewModelKlasa AnswerControllerKlasa ResultViewModelKlasa ResultControllerDziałanie routinguDefiniowanie routinguRouting dawniej i dziśObsługa routingu w .NET CoreTrzy sposoby routinguDodawanie nowych ścieżekAtrapa dostawcy danychObsługa pojedynczych elementówPoruszana tematykaPodsumowanieRozdział 3. Część kliencka korzystająca z frameworka AngularWzorzec nawigacjiPowiązanie ogół-szczegółyKliencka część interfejsu dotyczącego quizuKomponent QuizListComponentNowa klasa HttpClientPorównanie ze starszym standardemJak zainstalować klasę HttpClient?Jak jej użyć?Wstrzyknięcie jako zależnościPobranie i subskrypcjaMetoda onSelect()Plik szablonuPlik arkusza stylówDodanie komponentuPlik modułu (klasa AppModule)Szablon komponentu HomeComponentTestKlasa QuizComponentDodanie plików komponentuDodanie komponentuTestDołączanie dodatkowych listWiele instancji jednego komponentuTestowanie i debugowanieInterfejs OnInit i zdarzenia cyklu życiaImplementacja metody ngOnInitTestowanie poprawionej wersjiDwukierunkowe dowiązanie danychWyłączenie dwukierunkowego dowiązania danychRouting po stronie klienckiejStrategie PathLocationStrategy i HashLocationStrategyRefaktoryzacja aplikacjiRejestracja nowej ścieżkiAktualizacja komponentu QuizComponentPobranie identyfikatora quizuDodanie obiektu HttpClientPobieranie danychAktualizacja komponentu QuizListComponentTest routinguDodanie nowych komponentówKomponent AboutComponentKomponent LoginComponentKomponent PageNotFoundComponentAktualizacja klasy AppModuleTest całej aplikacjiPoruszana tematykaPodsumowanieRozdział 4. Model danych wykorzystujący Entity Framework CorePrzygotowaniaInstalacja Entity Framework CorePodejścia do modelowania danychNajpierw modelNajpierw baza danychNajpierw kodPodjęcie decyzjiTworzenie encjiKlasa ApplicationUserKlasa QuizKlasa QuestionKlasa AnswerKlasa ResultDefiniowanie relacjiWzorzec leniwego wczytywania danych w relacjach jeden-do-wieluKonfiguracja obiektu DbContextStrategie inicjalizacji bazy danychWybór bazy danychAktualizacja pliku appsettings.jsonTworzenie bazy danychAktualizacja pliku Startup.csDodanie migracji początkowejBłąd braku plikuDziałanie mechanizmu migracjiImplementacja wypełniania bazy danymiUtworzenie klasy DbSeederUżycie DbSeeder w Startup.csWypełnienie bazy danymi początkowymiAktualizacja klasy QuizControllerNarzędzie MapsterInstalacjaPodstawy użyciaAktualizacja klasyTestowanie dostawcy danychPoruszana tematykaPodsumowanieRozdział 5. Interakcje po stronie klienckiejDodawanie, aktualizacja i usuwanie quizówAktualizacja klasy QuizControllerDostosowanie części klienckiejDodanie komponentu QuizEditControllerAktywacja trybu edycjiObsługa zdarzeń lub linki routeraDodanie ścieżki edycjiImplementacja funkcjonalności usuwaniaKilka słów o obiektach ObservablePierwszy test poważnej interakcji klienta z serweremPrzepływ komunikacji między klientem i serweremPytania, odpowiedzi i wynikiZadania po stronie serwerowejKlasa QuestionControllerKlasa AnswerControllerKlasa ResultControllerKlasa BaseApiControllerZastosowanie klasy BaseApiControllerZadania po stronie klienckiejDodanie interfejsówKomponent QuestionListComponentWprowadzenie do metody ngOnChanges()Dlaczego powinniśmy się tym przejmować?Plik szablonuDodanie referencjiKomponent QuestionEditComponentReferencje i routingKomponent AnswerListComponentKomponent AnswerEditComponentPlik szablonuReferencje i routingKomponent ResultListComponentReferencje i routingKomponent ResultEditComponentPełnowymiarowy test aplikacjiPoruszana tematykaPodsumowanieRozdział 6. Arkusze stylów i układ interfejsu graficznegoCzy jest aż tak źle?Wprowadzenie do LESSJęzyki arkuszy stylówCSSPrzykładowy kod CSSCzym jest LESS i dlaczego warto go używać?ZmienneDyrektywy importuZagnieżdżanie selektorówDomieszki (mixin)Pseudoklasa :extendDokumentacja LESSSass, Stylus i inne możliwościImplementacja LESSInstalacja kompilatora LESSKompilacja plików LESS za pomocą narzędzia WebpackSamodzielne definiowanie stylów kontra użycie frameworka CSSPodejście zróbmy wszystko samiZaletyWadyPodejście wykorzystujące framework CSSZaletyWadyWnioskiPraca z BootstrapemZmiana motywuPrzebudowanie plików dystrybucyjnych zewnętrznych dostawcówUsunięcie folderu /wwwroot/dist/Uaktualnienie pliku .csprojUtworzenie pliku update-webpack.batSprawdzenie nowego motywuZmiana struktury interfejsu użytkownikaKomponent AppComponentKomponent NavMenuComponentKomponent QuizSearchComponentRejestracja komponentu QuizSearchComponentPlik SVG z logoSzybki testStylowanie komponentówEnkapsulacja CSSWbudowana enkapsulacja wykorzystująca Shadow DOMWyłączenie enkapsulacjiKomponent HomeComponentKomponent QuizListComponentNastępny test interfejsu użytkownikaKomponent QuizComponentTest interfejsu użytkownikaKomponent QuizEditComponentKomponenty pytania, odpowiedzi i wynikuPrzyciski i ikonyTabele i elementy divFormularze i pola tekstoweCałościowy test zmian interfejsuPoruszana tematykaPodsumowanieRozdział 7. Formularze i weryfikacja danychWalidacja danychFormularze we frameworku AngularFormularze sterowane szablonamiZaletyWadyFormularze sterowane modelemPierwszy reaktywny formularzDodanie referencji do ReactiveFormsModuleUaktualnienie komponentu QuizEditComponentDodanie walidatorówDodanie skrótówUaktualnienie komponentówKomponent QuestionEditComponentKomponent AnswerEditComponentKomponent ResultEditComponentDebugowanie i testowanieJak wygląda model formularza?Operator potokuReagowanie na zmianyObserwowanie obiektu ObservableRozbudowa dziennika aktywnościDebugowanie po stronie klientaTesty jednostkowe formularzyPoruszana tematykaPodsumowanieRozdział 8. Uwierzytelnianie i autoryzacjaUwierzytelniać czy tego nie robić?UwierzytelnianieUwierzytelnianie przy udziale strony trzeciejWzlot i upadek OpenIDOpenID ConnectAutoryzacjaAutoryzacja przy udziale strony trzeciejRozwiązania własne czy firm trzecich?Mechanizmy uwierzytelniania wbudowane w .NET CoreKonfiguracja .NET Core IdentityKonfiguracja usługi IdentityKlasa ApplicationUser jako klasa potomnaUaktualnienie klasy DbContextModyfikacja klasy DbSeederKilka słów na temat zadań asynchronicznych i blokad wzajemnychAktualizacja bazy danychDodanie migracji dotyczącej usługi IdentityZastosowanie migracjiOpcja 1. aktualizacjaOpcja 2. usunięcie i ponowne utworzenieWypełnienie bazy danymiSposoby uwierzytelnianiaSesjeTokenySygnaturyUwierzytelnianie dwuetapoweWnioskiImplementacja uwierzytelniania JWTDodanie usługi uwierzytelniania do klasy startowejAktualizacja plików AppSettingsKlasa TokenControllerAktualizacja klasy BaseApiControllerAktualizacja kontrolerów dziedziczących po klasie bazowejDodanie klasy TokenControllerKlasa TokenRequestViewModelKlasa TokenResponseViewModelTest narzędziem PostmanFormularz logowania w AngularzeInterfejs TokenResponseKlasa AuthServiceAktualizacja klasy AppModuleNowa wersja komponentu LoginComponentPierwszy test logowaniaDodanie tokena do nagłówka żądania HTTPKlasa AuthInterceptorDodanie AuthInterceptor do AppModuleWymuszenie autoryzacjiDostosowanie klientaKomponent NavMenuComponentKomponent QuizComponentOchrona serweraPobranie identyfikatora aktualnego użytkownikaSprawdzenie uwierzytelniania na styku klient-serwerPoruszana tematykaPodsumowanieRozdział 9. Tematy zaawansowaneWygasanie tokena i tokeny odświeżaniaCzym jest token odświeżania?Zadania po stronie serwerowejDodanie encji dla tokenaAktualizacja encji użytkownikaAktualizacja ApplicationDbContextPrzygotowanie i zastosowanie migracji w EF CoreImplementacja tokena odświeżaniaAktualizacja klasy TokenResponseViewModelAktualizacja klasy TokenRequestViewModelAktualizacja klasy TokenControllerZadania po stronie klienckiejAktualizacja interfejsu TokenResponseAktualizacja klasy AuthServiceDodanie klasy AuthResponseInterceptorDodanie nowej klasy AuthResponseInterceptor do AppModuleTest działania aplikacjiRejestracja nowego użytkownikaZadania po stronie serwerowejKlasa UserControllerKlasa UserViewModelZadania po stronie klienckiejInterfejs UserKlasa RegisterComponentWłasne walidatoryPliki szablonu i arkusza stylówPlik AppModuleKomponent LoginComponentKomponent NavMenuTest działania aplikacjiUwierzytelnianie dzięki firmom trzecimDziałanie uwierzytelniania OAuth2Mechanizm jawny czy niejawny?Zalety i wady podejścia niejawnegoZalety i wady podejścia jawnegoWnioskiLogowanie do FacebookaTworzenie aplikacji FacebookaMechanizm niejawnyAktualizacja klasy TokenControllerDodanie metody GenerateRandomPassword()Dodanie komponentu LoginFacebookComponentDziałanie strefDodanie pliku szablonuAktualizacja AppModuleUżycie komponentu LoginFacebookComponentTest działania aplikacjiMechanizm jawnyInstalacja pakietu Authentication.FacebookKonfiguracja usługi uwierzytelniania poprzez FacebookaAktualizacja pliku appsettings.jsonAktualizacja klasy TokenControllerMetoda ExternalLoginDodanie klasy SignInManagerMetoda ExternalLoginCallbackKomponent LoginExternalProviderAktualizacja AppModuleUżycie komponentu LoginExternalProvidersComponentTest działania aplikacjiPoruszana tematykaPodsumowanieRozdział 10. Prace wykończeniowe i wdrożeniePrzejście na SQL ServerInstalacja SQL Server 2017 Express EditionInstalacja SQL Server Management StudioKonfiguracja bazy danychZmiana sposobu uwierzytelnianiaDodanie bazy danych TestMakerFreeDodanie nowego użytkownika dla bazy danychPowiązanie loginu z bazą danychDodanie konfiguracji połączenia z bazą SQL ServerModyfikacja konfiguracji połączenia z bazą danychDodanie produkcyjnego adresu URL u zewnętrznych dostawcówAktualizacja pliku launchSettings.jsonPublikacja aplikacji internetowejTworzenie profilu publikacjiPublikacja poprzez protokół FTPProfil publikacji do folderuPublikacja aplikacji internetowejKonfiguracja serwera i IISInstalacja modułu ASP.NET Core dla IISDodanie nowej witrynyKonfiguracja puli aplikacjiUruchamianie silnikaAnaliza typowych błędów po wdrożeniuPrzeanalizowanie komunikatu w przeglądarcePlik web.configNarzędzie Event ViewerModuł logowania w ASP.NET CoreSprawdzenie serwera KestrelUruchomienie serwera Kestrel w Visual StudioWyłączenie renderowania po stronie serweraPoruszana tematykaPodsumowanie 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, Lloyds, Honda Motor, FCA Group, Luxottica, ANSA, Saipem, ENI, Enel, Terna, Banzai Media, Virgilio.it, Repubblica.it i Corriere.it.

Informatyka

rozana restauracja, sulejmani, asteriks i obeliks, praca w niedziele, kupno mieszkania krok po kroku, wynagrodzenie pracownika młodocianego, lek na nerki, reklamacja orange, montaż instalacji lpg, sąd nowy targ, rozwiązanie umowy o prace, prace domowe, faraon gry, rbn, robert redford filmy, olgierd łukaszewicz, zbiorniki na szambo, teatry polska, otwieram drzwi, obóz auschwitz, zakaz zatrzymywania znak

yyyyy