Dependency

Kiedyś, dawno temu ktoś mnie poprosił o stworzenie pomocnego wpisu do MVVM Light-a. Kiedyś już miałem styczność z tym frameworkiem i jego odpowiednikami.

Obecnie jednak moja praca krąży tak intensywnie wokół ASP.NET, że nie byłbym w stanie stworzyć takiego wpisu.

Pomyślałem sobie jednak, że mimo, iż Silverlight jest martwą technologią i wszystko teraz będzie iść w mobile/Web, to dla swojej frajdy zrobię kurs MVVM. Silverlight i WPF budzą we mnie pewne pozytywne wspomnienia.

MVVM Light to prosty framework, który pomaga programiście użyć wzorca MVVM. Jak ten wzorzec działa? – po co on jest ? To już inna historia. Zacznijmy od podstawy podstaw.

Zanim padnie słowo MVVM trzeba dobrze omówić mechanizm DataBinding. A przed nim obiekty DependencyProperty i Dependency Object.

Model view Rok temu na prezentacje o Silverlight dla Bialskiej Grupy .NET napisałem prostą aplikację pokazującą powiązania.< Ta aplikacja jest prostym przykładem zastosowania modelu i widoku.

W aplikacji znajdują się dwa kwadraty ,a ich kolor jest zależny od kontrolek “NumericUpDown”. Każda z tych kontrolek odpowiada za odpowiedni kanał ARGB w kolorze. Jak chcesz możesz sam zmienić wartość tych kontrolek w aplikacji powyżej i zobaczyć ,że kolor kwadratów też się zmienia.

Użyłem kontrolki“NumericUpDown” ,aby ułatwić sobie kod. Kontrolka ta ma właściwości, które pozwalają na ograniczenie wartości numerycznych. Kanały ARGB mogą mieć wartości tylko od 0 do 255.

Full Screen

Kod ten jest bardziej przydatny niż się zdaje. Zwłaszcza ,że ciągle zapominam jak implementować pełen ekran w Silverlight. Aby nie zaglądać już nigdy więcej do swoich starych aplikacji stworzyłem ten wpis.
Implementacja pełnego ekranu w Silverlight wymaga jednej linijki kodu. Jednak liczba wyrażeń po kropce sprawia , że nie jest ona taka łatwa do zapamiętania. Moja pamięć, jak do tej pory gasła po “Host”.

XAP + Web W tym krótkim poście pokaże jak dodać plik xap do folderu ClientBin kiedy chcesz dodać projekt Silverlight do istniejącego projektu WEB.

Dodaj aplikacje Silverlight do projektu. Możesz to zrobić przy pomocy menu głównego: File/Add/Existing Project

Mając już dodaną aplikacje Silverlight do projektu pozostało umieścić jej plik .XAP w domyślnych folderze “ClientBin”.

Culture SLLokalizacja polega na dostosowaniu aplikacji - w zależności od danej kultury bądź państwa. Lokalizacja polega na przetłumaczeniu interface użytkownika na dany język. Lokalizacja aplikacji polega na utworzeniu oddzielnego zestawu zasobów (jak tekst i obrazki). Jak to wygląda w Silverlight.

EfektyW poprzednim wpisie opisałem niewielki problem z zapętlaniem dźwięków w Silverlight 4. Obecnie w Silverlight 5 Beta, która pojawiła się niecałe 2 tygodnie temu ten problem został rozwiązany dla plików .wav. Klasa SoundEffect została ściągnięta z frameworku XNA i odpowiednio uproszczona na potrzeby Silverlight. XNA to framework, to budowania gier, więc nic dziwnego, że ta klasa jest wręcz stworzona do właśnie takich efektów.

Simple Któregoś dnia przeglądałem nowości w Silverlight Beta 5. Z wszystkich nowości zaciekawiła mnie możliwość zapętlania dźwięku. Jednak na razie można zapętlać tylko pliki .wav ale może niedługo się to zmieni. Podczas przeglądania wpadłem na pomysł napisania prostego odtwarzacza muzycznego z możliwością zapętlania dźwięków w Silverlight 4.

Stworzenie aplikacji zajęło mi niecałą godzinę. Aplikacja bardzo mi się spodobała, może niedługo stworzę lepszą wersję i może nawet według wzoru MVVM. Aplikacja wygląda następująco.

SOAP SL4Prawie każda aplikacja nawet Silverlight potrzebuje zbioru danych aby osiągnąć swój cel. Silverlight podobnie jak WPF oferuje możliwość bindowania danych jak i efektownego wyświetlania. Jednak skąd biorą się te dane. Ponieważ jak wcześniej ustaliliśmy Silverlight działa po stronie klienta. Znajduje się ona jakby po drugiej stronie muru gdzie nie ma bezpośredniego dostępu do danych, jak to jest w ASP.NET.

PivotViewer

Wysyłając aplikację PivotViewer na swój serwer DropBox zdałem sobie sprawę, że będzie problem ze ścieżką do kolekcji. Zmienianie statycznej ścieżki, która jest zawarta w pliku .xap nie wydało się takim fantastycznym pomysłem. Za każdym razem gdybym chciał pokazać swoją aplikacje musiałbym ją edytować?
Nie ma mowy. Jak to można rozwiązać.

PivotViewer Na całym świecie są zbierane niesamowite ilości informacji w tym także graficznej. Szybkość naszych łączy internetowych zwiększa się jak i możliwości graficzne naszych urządzeń. Teraz powinieneś zadać sobie pytanie jak w przyszłości będziemy oglądać galerie obrazków z Internetu. Obecnie mamy tradycyjne galerie polegające na klikaniu miniatur i oglądaniu obrazków.

Animacja c#

Wyobraźmy sobie taką sytuacje, że mamy jakąś animację w Silverlight –cie, która zachodzi dla przycisku A.

Teraz chcemy jednak by dla przycisku B wykonała się ta sama animacja tylko w drugą stronę od końca.

Niby jest to prosta i oczywista rzecz jednak rozśmieszyły mnie odpowiedzi na forum Silverlight . Do rozwiązania tego problemu trzeba stworzyć dokładnie taką samą animację (storyboard), która wykonuje się od tyłu. Wygląda mi to trochę na marnotrawstwo czasu i energii.

DropBox SL

Blog nie miałby sensu bez pisania o aplikacjach "Silverlight". Jak można umieścić aplikacje Silverlight na Blogger-rze. Zagadnienie można podzielić na dwie części.

 

 

  • Hostowanie- Blogger, czy nawet WordPress nie daje możliwości przechowywania naszych plików na serwerze i powiązania ich z naszym blogiem. Jednym słowem host trzeba znaleźć samemu.
  • Umieszczenie aplikacji w HTML - Blogger oferuje bardzo łatwy edytor do pisania postów, który  bez problemu daje możliwość umieszczenia filmów YouTube, jednak jak to się przekłada na Silverlight.

Teraz, gdy wiem  na czym polegają nasze problemy. Poszukajmy rozwiązania.