Kilka słów o backendzie w ASP.NET Core 1.0

Siemanko.

Jest środa więc wedle harmonogramu, który ustaliłem we wcześniejszym poście ląduje na blogu jeszcze ciepły pościk. Dziś trochę o projekcie backendu dla aplikacji mobilnej. Dlaczego nowa wersja ASP.NET Core 1.0? Dla drugiego słowa z poprzedniego zdania – nowa 🙂 Mamy w tej chwili oficjalnie wersje RC1 (tutaj), a chyba nieoficjalnie pierwsze przymiarki do RC2 (jak się dowiedziałem szukając informacji na temat buga w JWT Bearer middleware – o czym przy okazji opisywania autentykacji – issue). Z nowym ASP.NET mam do czynienia od beta8.

Struktura projektu ASP.NET

Jak widać na załączonym obrazku zrobiłem sobie 6 projektów co by mieć porządeczek 😉

solution

Pierwszy projekt MobileSecondHand jest projektem startowym i jest to WebApplication utworzona z template’a w Visualu. Pozostałe projekty to webowe Class Library – package. I tu pierwsza z wielu nowości – library to paczki, które możesz opublikować na nugecie i instalować je jak inne biblioteki z nugeta. Te dodane do projektu poprzez File->New->Project dodaje się normalnie do Reference, ale muszą to być te „nowe” webowe Class Library (package). Jeśli masz napisane zajebiste ficzery, które wykorzystujesz w wielu różnych projektach – ale masz je napisane w „starym” Class Library – to nadal możesz wykorzystywać te zajebisty ficzery, ale w aplikacjach, w poprzedniej wersji frameworka 😉 Nie da się ich dodać do referencji projektu w nowej wersji frameworka. Trzeba „stare” przepisać na „nowe” Class Library (package).

packages

Jak widać wyżej projekty, do których dodałem referencje w projekcie startowym widnieją na liście dependencies w pliku project.json projektu startowego. Tu są wszystkie „paczki”. Możemy nie używać Package Manager Console czy Manage Nuget Packages tylko od razu wpisać na tej liście paczki, które chcemy dołączyć do projektu i zapisać plik, a wszystko stanie się samo 😉

Kolejną nowością jest klasa Startup.cs gdzie odbywa się cała konfiguracja i start aplikacji. Nie trzeba robić wpisów konfiguracyjnych w web.config czy global.asax – tego drugiego już nie ma. Całą konfigurację (np. CORS, MVC, routing, sposób autentykacji, dostęp do danych itp.) przeprowadzamy w Startup. NIe będą jej tu wklejał bo na jednym screenie się nie zmieści także jak masz ochotę to luknij do repo.

Kolejnym super ficzerem są kontrolery – WebApi czy zwykły dziedziczą po klasie Controller.cs i jeśli chcemy to możemy opędzić w jednym kontrolerze REST API oraz MVC do zwracania widoków oczywiście nadając metodom specjalne RouteAttribute’y.

Najlepszym ficzerem wg mnie jest wbudowany kontener IoC. Na pewno jest on kiepściejszy niż inne zewnętrzne istniejące od dawna, ale mam to w dupie bo mi w zupełności wystarcza, a nie muszę nic konfigurować poza zarejestrowaniem interfesju co sprowadza się do 1 (słownie: jednej) linijki i dzieje się to właśnie we wcześniej wspomnianej klasie Startup.cs 🙂

service

Mamy do wybory trzy opcje:

  • AddTransient – instancja na każde wystąpienie interfejsu
  • AddScoped – instancja na web request
  • AddSingleton – instancja w ramach całej aplikacji

i mnie to pasuje 🙂

Dobra, może wyglądać na to, że się wymądrzam, ale przytoczyłem kilka nowości, które zdążyłem poznać, ale jest jeszcze wiele do nauczenia się dlatego też właśnie backend robię w ASP.NET Core 1.0, o którym Gutek powiedział na DotNetConf, że póki nie wyjdzie pierwsza stabilna wersja to nowe ASP.NET jest jedynie do zabawy 🙂

Jeśli zajrzysz do repo to zobaczysz w głównym projekcie kilka rzeczy (kontrolery z zakomentowanym kodem, serwisy bez implementacji) z defaultowej aplikacji tworzonej przez visual. Na razie ich nie wyrzucam bo być może wykorzystam je w późniejszym etapie więc po co wymyślać koło na nowo 🙂

 

Dzisiejszym postem kończę wstęp do mojego projektu. Od niedzieli jedziemy już na grubo i będziecie mogli poczytać oraz zobaczyć co i jak jest zrobione do tej pory,a jest kilka rzeczy 😉

Pjona!

 

Reklamy

2 uwagi do wpisu “Kilka słów o backendzie w ASP.NET Core 1.0

  1. Dzięki. Pierwszy raz podchodzę do tej wersji więc na pewno się przyda. Mam już bloga w rss-ach. Będziesz coś pisał też o Entity Framework Core?

    Polubienie

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s