eDidactic – pierwsze kroki

Prace nad moim projektem eDidactic ruszyły już kilka dni temu. Dzisiaj chciałbym opowiedzieć od czego zacząłem i co jest w planach na kolejne dni.
Ze względu na to, że do tej pory nie miałem okazji tworzyć aplikacji od podstaw w C# z wykorzystaniem MVC i ASP.NET posiłkuję się wiedzą z dokumentacji, artykułów i kursów w Internecie, ale także książki ASP.NET MVC 5 Zaawansowane programowanie Adama Freemana, która zbiera bardzo dużo pozytywnych opinii. Od początku pracy stała się moim głównym drogowskazem przy pracy nad projektem.
Na początku w Visual Studio do solucji, w której może znajdować się kilka projektów, dodałem następujące projekty:

  • eDidactic.Domain, którego typem jest biblioteka klas i będzie zwierać encję oraz logikę związaną z domeną biznesową i konfigurację zapisu do bazy danych
  • eDidactic.WebUI, który przechowuje kontrolery i widoki oraz zawiera UI dla mojego projektu
  • eDidactic.UnitTests, do przechowywania testów jednostkowych, dla dwóch wymienionych wyżej projektów

W Visual Studio wygląda to następująco:

Ok, miałem już struktury projektu i co dalej?

Instalacja pakietów narzędziowych

Narzędzia, które wykorzystujemy w Visual Studio, można zainstalować za pomocą menedżera pakietów NuGet. Jest on częścią VS i bardzo ułatwia dodawanie zewnętrznych bibliotek i rozszerzeń do naszego projektu. Odpowiada za ich pobieranie, instalowanie i aktualizowanie.
W swoim projekcie na początek zainstalowałem dwie rzeczy: Ninject i Moq. Pierwsza z nich to biblioteka implementująca wzorzec Dependency Injection, którego głównym zadaniem jest usunięcie konkretnych dowiązań z kodu programu na rzecz pewnej abstrakcyjnej warstwy. DI jest bardzo popularnym wzorcem projektowym, dlatego wraz ze wzrostem mojej wiedzy na jego temat, który mam nadzieję nabędę przy pracy nad moim projektem, postaram się napisać osobny wpis, w którym dokładnie wyjaśnię, jak działa i w jaki sposób można go wykorzystać.
Druga zainstalowana przeze mnie biblioteka to Moq, który podobno jest najpopularniejszym frameworkiem do tworzenia atrap w .NET. Czyli czego? Mockowanie jest procesem, w którym konkretną implementację obiektu, zastępuję się takim sztucznym tworem, który zachowuję się dokładnie tak, jak tego oczekujemy. Przykładowo, jeśli metoda jakiegoś obiektu, ma „coś” zwrócić, to dzięki mockowaniu, mamy gwarancję, że właśnie to „coś” otrzymamy i nie wystąpi żaden nieoczekiwany wyjątek. Robi się to m.in. po to, aby ułatwić testowanie.

eDidactic – kolejne kroki

Następnie utworzyłem model domeny związany z kursami, które będzie można wybrać, korzystając z mojej platformy i utworzyłem do niej abstrakcyjne repozytorium wraz z jego imitacją, która pozwala mi pobierać przykładowe wpisy, abym mógł je wyświetlić na ekranie. Jest to rozwiązanie tymczasowe, żebym mógł ujrzeć, jakiś efekt mojej pracy. W kolejnych krok będę zajmował się projektowaniem bazy danych opartej na MS SQL i wtedy wszystkie dane będą już bezpośrednio z niej pobierane.
Ostatnim etapem, aby zobaczyć na ekranie listę dostępnych kursów, było dodanie kontrolera, który w modelu MVC służy do obsługi przychodzących żądań, wykonując operację na modelu domeny i wybiera widoki, aby pokazać je użytkownikowi.
Wynik mojej pracy wygląda następująco:

Oczywiście nie jest to nic wielkiego. Pobieram dane w pętli foreach z imitacji repozytorium i wyświetlam je na ekranie. Jest to jednak pierwszy krok, który przesuwa mnie powoli do przodu i mimo wszystko daje wiele satysfakcji. Początki pracy wiązały się również z konfiguracją Ninject, aby wszystko działało prawidłowo.
W kolejnych dniach, po utworzeniu i podpięciu bazy danych do projektu spodziewam się bardziej spektakularnych zmian. Szczególnie tych wizualnych, które najbardziej interesują użytkownika końcowego.