piątek, 21 listopada 2008

Szkolenia z Silverlight 2 - video [update]

Ostatnio zajmuję się m.in przeprowadzaniem szkoleń z Silverlight 2. Razem z kolegami wpadliśmy na pomysł, by je  przy okazji nagrać i udostępnić szerszej społeczności.

Szkolenie składa się z czterech części. Aktualnie został zamieszczony materiał video z  modułów II, III i IV. Nagranie z modułu I opublikuję w późniejszym terminie.

Silverlight 2 - szkolenie cz.2


Silverlight 2 - szkolenie cz.2 from Marcin Kruszyński on Vimeo.

Opis: Dokładne omówienie najbardziej kluczowych koncepcji i mechanizmów technologii Silverlight – wiedza z tym związana pozwoli uniknąć niespodzianek podczas implementacji oraz jest pomocna przy tworzeniu własnych kontrolek. Jeden z ich rodzajów (tzw. user controls) został przedstawiony w końcowej części tego modułu.

Silverlight 2 - szkolenie cz.3


Silverlight 2 - szkolenie cz.3 from Marcin Kruszyński on Vimeo.

Opis:  Omówienie transformacji i animacji oraz mechanizmów dostosowywania wyglądu kontrolek do własnych potrzeb (style i szablony). Sposób tworzenia własnych kontrolek z możliwością zmiany wyglądu (custom controls). Ostatnia część modułu poświęcona tzw. tematom z Silverlight Toolkit, które stanowią jeszcze jeden sposób na zmianę wyglądu kontrolek.

Silverlight 2 - szkolenie cz.4


Silverlight 2 - szkolenie cz.4 from Marcin Kruszyński on Vimeo.

Opis: Poruszone zostały tutaj zagadnienia związane z integracją z technologiami służącymi do budowy stron Web (HTML, JavaScript, AJAX). Następnie został dokonany przegląd możliwych scenariuszy w komunikacji (protokoły, rodzaje serwisów, technologie). Omówiono również obsługę danych XML oraz korzystanie z ADO.NET Services. Końcową część modułu poświęcono efektowi Deep Zoom i narzędziu Deep Zoom Composer.

Życzę miłego oglądania!

P.S Oryginalne pliki WMV z lepszą jakością obrazu można pobrać ze strony Vimeo (po dokonaniu darmowej rejestracji)

piątek, 7 listopada 2008

Silverlight 2, PDC 2008

Tyle jest ciekawych rzeczy, że jak  chcesz je bliżej poznać, to ciągle czujesz niedosyt i niewystarczającą ilość czasu  - a tymczasem pojawia się już nowa wersja frameworka.... Rzutuje to też na blogowanie, na które nie zostaje zbyt wiele czasu. Zajmując się ostatnimi czasy  Silverlight 2, nawet nie napisałem posta o wydaniu finalnej wersji RTW czy Silverlight Toolkit, którego możliwości miałem okazję częściowo zbadać już w praktyce ...

Zaczynając pisanie tego posta planowałem nawet umieścić trochę linków czy informacji o Silverlight, ale ... rozmyśliłem się (może ewentualnie umieszczę coś w aktualizacji angielskiej wersji bloga).  Od kilku dni rzesze developerów na całym świecie żyją konferencją PDC, a i ja nie jestem tu wyjątkiem - tym bardziej, że mój kolega uczestniczył w tym wydarzeniu bezpośrednio ...  Pościągałem z witryny konferencji masę nagrań video i prezentacji Power Point (mam nadzieję, że wskażą jak używać testowej wersji nowego Visual Studio oraz "Oslo" i "Dublina").  Bravo Microsoft za udostępnienie na webie dla zainteresowanych z całego świata wszystkich sesji w tak krótkim czasie!

Jakieś spostrzeżenia?  Wydaje mi się, że na tym PDC brak technologii przewodnich, natomiast każdemu nowemu projektowi (a jest ich sporo, tym bardziej że obok zupełnie nowych powstają nowe wersje frameworków wprowadzonych już wcześniej) poświęcono po kilka casów...  Są oczywiście wyjątki - Windows Azure czy Windows 7, ale nie powinno to dziwić.  Co ciekawe Azure ma więcej prezentacji niż Windows 7 ....  Z innych uwag - tematyka prezentacji dotyczyła rzeczy, ktore już istnieją obecnie (mało typowe jak na PDC), nowych projektów - z którymi zainteresowani mieli okazję zapoznać się jakiś czas wcześniej (np. MEF, CCR), oraz było kilka premierowych pokazów (np. "Oslo", "Dublin", "Geneva"). W tym natłoku nowości jakoś ... Silverlight  pozostał w cieniu - sesje raczej malo przełomowe. Zobaczymy, co zostało powiedziane o mobilnej wersji (ale zdaje się nie udostępniono jej znowu publicznie). Gdzie roadmap np. dla Silverlight 3?

Jak się z czymś ciekawym zapoznam, to napiszę (w miarę możliwości czasowych) - a tymczasem kończę. Do usłyszenia! 

poniedziałek, 6 października 2008

Silverlight 2 RC 0

Bez wątpienia najważniejszą nowością z września tego roku jest Silverlight 2 RC0.  Aby nie dublować newsów, powiem że dość wyczerpujące informacje są na stronie http://silverlight.net/GetStarted/sl2rc0.aspx oraz na umieszczonych na niej linkach.   Jeśli chodzi o dokumentację do tej wersji, to nie ma jej on-line, ale na jednym z blogów został umieszczony link do pliku .chm. Dla miłośników narzędzia Deep Zoom Composer zostały wydane nowe szablony, które po rozpakowaniu trzeba skopiować do katalogu z plikami aplikacji -;)

 sl-rc0-new-controls1untitledX

Oprócz wielu licznych mniejszych zmian, są i te większe: nowe kontrolki (ComboBox, ProgressBar, PasswordBox) oraz możliwość wyświetlania MessageBox' ów, nowe domyślne szablony dla wszystkich kontrolek, nieco inny sposób renderowania. Jak zapowiada  ScottGu na swoim blogu, w planach jest udostępnienie w ciągu następnych paru miesiący dodatkowych kontrolek i funkcjonalności na bazie Silverlight 2 oraz zorganizowanie galerii z alternatywnymi skórkami dla kontrolek.

Miałem już okazję zgłębić dość szczegółowo zmiany pomiędzy Silverlight 2 Beta 2 a RC0, gdy migrowałem swoją aplikację do nowszej wersji SL.  Jeśli jest ktoś zainteresowany, zapraszam do przeczytania mojego posta na ten temat.

piątek, 29 sierpnia 2008

Lato 2008 - nowości

Mamy już koniec sierpnia, więc zrobię krótkie podsumowanie letnich nowości Microsoftu. IMHO najbardziej istotne były:

16-07-2008
ASP.NET MVC Preview 4

21-07-2008
ASP.NET AJAX 4.0 Preview 1

06-08-2008
SQL Server 2008 RTM

11-08-2008
.NET 3.5 SP 1 + Visual Studio 2008 SP 1
Silverlight Tools Beta 2 for Visual Studio 2008 (aktualizacja dla SP1)
WPF Toolkit - Preview

27-08-2008
Internet Explorer 8 Beta 2

29-08-2008
ASP.NET MVC Preview 5

A tymczasem stosunkowo w niedługim czasie powinien pojawić się Silverlight 2 RTW ...

