Dziennik projektu RentCMS – Dzień 1, Dzień 2
Dziennik jest opisem moich zmagań podczas tworzenia projektu RentCMS.
Dziennik nie jest tutorialem lub wprowadzeniem jak tworzyć aplikacje internetowe.
Dziennik jest tylko zapisem zdarzeń.
Dzień 1 (10 lipca 2011)
Założyłem repozytorium z układem folderów takim sam jak został podany na codingtv.pl. Myślę że to dobra praktyka mieć tak dobrze posegregowane pliki w projekcie.
Jako system kontroli wersji wybrałem Mercuriala ze względu na:
- Codeplex oraz BitBucket
- TortoiseHG
Biblioteką do robienia testów został NUnit, a do mockowania obiektów Moq.
Jako pierwsze zadanie wybrałem stworzenie tabeli routingu, nie zrealizowałem wszystkich założeń które sobie zapisałem na kartce. Następnego dnia będę na tym dalej pracował.
Zadania na jutro:
- dowiedzieć jak przechowywać zawartość strony (teskt & html) wewnątrz bazy danych.
- dodać nowe pozycję do tabeli routingu
- poprawić nazwy testów od tabeli routingu
Dzień 2
Wracam do zajmowania się tabelą routingu, w rezulatacie po poprawkach tabela routingu zmieniła się.
Zmieniła się na lepsze. Urle są znacznie bardziej czytelne. Mimo że routing jest (bardzo) mały to i tak udało mi się w nim na tyle namieszać, że traciłem pojęcie co się w nim dzieje.
A to jest dopiero 2 dzień 😛
Korzystając z podejścia Code-First stworzyłem model który reprezentuje dane dla kalendarza. Takiego który wskazuje które dni są zajęte, a które wolne. Jeżeli osoba jest zalogowana jako administrator może widzieć kto wynajmuje konkretny okres.
Po stworzeniu modelu przyszła pora na stworzenie contextu oraz repozytorium. Klasy, która będzie pośredniczyła pomiędzy kontrolerem a bazą danych. Repozytorium o nazwie ReservationRepository implementuje inteferjs IReservationRepository w celu umożliwienia korzystania z Dependency Injection.
Dependency Injection implementuje przez użycie biblioteki Ninject. Kod który został dołączony do pakietu NuGet (przez nugeta ściągałem bibliotekę), nie chciał zadziałać. Rozwiązaniem tego problemu okazało się użycie przykładu z wiki dla biblioteki ściąganej z Githuba