środa, 2 czerwca 2010

Imagine Cup 2010 - Wyniki

Nieładnie się chwalić i ponoć nie wypada ale tym razem zrobię wyjątek ;) Otóż dziś, zgodnie z oficjalnymi wynikami na stronie konkursu Imagine Cup 2010 (drużyna RHEA której jestem członkiem) zajęła w skali światowej:
Aplikacje można sobie poklikać online http://rhea-ie.imaginecup2010.net  i obejrzeć sceen cast http://rhea-ie.imaginecup2010.net/about/

Dziękujemy organizatorom i cieszymy się z wyników! 

Pozdrawiam,
Jacek Ciereszko 

 

sobota, 29 maja 2010

UserControls w Silverlight i MVVM [WSSG]

Zapraszamy wszystkich chętnych na siódme spotkanie grupy Warsaw Silverlight Study Group (WSSG). Spotkanie rozpocznie się 8 czerwca (wtorek), o godzinie 18:00 w siedzibie firmy Microsoft w Warszawie (al. Jerozolimskie 195A - zobacz na mapie).   
WSSG logo

Agenda spotkania:
18:00 – 19:20 Grzegorz Wiśniewski: „Wstęp do tworzenia własnych kontrolek w WPF i Silverlight”;
19:20 – 19:40 Przerwa;
19:40 – 21:00 Michał Korzunowicz: „MVVM – Gdzie? Co? I jak? Na podstawie prostej gry typu shooter ”;

Wtorkowe spotkanie rozpoczniemy od prezentacji Grzegorza, który już od 8 lat zajmuje się rozwojem komercyjnego oprogramowania.  
Tworzenie kontrolek z wykorzystaniem Windows Forms nastręczało bardzo często dużo problemów szczególnie dla początkujących programistów. Możliwości jakie oferuje WPF i Silverlight otwierają drogę do tworzenia rozwiązań efektowych w sposób efektywny. Grzegorz podczas swojej prezentacji postara się przedstawić jak łatwo można uszczegółowić kontrolkę czy w zależności od potrzeb zaprojektować ją od podstaw.

Po przerwie gościć będziemy Michała Korzunowicza, który na co dzień pracuje w firmie Creadhoc, technologią Silverlight interesuję się od 2 lat.
Z prezentacji Michała dowiemy się co powinno znajdować się w każdej części wzorca i jaka jest ich rola. Zobaczymy jak je ze sobą połączyć i przedstawić dane w widoku przy pomocy Data Bindingu.
Udział w spotkaniu jest bezpłatny. Wskazana rejestracja (tutorial do rejestracji).
Zapraszamy!

niedziela, 2 maja 2010

Silverlight Center And Scale Behavior

W ostatnim poście pisałem o tym jak wyśrodkować i skalować aplikację. Tym razem poszedłem o krok dalej i stworzyłem prosty behavior który z łatwością podłączymy do każdej aplikacji i nie musimy modyfikować istniejącego kodu.

Co należy zrobić?
1. Ściągnąć kod bahaviora:  http://gallery.expression.microsoft.com/en-us/CenterAndScale
2. Podłączyć kod do aplikacji:
<usercontrol .....="" ....="" xmlns:behavior="clr-namespace:CenterAncScaleBehavior;assembly=CenterAncScaleBehavior" xmlns:interaction="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity">

    <interaction:interaction.behaviors>
        <behavior:centerancscalebehavior>
    </behavior:centerancscalebehavior>

    <grid> ... </grid>
</interaction:interaction.behaviors>
</usercontrol>
3. Gotowe. W 95% aplikacji powinno działać. :]

Jeżeli używacie Microsoft Expression Blend-a, wystarczy przeciągnąć klasę na aplikację (patrz video).

Prezentacja, a więc behavior w akcji (66 sekund)


Prosty przykład działania
Aplikacja bez behaviora:  http://bit.ly/cVinEC
Aplikacja już z podłączonym bahaviorem: http://bit.ly/ba8UsI

