NancyFx
O nancy pierwszy raz usłyszałem 28.11.2013r. podczas 70 spotkania Warszawskiej Grupy .NET (WG-.NET). Prezenterem był nie kto inny, jak sam Maciej ‘Procent’ Aniserowicz, czyli obecnie najpopularniejszy bloger/programista .NET. Tak się składa, że blog Maćka czytam/przeglądam ze zmienną regularnością od dłuższego czasu, więc nie mogło mnie na tym spotkaniu zabraknąć. A co prezentował Maciek? Nowy, lekki, otwarty (github z kodem źródłowym), web framework, oparty na zasadzie KISS nazwanej tutaj** “**super-duper-happy-path”.
Autorzy sami o swoim dziele napisali kilka słów pod tym linkiem ;)
A więc co tak naprawdę daje nam nancy?
- jest lekkie i wymaga od użytkownika minimum kodu. Przykład? Cały kod potrzebny do napisania aplikacji webowej:
public class SampleModule : Nancy.NancyModule
{
public SampleModule()
{
Get[”/”] = _ => “Hello World!”;
}
}
-
jest w pełni konfigurowalna, tzn. praktycznie wszystko można skonfigurować/nadpisać. W ost. zawsze można napisać do autorów maila, lub znaleźć odpowiedni fragment kodu i go samemu poprawić (w końcu to open source ;))
-
jest całkiem fajnie przemyślany, więc pisze się w tym stosunkowo szybko i wymaga to od programisty naprawdę mało kodu. Dlaczego mała ilość kodu jest ważna rozpisywało się już mnóstwo osób, np: Jeff Atwood - Najlepszy kod to brak kodu w ogole
-
jako widok można używać zarówno html, xhtml, aspx, razor jak i wielu innych widoków
-
jako kontener standardowy wykorzystywany jest tinyIoC, ale można wykorzystywać też inne
-
kod jest łatwo testowalny, co pokazał Christian Horsdal w swojej książce “Instant Nancy web development” (przykłady z wykorzystaniem xUnitoraz fakeItEasy)
-
aplikacje można hostować zarówno w .NET jak i Mono
-
logowanie błędów jest dziecinnie proste i zajmuje znacznie mniej miejsca niż w innych aplikacjach
-
dużo lepsze (i łatwiejsze) routingi niż w ASP MVC 4
-
bardzo łatwo można przekształcić aplikację webową w konsolową, a nawet w projekt, w którym będą solucje: “core”, “web”, “console”, “test”.
Generalnie, po prelekcji Maćka Aniserowicza oraz przerobieniu książki Christiana Horsdala, jestem wielkim optymistą jeżeli chodzi o NANCY. Aż się nie mogę doczekać momentu, w którym będę miał nieco wolnego czasu, aby przerobić jeszcze jakiś tutoriale związane z tą technologią, oraz… zastosowania tej wiedzy w praktyce, w jakimś komercyjnym projekcie.