ICommandCzęść.2 W poprzednim wpisie stworzyliśmy prostą aplikację WPF, która implementuje Inversion of Control przy pomocy kontenera Castle.Windosor.

Przykład był prosty ponieważ na końcu powiązaliśmy tylko odpowiednie właściwości do odpowiednich etykiet.

Czas jednak zabrać ten przykład na wyższy poziom, gdyż napiszemy kod, który powiąże metody z odpowiednimi przyciskami,

Aby to zrobić będę musiał mieć klasy implementujące interfejs ICommand. Jak to jednak zrobić w miarę dobrze?

Na początku też zaznaczę, że postanowiłem zignorować fakt, że techniki związane z ICommand posiadają pewien specyficzny styl przesyłania parametrów jak i rezultatu działania metod.

ThreadingCzęść NR.5 Jak można wykorzystać programowanie aspektowe w pożyteczny sposób?

Interceptory mogą się przydać przy tworzeniu nowych wątków. Pisząc aplikację w WPF lub Windows Forms łatwo zauważyć tę sytuację. Podczas wykonywania jakiejś długiej czynności w kodzie możesz zauważyć, że cały wątek UI został zatrzymany. Oznacza to, że nie możesz ruszyć okna, nie możesz skrolować okna i nie możesz na nic klikać bo cały wątek odpowiedzialny za to jest zajęty.

IOCCzęść.1 Analizując ruch na swoim blogu postanowiłem zrobić wpis na temat wstrzykiwania zależności i kontenerów IOC, czyli kontenerów Inversion of Control. Dzisiaj skoncentruję się na konterze Castle.Windsor chociaż w przyszłości planuję także użyć Ninject.

Co zrobię w tym wpisie? Zainstaluję Castle.Windsor z NuGet i przygotuję aplikację WPF do nowej architektury.

ScriptCS

Pojawienie się kompilatora Roslyn otworzyło wiele nowych ścieżek.

Jedną z tych ścieżek jest biblioteka ScriptCS.

Dzięki niej jest możliwe używanie C# jako języka skryptowego w konsoli. Dzięki niemu edytory takie jak Notepad++ mogą kompilować kod napisany w C#.

Co najważniejsze można użyć tej biblioteki do własnych celów.

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.

DelegataWiele kontrolek w WPF,Windows Forms i Silverlight ma właściwość “Tag”. W niej możemy przechowywać dowolny obiekt powiązany z daną kontrolką.

W tym wpisie pokaże jak użyć delegat wraz z właściwością Tag. Każda kontrolka z właściwością tag może użyć tej techniki. Dla uproszczenia wpisu ja skorzystałem z kontrolki Button.

Delegata

Co to jest delegata? Dobre pytanie na rozmowę kwalifikacyjną.

Delegata jest wskaźnikiem do danej metody bądź metod. Delegata przetrzymuje więc referencję do danej funkcji.

Istnieje jeden wymóg.

Markup ExtCzęść NR.4Po długiej przerwie zastanawiam się czy uzupełniać ten kurs dalej zwłaszcza, że ma on swoje wady, ale co tam.

W poprzednim wpisie omówiłem właściwości elementów z punktu widzenia języka XAML.

Czyli w wielkim skrócie możemy ustawić właściwości elementów na dwa sposoby.

WłaściwościCzęść NR.3 Windows Forms nie oferuje takiej bogatej kompozycji jak WPF. Nie mówi tutaj o różnicy pomiędzy grafiką rastrową ,a grafiką wektorową. Przykładowo w Windows Form do przycisku możemy umieścić tylko tekst.

Natomiast do zawartości przycisku w WPF możemy umieścić każdy element. Musi on tylko dziedziczyć po odpowiednich klasach.

WPF AsyncAsync i Await to całkiem nowy fantastyczny bajer   który został dodany do języka C# całkiem nie dawno. Można go używać w każdej aplikacji .NET-owej chociaż  małe różnice w wykorzystaniu istnieją to sumie filozofia działania jest ta sama .

Ciężko jest wyjaśnić co dokładnie dzieje się pod spodem aplikacji,  która korzysta z tej funkcjonalności.

Why XAMLCzęść NR.1 XAML jest dialektem XML i stał się on ważną częścią platformy .NET od czasu jego pierwszej prezentacji w 2006 roku w trakcie premiery WPF. Często jest mylony jako metoda określająca interfejs użytkownika zupełnie tak jak HTML. Pod koniec tego kursu zrozumiesz jednak ,że XAML to coś dużo więcej niż aranżowanie kontrolek na ekranie komputera.

WPFKolejny wpis, który powstał ze słowa kluczowego wpisanego do wyszukiwarki Google przez pewnego studenta. Oj biedni studenci jacy to oni trudne programy mają do napisania xD.

W sumie ja na początków studiów w Białej Podlaskiej też nie byłem takim weteranem.

Twitter

W poprzednim wpisie opisałem jak w WinRt możemy się zalogować do Facebook i wysłać wiadomości. Sieci społecznościowe są dzisiaj w modzie dlatego pomyślałem sobie dlaczego nie zrobić podobnej aplikacji testowej dla Twitter-a.

WinRT

Na co dzień miliony osób korzysta z facebook. Facebook też jest ważnym aspektem jeśli chodzi o marketing samej aplikacji.

Nic więc dziwnego, że aplikacje dają możliwość pochwalenia się swoimi wyczynami na facebook-u.

MessageTak jak większość programistów pierwszy test nowej technologii zaczyna się od dobrego napisu “Hello World”, tego samego szukałem w WinRT.

WinRT przemodelowało wszystko i znajome przestrzenie nazw jak i klasy mogą już nie istnieć w WinRT.

Pisząc pierwszą aplikację w WinRT chciałem tylko wywołać prosty MessageBox z napisem “Hello World” , jak się jednak okazało klasa ta nie istnieje w WinRT.

Losowość W niektórych przypadkach klasa Random nie wystarcza do generowania losowych liczb. Problematyka generowania losowych wartości polega na tym ,że są one generowane według określonego wzoru.

Co oznacza , że tak naprawdę są one liczbami pseudo-losowymi. Jeśli ten wzór nie jest dobry wtedy nasza“losowość” nie jest aż taka bardzo “losowa”.

Taka losowość jest w porządku jednak w większości przypadków wciąż nie można jej porównać do rzutu kostką, czy monetą.

Markup Znaczniki rozszerzeniowe! Bardzo ważny aspekt w XAML-u. Znaczniki są krótkimi napisami zazwyczaj zamkniętymi w nawiasach klamrowych, które dodają nową funkcjonalność w XAML-u. W języku XAML stosujemy różne znaczniki takie jak “{StaticResource}”, “{TemplateBinding}”, i “{Binding}” oraz wiele innych. Używam ich przez cały czas.