Artykuł

freeimages.com freeimages.com
paź 09 2014
0

Biblioteki na szybki start z ASP.NET MVC

ASP.NET MVC to spory krok w rozwoju technologii webowych Microsoftu. W stosunku do ASP.NET Web Forms, wiele rzeczy zostało tutaj zorganizowanych lepiej, a sam Microsoft otworzył się bardziej na zewnętrzne rozwiązania. Sama platforma jest bardzo rozszerzalna i łatwo jest wpiąć tutaj wszelkiej maści loggery, ORMy, czy też biblioteki wspomagające testowanie. Różnych rozszerzeń mamy jednak setki, a nawet tysiące. Jak w tym całym oceanie kodu znaleźć coś sensownego? Na początku zachęcam do przeanalizowania dzisiejszego wpisu, który może być dobrym punktem zaczepienia, szczególnie na starcie przygody z MVC;-)

Do lepszej organizacji treści, biblioteki podzieliłem na grupy funkcjonalne. Wszystkie opisywane w tekście biblioteki można pobrać menadżerem pakietów NuGet.

Wstrzykiwanie zależności

W tym obszarze mamy kilka konkurujących ze sobą bibliotek. Ponieważ jest to dość istotny obszar platformy, warto wybrać narzędzie które najbardziej nam odpowiada.

  • Autofac - popularny kontener DI oferujący szerokie wsparcie dla wszystkich kluczowych obszarów w .Net Frameworku
  • Ninject - mój ulubiony kontener DI. Cechuje się stosunkowo dużą prostą użycia oraz bogactwem opcji
  • Unity - prosty i lekki kontroler zależności od Microsoftu

ORM

W świecie ASP.NET MVC z powodzeniem możemy korzystać z kilku różnych ORMów, choć w praktyce liczą się głównie dwa - Entity Framework oraz NHibernate.

  • Entity Framework - ORM od Microsoftu, mocno dopasowany również do bazy giganta z Redmond. EF dobrze wpisuje się w konwencje zawarte w ASP.NET MVC
  • NHibernate - największy konkurent dla EF. Obecnie traci coraz więcej udziałów w rynku na rzecz rozwiązania Microsoftu, w którego rozwój gigant z Redmond włożył sporo środków
  • Fluent NHibernate - rozszerzenie do NHibernate wprowadzające mechanizmy oparte na konwencjach. Dzięki tej bibliotece, możliwa jest praca z NHibernate bez użycia XMLi;-)

Testowanie

ASP.NET MVC dostarcza sporo mechanizmów wspomagających testowanie. Dzięki temu łatwo do projektu jest podłączyć biblioteki do mockowania obiektów, czy tworzenia testów jednostkowych.

  • Moq - popularna i prosta w użyciu biblioteka do mockowania obiektów. W pracy z Moq, przydatna jest znajomość LINQ
  • NUnit - jedna z najbardziej popularnych bibliotek wykorzystywanych do testów jednostkowych. Podobnie jak NHibernate, jest to port rozwiązania pierwotnie napisanego pod Javę (w tym przypadku najpierw było JUnit)
  • FakeItEasy - prosta i szybka biblioteka do mockowania obiektów
  • xUnit - darmowe open source'owe rozwiązanie do tworzenia testów jednostkowych. Prawdopodobnie największy konkurent dla NUnit

Mapowanie obiektów

Mapowanie obiektów może być istotnym elementem naszej aplikacji, w momencie gdy wprowadzamy do niej ViewModel, który przyczynia się do rozdzielenia warstwy biznesowej/bazy danych od reszty aplikacji. Więcej na ten temat pisałem w podlinkowanym wpisie, a tutaj do przypomnienia 2 użyteczne biblioteki w tym obszarze.

  • AutoMapper - świetna, darmowa biblioteka (podobnie zresztą jak inne w tym wpisie;-), która pozwala na łatwe mapowanie obiektów modelu do zbliżonych obiektów typu ViewModel. AutoMapper posiada również rozszerzone mechanizmy pozwalające na mapowanie różnych właściwości według mapy zdefiniowanej przez użytkownika
  • Value Injecter - konkurencyjne dla AutoMappera rozwiązanie, które bazuje na popularnych ostatnio w programowaniu konwencjach. W praktyce obie biblioteki są do siebie zbliżone i wystarczy zaledwie kilka minut czytania, by nauczyć się korzystać z ich podstawowych funkcjonalności

Użytkowe

Do ostatniej grupy trafiły biblioteki, które warto mieć w swoim projekcie, ale które zarazem nie pasowały nigdzie indziej. Poza tym są one na tyle uniwersalne, że bez problemu można wykorzystać je w praktycznie każdej aplikacji opartej o .Net.

  • Fluent Validation - biblioteka dla platformy .Net, która pozwala na tworzenie walidatorów wykorzystujących wyrażenia lambda. Przydatna w sytuacji gdy tworzymy np. rozwiązania oparte o ORMy i nie chcemy używać Data Annotations oraz widoków modelu
  • Json.Net - to biblioteka która jest dobrym przykładem tego, jak Microsoft się zmienia. Obecnie Json.Net został wchłonięty do projektu WebApi, gdzie odpowiada za serializację Jsona. Jest to coś, z czym Microsoft zawsze miał problem. Dobrze że postanowiono wykorzystać sprawdzone i rozwijane rozwiązanie. Json.Net można również z powodzeniem podpinać do innych projektów, w tym do ASP.NET MVC
  • NLog - ciężko jest tworzyć piękny kod, ponieważ prawdziwą sztuką jest zadbać o każdy aspekt aplikacji tak, by był napisany jak najlepiej. Ważna jest np. często traktowana po macoszemu obsługa błędów. Zawsze powinniśmy zadbać oto, by użytkownik zobaczył ładną stronę błędu, a do logu trafił odpowiedni komunikat i tu właśnie z pomocą przychodzi NLog. NLog to nic innego jak rozbudowana biblioteka, która daje nam szerokie możliwości wszystkiego, co się może stać w naszym systemie. Warto zapoznać się z tym rozszerzeniem

Podsumowanie

Mimo bogactwa opcji które wyjściowo oferuje nam ASP.NET MVC, warto sięgać po dodatkowe rozszerzenia. Oczywiście trzeba to robić z głową i nie dokładać bardzo złożonej biblioteki do projektu mającego dwa widoki na krzyż.

Niniejsze zestawienie bibliotek jest czysto subiektywne.

Podoba Ci się ten wpis? Powiedz o tym innym!

Send to Kindle

Komentarze

blog comments powered by Disqus