wszystkie wpisy

NancyFx

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.