środa, 6 sierpnia 2008

Galeria moich zdjęć w nowym Deep Zoom Composer !


Pozwoliłem sobie skorzystać z najnowszej wersji programu Deep Zoom Composer i opublikować kilka swoich zdjęć w sieci. Zagadka - ile zdjęć ukryłem we frontowym zdjęciu? (patrz uważnie na puszkę piwa!). Więcej informacji można znaleźć tutaj.

wtorek, 29 lipca 2008

Drugi blog

Od dzisiaj zaczynam prowadzić drugiego bloga po angielsku, w którym zamierzam opisywać konkretne sprawy związane z aktualnie badaną przeze mnie technologią (aktualnie Silverlight). W moim założeniu ma to być blog typowo techniczny.

Natomiast w polskim blogu zamierzam kontynuować ciekawostki dotyczące różnych nowych technologii oraz komentować rzeczywistość ze świata IT.

Polskiemu i angielskiemu blogowi nadałem nowy ujednolicony wygląd.

sobota, 26 lipca 2008

Silverlight 2 Beta 2 w praktyce - ciąg dalszy

Pragnę wspomnieć o kilku zagadnieniach związanych z Silverlight, którymi się ostatnio zajmowałem:

1. Definiowanie obiektów w XAML

Robiąc binding do obiektów CLR, czasami jest wygodnie zdefiniować ich instancje z odpowiednimi parametrami w XAML, zamiast w code-behind. Pokazane to zostało m.in w webcaście http://channel9.msdn.com/posts/mtaulty/Silverlight-Custom-Types-in-XAML/. W praktyce również zrobiłem podobny przykład, przy czym sam obiekt bez parametrów w XAML wygenerowałem za pomocą Expression Blend przy okazji tworzenia bindingu.

2. Templates

Stworzyłem szablon, który następnie podpiąłem do 2 przycisków. Tym razem efekt pracy w Expression Blend działał poprawnie w czasie run-time (w przeciwieństwie do mojej wcześniejszej próby). Obecnie działałem z SP1 do VS i prostszy szablon odnosił się do przycisku, a nie do panelu ... Czyżby miało to jakieś znaczenie?

3. Resources

