wiki:Architektura
Last modified 9 years ago Last modified on 05/22/11 21:24:31

Architektura systemu

Projekt w całości wykonany jest w technologii Microsoft .NET. System składa się z dwóch części działających w odrębnych środowiskach: u klienta i na serwerze. Główne technologie z których korzystamy to:

Rozszerzona architektura MVVM

Powyżej zdefiniowana struktura dobrze wpasowuje się w popularny wzorzec projektowy Model View ViewModel (MVVM) stworzony z myślą o aplikacjach pisanych przy użyciu Windows Presentation Foundation i Silverlight. W swojej oryginalnej wersji ma na celu separację warstwy czysto graficznej prezentacji i interakcji z użytkownikiem (View), logicznej abstrakcji interfejsu użytkownika powiązanej z warstwą widoku (View Model) oraz rzeczywistych danych oraz logiki biznesowej (Model).

W naszym systemie wykorzystujemy lekko zmodyfikowany wzorzec MVVM z dodatkową warstwą Service Agent przekierowującą wywołania metod do usługi WCF. Mimo, że jest właściwie elementem View Model to została wyszczególniona w celu podkreślenia podziału systemu na część kliencką i serwerową.

Oto sposób w jaki nasza aplikacja korzysta z poszczególnych warstw:
(szczegóły implementacyjne są widoczne na diagramie klas)

View

Zajmuje się wyłącznie wyświetlaniem GUI skomponowanego w XAMLu. Są tutaj zdefiniowane powiązania (bindings) do odpowiednich elementów warstwy View Model. Cały interfejs jest odzwierciedleniem przechowywanego tam modelu widoku. Składa się na niego wiele poszczególnych ekranów (widoków), każdy z nich posiada odpowiednią klasę warstwy View Model.
Wszystkie widoki oraz przejścia między nimi można prześledzić na diagramie ekranów GUI

View Model

Model widoku, przedstawia to co widzi i z czym oddziałuje użytkownik w formie modelu obiektowego. Wszelkie dane, którymi wypełnione są kontrolki interfejsu przechowywane są w tej warstwie i każda ich zmiana ma natychmiastowe odzwierciedlenie w warstwie View (i vice versa). Jest to możliwe poprzez wykorzystanie mechanizmu powiązań (Bindings)

Service Agent

Przekazuje operacje zainicjowane w warstwie View Model do wykonania Modelowi, a także zajmuje się przesyłaniem danych w obie strony. Jest pośrednikiem zaimplementowanym w technologii WCF.

Model

W naszym systemie Model jest usługą WCF przechowującą model bazy danych w postaci obiektów zmapowanych dzięki EF i zawierającą całą logikę biznesową operującą na tych danych.

Attachments