ASP.NET MVC Core Flashcards
Czym jest platforma ASP.NET MVC Core?
ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern, cloud-based, Internet-connected applications.
Co możemy zbudować z pomocą .NET Core?
1) Build web apps and services, IoT apps, and mobile backends.
2) Use your favorite development tools on Windows, macOS, and Linux.
3) Deploy to the cloud or on-premises.
4) Run on .NET Core or .NET Framework.
Czym jest platforma .NET i kiedy rozpoczęła życie?
Platforma aplikacja do tworzenia aplikacji webowych zgodnych z architekturą MVC.
Co odróżniało ASP.NET od starszych rozwiązań (np. Webforms)?
1) Wykorzystanie istniejącej infrastruktury klas i komponentów platformy .NET
2) Model programistyczny silnie oparty o interfejsy. Dzięki temu jest łatwo rozszerzalny i testowalny.
3) Elastyczny mechanizm mapowania adresów URL na zasoby?
W którym roku ASP.NET MVC zostało wydane?
W roku 2007
Czym właściwie jest aplikacja webowa?
To aplikacja, która na konkretne żądania klienta zwraca kod, który może zostać zinterpretowany przez przeglądarkę - HTML, CSS i JS.
Do czego służy zakładka Dependencies?
Tutaj znajdziemy zależności do biblioteki systemowych, jak również zewnętrznych pakietów NuGet i innych projektów. Ponadto zakładka Analyzers pozwala na zdefiniowanie dodatkowych reguł zgłaszanych przez kompilator i IDE.
Do czego służy zakładka Properties?
Tutaj znajdziemy plik json stanowiący konfigurację naszego projektu. Możemy zdefiniować kilka profili dla naszej aplikacji i zdefiniować początkowy adres URL.
Do czego służy folder wwwroot?
W tym folderze znajdują się wszystkie zasoby, które zazwyczaj klient może pobrać - pliki html, css, js, fonty, ikonki.
Do czego służy folder Controllers?
Kontroler służy do obsługi żądania użytkownika
Do czego służy folder Models?
Służy do tworzenia prostych klas POCO, który wykorzystywane są w widokach.
Do czego służy folder Views?
Folder służy do przechowywania widoków, który zwracane są użytkownikowi.
Jak powiązane ze sobą są elementy architektury MVC?
Widok ma referencje do modelu. Kontroler ma referencję zarówno do widoku i modelu. Architektura pozwala nam na podział odpowiedzialności miedzy elementami naszej aplikacji webowej.
Do czego służy plik appsettings.json?
Służy do określenia konfiguracji dla naszej aplikacji - poziomu błędów, które będą logowane.
Gdzie znajduje się metoda Main i jak aplikacja zaczyna swoje funkcjonowanie?
W klasie Program.cs znajduje się metoda Main. Uruchamiamy statyczną metodę CreateWebHostBuilder, która przyjmuje tablice stringów przekazaną jako parametr. Wykorzystany jest tutaj wzorzec Builder (budowniczy). Następnie metoda Build() zwraca nam skonfigurowany obiekt reprecentujący naszą aplikację. Z pomocą metody Run() uruchamiamy proces na danym porcie naszego komputera.
Do czego służy metoda UseStartup?
Pozwala na zdefiniowanie klasy, która zawiera konfigurację naszej aplikacji webowej.
Co zawiera klasa Startup?
Konstruktor przyjmujący obiekt IConfiguration. Ponadto metodę ConfigureServices(IServiceCollection collection), która pozwala nam zdefiniować wewnętrzny mechanizm wstrzykiwania zależności. Metoda Configure(IApplicationBuilder app, IHostingEnvironment env), która pozwala nam zdefiniować szereg obiektów middleware, które przetwarzają dane żądanie.
W jaki sposób można sprawdzić czy środowisko uruchomione jest w trybie produkcyjnym czy deweloperskim?
W obiekt IHostingEnvironment mamy metodę IsDevelopment() - ustawioną w zależności od HostingEnvironment
Do czego słuzy metoda app.UseDeveloperExceptionPage();?
Jeśli w naszym kodzie pojawi się błąd to middleware uruchomiony przez tę metodę pozwala na wygenerowanie czytelnej strony z błędem. Powinna być użyta tylko w trybie developerskim.
Jaka zmienna systemowa jest wykorzystywana do zmiany profilu uruchamianej aplikacji?
ASPNETCORE_ENVIRONMENT w pliku appSettings.json
W jaki sposób możemy zezwolić na pobieranie statycznych zasobów z fodleru wwwroot (np. html, css, js)?
Dodając middleware, który pozwala na obsługę żądań, która chcą pobrać dany zasób.
W jaki sposób dodać własny middleware do aplikacji?
Stworzyć osobną klasę, która w konstuktorze przyjmuje obiekt klasy RequestDelegate. Następnie stworzyć metodę o sygnaturze async Task Invoke z parametrem HttpContext.
Metoda powinna na końcu wywołać kolejny middleware - Next.Invoke(context);
Czy kolejność dodawanie middleware ma znaczenie?
Tak, kolejność ma znaczenie. Middleware’y przetwarzają żądania w kolejności dodawania w metodzie Configure w klasie Startup.
Do czego służy middleware app.UseCookiePolicy()?
Pozwala na skonfigurowanie ciasteczka po stronie klienta.
Wykorzystywane do implementacji EU General Data Protection Regulation (GDPR).
Pozwala śledzić zgodę użytkownika na zbieranie o nim danych.
Jeśli się zgodzi to ciasteczko ma CheckConsentNeeded ustawione na true. Wtedy ciasteczka NonEssential nie są wysyłane do przeglądarki użytkownika.
Ciasteczko może być oznaczone jako Essential = wtedy jest wysyłane nawet jak użytkownik na to nie zezwolił.
Jakie metody pozwalają na implementację ciasteczek zgodnie z unijnymi regulacjami?
ConfigureServices => CookiePolicyOptions
Configure => UseCookiePolicy
Jak wygląda domyślna konfiguracja rutowania w aplikacji ASP.NET MVC Core?
Jest to rutowanie poprzez konwencje. Każde żądania HTTP jest rutowane na podstawie adresu do odpowiedniego kontrolera i metody.
Jak działa domyślna konwencja w ASP.NET Core MVC dotycząca rutowania?
Domyślna konwencja przewiduje w adresie URL nazwę kontrolera i nazwę metody (action method). Na koniec może wystąpić opcjonalny argument.
W jaki sposób możemy skonfigurować konwencje rutowania w aplikacji ASP.NET Core MVC?
Możemy przekazać wyrażenie Lambda, która pozwala na określenie dokładnie ścieżek rutowania w tablicy rutującej. Korzystamy z metody: routes.MapRoute( name: "default", template: "{controller}/{action}" defaults: new {controller="Home"} );