Od razu zaznaczam, że pomysł nie jest mój, ale jest zaczerpnięty z przykładowego projektu na CodeProject. Jednak spodobał mi się bardzo, bo wprowadza porządek do projektu, jest prosty i oczywisty. W czym problem?Podczas korzystania z Messengera, problemem okazało się tworzenie unikalnych tokenów za pomocą, których można by jednoznacznie identyfikować komunikaty. Dzięki tokenom można przesyłać wiele komunikatów tego samego typu (na przykład w prostym przypadku string'ów) i jednocześnie móc je od siebie o...
Architektura 5157 dni, 16 godzin, 43 minuty temu 183 źrodło rozwiń
Ostatnio przeglądałem kilka bibliotek wspomagających tworzenie aplikacji z użyciem wzorca MVVM. Najbardziej do gustu przypadł mi Cinch w wersji V2. Framework ten działa razem z biblioteką MEFedMVVM. Użycie obu bibliotek jest bardzo proste. Najpierw tworzymy klasę, która będzie naszym modelem widoku: [ExportViewModel("MainViewModel")] [PartCreationPolicy(CreationPolicy.NonShared)] public class MainViewModel : IN...
Trochę czasu minęło od ostatniego postu. Postaram się jednak dotrzymać słowa i dokończyć to co zacząłem ;) ControlStoryboardAction – Action, który pozwala na uruchomienie StorayBoard czyli animacji w momencie wystąpienia zdarzenia na elemencie źródłowym. MVVM: Przez pewien czas zastanawiałem się w jaki sposób mogę skorzystać z tego Action w kontekście wzorca MVVM. Rozwiązaniem jest zastosowanie wyzwalacza PropertyChangeTrigger. Wykorzystując wspomniany wyzwalacz, możemy sprawić by nasza aplikacja u...
Silverlight 5171 dni, 21 godzin, 6 minut temu 36 źrodło rozwiń
Dzisiaj chciałbym opisać akcje (Action) jakie znajdują się w Expression Blend w zakładce Assets -> Behaviors. Wiele z nich ułatwi wam życie pisząc aplikację Silverlight opartą o wzorzec projektowy MVVM. Dla tych którzy nie posiadają Expression Blend, dostępne jest darmowe BlendSDK, które zawiera wszystkie funkcjonalności opisane poniżej. Link do Blend SDK -> LINK CallMethodAction – Action, który pozwala na wywołanie dowolnej metody bezparametrowej na wskazanym obiekcie w momencie, gdy wystąpi zdarzenie...
Silverlight 5183 dni, 1 godzinę, 26 minut temu 42 źrodło rozwiń
Drugiej części posta o MVVM Light Toolkit chciałem przedstawić bardzo ciekawe funkcjonalności, mianowicie: EventToCommand oraz obiekt Messenger. Postaram się przedstawić je na przykładzie, który będzie rozwinięciem aplikacji z poprzedniego posta. EventToCommand Jak już wcześniej wspominałem, w kontrolkach WPF'a komendy podpinane są domyślnie do jednego z góry przewidzianego zdarzenia, na przykład dla przycisku jest to odpowiednik OnClick. Nie ma możliwości podłączenia komendy do innych zdarzeń, jednak t...
Instalacja MVVM Light Toolkit Właściwie jedyne co jest niezbędne do pracy z MVVM LT, to same biblioteki w formie plików DLL, jednak aby naprawdę wygodnie korzystać z tego narzędzia dobrze jest skorzystać z małych wspomagaczy przygotowanych przez autora. Pobieramy paczkę stąd i następnie wypakowujemy to co nam potrzeba. Jest tego całkiem sporo, ponieważ przygotowane są wersje zależne od wykorzystywanej technologii i oprogramowania: binarki - biblioteki w postaci plików DLL w postaciach przygotowanych dla...
Architektura 5204 dni temu 417 źrodło rozwiń
Od dawna nosiłem się z zamiarem poznania wzorca MVVM (Model-View-ViewModel), na którym opiera się WPF, jednak im głębiej go poznawałem tym bardziej wydawał mi się on irytujący. Problem z MVVM jest taki, że jest to tylko wzorzec, opisujący jedynie podstawy działania i przedstawiający założenia do ogólnej koncepcji jaką należy przyjąć w projekcie. W teorii wygląda to bardzo ładnie, oddzielenie interfejsu od logiki biznesowej miały pozwolić na rozdzielenie pracy programisty i designera. Zachowujemy porządek...
Korzystając z wzorca MVVM cały czas skupiamy się na zachowaniu koncepcji czyli wszelkiego rodzaju logika biznesowa udostępniana jest widokowi poprzez ViewModel. Z drugiej strony nasz widok (View) powinien składać się tylko ze znaczników XAML. W sieci można znaleźć mnóstwo video tutoriali gdzie oglądając odnosimy wrażenie, że punktem honoru prelegenta jest pokazanie w pełni działającej aplikacji przy zachowaniu czystego CodeBehind. Ostatnio jednak uświadomiłem sobie (a raczej wymaganie biznesowe postaw...
Architektura 5209 dni, 5 godzin, 19 minut temu 170 źrodło rozwiń
Autor: Bawiąc się Silverlightem bardzo polubiłem narzędzie Expression Blend. Pomimo braków w talencie graficznym dzięki temu programowi potrafię coś zrobić z UI co wywołuje we mnie emocje typu WOW! Choć daleko mi do perfekcji to nie ukrywam, że Blend bardzo usprawnia pracę podczas tworzenia aplikacji Silverlight. Ponieważ wzorzec MVVM w aplikacjach Silverlight jest na topie, warto byłoby zapewnić mu współpracę z Blend’em. Oczywiście miejscem najbardziej do tego nadającym się jest ViewModel. To właśni...
Silverlight 5212 dni, 18 godzin, 55 minut temu 102 źrodło rozwiń
Autor: W poprzedni wpisie przedstawiłem podstawową koncepcję wzorca projektowego MVVM oraz pokazałem jak złączyć widok (View), będący graficzną reprezentacją naszej logiki biznesowej wraz modelem (Model) przy wykorzystaniu klasy pośredniczącej (ViewModel). Brakującym elementem w przedstawionym przykładzie była implementacja zdarzeń jakie oferują nam kontrolki. Z pomocą przychodzi nam wzorzec projektowy Command, który doczekał się swojej implenetacji w Silverlight 4. Ogólna koncepcja działania polega ...
Architektura 5213 dni, 17 godzin, 42 minuty temu 331 źrodło rozwiń
Jakiś czas temu obiecałem jakiegoś sampla z MVVM i słowa dotrzymałem. Dziś wrzucam pierwszą część – opis założeń i warstwa modelu. I nie będzie to kolejny przykład na klasie User, tylko kompletny i gotowy do użycia komponent – wirtualna klawiatura obsługująca wielodotyk – efekt ostatnich dwóch dni pracy (i jeszcze pewnie dwóch kolejnych ...
Architektura 5226 dni, 3 godziny, 16 minut temu 130 źrodło rozwiń
PasswordBox jak łatwo się domyślić jest standardową kontrolką WPF dzięki której użytkownik otrzymuje zamaskowane pole tekstowe do wpisywanie haseł itp. Kontrolka spisuje się wyśmienicie do czasu gdy przy budowaniu aplikacji nie wykorzystywany jest wzorzec MVVM (i inne pokrewne Model-View-* oparte o bindowaniu). Powód jest bardzo prosty. Ze względów bezpieczeństwa właściwość Password kontrolki nie jest uznawana jako Dependency Property co uniemożliwia bindowanie. Panowie z MS dokonali akurat takiego wybor...
Zastanawiałem się nad strukturą programu, może po prostu zrobić to tak jak wszystkie projekty na zaliczenie, czyli na odpierdol, byle działało. Ale nie, to w końcu praca dyplomowa, trzeba być poważnym, poza tym chcę się nauczyć czegoś nowego, dodam do założeń nowy punkt: „W łatwy sposób będzie można zmienić wygląd aplikacji, bez konieczności ingerowania w kod (logikę).” Czyli krótko mówiąc trzeba zastosowa...
Architektura 5228 dni, 19 godzin, 21 minut temu 287 źrodło rozwiń
Autor: Chciałbym napisać dziś słów kilka o WCF RIA Services. Dokładnego przeglądu standardowych scenariuszy wersji pierwszej finalnej dokonałem niejako publikując zaktualizowane przykłady w dwóch częściach (patrz cz.I i cz.II). I chociaż jest tam wiele fajnych funkcjonalności, to dziś napiszę o trochę mniej standardowych, rzadziej spotykanych rzeczach. Mam tu na myśli takie zagadnienia jak korzystanie z NHibernate, MVVM (jest to typowe podejście dla Silverlight, ale nie zawsze przykłady czy prezentacje...
Programowanie rozproszone 5244 dni, 22 godziny, 35 minut temu 216 źrodło rozwiń