czwartek, 2 września 2010

SILVERLIGHT w świecie HTML 5

Dzisiaj ukazał się artykuł Brada Beckera (Director of Product Management, Developer Platforms) odnoszący się do przyszłości Silverlighta wobec pojawienia się standardu HTML 5. Autor zwraca uwaga na zależność pomiędzy standaryzacją a innowacyjnością, umieszczając Silverlighta jako produkt wyprzedzający niejako raczkujący standrad HTML 5. Brad zaznacza również ,iż Silverlight znacznie wykracza poza możliwości HTMLa 5 oferując znacznie większe możliwości w następującychj obszarach:
transmisja mediów: transmisja HD, Smooth Streaming ,Live BroadCasr Support,Multicast, Telekonferencje itd.
aplikacje komercyjne i gry:efekty 3d, responsywne oparte o wielowątkowość UI,zbiór kontrolek itd.
aplikacje biznesowe i korporacyjne: ponad 60 wbudowanych kontrolek, wspomagające wysoką produktywność środowiska programistyczne, rozbudowane możliwości wizualizacji danych (wykresy etc.), integracja z COM.
Poza wymienionymi obszarami auto wymienia przewagę Silverlighta w wydajności (wielowątkowość), spójności ( identyczny wygląd na różnych przeglądarkach),zaawansowanie technologii (Silverlight doczekał się już 4 wersji podczas gdy HTML 5 stawia pierwsze kroki), możliwości pracy poza przeglądarką.
Zachecam do zapoznania się z treścią .artykulu .
Moim zdaniem w różnorodnym świecie stron i aplikacji jest miejsce zarówno dla HTML 5 jaki i Silverlighta. Owszem HTML 5 oferuje niektóre cechy aplikacji pluginowych jak flash czy Silverlight i być może z uwagi na swój ustandaryzowany charakter będzie lepszym rozwiązaniem dla stron "popowych" , powszechnie dostępnych, przeglądanych z różnych przeglądarek, systemów operacyjnych itd. Lecz gdy spojrzymy w strone aplikacji biznesowych, czy transmisji wysokiej jakości video (np. wykorzystywancyh w VOD) to Silverlight nadal oferuje znacznie więcej zarówno dla użytkownika końcowego któy dostaje aplikację o bardzo bogatym interfejscie użytkownika jak i dla dostawców rozwiązań IT którym oferuje bardzo wysoką produktywność . Mam nadzieję ,że obydwie technologie nie będa rywalizowały lecz się uzupełniały dając użytkownikom komfort korzystania z nowoczesnych stron i aplikacji internetowych a programistom radość ich tworzenia. Nadzieje te nie wydają się być płonne gdyż gigant z Redmont wspiera zarówno rozwój Silverlighta jak i HTMLa 5

wtorek, 25 maja 2010

Zastosowanie DLR w aplikacjach biznesowych