Bardzo dobry webcast o umieszczaniu zasobów w aplikacjach Silverlight: http://channel9.msdn.com/posts/mtaulty/Silverlight-Resources-from-XAPDLLSite-Of-Origin/. Obrazek wchodzący w skład projektu Silverlight w VS możemy umieścić w:
- assembly aplikacji (w Properties VS: Build Action = Resource, URI = 'obrazek.jpg')
- poza assembly w archiwum aplikacji .xap (Build Action = Content, URI = '/obrazek.jpg')
- poza plikiem .xap w aplikacji webowej
- w assembly biblioteki, z której korzysta aplikacja (URI = '/[nazwa assembly];component/obrazek.jpg)
Przy wczytywaniu zasobów obowiązuje pewna kolejność: jeśli zasób nie zostanie odnaleziony w assembly i w archiwum .xap, to szukany jest w katalogu aplikacji webowej.

4. Upload i download za pomocą klasy WebClient

Te zagadnienia dobrze ilustrują webcasty: http://channel9.msdn.com/posts/mtaulty/Silverlight-Uploads-with-WebClient/ oraz
http://channel9.msdn.com/posts/mtaulty/Silverlight-Downloads-with-WebClient/. Przydatne metody i eventy klasy WebClient:
- przy operacji upload: OpenWriteAsync / UploadStringAsync, OnUploadProgressChanged, OnOpenWriteCompleted / OnUploadStringCompleted
- przy operacji download: OpenReadAsync / DownloadStringAsync, OnDownloadProgressChanged, OnOpenReadCompleted / OnDownloadStringCompleted

5. WCF

http://msdn.microsoft.com/en-us/library/cc197959(VS.95).aspx - ograniczenia w obsłudze bindingów i protokołów WS-*
http://silverlight.net/forums/p/17733/74019.aspx - sprawa korzystania z aplikacji webowej i serwisu WCF na tym samym komputerze (localhost i adres domenowy komputera nie są traktowane za tożsame, aplikacja webowa nie może być uruchamiana przez ścieżkę plikową tylko przez adres webowy)

c.d.n

środa, 23 lipca 2008

Silverlight 2 Beta 2 w praktyce - ciąg dalszy

Kilka zagadnień, z którymi ostatnio miałem doczynienia:

1. The project type is not supported by this installation - gdy zainstalowałem narzędzia do Silverlight'a na maszynie z Visual Studio 2008 z SP1 (beta), to przy próbie otwarcia jakiekolwiek projektu VS konsekwentnie informował, że nie obsługuje takiego rodzaju projektu lub że referencja na obiekt jest nullem (!). Pomogło zresetowanie ustawień Visual Studio z linii komend.
http://www.microsoft.com/silverlight/resources/readme.aspx?v=2.0

2. Pobieranie bibliotek z kontrolkami na żądanie - przydatne, gdy:
- chcemy współdzielić kontrolki w różnych aplikacjach
- ze względów wydajnościowych, by ładować tylko potrzebne kontrolki, a pozostałe dociągać i ładować w razie potrzeby

Do projektu biblioteki pobieranej na żądanie umieszcza się referencję w taki sam sposób jak do biblioteki, która ma być powiązana w sposób statyczny. Jedyna różnica polega na tym, że we właściwościach referencji trzeba:
- w Visual Studio: propercję Copy Local ustawić na false
- w MSBuild: propercję Private ustawić na false
Wtedy assembly biblioteki nie zostanie włączone do archiwum .xap aplikacji.

http://msdn.microsoft.com/en-us/library/cc296243(VS.95).aspx. Zasugerowany podanym tu przykładem byłem przekonany, że biblioteki z kontrolkami należy pakować do archiwum .xap. Jednak jedynie projekt Silverlight Application pozawala na pakowanie do .xap, projekt Silverlight Class Library na to nie pozwala (nie pozwala też na linkowanie do aplikacji webowej za pomocą Visual Studio). Natrafiłem na stronę http://geekswithblogs.net/lbugnion/archive/2008/04/16/silverlight-packing-user-controls-in-separate-assemblies.aspx, gdzie autor umieszczał kontrolki w projekcie Silverlight Application po wyrzuceniu z niego niektórych plików. Ten pomysł w obecnym wydaniu Silverlight się nie sprawdził, co prawda strumień z .xap był odczytywany, ale ładowanie assembly kończyło się u mnie niepowodzeniem... Wtedy w adresie URI (parametr metody OpenReadAsync klasy WebClient) zamiast adresu do pliku .xap dałem adres do pliku .dll i ... zadziałało!

W obejrzanym przeze mnie później (niestety!) webcaście o dynamicznym ładowaniu bibliotek również w URI jest podawana ścieżka do pliku .dll, skopiowanego ręcznie do katalogu ClientBin aplikacji webowej.

3. W aplikacjach Windows mamy MessageBox, a co mamy w Silverlight?

HtmlPage.Windows.Alert('Message')

4. Jakiś czas temu pisałem o problemie z dodaniem referencji do serwisu WCF w Visual Studio. Gdy teraz korzystałem z Visual Studio 2008 z SP1 (beta) ten problem nie wystąpił.

Książka o Silverlight 2 (beta 2) już sprzedaży !

Laurence Moroney Introducing Microsoft Silverlight 2.0

piątek, 18 lipca 2008

ASP.NET MVC Preview 4

Ze stron CodePlex można już pobrać ASP.NET MVC Preview 4. Na blogu Scotta Guthrie można znaleźć informacje nt. najnowszej wersji.

czwartek, 17 lipca 2008

Silverlight 2 beta 2 vs. WPF - odcinek 4

Ograniczenia Silverlight 2 beta 2 w stosunku do WPF, które mi się ostatnio objawiły:

zdarzenia myszy: m.in brak obsługi prawego przycisku i kółka do przewijania, brak comboboxa (!), strona XAML w aplikacji jako UserControl, tekst: m.in brak FlowDocument i RichTextBox, brak DrawingBrush ...

GridSplitter: podobnie jak część kontrolek znajduje się w przestrzeni Windows.Controls.Extended, nie jest widoczny w Expression Blend, a jest pokazywany z poziomu Visual Studio 2008 ...

Nawigacja: działa ze stronami HTML, URI ze stroną XAML aplikacji nie wydaje się być dopuszczalne ...

TileBrush: w Expression Blend w panelu Properties w sekcji Brushes brakuje zakładki "Tile brush". Z kolei, gdy w panelu Resourses kliknie się prawym przyciskiem myszy na zdefiniowane przez nas wcześniej wypełnienie rodzaju ImageBrush, to pojawia się możliwość ustawienia "tile mode". Jednak przy próbie wyboru wypełnienie obiektu znikało... W końcu pojawił mi się nieoczekiwany błąd w programie Expression Blend, wskutek czego musiał zostać zamknięty (!)

Motion Path: wygenerowanie animacji po torze ścieżki nie jest możliwe (klasa DoubleAnimationUsingPath nie istnieje)

ciąg dalszy nastąpi ...

piątek, 11 lipca 2008

Silverlight 2 beta 2 vs. WPF - odcinek 3

Kolejne ograniczenia Silverlight 2 beta 2 w stosunku do WPF, które mi się ostatnio objawiły: brak efektów bitmapowych, LayoutTransform, elementów layout'u - m.in WrapPanel i DockPanel. Dodatkowo znowu udało mi się doprowadzić do UNKNOWN ERROR w runtime, gdy URL do pliku video wyeksportowałem w Expression Blend do postaci zasobu ...

Ciąg dalszy nastąpi ...

środa, 9 lipca 2008

Silverlight 2 beta 2 vs. WPF - odcinek 2

Różnice między Silverlight 2 a WPF wyliczone są m.in na stronach:
http://jimmangaly.blogspot.com/2008/04/differences-between-wpf-and-silverlight.html
http://jimmangaly.blogspot.com/2008/06/whats-new-in-silverlight-2-beta-2.html
http://blogs.msdn.com/silverlight_sdk/archive/2008/06/04/what-s-new-in-silverlight-2-beta-2.aspx

Z pewnością w Silverlight 2 przydałyby się takie elementy znane z WPF jak: możliwość podmiany stylu, dziedziczenie styli, triggery, dynamiczne resourcy (do łatwej zmiany skórki w locie), więcej możliwości w bindingu, itd.

Cieszyć mogą elementy, których nie spotkamy w dotychczasowych wydaniach WPF: Deep Zoom oraz Visual State Manager.

Jeśli chodzi o Deep Zoom, to koniecznie trzeba zapoznać się z narzędziem Deep Zoom Composer. Tworzy strukturę katalogów, w których są przechowywane w różnych jakościach poszczególne części dodanych wcześniej do galerii obrazków. Ta struktura opisana jest w specjalnym pliku XML, który wiążemy z odpowiednią kontrolką. DTC pozwala wygenerować gotowy projekt Silverlight z obsługą odpowiednich zdarzeń (wraz z aplikacją ASP.NET).

Visual State Manager znacznie ułatwia tworzenie szablonów dla kontrolek poprzez definicję stanów i tranzycji. Jest to wygodniejsze niż korzystanie z bardziej uniwersalnych triggerów w WPF.
http://www.interact-sw.co.uk/iangblog/2008/06/10/visual-state
http://timheuer.com/blog/archive/2008/06/04/silverlight-introduces-visual-state-manager-vsm.aspx

poniedziałek, 7 lipca 2008

Silverlight 2 beta 2 vs. WPF - odcinek 1

Ile WPF-a mieści się w Silverlight 2 beta 2? Postanowiłem odpowiedzieć sobie na to pytanie badając to praktycznie i próbując zrealizować sztandarowe przykłady z WPF-a w Silverlight.

Jak do tej pory wyszły mi pewne niedostatki/bugi:

- brak propercji IsSynchronizedWithCurrentItem. W scenariuszu master-details korzystanie ze wspólnego DataContext jest utrudnione. Przy zmianie pozycji na liście master trzeba obsłużyć odpowiedniego eventa i ręcznie ustawić aktualnie wybraną pozycję jako kontekst danych w details.

- przy podpinaniu template'ów do kontrolek: w Expression Blend 2.5 June CTP podgląd w trakcie designu jest poprawnie generowany, natomiast w Visual Studio 2008 oraz w trakcie wykonania pokazywany jest UNKNOWN ERROR. Podpięcie szablonu do kontrolki z poziomu kodu rozwiązuje problem.

- w kontrolce Listbox ustawianie koloru tła oraz obwódki nie działa. Problem można obejść przez zdefiniowanie szablonu.

- przy tworzeniu efektu lustrzanego odbicia: brak klasy VisualBrush utrudnia odbijanie elementów GUI złożonego z kontrolek innych niż obrazki i elementy video.

- binding do XML oraz do propercji innego obiektu zdają się nie być dostępne (?) (w Expression Blend nie są aktywne).

- przy zastosowaniu transformacji Skew wypełnienie transformowanego obiektu staje się puste -;)

Ciąg dalszy nastąpi ...

wtorek, 1 lipca 2008

Microsoft.VisualStudio.ServicesProxy.dll a tworzenie referencji do serwisu WCF w Silverlight 2 Beta 2

Otóż próbowałem dziś skorzystać z WCF z poziomu Silverlight 2 Beta 2. Mimo że wzorowałem się na tutorialu, to w praktyce wystąpił problem z wygenerowaniem referencji w projekcie Silverlight do serwisu WCF znajdującego się w tym samym solution. Ponieważ zajęło mi ładną chwilę czasu, myślę że warto o tym napisać.

Po różnorakich próbach praktycznych i szukaniu przyczyny - w końcu na stronie http://www.itwriting.com/blog/665-more-silverlight-visual-studio-setup-hassles.html natrafiłem na informacje, że nie jestem z tym problemem odosobniony. Także wyskakujący błąd przy zamykaniu Visual Studio nie przydarzył się tylko mnie. Jak się okazuje, wystarczy przed instalacją Silverlight tools usunąć Microsoft.VisualStudio.ServicesProxy.dll, a instalator wgra nowszą wersję tej biblioteki i wtedy problemy znikną.

czwartek, 12 czerwca 2008

Najlepiej ocenione prace z portalu Codeguru

Na stronie Microsoft zostały umieszczone najlepiej ocenione artykuły z roku 2007. Nie chciałbym się chwalić, ale wśród nich znalazł się również mój artykuł o Cardspace, napisany w dwóch częściach.

http://www.microsoft.com/poland/developer/techniczne/codeguru.mspx

niedziela, 8 czerwca 2008

