ASP.NET MVC Core Flashcards

1
Q

Czym jest platforma ASP.NET MVC Core?

A

ASP.NET Core is a cross-platform, high-performance, open-source framework for building modern, cloud-based, Internet-connected applications.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Co możemy zbudować z pomocą .NET Core?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Czym jest platforma .NET i kiedy rozpoczęła życie?

A

Platforma aplikacja do tworzenia aplikacji webowych zgodnych z architekturą MVC.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Co odróżniało ASP.NET od starszych rozwiązań (np. Webforms)?

A

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?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

W którym roku ASP.NET MVC zostało wydane?

A

W roku 2007

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Czym właściwie jest aplikacja webowa?

A

To aplikacja, która na konkretne żądania klienta zwraca kod, który może zostać zinterpretowany przez przeglądarkę - HTML, CSS i JS.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Do czego służy zakładka Dependencies?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Do czego służy zakładka Properties?

A

Tutaj znajdziemy plik json stanowiący konfigurację naszego projektu. Możemy zdefiniować kilka profili dla naszej aplikacji i zdefiniować początkowy adres URL.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Do czego służy folder wwwroot?

A

W tym folderze znajdują się wszystkie zasoby, które zazwyczaj klient może pobrać - pliki html, css, js, fonty, ikonki.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Do czego służy folder Controllers?

A

Kontroler służy do obsługi żądania użytkownika

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Do czego służy folder Models?

A

Służy do tworzenia prostych klas POCO, który wykorzystywane są w widokach.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Do czego służy folder Views?

A

Folder służy do przechowywania widoków, który zwracane są użytkownikowi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Jak powiązane ze sobą są elementy architektury MVC?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Do czego służy plik appsettings.json?

A

Służy do określenia konfiguracji dla naszej aplikacji - poziomu błędów, które będą logowane.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Gdzie znajduje się metoda Main i jak aplikacja zaczyna swoje funkcjonowanie?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Do czego służy metoda UseStartup?

A

Pozwala na zdefiniowanie klasy, która zawiera konfigurację naszej aplikacji webowej.

17
Q

Co zawiera klasa Startup?

A
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.
18
Q

W jaki sposób można sprawdzić czy środowisko uruchomione jest w trybie produkcyjnym czy deweloperskim?

A

W obiekt IHostingEnvironment mamy metodę IsDevelopment() - ustawioną w zależności od HostingEnvironment

19
Q

Do czego słuzy metoda app.UseDeveloperExceptionPage();?

A

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.

20
Q

Jaka zmienna systemowa jest wykorzystywana do zmiany profilu uruchamianej aplikacji?

A

ASPNETCORE_ENVIRONMENT w pliku appSettings.json

21
Q

W jaki sposób możemy zezwolić na pobieranie statycznych zasobów z fodleru wwwroot (np. html, css, js)?

A

Dodając middleware, który pozwala na obsługę żądań, która chcą pobrać dany zasób.

22
Q

W jaki sposób dodać własny middleware do aplikacji?

A

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);

23
Q

Czy kolejność dodawanie middleware ma znaczenie?

A

Tak, kolejność ma znaczenie. Middleware’y przetwarzają żądania w kolejności dodawania w metodzie Configure w klasie Startup.

24
Q

Do czego służy middleware app.UseCookiePolicy()?

A

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ł.

25
Q

Jakie metody pozwalają na implementację ciasteczek zgodnie z unijnymi regulacjami?

A

ConfigureServices => CookiePolicyOptions

Configure => UseCookiePolicy

26
Q

Jak wygląda domyślna konfiguracja rutowania w aplikacji ASP.NET MVC Core?

A

Jest to rutowanie poprzez konwencje. Każde żądania HTTP jest rutowane na podstawie adresu do odpowiedniego kontrolera i metody.

27
Q

Jak działa domyślna konwencja w ASP.NET Core MVC dotycząca rutowania?

A

Domyślna konwencja przewiduje w adresie URL nazwę kontrolera i nazwę metody (action method). Na koniec może wystąpić opcjonalny argument.

28
Q

W jaki sposób możemy skonfigurować konwencje rutowania w aplikacji ASP.NET Core MVC?

A
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"}
);