Proces wytwarzania oprogramowania jest przedsięwzięciem ograniczonym w czasie oraz o ograniczonym budżecie. Jego przebieg zależy od przyjętej metodyki lecz w przypadku dużych projektów jego etapy mają charakter formalny i często są wykonywane przez różne zespoły (np. Podstawowy przebieg: analiza,projekt,implementacja,testy).To sprawia ,iż wszelkie zmiany w założeniach kosztują więcej im prace są bardziej zaawansowane. W przypadku oprogramowania „pod klucz” można takie sytuacje ograniczyć do minimum np. Poprzez odpowiednio przeprowadzoną analizę, prototypowanie etc. Inaczej się sprawy mają przy produktach „pudełkowych”, gdzie wszelka kustomizacja następuje na etapie wdrożenia. Niemożliwe jest stworzenie rozwiązania w pełni uniwersalnego, które spełni wymagania każdego klienta. Dlatego konsultanci potrzebują czegoś więcej niż rozbudowanych opcji konfiguracyjnych, narzędzia które pozwalałoby na etapie wdrożenia zaimplementować specyficzne wymagania klienta bez cofania produktu do działu produkcji i wytwarzania osobnej wersji dla konkretnego klienta co znacznie zwiększyłoby koszty (czasami jest to nieuniknione). Jako projektant oprogramowania musiałem rozwiązać ten problem w aplikacjach napisanych w Silverlight. Z pomocą przyszedł mi DLR (Dynamic Language Runtime) który pozwala używać języków skryptowych w środowisku .NET. Jest to „nakładka” na CLR działająca poprzez refleksję. Obsługuje ona takie języki jak Python czy Ruby. Na prostym przykładzie postaram się pokazać korzyści jakie możemy odnieść udostępniając osobie wdrażającej system możliwość pisania skryptów. Python i Ruby dla platformy .NET mają swoje odpowiedniki IronPython i IronRuby, które są projektami prowadzonymi na codeplex.com. Istnieją dwa sposoby integracji DLR z aplikacją Silverlight. Pierwszy to odwołanie się do obiektów SL w kodzie HTML (poprzez JavaScript) strony hostującej xapa. Druga metoda polega na wykorzystaniu odpowiedniego API w kodzie zarządzalnym aplikacji SL. W moim przykładzie skorzystam z drugiej opcji. Załóżmy ,że implementujemy program do wysyłania faktur. Nasz dział produkcji stworzył bardzo dobrze działającą aplikację, której funkcjonalność zadawala większość klientów. Niestety jeden z potencjalnych nabywców oznajmił nam , że kupi aplikację jeśli data wystawienia będzie automatycznie ustawiania na dzisiejszą a kwota w momencie wysłania będzie przeliczała się według podanego kursu (ps. Przedstawiane wymagania są trywialne mało życiowe , mają na celu tylko pokazanie potencjalnego zastosowania DLR). W przypadku braku narzędzia dla konsultanta/wdrożeniowca musiałaby powstać osobna wersja w dziale produkcji, która musiałaby przejść testy etc. Można tego uniknąć implementując tą funkcjonalność w DLR na etapie w wdrożenia. W przykładzie wykorzystam język IronPython. By rozpocząć pracę należy pobrać odpowiednie biblioteki (Microsoft.Scripting i IronPython) ze : strony projektu . Nasza aplikacja wygląda następująco :

By korzystać z DLR musimy dodać odpowiednie referencje:

Następnie w konstruktorze głównej klasy tworzę obiekty typu ScriptEngine i ScriptScope oraz poprzez SetVariable ustawiam zmienną w DLR odnoszącą się do obiektu TextBoxa. Ostatnią czynnością jest utworzenie skryptu i jego wykonanie. W metodzie podpiętej pod przycisk wyślij ustawiam kolejną zmienną (textbox z kwotą). Oraz wywołuje uruchamiam skrypt mnożący wpisaną kwotę przez wartość kursu.

Po uruchomieniu wpisaniu kwoty 2 i naciśnięciu przycisku dostajemy następujący rezultat:

Jaki widać przy pomocy skryptu DLR udało nam się ustawić wartość domyślną oraz zrealizować prostą logikę przetwarzania danych. Oczywiście projektując system należy przemyśleć w których miejscach tego typu „hooki” będą dostępne dla wdrożeniowca oraz stworzyć warstwę pośrednią udostępniającą odpowiednie obiekty kodu zarządzalnego.

czwartek, 13 maja 2010

Wdrażanie Silverlight w organizacji

Dla wszystkich zainteresowanych Microsoft udostępnil dokument opisujący wdrożenie Silverlighta w organizacji autorstwa David Tesara. Artykul zawiera takie informacje jak: wymagania techniczne, polityka i sposoby instalacji, updaty, zarządzanie aplikacjami out-of-browser, troubleshooting etc. Wszystkich administratorów zarządzającymi sieciami w organizacjach zachęcam do lektury Silverlight 4 Deployment Guide

wtorek, 11 maja 2010

Architektura Silverlight