Silverlight 2 Beta 2 - wydany !

Ze strony http://silverlight.net/GetStarted/ można pobrać:
- Silverlight 2.0 Beta 2 (runtime + SDK)
- Expression Blend 2.5 June Preview 2008
- Deep Zoom Composer
- Microsoft Silverlight Tools Beta 2 for Visual Studio 2008

Deep Zoom Composer pozwala wykorzystać nową funkcjonalność w Silverlight, pozwalającą zarządzać kolekcjami obrazków (przykład na witrynie http://memorabilia.hardrock.com/)

Zmiany Beta 2 w stosunku do Bety 1 są opisane m.in pod linkami: http://weblogs.asp.net/scottgu/archive/2008/06/06/silverlight-2-beta2-released.aspx, http://msdn.microsoft.com/en-us/library/cc645049(VS.95).aspx

Oto niektóre z nich:
- nowa kontrolka TabControl
- przeniesienie wielu kontrolek z SDK do runtime
- edycja template'u kontrolki za pomocą nowego Expression Blend
- Visual State Manager - ułatwia tworzenie template'ów dla kontrolek - dla poszczególnych stanów kontrolki (np. przycisk wciśnięty) definiujemy za pomocą designera widoki oraz parametry przejścia z jednego stanu do drugiego (runtime generuje sam animacje). Nie trzeba samemu pisać żadnego kodu ani definiować obiektów Storeboard, wystarczy sam designer! VSM zostanie również dodany do WPF w tym roku w późniejszym okresie.
- dodanie wsparcia dla pisma odręcznego, UI Automation Framework, kolekcji DeepZoom
- udoskanalenia w animacjach, w systemie graficznym i multimediach, w kontrolce DataGrid, Calendar, w data binding, w korzystaniu z Isolated Storage
- poprawiona kompatybilność z WPF 3.5 (z kolei do samego WPF 3.5 zostaną dodane pewne rozszerzenia w .NET 3.5 SP1)
- komunikacja sieciowa: wywołania międzydomenowe z politykami bezpieczeństwa, wywołania sieciowe w wątku w tle, komunikacja duplex (serwer sam się może komunikować z klientem), ułatwiona komunikacja z usługami Web Service (nowy projekt w Visual Studio o nazwie Silverlight-enabled WCF Service), wsparcie dla ADO.NET Data Services (w .NET 3.5 SP1), dodanie LINQ to JSON

Jak widać w Becie 2 wprowadzono sporo nowych elementów, w dodatku niektóre elementy nie występują jeszcze w .NET 3.5 i on również będzie rozszerzany (m.in w SP1). Sporo się dzieje w ostanim czasie, oj sporo.

Wrażenia z pierwszego CodeCamp w Polsce

Będąc dzisiaj na pierwszej konferencji w Polsce sygnowanej nazwą CodeCamp (http://www.codecamp.pl/), współorganizowaną przez Krakowską Grupę Developerów .NET - wpadła mi myśl, aby coś o tym tutaj napisać. A może w ogóle zacznę od tej pory opisywać tutaj przebieg różnych imprez informatycznych, aby coś urozmaicić? Zobaczymy...

Wrażenia jak najbardziej pozytywne, zarówno pod względem prezentacji, jak i innych kwestii. Kilka - może subiektywnych uwag - co do tematyki niektórych prezentacji.

Ad. Trendy w rodzajach aplikacji w 2008 roku i dalej
Świat zmierza w kierunku usług... W przypadku usług biznesowych, już teraz takie usługi są świadczone klientom. Ten trend wydaje się dość trafiony... Przypomniał mi się jednak również wtedy artykuł http://www.pcworld.pl/news/152900/Windows.7.na.zywo...pierwsza.oficjalna.zapowiedz.html (chociaż dziś nie było nic wspominane o systemach operacyjnych). Moja refleksja - czy na pewno chcemy takiego postępu w systemie operacyjnym, w którego część lub większość funkcjonalności byłaby udostępniana jako zdalne usługi? Czy trzeba by płacić abonament za ich używanie co miesiąc? Wszelkie serwisy są dobre dla tych, co mają stałe łącza - ale przecież jest jeszcze wiele miejsc na świecie, w tym w Polsce, gdzie są problemy z dostępem do szerokopasmowego Internetu. Zresztą zobaczymy - do Windows Seven upłyną jeszcze 2 czy 3 lata, niekoniecznie początkowe zapowiedzi się muszą potwierdzić...

Ad. Zarządzanie projektem w metodologiach Scrum i Agile
Niebanalny pomysł, by samą prezentację ... potraktować jak projekt i dynamicznie zmieniać w niej priorytety i kolejność zagadnień w iteracjach agendy. Zawarta sentencja, że programiści najlepiej wiedzą jak sobą zarządzać, w pełni zgodna z moim odczuciem i codziennymi obserwacjami.

Ad. Nowoczesne aplikacje webowe
Visual Studio 2008, ASP.NET 3.5, LINQ, Silverlight 2 - w pełnej krasie i na żywo

Ad. Integration Services w SQL Server 2008
Język SSIS, odpowiednik jakby WF-a (sam autor prezentacji nie wykluczył w przyszłości integracji z WF) do wyciągania danych z różnych źródeł. Można do bloków w przepływie pisać skrypty (VB.NET i C#!). Wczytanie danych z Excela czy bazy danych, ich sprawdzenie poprawności czy zapis do innej postaci - to kilka klocków w modelu przepływu! Z kolei narzędzie do optymalizacji danych analizuje zakresy rozmiarów kolumn, a nawet samo ustala wzorce wyrażeń regularnych na podstawie zbioru otrzymanych danych!

Myślę, że trzeba jeszcze wspomnieć o wielu nagrodach rozdawanych publice za aktywność: płytkach z Windows Vista Ultimate i Windows Server 2008, grubych książkach do certyfikatów i nie tylko, koszulkach (były też cenne nagrody w konkursach, a każdy uczestnik piłkarzyków dostał Vistę).

Tak więc z pewnością warto było poświęcić sobotę na CodeCamp.

sobota, 7 czerwca 2008

Nowe frameworki Microsoftu na bazie .NET 3.5

Pozwolę sobie dzisiaj na taką refleksję z podsumowaniem zbiorczym.

Niecały rok temu ukazał się framework "Acropolis" CTP1 do szybkiego budowania interfejsów graficznych w Windows Forms i WPF. Zdaje się, że potem zostały prace nad nim zawieszone, następnie postanawiono jakoś kontynuować pomysł. Zobaczymy, czy coś z tego wyniknie...
http://windowsclient.net/Acropolis/

W ostatnim czasie pojawiają się frameworki Microsoftu na bazie dopiero co wydanego przed paroma miesiącami .NET 3.5. Tak więc mamy wydane: Silverlight 2 beta 1 (a lada dzień beta 2), .NET Framework 3.5 Service pack 1 Beta (m.in ADO.NET Data Services Framework, ADO.NET Entity Framework, rozszerzenia ASP.NET 3.5), ASP.NET MVC Preview 3.

Ale jakby tego było mało, pojawiają się jeszcze inne frameworki:

- Microsoft Parallel Extensions to .NET Framework 3.5, June 2008 CTP (co prawda kolejna wersja, ale tutaj o tym frameworku zdaje się jeszcze nie wspominałem) - tworzenie w prosty sposób w .NET aplikacji równoległych, co pozwoli wykorzystać możliwości procesorów wielordzeniowych
http://www.microsoft.com/downloads/details.aspx?FamilyId=348F73FD-593D-4B3C-B055-694C50D2B0F3&displaylang=en

- Microsoft Project Code Named "Velocity" CTP1 - informacja ujawniona stosunkowo niedawno, framework ma zapewniać buforowanie danych dowolnego rodzaju (m.in obiektów CLR, dokumentów XML czy danych binarnych) w pamięci wielu komputerów jednocześnie. Pierwsza wersja CTP oferuje m.in możliwość przechowywania w rozproszony sposób sesji ASP.NET, co pozwoli tworzyć bardziej skalowalne aplikacje w tej technologii.
http://www.microsoft.com/downloads/details.aspx?FamilyId=B24C3708-EEFF-4055-A867-19B5851E7CD2

- Managed Extensibility Framework June 2008 CTP - uproszczenie tworzenia w .NET rozszerzalnych aplikacji poprzez definiowanie punktów, z których mogą potem korzystać osoby tworzące rozszerzenia dla aplikacji.
http://code.msdn.microsoft.com/mef/Release/ProjectReleases.aspx?ReleaseId=1133

Tak więc przyszłość dla platformy .NET zapowiada się intesująco. Przynajmniej na obecną chwilę wydaje się, że platforma ta będzie rozwijana o nowe frameworki, które będą za nas rozwiązywać coraz więcej spotykanych na co dzień typowych problemów. Ciekawe czy Microsoft postąpi znów według zasady kolejnego przyrostu i kiedyś .NET 3.5 wraz z tymi nowymi frameworkami zostanie opatrzony nazwą .NET 4.0?

czwartek, 5 czerwca 2008

Silverlight 2 Beta 2 w tym tygodniu !

Zapowiada się chyba wysyp nowości. Wczoraj ASP.NET MVC Preview 3, a dziś wiadomość, że w tym tygodniu ma się ukazać Silverlight 2 Beta 2 (z możliwością stosowania w projektach komercyjnych). Towarzyszyć mu mają Expression Blend 2.5 June 2008 oraz Microsoft Silverlight Tools beta 2 for Visual Studio 2008. Silverlight 2.0 RTM planowany jest na wakacje 2008.

http://www.microsoft.com/presspass/press/2008/jun08/06-03TechEdDevPR.mspx

http://michaelsync.net/2008/06/03/news-silverlight-2-beta2-will-be-coming-this-week

http://weblogs.asp.net/olakarlsson/archive/2008/06/04/silverlight-2-beta-2-available-this-week.aspx

http://blogs.msdn.com/silverlight_sdk/archive/2008/06/03/silverlight-2-beta-2-releasing-soon.aspx

Zmiany w Silverlight 2 Beta 2 według informacji z ostatniego z wyżej umieszczonych linków:
- dodanie kontrolki TabControl
- przeniesienie wielu kontrolek z SDK do runtime oraz zwiększenie kompatybilności z WPF
- uproszczenie stosowania szablonów w kontrolkach przez wprowadzenie Visual State Manager'a

Czekam więc na publikację tej bety!

środa, 4 czerwca 2008

ASP.NET MVC Preview 3

Dzisiejszy dzień warty zapamiętania z uwagi na fakt ukazania się kolejnej wersji ASP.NET MVC oznaczonej jako Preview 3:

http://go.microsoft.com/?LinkID=8955108
http://www.theserverside.net/news/thread.tss?thread_id=49573

Nowa wersja zawiera obiekty mock, znane z bibliotek testów jednostkowych – Moq 2.0

czwartek, 15 maja 2008

Silverlight w Linuxie już jest!

Na stronie http://tirania.org/blog/archive/2008/May-13-1.html zamieszczono informację, że powstało wydanie Silverlight 1.0 na platformę Linux (dla Firefox 2 i 3). Prace nad wydaniem wersji dla Silverlight 2.0 trwają. Co prawda po instalacji wtyczki z dołączonego instalatora, nie będziemy mogli odtwarzać plików multimedialnych - jednak po samodzielnej kompilacji kodu jest to możliwe. Na razie wtyczka nie współpracuje też z ostatnimi rozwojowymi Firefox 3. Niemniej jednak mimo tych początkowych niedogodności, należy uznać to znaczny krok do przodu! Wydaje się, że dzięki wielu platformom Silverlight odniesie sukces.

wtorek, 13 maja 2008

ASP.NET MVC - koniec z Web Forms ?!

http://www.microsoft.com/poland/developer/techniczne/tworzenie_aplikacji.mspx - pod tym adresem znajduje się ciekawy artykuł o szykowanej przez Microsoft alternatywie do Web Forms w ASP.NET - ASP.NET MVC.

VS 2008 i .NET 3.5 SP1 beta - nowe elementy!

http://weblogs.asp.net/scottgu/archive/2008/05/12/visual-studio-2008-and-net-framework-3-5-service-pack-1-beta.aspx - pod tym adresem umieszczono opis poprawek w Visual Studio 2008 SP1 i .NET 3.5 SP1. Co ciekawe będą też nowe elementy, m.in w:
- ASP.NET/AJAX (m.in ASP.NET Dynamic Data, ASP.NET Routing Engine, lepsza obsługa historii przeglądarki w AJAX)
- Windows Forms (nowe kontrolki)
- WPF (m.in shader effects, integracja z Direct3D)
- wsparcie dla SQL Server 2008
- ADO.NET Entity Framework
- ADO.NET Data Services ("Astoria")

czwartek, 6 marca 2008

Internet Explorer 8 beta także już jest !!!!

Microsoft udostępnił także Internet Explorer 8 w wersji beta 1. Oj! Zapowiada się ten miesiąc ciekawie.

Silverlight 2.0 beta 1 już jest !!!!

Microsoft udostępnił nam dla Silverlight 2 Beta 1:
- runtime
- SDK
- dokumentację
- narzędzia dla Visual Studio 2008
- Expression Blend 2.5 March 2008 Preview

Tak więc, jest czym wypełnić wolny czas ...

czwartek, 28 lutego 2008

3 x 2008 faktem !

Ten fakt również jest godny odnotowania - umowna premiera Windows Server 2008, SQL Server 2008 oraz Visual Studio 2008 (3 x 2008) dziś przeszła już do historii -:)

niedziela, 24 lutego 2008

Silverlight 2.0 beta 1 tuż, tuż ...

Dosyć dawno nic nowego nie napisałem, zresztą nie było ku temu specjalnej okazji. Tym razem odnotuję istotny fakt - Silverlight 2.0 beta 1 zbliża się i ma być lada dzień, a dokładniej 5-tego marca !!! O nowej funkcjonalności zdaje się, już kiedyś wspominałem. Fakt, że wtyczka ma zajmować tylko 4.3MB robi wrażenie -:) A tutoriale trzeba koniecznie przeczytać! Pomijając już fajne features znane z WPF i łatwą migrację aplikacji Silverlight do WPF, moją uwagę zwróciła kontrolka kalendarza!

poniedziałek, 4 lutego 2008

Visual Studio Team System 2008 na żywo



Czy wspaniałe technologie coś znaczą bez dobrych narzędzi do pracy zespołowej z wsparciem metodologii prowadzenia projektu? Czy życie nie mogłoby być prostsze, gdy za pomocą jednego narzędzia zintegrujemy pracę developera, architekta, testera i project managera? Ostatnie dwa tygodnie z hakiem rozpoznawałem możliwości Visual Studio Team System 2008. Aby nie zostało to tylko w mej głowie, pozwoliłem sobie wizualnie utrwalić czynności, które wykonywałem (na powyższym slideshow). Może się to komuś do czegoś przyda, a osobom nie mającym w ogóle styczności z VSTS pozwoli szybko zobaczyć co można zrobić mając taki soft (wszak teraz się upowszechnia kultura obrazkowa -:). Poniżej trochę szczegółów.


1.Środowisko - używałem do tego dwóch różnych konfiguracji:

- maszyny fizycznej: TFS 2008, VSTS 2008 Development Edition, VSTS Web Access 2008 Power Tool (z maszyną kliencką z przeglądarką internetową, Team Explorer 2008 i VSTS 2008 TFS MSSCCI Provider + Visual Studio 6 + Visual Studio 2003);

- maszyny wirtualnej: TFS 2008, VSTS 2008 Team Suite, VSTS Web Access 2008 Power Tool, VSTS 2008 TFS Power Tools - December 2007 Release, TFS Admin Tool, MS Excel 2003, MS Project 2003 (o zgrozo! - na 1GB ramu fizycznej maszyny, dla małego testowego projektu dało się nawet całkiem sprawnie pracować; w sumie z umieszczeniem tych konfiguracji powinno być odwrotnie, ale tak wyszło z pewnych przyczyn - na maszynie wirtualnej mogłem z kolei eksperymentować dowolnie, sam zresztą wszystko na niej postawiłem i skonfigurowałem).


2. Elementy rozpoznania:

- funkcjonalność VSTS 2005: Wypróbowałem funkcjonalność z VSTS 2005 (znaną mi m.in z dwóch niezłych książek o VSTS 2005) na VSTS 2008, zaskoczenia nie było - wszystko działa tak jak w starszej wersji, oczywiście wyłapałem pewne drobne różnice (np. zmienione niektóre menu, zastąpienie build type mającym więcej możliwości build definition);

- zmiany w VSTS 2008: Microsoft dostarcza listę wszystkich zmian w dokumentacji do VSTS. Elementy nowej funkcjonalności, które wypróbowałem: porównywanie folderów, adnotacje (świetnie informują kiedy dana linijka kodu została zmieniona, przez kogo, w jakim celu), build definition (zamiast build type, daje możliwość continuus integration - automatyczny build po każdym check-in, jak też automatyczne odpalanie buildów co jakiś okres), metryki kodu (jego ocena na podstawie np. jego skomplikowania, złożoności dziedziczenia), data source wizard (przy testach data driven);

- integracja z innym oprogramowaniem: wypróbowałem korzystanie z TFS 2008 z poziomu Visual Studio 6 i 2003 (dzięki MSSCCI Provider i Team Explorer w tle) oraz integrację z MS Excel i MS Project 2003 (dzięki Team Explorer w tle);

- rozszerzenia Microsoft do TFS / VSTS: wypróbowałem VSTS Web Access 2008 Power Tool (zarządzanie projektem z poziomu przeglądarki internetowej, Team Explorer instaluje się tylko na serwerze, nie u klienta), VSTS 2008 TFS Power Tools - December 2007 Release (Build Notification - powiadomiania na pasku zadań o team buildach, dodatkowe polityki przed check-nem np. wymóg skomentowania changeseta, Best Practises Analyzer, najbardziej fajna jest z pewnością wizualna customizacja szablonu projektu), TFS Admin Tool (dla administratorów TFS ułatwia zarządzanie uprawnieniami dla TFS, SharePoint Services i Reporting Services).


P.S Aby było ciekawiej dodam, że Microsoft już teraz pracuje nad następcą VSTS 2008 o kodowej nazwie "Rosario" (w internecie CTP November 2007 - obraz maszyny wirtualnej + dokumentacja).

środa, 30 stycznia 2008

Po przerwie ...

Minął prawie miesiąc od ostatniego mojego posta. Nie oznacza to, że nie było nic godnego odnotowania przez ten czas, wręcz odwrotnie. W najbliższym czasie poruszę parę zagadnień.

piątek, 4 stycznia 2008

DIGGING DEEPER - odtajnienie źródeł pomarańczowej alternatywy

Otóż na wszystkie pytania z trzech ostatnich moich postów, jak i na wiele więcej bardziej podstawowych czy wysublimowanych odpowiada Adam Nathan w swoich książkach Windows Presentation Foundation Unleashed i Silverlight 1.0 Unleashed. (Nagłówkiem "DIGGING DEEPER" są oznaczone niektóre uwagi w tych dziełach -:)

Autor jest pracownikiem Microsoft (senior software development engineer), ma swój wkład w rozwój .NET, uczestniczy w konferencjach developerskich. Ma bezpośrednie kontakty z zespołami tworzącymi opisane przez niego technologie, co rzutuje istotnie na sposób pisania. Jego książka o WPF jest chyba najlepiej napisaną książką informatyczną jaką kiedykolwiek przeczytałem. Wszystko wyjaśnione koncepcyjnie - z perspektywy zespołu tworzącego WPF, wiadomo dlaczego to i to zostało zrobione tak a nie inaczej, jakie czyhają na developerów pułapki itd. Jednocześnie zarysowana jest jasno kompozycja, jak i dużo szczegółów czy praktycznych przykładów. Oprócz rzeczy powszechnie wykorzystywanych w WPF, nie brakuje ciekawostek z zakresu multimediów, dokumentów z kolorowymi adnotacjami czy nawet syntezowania i rozpoznawania mowy!

Historyczna dygresja: Przy okazji tutaj przypomniało mi się, że w "Avalon" Beta 1 z maja 2005 również wymagał do odtworzenia multimediów Windows Media Player 10, a instalacja Microsoft Speech API SDK była potrzebna do obsługi mowy - czyli w gruncie rzeczy niewiele się zmieniło w tych rzadziej używanych elementach WPF. Nawiasem mówiąc to kluczowe koncepcje WPF tj. event routing, drzewo logiczne i wizualne, nawigacja przetwały jeszcze z czasów "Avalon" CTP November 2004, na bazie którego za starych dobrych czasów wygłosiłem obszerną (godzinną w wersji skróconej - sic!) prezentację "Avalon - pierwsze kroki" w marcu 2005 w KGD.NET -:)