Nie bangla?
Behavior powinień działać dla więkoszości aplikacji ale niekoniecznie dla wszystkich. Jeśli macie specyficzne ustawienia, stałe rozmiary dla UserControl itp., to bez zmian w aplikacji niestety skalowanie nie zadziała.

Pozdrawiam,
Jacek Ciereszko

Jak wyśrodkować i skalować aplikację przy użyciu ViewBox-a

Istnieje wiele sposobów na skalowanie i wyśrodkowanie aplikacji Silverlight w przeglądarce. Zwykle używamy dwóch kontrolek typy Grid do pozycjonowania oraz panela (np. Canvy) do skalowania aplikacji.

Takie rozwiązanie może wyglądać np. tak:

<UserControl … >
    <Grid x:Name="LayoutRoot" Background="White">
        <Grid HorizontalAlignment="Center" VerticalAlignment="Center">
            <Canvas x:Name="scalePanel" VerticalAlignment="Top" HorizontalAlignment="Center">
                …
            </Canvas>
        </Grid>
    </Grid>
</UserControl>
Zaprezentowany sposób przy odpowiednim dopieszczeniu działa bez zarzutów ale można prościej. Jak? Otóż używając kontrolki ViewBox która posiada wewnętrzne mechanizmy skalowania zawartości, a umieszczona w Gridzie, zapewni kompleksowe rozwiązanie.

Dobre rozwiązanie:
<UserControl … >
    <Grid x:Name="LayoutRoot" Background="White">
        <Viewbox>
            ...
        </Viewbox>
    </Grid>
</UserControl>

Jak znaleźć ViewBoxa?

Ci którzy używają Silverlight 4 posiadają kontrolkę ViewBox natywnie wbudowaną i dostępna w każdym typie aplikacji. Natomiast dla aplikacji które zostały stworzone w Silverlight 3, ViewBox jest dostępny w pakiecie Microsoft Silverlight Toolkit.

Demo

Stwórzmy prostą aplikację która będzie zawierać: przycisk, pole tekstowe oraz czerwony kwadrat. Aplikacja będzie posiadała także odpowiedni margines, w postaci: 100 od lewej, 50 od góry, 100 od prawej i 50 od dołu. Na początku aplikacja nie będzie ani skalowana, ani wyśrodkowana:

<UserControl … >
    <Grid x:Name="LayoutRoot">
        <Grid Margin="100, 50, 100, 20">
                <StackPanel Orientation="Horizontal">
                    <Button Width="100" Height="100" Content="test"/>
                    <TextBlock Text="Button" Width="100" Height="100" />
                    <Rectangle Width="100" Height="100" Fill="Red"/>
                </StackPanel>
        </Grid>
    </Grid> 
</UserControl> 

Uruchom demo: RUN

Natomiast jeśli wprowadzimy drobną modyfikację i dodamy kontrolkę ViewBox, otrzymamy pożądany efekt.
<Grid x:Name="LayoutRoot">
        <Viewbox>
            <Grid Margin="100, 50, 100, 20">
                    <StackPanel Orientation="Horizontal">
                        <Button Width="100" Height="100" Content="test"/>
                        <TextBlock Text="bottom" Width="100" Height="100" />
                        <Rectangle Width="100" Height="100" Fill="Red"/>
                    </StackPanel>
            </Grid>
        </Viewbox>
    </Grid>

Uruchom demo: RUN (Zmień wielkość okna żeby zobaczyć skalowanie)
Link do źródeł: SilverlightCenterApplication.zip


References


 

Jacek Ciereszko

czwartek, 8 kwietnia 2010

Windows Phone 7 i PRISM [WSSG]

Zapraszamy wszystkich chętnych na szóste spotkanie grupy Warsaw Silverlight Study Group (WSSG). Spotkanie rozpocznie się 13 kwietnia (wtorek), o godzinie 18:00 w siedzibie firmy Microsoft w Warszawie (al. Jerozolimskie 195A - zobacz na mapie).   

Agenda spotkania:
18:00 – 19:20 Marcin Kruszyński: "Aplikacje Silverlight na Windows Phone 7";

19:20 – 19:40 Przerwa;
19:40 – 21:00 Jan Marowski: "Navigation Framework w Silverlight 3";