Mój dzisiejszy post będzie wprowadzeniem do technologii Microsoft Silverlight. Polecam go osobom, które jeszcze nie miały styczności z tym temat a chciałyby rozszerzyć swoją wiedzę. Silverlight należy do grupy technologii RIA (Rich Internet Application). Można za jego pomocą budować aplikacje przeglądarkowe o bogatym interfejsie użytkownika, często nieosiągalnym przy pomocy klasycznych rozwiązań webowych opartych o HTML. Z Silverlighta możemy korzystać po zainstalowaniu odpowiedniego plug-ina (dodatku) do przeglądarki.
W obecnej wersji (4.0) Silverlight wydaje się być dojrzałą technologią mogącą konkurować z Adobe Flash/ Flex. Jest on dostępny pod różne przeglądarki : IE, Mozilla, Chrome oraz systemy z operacyjne z rodziny Windows i MAC OS. Wadą jest brak wsparcia dla systemów unixowych. (Istnieje projekt Moonlight lecz nie nadąża on za rozwojem Silverlight). Do tej pory istniały dwa główne kierunki rozwoju: media (np. internetowa transmisja zimowej olimpiady w TVP, czy VOD na onet.pl) oraz aplikacje biznesowe. Na konferencji MIX10 zaprezentowano trzeci trend a mianowicie aplikacje na urządzenia mobilne pracujące pod kontrolą Windows Phone 7.
Podstawowym narzędziem developerskim dla SL 4.0 jest Visual Studio 2010 uzupełnione o narzędzie dla projektantów Expression Blend 3.
Architektura Silverlight
Plugin Silverlighta zainstalowany w przeglądarce pełni rolę integracyjną aplikacji SLz przeglądarką , prezentacyjną,oraz dostarcza okrojone środowisko uruchomieniowe .NET runtime. (wyrzuconych zostało wiele funkcji niepotrzebnych w SL np. biblioteki Windows Forms etc., inny jest również sposób kompilowania bibliotek dla SL)
Developerzy programujący aplikacje Silverlight mają dostępne dwa modele programowania:
JavaScript API for Silverlight oraz API kodu zarządzalnego oparte o okrojony zestaw bibliotek .NET for Silverlight.
Platforma Silverlight składa się z dwóch głównych komponentów:
Głównego modułu prezentacji oraz okrojonego środowiska .NET.
Moduł prezentacji zawiera komponenty i serwisy wykorzystywane w interfejsie użytkownika np.
kontrolki, odtwarzacze mediów, kontrola praw autorskich, wykorzystanie grafiki wektorowej, obrazów, animacji. Językiem opisującym warstwę prezentacji jest XAML (składniowo oparty na XML). Elementy warstwy prezentacji:
funkcje wejścia wyjścia (klawiatura, mysz, etc.) , renderowanie grafiki, odtwarzanie i zarządzanie mediami, deep zoom, kontrolki, data bindning, DRM, XAML.
Środowisko uruchomieniowe .NET Runtime dla Silverlight zawiera okrojone biblioteki .NET,
garbage collection oraz CLR (common language runtime). Część bibliotek jest zawartych w zainstalowanym w przeglądarce runtimie a część dostarczanych wraz z aplikacją w której są wykorzystywane np. UI Controls, XLINQ,Syndication,DLR etc. Elementy .NET Runtime w Silverlight to: Obsługa danych (LINQ, XLINQ), Podstawowe biblioteki .NET, wsparcie WCF,elementy WPF,CLR,DLR.
Architektura Silvelighta posiada wiele dodatkowych cech ułatwiających tworzenie aplikacji:
Isolated Storage (fragment dysku w którym możemy przechowywać dane aplikacji na komputerze klienckim do którego mamy dostęp z poziomu kodu zarządzalnego), programowanie asynchroniczne poprzez background worker thread wspomagający interakcje z użytkownikiem podczas przetwarzania danych,Open/Save File dialog,Serializacja,obsługa XML, obsługa drukarki, kamery, mikrofonu etc.
Aplikacja Silverlight ma postać pliku *.xap. Xap jest plikiem archiwum zip (wystarczy zmienić rozszerzenie na *.zip i możemy obejrzeć co jest w środku aplikacji Silverlighta) zawiera on skompilowaną aplikację, biblioteki dll z których korzysta aplikacja oraz roznego rodzaju resourcy z których korzysta aplikacja.
Wszystkich znających chociaż trochę środowsko .NET zachęcam do zapozniania się z tworzeniem aplikacji w Silverlight i przekonaniem się jakie to proste.
Swój post oparłem na artykule z msdn

