ASP.NET Core MVC
MVC – Model View Controller
MVC jest wzorcem architektonicznym, umożliwiającym łatwe oddzielenie widoku (View), od modelu biznesowego (Model) oraz struktury sterującej (Controller). Wzorzec ten jest bardzo mocno eksploatowany w aplikacjach webowych. Takie wykorzystanie MVC w aplikacjach webowych spowodowało, iż wiele narzędzi i frameworków webowych ma mocne wsparcie dla samego MVC. W przypadku ASP.NET Core mamy bibliotekę ASP.NET Core MVC, które ułatwia działanie z tym wzorcem, co więcej możemy bezpośrednio przy tworzeniu projektu wybrać template MVC.
ASP.NET Core MVC- template
Utworzyć aplikację MVC z templatu możemy w kilku klikach, ale nie koniecznie to jest moim celem. Chciał bym się czegoś nauczyć. Wiem, że można stworzyć aplikację a następnie poznawać kolejne jej części, ale taka ilość plików jaka jest generowana z templata na pewno nie ułatwi nam zadania.
Jak widzimy plików jest sporo, choć tych z rozszerzeniem *.cs nie tak wiele. Niemniej jednak wyróżnić możemy 2 główne foldery, do których należy dodawać poszczególne elementy systemu, mówię tutaj o folderze Controllers oraz View. W templacie dodany jest 1 kontroler, który odpowiedzialny jest za obsługę requestów w naszej przykładowej aplikacji oraz 3 widoki w folderze Views. Poza tym mamy 2 pliki z kodem źródłowym związanym z konfiguracją. Startup.cs, w którym to pliku konfigurowana jest nasza aplikacja oraz plik Program.cs, który jest punktem startowym aplikacji konsolowej, zaraz zaraz czy to nie miała być aplikacja webowa ? Miała, ale aplikacje webowe w .NET Core to właśnie odpowiednio przygotowana i skonfigurowana aplikacja konsolowa. W pliku tym jak w każdym głównym pliku aplikacji konsolowych znajduje się statyczna metoda “main”, w której to konfigurowana i uruchamiana jest nasza aplikacja docelowa.
ASP.NET Core – minimum
Moim celem w tym artykule będzie stworzenie minimalnej działającej aplikacji ASP.NET Core MVC. Chciał bym się przy okazji budowania takiej minimalnej aplikacji dowiedzieć co w tej ASP.NET-owej trawie piszczy, do czego są poszczególne klasy, metody czy też wywołania. Pragnę się również zorientować dzięki czemu dzieje się magia i co tak właściwie wywołuje metody na naszych kontrolerach oraz jak w ten mechanizm możemy wpleść własne mechanizmy, jak je zmodyfikować czy zastąpić.