ASP.NET Core : Konfiguracja MVC

Jak wiadomo .NET Core stawia na szybkość i lekkość co udaje mu się osiągnąć dzięki swojej modułowej budowie. Mimo znacznych zmian w architekturze, API pozostało w dużej mierze takie samo lub nieznacznie zmodyfikowane. Dzięki temu znając wcześniej i chcąc wykorzystać np. WPF, czy ASP.NET MVC w najnowszej wersji, nie jesteśmy skazani na naukę wszystkiego od początku. Mimo to pewne kwestie, bez wcześniejszego zrozumienia, mogą być nastręczać trudności. W tym wpisie chciałbym pokazać w jaki sposób, tworząc nowy projekt aplikacji web’owej w ASP.NET Core i korzystając z pustego szablonu, można skonfigurować go do pracy z MVC – bo kofiguracja, zwłaszcza dotycząca obsługi requestów, uległa znacznym modyfikacjom.

Kroki które trzeba wykonać:

  1. Zainstalowanie paczki ASP.NET MVC.
  2. Zarejestrowanie (DI) wszystkich zależności jakich potrzebuje ASP.NET MVC w czasie działania programu.
  3. Dodanie niezbędnego middleware dla odpowiedniej obsługi żądań.

Przyjrzyjmy się bliżej każdemu z powyższych punktów i sposobom ich realizacji.

Zainstalowanie paczki ASP.NET MVC

Jak już wspominałem .NET Core ma bardzo “granulowaną” budowę. Dzięki temu programista musi zainstalować praktycznie tylko te funkcjonalności z których faktycznie będzie korzystał, Chcąc używać zestawów i klas dostarczanych przez MVC framework, trzeba zainstalować określoną paczkę: Microsoft.AspNetCore.Mvc. Można to zrobić na dwa sposoby:

Pierwszy, standardowy i raczej wszystkim znany, to wykorzystanie NuGet Package Manager’a i wyszukanie wspomnianej paczki. Drugi, wprowadzony w .NET Core, to dodanie odpowiedniego wpisu do pliku project.json:

Konfiguracja MVC

Po zapisaniu zmian, VS sam zainstaluje wskazaną paczkę.

Zarejestrowanie (DI) wszystkich zależności jakich potrzebuje ASP.NET MVC w czasie działania programu

Cały ASP.NET Core został zaprojektowany z myślą o szerokim wykorzystaniu Dependency Injection. W tym wpisie nie będę się szerzej rozwodził nad sposobem w jaki zostało to rozwiązane, nie mniej warto wiedzieć kilka podstawowych kwestii. Framework pozwala na zastąpienie domyślnego kontenera DI jakimkolwiek innym, jednak w tej chwili nas to nie interesuje, więc przedstawię rozwiązanie wykorzystując ten dostarczony przez Microsoft.

Chcąc zarejestrować jakąkolwiek zależność, musimy to zrobić w metodzie ConfigureServices w klasie Startup. W naszym przypadku chcemy zarejestrować wszystkie zależności potrzebne do wykorzystania przez framework MVC. Paczka którą zainstalowaliśmy pozwala nam to zrobić wykorzystując jedną metodę: AddMvc

konfiguracja MVC

Dodanie niezbędnego middleware dla odpowiedniej obsługi żądań

Koncept middleware w przetwarzaniu żądań HTTP, został wprowadzony bodajże w ASP.NET 5 i polega on na tym, że określając poszczególne middleware ustawiamy ścieżkę jaką pokona żądanie i tego co się z nim będzie działo. O samej koncepcji polecam przeczytać na blogu Gutka, natomiast wracając do ASP.NET.MVC – Podłączanie każdego middleware odbywa się, podobnie jak rejestracja zależności, w klasie Startup, z tym że w metodzie Configure. I znowu wcześniej zainstalowana paczka, udostępnia nam metodę rozszerzającą interfejs IApplicationBuilder (to z jego pomocą instalujemy middleware) – UseMvcWithDefaultRoute, którą wykorzystujemy w taki sposób:

Konfiguracja MVC

Można też użyć metody UseMvc zamiast UseMvcWithDefaultRoute. Wówczas, jak sama nazwa wskazuje, będziemy mogli samodzielnie zdefiniować routing. Powyższe kroki są wystarczające by móc używać frameworku MVC w swoim projekcie.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *