[PL] struktura projektu

Obecna struktura projektu DotBeer przedstawia się następująco:

struktura projektu DotBeer

W projekcie użyłem architektury warstwowej. Projekt został, więc podzielony na osobne, wyspecjalizowane warstwy. Każda warstwa została umieszczona w oddzielnym projekcie. Dzięki takiemu rozwiązaniu, zarządzanie projektem stało się znacznie łatwiejsze. Poniżej znajduje się opis poszczególnych projektów:

  • DotBeer.Business.Components – część warstwy biznesowej, która zawiera logikę biznesową,
  • DotBeer.Business.Entities – część warstwy biznesowej, która zawiera encje biznesowe. Projekt ten nie posiada referencji do pozostałych projektów zawierających poszczególne warstwy,
  • DotBeer.Data – warstwa dostępu do danych. Obecnie dane zapisywane są do plików XML, które znajdują się w katalogu aplikacji. Takie rozwiązanie nie jest zalecane, ponieważ dane aplikacji powinny być przechowywane w lokalnym katalogu ustawień (Application Data) danego użytkownika. Planuje tutaj użycie Entity Framework w połączeniu z SQLite. Dzięki temu nie będę musiał samemu tworzyć warstwy dostępu do danych, tylko wykorzystam już gotowe rozwiązanie,
  • DotBeer.UI.WPFClient – warstwa prezentacji stworzona zgodnie ze wzorcem Model-View-ViewModel. Obecnie warstwa korzysta z  WPF Model-View-ViewModel Toolkit – bardzo prostego toolkita od Microsoftu. Będę chciał tutaj wykorzystać jakąś bardziej zaawansowaną bibliotekę do tworzenia aplikacji zgodnie ze wzorcem MVVM. W swojej pracy inżynierskiej wykorzystałem bibliotekę Microsoft Prism. Sprawdziła się ona świetnie podczas tworzenia aplikacji desktopowej w WPF oraz aplikacji internetowej w Silverlight. Prawdopodobnie użyję właśnie tej biblioteki w projekcie DotBeer,
  • DotBer.UI.WinFormsClient.Updater – projekt aplikacji Windows Forms, której zadaniem jest dokonanie aktualizacji DotBeer’a. Program aktualizujący jest ściągany z mojej strony domowej w momencie wykrycia nowej wersji programu DotBeer. O implementacji aktualizacji automatycznych będzie trochę więcej w późniejszych postach,
  • DAnton.Blocks.Updater – projekt zawierający klasy odpowiedzialne za sprawdzenie dostępności aktualizacji jak i również pobrania i uruchomienia tej aktualizacji,
  • DAnton.Blocks.Extensions – projekt zawierający tzw. method extensions,
  • DAnton.Blocks.Helpers – projekt zawierający różne klasy pomocnicze.

Trzy ostatnie projekty były stworzone z myślą o użyciu ich również w przypadku innych projektów . Stąd wziął się przedrostek DAnton.Blocks – chciałem stworzyć coś na styl bloków programistycznych z Enterprise Library ;). Ostatecznie projektów tych nie wykorzystałem przy tworzeniu żadnej innej aplikacji. Trochę z lenistwa i trochę z braku potrzeby.

Myślę, że ten krótki opis struktury projektu przyda się tym, którzy grzebią przy źródłach DotBeer’a. Są tacy w ogóle? 😀