Książka o Silverlight jest utrzymana w podobnej tonacji jak ta o WPF, więc jest również świetna, choć - jako druga w kolejności czytania - wywarła już na mnie mniejsze wrażenie. Miejscami zawiera sample z dzieła o WPF (np. niemal identyczne niektóre przykłady czy uwagi), pewne koncepcje występujące w Silverlight odziedziczone z WPF są jakby bardziej skrótowo wyjaśnione i nie zawsze po kolei. Zdaje się, że dla dogłębnego zrozumienia najlepiej najpierw przyczytać pierwszą książkę (co zresztą we wstępie drugiej książki autor sugeruje -:).

SILVERLIGHT: DIGGING DEEPER

Zgodnie z wcześniejszą zapowiedzią pora teraz na Silverlight:

1. Czy ustawienia w Silverlight są zależne od ustawień na stronie HTML?
2. Czy plik z XAML musi być umieszczony w tej samej domenie, co strona z Silverlight?
3. Co musimy wybrać w ustawieniach kontrolki Silverlight, by uzyskać przezroczyste tło?
4. Co lepiej wybrać na tło w kontrolce Silverlight: kolor Transparent czy kolor identyczny z body hostującej strony HTML? Dlaczego?
5. Przeznaczenie parametru enableHtmlAccess w kontrolce Silverlight.
6. Czy elementy UIElement są rozszerzalne w Silverlight 1.0?
7. Czy ten sam XAML może dać różne efekty w WPF i Silverlight?
8. Czy domyślna czcionka w Silverlight i WPF jest taka sama?
9. Czy w Silverlight można użyć przestrzeni nazw http://schemas.microsoft.com/winfx/2006/xaml/presentation zamiast http://schemas.microsoft.com/client/2007?
10. Różnica w zapisie propercji Name pomiędzy Silverlight 1.0 a WPF.
11. Czy w Silverlight możemy użyć property element do wyrażenia propercji o prostym typie, tak jak w WPF?
12. Czy w Silverlight 1.0 dane punktu można zapisać w XAML bez pomocy konwertera?
13. Różnica w zapisie attached property pomiędzy Silverlight 1.0 a WPF w przypadku obiektu klasy, która zawiera tę propercję. Czy zapis: Canvas Left='100' jest w Silverlight poprawny?
14. Czy zadziała w Silverlight następujący kod Java Script: e.Fill = 'Red'; e2.Fill = e.Fill; ?
15. Który z zapisów odwołania się do attached property jest poprawny w kodzie Java Script w Silverlight: e.Canvas.Left = 10 czy e["Canvas.Left"] ?
16. Czy kontrolka Silverlight 1.0 może być zainicjowana bez statycznego XAML?
17. Czy nazwy elementów tworzonych za pomocą metody CreateFromXaml muszą być inne od nazw już występujących elementów?
18. Co jest jednostką miary w Silverlight a co w WPF?
19. Czy Silverlight wspiera czcionki zainstalowane na maszynie klienta (np. Calibri w Windows Vista)?
20. Jaka jest domyślna czcionka w Silverlight?
21. Co się stanie z tekstem w TextBlock z ustawieniem FontWeight='Bold'?
22. Czy Silverlight wspiera efekt pochylenia dla czcionek bez natywnego wsparcia?
23. Czy kontrolka Silverlight może pobierać wiele plików spakowanych w jednym pliku ZIP?
24. Które z następujących formatów są wspierane przez Silverlight 1.0: JPEG, GIF, BMP, PNG?
25. Co się stanie, jeśli obrazek nie mógł zostać załadowany?
26. Czy wycentrowanie elementu można uzyskać za pomocą XAML-a w Silverlight 1.0?
27. Czy można samemu obsłużyć prawy przycisk myszy w Silverlight 1.0?
28. Które zdarzenia są wspierane przez Silverlight 1.0: rollover, drag & drop, podwójne kliknięcie, przewinięcie rolki?
29. Co się stanie, jeśli kursor przechwyconej myszy wyjdzie poza obszar kontrolki Silverlight?
30. Sposób na zaimplementowanie drag & drop oraz customowego kursora.
31. Czy zdarzenia klawiatury mogą być obsługiwane w elementach innych niż root?
32. Czy zawsze naciśnięcie każdego klawisza/kombinacji klawiszy dotrze do kontrolki Silverlight? Od czego to może zależeć?
33. Kiedy tryb full-screen może być zainicjowany i z czego to wynika?
34. Który z klawiszy jest obsługiwany w trybie full-screen: Enter, Esc, Tab?
35. Czy można "pełnoekranowy" Silverlight łączyć z HTML?
36. Czy w trybie full-screen wspierana jest transparentność?
37. Co się stanie, jeśli w trybie full-screen otworzymy okno (np. z komunikatem)?
38. Na bazie jakiego obiektu przeglądarki (mającego związek z AJAX) zbudowany został obiekt downloader?
39. Czy rozszerzenie pliku ZIP pobieranego przez Silverlight może być dowolne?
40. Czy rozszerzenie pliku ZIP z plikami czcionek pobieranego przez Silverlight 1.0 może być dowolne?
41. Jakie zdarzenie jako jedyne jest wspierane przez event trigger w Silverlight 1.0?
42. Które z wymienionych akcji są wspierane przez Silverlight 1.0: BeginStoryBoard, PauseStoryBoard, StopStoryBoard?
43. Dlaczego należy unikać animacji wielkości tekstu w Silverlight? Co należy zrobić z tekstem, aby polepszyć sytuację?
44. Jakie formaty audio i video są wspierane przez Silverlight?
45. Kluczowa różnica między sposobem realizacji obsługi audio/video w WPF a Silverlight.
46. Czy na wszystkich systemach operacyjnych możemy odtwarzać audio/video za pomocą Silverlight?
47. Czy Silverlight wspiera odtwarzanie pliku Windows Media Video ze ścieżką dźwiekową mp3?
48. Czy Silverlight odtworzy plik mp3 330 kbps?
49. Czy Silverlight odtwarza video w trybie full-screen?
50. MediaElement ma większą funkcjonalność w WPF czy w Silverlight?
51. Czy Silverlight pozwala dla odtwarzanego utworu odczytać informację o artyście i albumie?
52. Czy WPF pozwala dla odtwarzanego utworu odczytać informację o artyście i albumie?
53. Czy Silverlight wspiera DRM?
54. Trzy protokoły pobierania plików multimedialnych na maszynę klienta wspierane przez Silverlight.
55. Czy Silverlight umożliwia streaming multimediów?
56. Czy Silverlight obsługuje playlisty ASX?
57. Czy Silverlight obsługuje timeline markers?
58. Dlaczego powinno się unikać jawnego określania propercji Width i Height w MediaElement? Co można zamiast tego zrobić z plikiem multimedialnym?
59. Które narzędzie Microsoftu z linii Expression automatycznie generuje odtwarzacz multimedialny ze skórkami w XAML?

