Ilaro.Admin – o projekcie

Kilka lat temu miałem okazje uczestniczyć w jednodniowych warsztatach Django, czyli webowego frameworka MVC dla Pythona.
Do gustu przypadła mi przede wszystkim możliwość wygenerowania panelu administracyjnego na podstawie zdefiniowanych modeli bazodanowych.

Podobne rozwiązania istnieją już chyba w każdej z najpopularniejszych technologii webowych oprócz .NET, więc postanowiłem zakasać rękawy i wypełnić tą lukę tworząc Ilaro.Admin dla ASP.NET MVC.

Repozytorium na Githubie: https://github.com/rgonek/Ilaro.Admin.
Obecny stan projektu w akcji: http://admin.ilaro.net.

Podstawowa inicjalizacja

Żeby zacząć korzystać z Ilaro.Admin należy dodać referencje do swojego projektu (najlepiej poprzez nugeta) a później w kodzie już tylko trzy proste kroki, które swe miejsce mają w Global.asax w metodzie Application_Start.

  1. Najpierw rejestrujemy wszystkie encje które mają pojawić się w panelu administracyjnym.
  2. Następnie inicjalizujemy Ilaro.Admin.
  3. Na końcu upewniammy się czy rejestracja areas jest wywoływana (przy tworzeniu projektu ASP.NET MVC jest to domyślnie dodawane).

Oczywiście jeśli chcemy możemy dokładniej określić co i w jaki sposób ma zostać wyświetlone.

Rejestracja encji

Podczas rejestrowania encji określamy co ma zostać wyświetlone w panelu administracyjnym, a także co ma być edytowane i w jaki sposób.

Kontrole nad tym możemy uzyskać w dwa sposoby, albo poprzez dodawanie atrybutów do encji i ich propertisów, albo poprzez fluent konfiguracje.

Konfiguracja poprzez atrybuty

Konfiguracja encji poprzez atrybuty może być dobrym pomysłem gdy już mamy w encji jakieś atrybuty, np. atrybuty potrzebne do konfiguracji encji dla EF code first.
Ilaro.Admin stara się korzystać z atrybutów istniejących w .NET.

Fluent konfiguracja

Gdy nie możemy lub nie chcemy modyfikować klasy możemy w pełni je skonfigurować używając fluent konfiguracji. Dzięki temu sposobowi możemy zachować czyste klasy POCO.

W chwili obecnej obydwa sposoby pozwalają na pełną konfiguracje.
Więcej informacji na ten temat fluent konfiguracji i konfiguracji atrybutami można znaleźć w jeszcze szczątkowej dokumentacji.

Należy nadmienić iż rejestrowane encje nie muszą być encjami jakiegokolwiek ORM’a. Na przykład demo projekt, który znajduje się w repozytorium na Githubie, w ogóle nie korzysta z żadnego ORM’a.

Inicjalizacja Ilaro.Admin

Podczas inicjalizacji Ilaro.Admin możemy określić connection string i prefix routingu.
Jeśli nie określimy connection stringu tak jak w przykładzie powyżej, zostanie użyty pierwszy connection string znaleziony w web.config.
Natomiast domyślną wartością dla prefixu routingu jest IlaroAdmin.

Rejestracja areas

Ilaro.Admin zostało stworzone jako area. Dzięki temu możliwość wystąpienia konfliktu nazw controllerów została mocno ograniczona.

Konfiguracja uwierzytelniania

Po tej podstawowej konfiguracji każdy kto zna adres administracji będzie mógł z niej skorzystać. Żeby temu zapobiec możemy zdefiniować AutorizationFilter.

Tylko zalogowani użytkownicy będą mieli dostęp:

Tylko użytkownicy z rolą „Administrator” będą mieli dostęp:

Możemy oczywiście ustawić inną role, lub też zdefiniować konkretnych użytkowników, którzy będą mieli dostęp. Nic nie stoi na przeszkodzie by także stworzyć własną implementacje IAuthorizationFilter.

Co później

W kolejnych postach będę opisywał różne przykłady użycia, a także pozostałe funkcje Ilaro.Admin. Równocześnie będę oczywiście raportował stan projektu.

W jednym z kolejnych postów nakreślę plan rzeczy do zrobienia a także opiszę co mi chodzi po głowie odnośnie drugiej wersji Ilaro.Admin, ponieważ pierwsze wersja ma się bliżej ku końcowi niż początkowi (a przynajmniej mam taką nadzieję).

Dodaj komentarz

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