AnchorTagHelper i Area

Dziś krótki wpis, ale może pomoże komuś zaoszczędzić trochę czasu. Aplikację WPM rozdzieliłem na dwie części: administracyjną i dla użytkownika – czyli tak zwane Areas. Url do części dla użytkownika wygląda tak: https://myhost/Home/Index, natomiast dla administratora tak: https://myhost/Admin/Group/New. Dodaję więc za pomocą tag helperów do menu przyciski które będą przekierowywały do odpowiednich akcji:

<a asp-controller="Group" asp-action="New" asp-area="admin">Nowa grupa</a>

Oczywiście nie działa. Kod helpera jest dostępny tutaj i stąd także wziąłem parametry. Niestety generowany url wskazuje cały czas na główną stronę. Pomocny okazał się (jak zwykle) Stac Overflow. Do obszarów stosowany jest inny atrybut: asp-route-area:

<a asp-controller="Group" asp-action="New" asp-route-area="admin">Nowa grupa</a>

View Components

Prawie każda aplikacja powinna mieć jakieś menu, aby ułatwić użytkownikowi poruszanie się po tej aplikacji. Program WPM także będzie posiadała takie udogodnienie. Szczerze mówiąc, zacząłem budowanie widoków aplikacji WPM nie od wyświetlania listy elementów pobranych z bazy, ale właśnie od menu, co by łatwiej przełączać się pomiędzy widokami. Moje menu miało być dynamicznie generowane, czyli w zależności od zalogowanego użytkownika, powinny być różne opcje do wyboru. Potrzebne mi było rozwiązanie w stylu partial view – tu na arenę wkracza nowość w MVC Core czyli tytułowe View Components.
Continue reading

Struktura aplikacji WPM

Po przetestowaniu paru struktur, wreszcie wybrałem tą jedyną, tą najwłaściwszą strukturę dla mego projektu. Mocno się wzorowałem na tym projekcie umieszczonym na githubie. Jak podałem w założeniach, aplikacja ma korzystać z ORM-a Entity Framework Core 1 i ASP.NET Core 1. Chciałem dodatkowo uniezależnić aplikację od konkretnego typu bazy danych – czy to będzie używana baza MsSQL czy MySQL, a może Postgresql, obsługa każdej bazy powinna być bez większego problemu dodana do aplikacji.
Continue reading

Scaffolding w Entity Framework Core 1

Szukając informacji do poprzednich wpisów (wpisy tu i tu) o migracjach natknąłem się na informacje o scaffoldingu. Scaffolding w Entity Framework to proces odwrotny od migracji – na podstawie istniejącej bazy tworzona jest odpowiednia klasa z kontekstem i odpowiadające tabelkom – klasy encji. W poprzednich wersjach EF, aby używać scaffoldingu do budowy aplikacji, należało posłużyć się zewnętrznymi narzędziami – teraz to wszystko dostępne jest „z pudełka”.

Continue reading