środa, 21 kwietnia 2010

Relacja z Microsoft MIX 10


Witam
W moim pierwszym poście chciałbym się podzielić wrażeniami z konferenacji Microsoft MIX 10 w której miałem przyjemność niedawno uczestniczyć. Odbyła się ona w marcu 2010 w Las Vegas w hotelu Mandalay Bay. Było to dla mnie pierwsze tego typu wydarzenie w USA w którym brałem udział. Konferencje MIX organizowane przez Microsoft dotyczą nowości w technologiach Webowych. W tym roku motywem przewodnim był Windows Phone 7 który bazuje na technologii znanej do tej pory z przeglądarek a mianowicie SILVERLIGHTcie.Microsofot pokazywał go na swoich telefonach, które podobo tak się grzały, że nikt nie miał przyjemności dotknięcia najnowszego mobilnego dziecka Microsoft. Sprzęt wedługo plotek ma być dostępny na jesieni.Dla wszystkich zainteresowanych programowaniem na Windows Phone 7 , Microsoft udostępnił darmowe narzędzia do Silverlighta oraz XNA wraz z emulatorem telefonu http://www.silverlight.net/getstarted/devices/windows-phone/. Z racji moich zainteresowań sesje związane z Windows Phone traktowałem raczej jako ciekawostki niż wiedzę którą będę mógł wykorzystać od razu w praktyce.Skupiłem się na wykłądach związanych z zastosowaniem Silverlighta w aplikacjach biznesowych. Były to kwestie dotyczące wzorców projektowych (np. MVVM http://live.visitmix.com/MIX10/Sessions/EX14 )bezpieczeństwa (http://live.visitmix.com/MIX10/Sessions/EX16) oraz wiele innych.
Generalnie sesje skupiały się wokół trzech tematów: Windows Phone 7 (polecam obejrzenie Keynote z pierwszego dnia konferencji gdzie Scott Guthrie steruje przy pomocy telefonu działkiem strzelającym koszulkami http://live.visitmix.com/MIX10/Sessions/KEY01), Silverlight, Windows Azure uzupełniały je wykłady poruszające różne zagadnienia ze świata aplikacji internetowych np. Sharepoint, HTML 5, Good Practises etc.Zachecam wszystkich do oglądania filmów z sesji http://live.visitmix.com/Videos.
Kilka słów o organizacji:
Konferencja stała na dość wysokim poziomie organizacyjnym . Co kilka metrów stała osoba, od której można było uzyskać informację dotyczące np. lokalizacji sesji itp.
Przez cały czas na korytarzach dostępne były zimne i ciepłe napoje oraz drobne przekąski. Do minusów zaliczyłbym czasami niewystarczającą pojemność sal.
Przy ciekawszych wykładach obowiązywała zasada, kto pierwszy ten lepszy, później nie można było wejść do środka (ostatni szczęściarze znajdowali miejsca na podlodze pod ścianami)
Poza walorami czysto edukacyjnymi MIX to okazja do spotkań w ramach społeczności IT związanej z MICROSOFTem. Mieliśmy możliwości rozmowy z twórcami oprogramowania z Redmond zarówno podczas luźnych spotkań na terenie centrum konferencyjnego, jak i przy drinku podczas wspólnej imprezy w klubie LAX (hotel Luxor). Rownież Microsoft Polska zadbał o stronę towarzyską konferencji i zorganizował kolacje dla przedstawicieli swoich partnerów w której miałem przyjemność uczestniczyć.
Wyjazd na MIXa to również niezapomnianie wspomnienia o wymiarze turystycznym. Szalone Las Vagas, bliskość Wielkiego Kanionu, Doliny Śmierci, oraz chwila drogi przez pustynie do słoneczje Kaliforni sprawiają ,iż MIX jest to bardzo dobra okazja zarówno do uzupełnienia swojej wiedzy, zdobycia nowych doświadczeń, poszerzenia kontaktów oraz zobaczenia jednych z najpiękniejszych miejsc USA.
SZCZERZE POLECAM !!!