niedziela, luty 22, 2009

dotnetomaniak.pl

Ostatnio na blogu nie działo się wiele. Spowodowane było to po części moim obładowaniem różnymi projektami, pracą jak i częściowo chorowaniem.

Dziś chciałbym przedstawić jeden szczególny projekt. Światło dzienne ujrzał

dotnetomaniak.pl

Jest to portal agregacyjny typu http://dotnetkicks.com czy http://dotnetshoutout.com ale skierowany dla polskiej społeczności .NET.
Technicznie bliżej nam do tego ostatniego, gdyż wykorzystujemy udostępniony na codeplexie silnik KiGG. Na razie serwis jest w fazie beta, dlatego zachęcam do słania wszelkich uwag czy krytyk kiedy jeszcze możemy coś z tym zrobić. Na razie prócz mnie zamieszany jest także Jakub Malinowski a grafikę przygotował Michał Jałbrzykowski, ale gdyby ktoś chciał do nas dołączyć to niech również się kontaktuje.

Zachęcam do rejestrowania się i budowania społeczności .NET w Polsce.

środa, luty 18, 2009

Silverlight 2 in Action - Recenzja

Recenzję zacznę od napisania jakie miałem oczekiwania od tej książki. Chciałem książkę, która pokaże dla osób które mają już jako taką wiedzę odnośnie WPF'a jak niektóre rzeczy robi się w Silverlight'cie. Wiadomo, nie wszystko tu jest dostępne i czasem trzeba iść na około. Nie chciałem książki, która będzie przez 100 stron wałkować co to XAML.


W porządku. Jak już nakreśliłem jakie miałem oczekiwania mogę przystąpić do omówienia i recenzowania książki.

W pierwszym rozdziale następuje wprowadzenie o technologii Silverlight. Co to jest i z czym to się je. Jest trochę omówienia XAML'a ale 4 strony mogę przetrzymać.

Rozdział 2 przedstawia sposób użycia plugin-u, który posłuży nam za odtworzenie naszej aplikacji. Ciekawa sugestia odnośnie jak pluginy mogą się komunikować ze sobą za pomocą udostępnianych na zewnątrz metod. Trzeba będzie to przy okazji wypróbować.

Rozdział 3 omawia podstawowe kontrolki do layoutowania oraz TextBlock. Choć sądziłem, że w tym temacie niewiele ciekawego może być to jednak się myliłem. Cursor oraz elementy Run i Linebreak to coś co sądziłem jest dostępne do użycia tylko w klasie Document. Jak widać nie - można ich użyć do rozmieszczania tekstu także w TextBlock.

Rozdział 4 omawia interakcję z użytkownikiem. Prócz standardowych, omówione zostały także troszkę bardziej skomplikowane kontrolki jak np. InkCanvas. Nieznana wcześniej dla mnie kontrolka to Popup. Umożliwiająca uzyskanie w łatwy sposób wyskakującego, modalnego okna.

Rozdział 5 rozczarowuje. Omawia on data binding, jednak głównie podstawy ale mimo tego jest kilka rzeczy, których można się nauczyć. W moim przypadku była to informacja o tym, że grid w SL działa w trybie UI virtualization, jak też trochę informacji o konfiguracji Grid'a o których wcześniej nie wiedziałem (np. dostosowywanie wierszy oraz nagłówków). Ciekawie, ale bez rewelacji.

Tematem kolejnego (6.) rozdziału jest Networking and communication i zawiera podstawowe informacje jak korzystać ze źródeł danych w Silverlight. Omawia parę detali technicznych o których nie miałem wcześniej pojęcia, tak więc przydatność tego rozdziału jest jak dla mnie zadowalająca.

Rozdział 7 to zarządzanie cyfrową informacją czyli jak przygotować i odtwarzać audio i wideo. Rozdział ciekawy, pewnie dlatego, że przed przeczytaniem książki z tematem tym miałem niewielką styczność. Rozdział omawia też odtwarzanie zabezpieczonych danych. Na koniec dodano krótkie omówienie technologii DeepZoom

W kolejnym zostało omówione działania jakie możemy wykonywać na grafice w SL. Shape, Geometries oraz omówienie typów Brush'y to główna zawartość rozdziału z odrobinką transformacji na zakończenie. Niestety głównie podstawowe rzeczy.

Animacje to temat rozdziału 9. i jest to w zasadzie główny powód mojego czytania książki. W rozdziale opisane są typy animacji, i po części zaznaczone różnice występujące pomiędzy WPF a SL.

Zasoby i ich zarządzanie opisane są w rozdziale 10 i na szczęście duży jego fragment poświęcony VisualStateManger'owi - coś co chciałem dogłębniej zrozumieć.

Przedostatni rozdział to omówienie IsolatedStorage. Wspomnienie, iż taka przestrzeń jest dostępna dla naszych aplikacji w SL jest istotnet jednakże przykłady pokazujące jak użyć IsolatedStorage uznałbym za poniżej poziomu. Temat ten nie jest specyficzny dla SL i przykłady jak otworzyć plik w przestrzeni IsolatedStorage są wg. mnie chybione. Przykłady wykorzystania BackgroundWorkera też. Duży minus.

Na koniec omówiony został temat deploymentu. Z ciekawych rzeczy w tym rozdziale został pokazany przykład podmiany SplashScreen'a. Ogólnie rozdział na plus.

Podsumowując, książka w dobry sposób omawia technologię Silverlight 2, ale niestety moich potrzeb nie zaspokoiła. Mam nadzieję, że Foundation Silverlight 2 Animation będzie bardziej użyteczna.

poniedziałek, luty 09, 2009

Polskie komunikaty wyjątków w VS2008

Dziś będzie o:
Jeśli drażnią cię te polskie komunikaty wyjątków w VS i chciałbyś/-abyś to zmienić to przede wszystkim wytłumacz się dlaczego. Komunikaty wyjątków nie powinny być widoczne dla użytkownika, więc jedyna sytuacja, która wymagałaby takiej interwencji, a jest to poszukiwanie informacji w Internecie dlaczego dany wyjątek występuje. Wiadomo w języku angielskim znajdziemy więcej i komunikat po polsku może w tym przeszkadzać (oczywiście dużą częśc wyjątków możemy sobie po prostu przetłumaczyć). Są dwa rozwiązania takiej sytuacji.

Pierwsze:

    Thread.CurrentThread.CurrentCulture =


    Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");



Dodanie takich lini spowoduje, że kultura naszej aplikacji będzie ustawiona na angielską z językiem amerykańskim. Wyjątek powinien pokazać się po angielsku. Należy jednak pamiętać, że takie ustawienie zmieni zachowanie naszej aplikacji - formaty dat, kalendarz, znak waluty i wiele innych ustawień zależy od kultury aplikacji. Należy je dodawać tylko na chwilę, aby dowiedzieć się angielskiej wersji komunikatu o błędzie.

Drugie:
Bardziej permamentne. Skasowanie/zmiana nazwy/przeniesienie pliku z resource'ami w którym znajdują się komunikaty błędów. Nie sprawdzałem dla wszystkich wyjątków, ale dla kilku, dla których sprawdziłem działa:

%windir%\assembly\GAC_MSIL\mscorlib.resources\2.0.0.0_pl_b77a5c561934e089\mscorlib.resources.dll

Po zmianie trzeba zrestartować Visual Studio. Nie wiem jakie skutki uboczne ma takie rozwiązanie. Na razie żadnych nie zaobserwowałem.

Na koniec uwaga (zapożyczona od Scotta Hanselmana - na razie w formie tekstowej):

Works on my machine & Do it on your own risk.