Wtorkowe spotkanie rozpoczniemy prezentacją Marcina Kruszyńskiego. Marcin na co dzień pracuje jako programista i architekt w centrum badawczo-rozwojowym w firmie Comarch, CTO sektora ERP. Interesuje się wieloma aspektami platformy .NET oraz specjalizuje w implementacji bogatych interfejsów graficznych aplikacji, w oparciu o WPF i Silverlight. Pasjonat nowych trendów i technologii. Zawodowo technologią Silverlight zajmuje się od połowy 2008 roku. Prowadził warsztaty z Silverlight w ramach KGD.NET w Krakowie. 

Marcin opisał swoją sesję następująco: "Umiesz pisać aplikacje w Silverlight? A czy wiesz, że dysponując tą wiedzą możesz łatwo zacząć tworzyć rozwiązania na platformę Windows Phone 7? Hola! - zakrzykną sceptycy. Podobieństwo w tworzeniu aplikacji w oparciu o te same narzędzia, nie oznacza że aplikacje będą takie same! Tak, są różnice. Jakie? O tym opowiemy na prezentacji. Oprócz pewnych ograniczeń i zmian, postaramy się także przybliżyć nowe możliwości wynikające z funkcjonalności samego telefonu.".

Natomiast po przerwie gościć będziemy Jan Marowskiego. Jan opisał siebie następująco: "Na co dzień zajmuję się tworzeniem oprogramowania dla sektora bankowego, ubezpieczeniowego i telekomunikacyjnego w firmie Infovide-Matrix. Przygodę z Silverlightem rozpocząłem od wersji 2.0 preview 5. Od tego czasu starałem się z różnymi skutkami zainteresować Silverlightem osoby decyzyjne u mnie w firmie, co zaowocowało aktualnie prowadzonym przeze mnie projektem w Silverlight 3." 

Jan w trakcie swojej prezentacji przedstawi nam mechanizmy Routingu w Silverlight. Będzie to przegląd standardowych mechanizmów, jak i możliwości jaki daje nam framework PRISM.

Strona spotkania: http://ms-groups.pl/wssg/6_spotkanie

Udział w spotkaniu jest bezpłatny. Wskazana rejestracja (tutorial do rejestracji).


Zapraszamy! 

 

poniedziałek, 15 marca 2010

Silverlight 4.0 RC

Kilka godzin temu Microsoft wydał nową wersję Silverlighta 4.0 RC :)Wraz z nią pojawiło się także wiele nowości i ułatwień, których nie będę tutaj wymieniał bo jest ich zbyt wiele. Pozwolę sobie tylko polecić Wam bloga Tima Heuera (http://timheuer.com/blog/archive/2010/03/15/whats-new-in-silverlight-4-rc-mix10.aspx), a sam oddale się w zgłębiania tego co dostarczyła nam ta nowa wersja :)

PS. polecam zerknąć na Windows Mobile 7 ;)

Linki:

środa, 3 marca 2010

Piąte spotkanie Warsaw Silverlight Study Group (WSSG)


Zapraszam wszystkich chętnych na piąte spotkanie grupy Warsaw Silverlight Study Group (WSSG). Spotkanie rozpocznie się 9 marca (wtorek), o godzinie 18:00 w siedzibie firmy Microsoft w Warszawie (al. Jerozolimskie 195A - zobacz na mapie).   

WSSG logo 
Agenda spotkania:
18:00 – 19:20 Bartosz Pampuch: "Silverlight: Tips & Tricks czyli o czym warto wiedzieć, korzystając z Silverlight";

19:20 – 19:40 Przerwa; 
19:40 – 21:00 Arkadiusz Wójcik: "Prezentacja narzędzi"RadControls for Silverlight" stworzonych przez firmę Telerik";


Spotkanie rozpoczniemy prezentacją Bartka. Bartek jest dyrektorem centrum badawczo-rozwojowego w firmie Comarch, CTO sektora ERP. Na co dzień kieruje zespołem badawczym rozwijającym platformę do budowy systemów w modelu SaaS oraz grupą realizującą nowoczesne interfejsy oparte o Silverlight i WPF. Jego zespół buduje również aplikacje na Microsoft Surface. Specjalizuje się m.in. w nowoczesnych metodykach prowadzenia projektów informatycznych oraz architekturach systemowych. Od 2007 r. – Microsoft MVP (pierwotnie w kategorii Visual Developer - Team System, aktualnie Visual Developer – Connected System).


Swoją sesję Bartek opisuje następująco: "Gdy zaczynałem zabawę z Silverlight (a wcześniej WPF), nurtowało mnie pytanie – jak zrealizować efekty znane z ekranów menu gier komputerowych. Domyślałem się, że jest to możliwe, choć początkowo zagadnienia te wydawały się trudne w realizacji. Z biegiem czasu poznałem sposoby budowy własnych paneli (w tym animowanych), metody szybszego i prostszego tworzenia animacji, oraz niuanse niektórych kontrolek. Aplikacje stały się znacznie atrakcyjniejsze. Gdy wydawało mi się, że umiem już sporo, zacząłem stosować wzorzec MVVM i nagle okazało się, że moja "wiedza" wywrócona została do góry nogami. Konieczne było wypracowanie nowych zasad połączenia ViewModeli z animacjami i samym Blendem. Po drodze sporo kłopotów sprawiły także Behaviors, problemy z samym Blendem, asynchroniczna natura Silverlight i niektóre błędy tej technologii. Było ciekawie :), a o tym czego się nauczyłem opowiem w trakcie sesji."


Po przerwie gościć będziemy Arka. Arek jest studentem IV-tego roku Informatyki na Politechnice Warszawskiej. W minione wakacje pracował w firmie Animation Project S.L. na Majorce jako programista ASP.NET oraz WPF. Po powrocie, przez ostatnie 5 miesięcy, współtworzył w technologii Silverlight portal do zarządzania portfelem inwestycyjnym z wykresami 3D.


Arek w swojej prezentacji przedstawi nam zestaw kontrolek firmy Telerik. Zaprezentuje nam najciekawsze z nich – między innymi wykresy 3D, mapa oraz symulacja "Książki". Ponadto nie zabraknie porównania do darmowych rozwiązań.


Strona spotkania: http://ms-groups.pl/wssg/5_spotkanie

Udział w spotkaniu jest bezpłatny. Wskazana rejestracja (tutorial do rejestracji).


Zapraszam!
 

poniedziałek, 1 lutego 2010

Czwarte spotkanie Warsaw Silverlight Study Group (WSSG)

Zapraszam wszystkich chętnych na czwarte spotkanie grupy Warsaw Silverlight Study Group (WSSG). Spotkanie rozpocznie się 9 lutego (wtorek), o godzinie 18:00 w siedzibie firmy Microsoft w Warszawie (al. Jerozolimskie 195A - zobacz na mapie).   

 WSSG logo
Agenda spotkania:
18:00 – 19:20 Robert Kosek: "Prototypowanie aplikacji za pomocą SketchFlow. Microsoft Expreession Studio. Tips&Tricks.";

19:20 – 19:40 Przerwa;
19:40 – 21:00 Tomasz Kustra: "Binding, Convertery oraz moja własna kontrolka w Silverlight 3.0 i 4.0";


Spotkanie w lutym rozpocznie Robert Kosek. Robert na co dzień pracuje w firmie Datapolis.com na stanowisku RIA Designer/Developer gdzie zajmuje się rozwiązaniami opartymi o technologie Microsoft(.NET/Sharepoint). W trakcie swojej prezentacji przedstawi nam pakiet Microsoft Expression z szczególnym nastawieniem na SketchFlow. Dodatkowo całość będzie uświetniona zestawem ciekawych Tips&Tricków w Silverlightcie. 

Po przerwie gościć będziemy Tomasza Kustrę, osobę z 20 letnim doświadczeniem w IT, pracownika firmy CC Sp. z o.o. Warszawa. Tomasz przez lata pracował na różnych stanowiskach i zebrał niesamowity bagaż doświadczeń którymi chętnie podzieli się z nami w czasie prezentacji. Tomasz opowie nam o Bindingu w Silverlight i wszystkich aspektach z tym związanych. Zobaczymy jak powinno się tworzyć Convertery, a także walidować, grupować oraz filtrować dane. Tomasz pokaże także jak stworzyć swoją własną kontrolkę oraz wszelkiego rodzaju Property które pozwolą na swobodne jej używanie w kodzie XAML. 

Strona spotkania: http://ms-groups.pl/wssg/4_spotkanie/
Udział w spotkaniu jest bezpłatny. Wskazana rejestracja (tutorial do rejestracji).

Zapraszam!


 


 


 

poniedziałek, 30 listopada 2009

Trzecie spotkanie grupy Warsaw Silverlight Study Group (WSSG).

Zapraszam wszystkich chętnych na trzecie spotkanie grupy Warsaw Silverlight Study Group (WSSG). Spotkanie rozpocznie się 8 grudnia (wtorek), o godzinie 18:00 w siedzibie firmy Microsoft w Warszawie (al. Jerozolimskie 195A - zobacz na mapie).   


Agenda spotkania:
18:00 – 19:20 Bartosz Lipiński: "WCF RIA Services - Aplikacje biznesowe zorientowane na zasoby";

19:20 – 19:40 Przerwa;
19:40 – 21:00 Cezary Suchowolec: "Najciekawsze nowości w Silverlight 4 Beta";

Grudniowe spotkanie rozpoczniemy od tematu "WCF RIA Services - Aplikacje biznesowe zorientowane na zasoby" o którym opowie nam Bartosz Lipiński. W czasie tej sesji zobaczymy między innymi jak zacząć pracę z RIA Services, plusy i minusy tego rozwiązania oraz jak używać tej technologii w aplikacjach biznesowych.

Druga część spotkania będzie w całości poświęcona nowościom w Silverlight 4 które zaprezentuje nam Cezary Suchowolec. Sesja ta to esencja ze wszystkich nowości jakie niesie ze sobą nowy Silverlight 4 w wersji Beta. Dzięki kilku przydatnym demom, zobaczymy jak je używać oraz jak je zastosować w już działających aplikacjach.

Strona spotkania: http://ms-groups.pl/wssg/3_spotkanie/

Udział w spotkaniu jest bezpłatny. Wskazana rejestracja (tutorial do rejestracji).

Zapraszam!

środa, 18 listopada 2009

[Silverlight 4 nowości] WebBrowser

Kilka godzin temu pojawiła się nowa wersja Silverlighta 4, a wraz z nią setki nowości (tak, tak, nie przesadzam.. setki!!! J ). Te najważniejsze znajdziecie chociażby w artykule Bartłomieja Zassa czy też na blogu Tim'a lub Mike'a. Ja swoją przygodę rozpoczynam od kontrolki WebBrowser, a więc czegoś co pozwoli mi wreszcie na wyświetlenie kodu html w aplikacji Silverlight :]

Niestety nie wszystko tak pięknie działa jak byśmy mogli sobie to wymarzyć i już na początku zobaczymy, że kontrolka ta działa tylko gdy uruchamiamy aplikację jako "zainstalowaną lokalnie", czyli OutOfBrowser (OOB) i dodatkowo aplikacji powinna mieć włączony tryb działania z pełnymi uprawnieniami (to również nowości w Silverlight 4) jeśli chcemy oglądać strony które nie należą do nas (cross-domain-policy). Mimo to, kontrolka działa, a kod z niej wygenerowany wygląda jak z przeglądarki :)

Demo

Zaczynamy od instalacji Silverlight 4 (http://silverlight.net/getstarted/silverlight-4-beta/ ), a więc pobieramy Silverlight 4 Tools for Visual Studio 2010 i instalujemy (zakładam że macie już Visual Studio 2010 Beta 2 - download). Po instalacji tworzymy nowy projekt Silverlight i w momencie zapytania o wygenerowanie projektu Web, wybieramy z listy Silverlight 4 (patrz rysunek).


W nowym Visual Studio 2010 + Silverlight 4 mamy kolejną nowość w postaci pełnego edytora xaml-a, a więc Blend 3 nie będzie już nam aż tak potrzebny :]

WebBrowser

Dodajemy w XAML kontrolkę WebBrowser oraz nazwę, tak abyśmy mogli odwołać się do niej z code-behind. Np. w ten sposób:

<UserControl x:Class="SilverlightApplication1.MainPage"
   xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
   xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
   xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
   mc:Ignorable="d"
   d:DesignHeight="300" d:DesignWidth="400">
   <Grid x:Name="LayoutRoot" Background="White">
      <WebBrowser x:Name="webBrowser" />
   </Grid>
</UserControl>
Następnie w code-behind dodajemy ładowanie adresu:

public MainPage()
{
   InitializeComponent();
   this.Loaded += (o, e) => { webBrowser.Navigate(new Uri("http://microsoft.com", UriKind.Absolute)); };
}
Ostatnim krokiem jest włączenie opcji instalacji aplikacji (OOB) oraz włączenie potrzeby użycia większych uprawnień. Jeżeli nie włączymy zwiększenia uprawnień dla naszej aplikacji, będziemy mogli oglądać tylko strony które mają ustawiony dla nas cross-domain-policy lub strony wygenerowane z naszego kodu html (a więc poprzez opcję NavigateString, gdzie parametrem jest kod html).

W celu włączenia wszystkiego, klikamy prawym na projekcie Silverlightowym i wybieramy Properites:



Run and Fun

Jeśli wszystko się kompiluje, jesteśmy gotowi aby sprawdzić działanie naszej przeglądarki. Uruchamiamy aplikację i klikamy prawym klawiszem myszki gdziekolwiek. Z otwartego menu wybieramy opcję "Install …. onto this computer "


A następnie w nowym oknie opcję "Install". Zwróćcie uwagę, że skoro zaznaczyliśmy opcję potrzeby używania dodatkowych uprawnień, użytkownik otrzymuje o tym informację przed instalacją (patrz rysunek).


Kiedy aplikacja zainstalowana lokalnie uruchomi się, powinniśmy zobaczyć działającą stronę internetową wewnątrz naszej aplikacji Silverlight.




Pod prawym klawiszem myszki będziemy mieli menu prosto z przeglądarki, a nie z aplikacji Silverlight. Co fajniejsze, jeśli wejdziemy np. na http://youtube.com, zobaczymy że aplikacje Flash, czy też Silvelright również działają.

PS. W ramach zabawy próbowałem otworzyć moją aplikację Silverlight w aplikacji Silverlight, ale niestety, a raczej i dobrze!, Silverlight nie pozwolił zainstalować się ponownie z samego siebie. Aplikacja wykryła że jest zainstalowana. ;]

Moje demo

W ramach zabawy stworzyłem swoją mini przeglądarkę dostępną pod poniższym adresem (pamiętajcie o potrzebie jej zainstalowania przed użyciem):
Run demo

Przycisk "Przejdź" otwiera stronę spod wpisanego adresu, a "Hello World" generuje stronę z kodu html podanego jako string. Okno jest podzielone na dwie części, lewa jest to kontrolka WebBrowser która wyświetla stronę html, a prawa to Rectangle który jest malowany nowym typem brusha, "HtmlBrush". W momencie załadowania się strony, na Rectangle wywołuję metodę "Redraw()" i maluje wszystkim co znajduje się w kontrolce WebBrowser. Możemy także go odmalować klikając przycisk "Odmaluj".

Jak zapewne sami zauważyliście, próbowałem zrobić coś z Projection, niestety kontrolka WebBrowser sama poddaje się tym operacjom, ale już wyświetlona zawartość jest normalnie odwzorowana. A szkoda, już myślałem że będę mógł czytać sobie bloga do góry nogami :D

Kod źródłowy do dema:
WebBrowserDemo.zip
Słowem zakończenia, chciałem tylko podkreślić że wymienione funkcjonalności to nie wszystko. W internecie już możemy się doszukać przykładów z odwołaniem do kodu javascript i na odwrót, a więc całkiem pokaźny zbiór nowych możliwości.

Pozdrawiam i lecę do innych nowinek.. :]

Jacek Ciereszko