środa, 2 stycznia 2008

WPF: DIGGING DEEPER - PART TWO, LONG TOO!

Z uwagi na świąteczną przerwę, dzisiejszy post będzie jeszcze dłuuższy niż poprzedni. A więc kontynuujmy ...

36. Czy przy błędzie w bindingu zostanie wyrzucony wyjątek?
37. Jakim znakiem rozpoczyna się ścieżka do bindingu bieżącego elementu kolekcji?
38. Czy w jednym bindingu można używać jednocześnie składni XPath i Path?
39. Czy docelowa propercja w bindingu musi być dependency property?
40. Co się wykonuje wcześniej w bindingu: walidator czy konwerter?
41. Jakie korzyści daje CompositeCollection?
42. Do czego służą MultiBinding i PriorityBinding?
43. Styl bez nazwy odnosi się tylko do klas o zadeklarowanym typie, czy także do klas dziedziczących z tego typu?
44. Czy styl może odnosić się do wielu rodzajów kontrolek jednocześnie?
45. Co się stanie, jeśli styl odnosi się do propercji, która nie występuje w kontrolce związanej z tym stylem?
46. Czy data trigger może odnosić się do dependency property?
47. Czy więcej niż jedna propercja może stanowić warunek wyzwalający trigger?
48. Czy nazwanie elementu w szablonie powoduje, że jest on dostępny z poziomu kodu proceduralnego?
49. Czy może być template bez x:Key?
50. Do czego służy template binding? Jaki jest jego obszar działania?
51. Czy template binding działa z obiektem typu Color?
52. Co zrobić w przypadkach, kiedy template binding nie działa? Czym można go zastąpić?
53. Do czego służą elementy w szablonie o nazwie PART_XXX?
54. Co się stanie, jeśli w słowniku brak stylu oczekiwanego przez aplikację?
55. Czy WPF udostępnia zdarzenie zmiany themy w systemie Windows?
56. Czy plik themes\Aero.NormalColor.xaml jest brany pod uwagę tylko przy ustawionym stylu Aero w Windows Vista?
57. Zalety i wady użycia StreamGeometry.
58. Na co pozwala CombinedGeometry?
59. Czy w WPF można wskazać odpowiednik obiektu Graphics z Windows Forms?
60. Co to jest hit testing?
61. Visual hit testing a input hit testing.
62. Czym się różni Polyline od Polygon?
63. Co dokładnie oznacza kolor Transparent?
64. Za pomocą jakiego rodzaju Brush możemy w WPF bardzo łatwo uzyskać "efekt odbicia lustrzanego" ? Czy odbicie przycisku pozostanie w pełni funkcjonalną kontrolką?
65. Jeśli zastosujemy w WPF 3.0 bitmap effect, to czy obraz wyświetlany przez VisualBrush będzie poprawnie odświeżany?
66. Czy bitmap effect może być generowany sprzętowo?
67. Czy WPF wspiera w kodzie zarządzanym pisanie własnych efektów bitmapowych?
68. PerspectiveCamera a OrtographicCamera.
69. Czym się różni AxisAngleRotation3D od QuaternionRotation3D?
70. Dlaczego mamy DoubleAnimation, BooleanAnimation, itd. zamiast generycznej klasy Animation?
71. Czy w obiekcie animacji musimy określić propercje From i To?
72. Animacja trwa 10s. Ustawimy jej propercję AutoReverse na true. W jakim czasie wykona się animacja?
73. Czy EventTrigger może być aktywowany zdarzeniem, nie będącym routed event?
74. Jak korzystając z obiektu Storyboard powtórzyć sekwencję zawartych w nim animacji?
75. Chcemy stworzyć tzw. "fisheye efekt" (najechany myszką element powiększa się, najbliższej sąsiadujące elementy również ulegają powiększeniu, choć w mniejszym stopniu). Czy Storyboard może odwoływać się do innego obiektu niż ten, który zawiera event trigger (z tym Storyboard)?
76. Powiązania i różnice między klasami: SoundPlayer a SoundPlayerAction, MediaPlayer a MediaElement i MediaTimeline, SoundPlayer a MediaPlayer.
77. Zależność klas audio/video od Win32 PlaySound API i Windows Media Player API
78. Czy za pomocą SoundPlayer odtworzymy plik .mp3?
79. Jaka wersja odtwarzacza Windows Media Player w systemie Windows jest wymagana do działania MediaPlayer, MediaElement i MediaTimeline? Co się stanie, jeśli nie będzie odpowiedniej wersji odtwarzacza, a będziemy chcieli w WPF odtworzyć audio/video?
80. Ciekawostka: Jak zrobić snapshot bitmapowy dla odtwarzanego video?
81. Po co jest propercja SlipBehavior w StoryBoard?
82. Czy korzystając z MediaPlayer możemy odtwarzane pliki multimedialne zaszywać w assembly?
83. Ograniczenia dotyczące ścieżek w MediaElement, MediaTimeline, MediaPlayer w stosunku do innych elementów WPF i z czego to wynika.
84. Związek klas rozpoznawania i syntezy mowy z Microsoft Speech API.
85. Jaki głos jest dostępny standartowo w Windows Vista?
86. Czy można zsyntetyzowaną mowę zapisać do pliku?
87. Co to jest SSML?
88. Czy można zsyntetyzowaną mowę zmieszać z zawartością pliku .mp3?
89. Co musi być zainstalowane i uruchomione w systemie Windows XP, aby rozpoznawanie mowy działało? Co należy zrobić, aby uaktywnić rozpoznawanie mowy w Windows Vista?
90. Co to jest SRGS?
91. Czy trzeba pisać kod, aby wypowiadane słowa automatycznie zapisywały się do pola TextBox w WPF w systemie Windows Vista?
92. FlowDocument a FixedDocument
93. Czy dokument XPS jest statyczny czy dynamiczny?
94. Czy WPF zawiera przeglądarkę dokumentów XPS i pozwala je tworzyć?
95. Różnice między FlowDocumentScrollViewer, FlowDocumentPageViewer, FlowDocumentReader, DocumentViewer.
96. Jakie kontrolki wspierają dodawanie adnotacji do dokumentów?
97. Które z poniższych kontrolek wspiera WPF: TextBox, DataTimePicker, MonthCalendar, NumericUpDown, MaskedTextBox, NotifyIcon?
98. Czy kontrolka WPF może być hostowana w aplikacji Win32?
99. Czy kontrolka Win32 może być hostowana w aplikacji WPF?
100.Ciekawostka: Jak obraz video z kamery internetowej umieścić w swojej aplikacji?
101. Czy kontrolka Windows Forms może być hostowana w aplikacji WPF?
102. Czy kontrolka WPF może być hostowana w aplikacji Windows Forms?
103. Jakie są ograniczenia hostowanych w aplikacji WPF kontrolek wykonanych w innych technologiach w stosunku do kontrolek WPF?
104. Związek między klasą Window a HwndSource.
105. Dlaczego kontrolki Windows Forms hostowane w WPF domyślnie przyjmują wygląd "klasyczny" bez obsługi themy systemu Windows? Co należy uczynić, by wyświetlały się z themą?
106. Czy rozmiar czcionki o tej samej wartości liczbowej w WPF i Windows Forms jest taki sam? Ile wynosi stosunek czcionki w Windows Forms do czcionki w WPF?
107. Czy można hostować kontrolki ActiveX w WPF?
108. Czy można bezpośrednio hostować kontrolki ActiveX w WPF?
109. W jaki sposób można hostować kontrolkę ActiveX w aplikacji WPF standalone, XBAP, luźnym pliku XAML?
110. Ciekawostka: Jak nazywa się kontrolka ActiveX wyświetlająca zdalny pulpit w systemie Windows i jak można osadzić ją w swojej aplikacji?
111. Czy można hostować kontrolkę WPF w kontrolce ActiveX?
112. UserControl a custom control
113. Dwa sposoby wiązania elementów w szablonie kontrolki z logiką w kodzie proceduralnym.
114. Etapy w procesie pozycjonowania i określania rozmiarów elementów zawartych w panelu.
115. Dwie metody, które trzeba nadpisać, aby stworzyć panel układający elementy według customowej logiki.
116. Czy metoda Measure elementu musi być wywołana w metodzie MeasureOverride panelu?
117. Czy metoda MeasureOverride może zwracać podany jej rozmiar availableSize?
118. Jaka jest logika layout'u w panelu wstążki (ang. ribbon) w MS Office 2007?
119. Jakie narzędzie z SDK służy jako profiler WPF (m.in pokazuje najbardziej zasobożerne elementy wizualne, sposób renderowania danego elementu - software/hardware itd)?
120. Jak nazywa się sterownik w Windows Vista umożliwiający wydruk dokumentów XPS?

To tyle na razie ciekawostek z WPF, następne posty o podobnej stylistyce będą na temat Silverlight.