Ładowanie Ładowanie

Artykuł > Silverlight 4 beta: przegląd nowości, które zdetronizują Flasha?

strony: 1 | 2 następna »
wydrukuj: print publikuj: wykop dodaj do flakera Dodaj jako nius na OSnews.pl! delicious

Silverlight 4 beta: przegląd nowości, które zdetronizują Flasha?

2009-11-20 09:08:00 | Bartłomiej Zass
Silverlight 4 beta: przegląd nowości, które zdetronizują Flasha?

Technologia Silverlight, będąca odpowiedzią Microsoftu na podejście do tworzenia bogatych aplikacji internetowych (RIA), jest jednym z najbardziej dynamicznie rozwijanych projektów firmy. Pierwsza odsłona Silverlight ujrzała światło dzienne na wiosnę 2007 roku. Oferowała jeszcze dość ograniczone możliwości - w szczególności wykorzystywana była do udostępniania mediów. Ogłoszony rok później Silverlight 2 wprowadził do przeglądarki zagadnienia znane z platformy .NET. Programistom umożliwił tworzenie logiki aplikacji w językach zarządzanych - C# czy Visual Basic, ale również w językach dynamicznych takich jak Ruby czy Python. Designerzy wykorzystywali bogactwo kontrolek oraz zaawansowane techniki databindingowe do szybkiego projektowania aplikacji biznesowych. Latem 2009 roku ukazała się kolejna, trzecia wersja platformy. Silverlight 3 pozwolił instalować aplikacje poza przeglądarką internetową, dodał m.in. wsparcie dla sprzętowej akceleracji grafiki, nowych formatów mediów, pozycjonowania 3D i wielu innych.

I wreszcie nadeszła czwórka

Niespełna pół roku później, 18 listopada 2009 roku na konferencji PDC w Los Angeles, Microsoft ogłosił publiczną wersję beta Silverlight 4. Jest to produkt przełomowy pod względem liczby oczekiwanych funkcjonalności - zaimplementowano ok. 70% tych, które zgłosili użytkownicy przez stronę http://silverlight.uservoice.com/. Pomimo tego, wtyczka Silverlight zajmuje nadal poniżej 5 MB, instalacja trwa około 10 sekund. W nowej wersji aplikacje ładują się 30% szybciej, a ich prędkość działania wzrosła prawie dwukrotnie. Oprócz wspieranych wcześniej przeglądarek, dodano oficjalne wsparcie dla Google Chrome.

Wśród nowych cech znalazły się między innymi: wsparcie dla drukowania, obsługa kamer internetowych i mikrofonów, obsługa schowka, „drag & drop" dla plików przeciąganych do aplikacji, obsługa prawego przycisku myszy, osadzanie stron HTML wewnątrz aplikacji Silverlight, multicasting dla mediów oraz wsparcie offline dla zabezpieczeń DRM.

Dodano także obsługę uwierzytelnienia dla klas pozwalających na połączenia sieciowe, bogatą kontrolkę RichText do edycji tekstu z wielopoziomowym "Undo", pełne wsparcie dla zaawansowanych formularzy z walidacją danych. Wprowadzono także możliwą elewację uprawnień dla aplikacji działających poza przeglądarką - mogą one teraz nie tylko uzyskać dostęp do systemu plików, ale również korzystać z obiektów COM - przez co na przykład aplikacja Silverlight może wykorzystać funkcje pakietu Office.

Nowe cechy adresują trzy główne grupy tematyczne:

  • Aplikacje Biznesowe
  • Media
  • Aplikacje działające poza przeglądarką

W dalszej części artykułu zostaną omówione krótko najważniejsze nowe cechy Silverlight 4, które wzbogacają możliwości w każdej z powyższych kategorii.


Aplikacje biznesowe

Drukowanie

Według  http://silverlight.uservoice.com/ możliwosć drukowania z poziomu aplikacji Silverlight była najbardziej oczekiwaną funkcjonalnością. W wersji czwartej wprowadzono obiekt PrintDocument, który po wywołaniu metody Print() wyświetla znane dobrze użytkownikom okno wyboru drukarki.

private void PrintButton_Click(object sender, RoutedEventArgs e)
{
PrintDocument pd = new PrintDocument();
pd.DocumentName = "Dokument do wydruku"; pd.Print(); }

Aby wysłać dokument do druku należy obsłużyć zdarzenie PrintPage obiektu PrintDocument. Wewnątrz niego wystarczy przekazać właściwości e.PageVisual obiektu PrintPageEventArgs element, który chcemy wydrukować. Może być nim dowolny obiekt z XAML, który dziedziczy po klasie UIElement - obiekt bitmapy jak i dynamicznie lub statycznie utworzone drzewo XAML (widoczne lub ukryte). Model zdarzeń pozwala na oprogramowanie stronicowania.

Obsługa prawego przycisku myszy

Dodano nowe zdarzenie - MouseRightButtonDown pozwalające obsłużyć prawy przycisk myszy wewnątrz aplikacji Silverlight. Dotychczas po kliknięciu prawym przyciskiem w przestrzeń aplikacji, użytkownik zawsze musiał zobaczyć standardowe menu odsyłające go do konfiguracji Silverlight (patrz zdjęcie poniżej).

Jeśli w zdarzeniu MouseRightButtonDown oznaczona zostanie właściwość e.Handled (klasy MouseButtonEventArgs) jako true, standardowe menu nie zostanie wyświetlone. Zamiast niego użytkownik ujrzy menu kontekstowe zaprojektowane graficznie w dowolny sposób przez programistę. Dla uproszczenia można skorzystać z pomocniczej klasy Popup.

 

Drag & drop

Silverlight 4 umożliwia obsłużenie scenariuszy przeciągania plików bezpośrednio z systemu operacyjnego do aplikacji (zarówno działającej wewnątrz jak i poza przeglądarką). Wystarczy oznaczyć właściwość AllowDrop obiektu layout, który ma obsługiwać funkcjonalność przeciągania. W kodzie obsługi zdarzenia Drop dla layoutu należy pobrać z właściwości e.Data obiekt IDataObject, na którym następnie powinna zostać wywołana metoda GetData(). IDataObject.GetData() zwraca listę obiektów FileInfo po której iterując uzyskujemy strumienie do plików. Pozwalają one dowolnie wykorzystać zawartość przeciągniętych plików wewnątrz aplikacji Silverlight.

void LayoutRoot_Drop(object sender, DragEventArgs e)
{
IDataObject data = e.Data;
foreach (FileInfo fi in data.GetData())
{
FileStream stream = fi.Open(...)
}
}


Obsługa kamer internetowych i mikrofonu

Możliwe jest wykorzystanie dowolnego źródła dźwięku lub wideo w aplikacji, jeśli użytkownik wyrazi na to zgodę. Po wywołaniu metody:

if (!CaptureDeviceConfiguration.AllowedDeviceAccess)
{
CaptureDeviceConfiguration.RequestDeviceAccess();
// (...)
}
else
{
// (...)
}

użytkownik zostanie zapytany czy zgadza się na udostępnienie kamery i mikrofonu:

Po uzyskaniu akceptacji wystarczy skorzystać z obiektu CaptureSource i jego metod: otworzyć komunikację z urządzeniem poprzez Start(), dokonać np. zrzutu ekranu do obiektu WritableBitmap poprzez wywołanie metody AsyncCaptureImage a na koniec zamknąć komunikację wywołując Stop(). To oczywiście najprostszy scenariusz - bardziej zaawansowany przykład mógłby wykorzystywać tzw. Pixel Shadery do dynamicznej manipulacji obrazem z kamery czy wykonywania innych oczekiwanych operacji na przechwyconym materiale.

Klasa CaptureDeviceConfiguration pozwala również na wyświetlenie użytkownikowi listy dostępnych urządzeń i wybranie tego, z którego powinna skorzystać aplikacja.


Obsługa schowka

Dostęp do schowka również wymaga uzyskania zgody od użytkownika. Kiedy już zostanie ona wyrażona, możliwe jest w sposób programowy skopiowanie lub odczytanie danych ze schowka wykorzystując metody statyczne GetText() i SetText() klasy Clipboard.

 

Kontrolka RichTextArea

Zaawansowana kontrolka, która pozwala wizualnie edytować tekst. Umożliwia m.in.: wykorzystywać hiperłącza i zagnieżdżoną grafikę, modyfikować wygląd czcionek, itp. Kontrolka wspiera także oba kierunki pisania tekstu (tzw. BIDI) oraz wielopoziomowe „Undo".

 

Usprawnienia w Data Binding

Silverlight 4 wprowadza znaczące usprawnienia w bindowaniu danych. Możliwe jest teraz bindowanie do instancji obiektów DependencyObject, indekserów String, określenie w sposób deklaratywny sposobu formatowania obiektu String, wartości domyślnych, grupowanie elementów kolekcji. Visual Studio 2010 znakomicie wspiera Data Binding w aplikacjach Silverlight - operacje takie jak zastosowanie konwertera do obiektu string (kiedy zawiera URI) na grafikę czy widok master / detail dla danych można teraz „wyklikać".

Bardzo ciekawe są także nowe możliwości walidacji danych. Po implementacji interfejsu INotifyDataErrorInfo lub IDataErrorInfo przez nasz obiekt biznesowy uzyskujemy automatyczne sprawdzanie poprawności danych w warstwie interfejsu użytkownika.

 

Multicasting i UDP

Przestrzeń nazw System.Net.Sockets w Silverlight 4 wspiera komunikację typu multicast poprzez protokół User Datagram Protocol (UDP). Pozwala ona w sposób wydajny przesyłać wiadomości do bardzo dużej liczby klientów i dobrze się skalować.


Uwierzytelnianie w komunikacji sieciowej

Dodano wsparcie dla wszystkich typów uwierzytelniania w komunikcji sieciowej (np. klasy WebClient). Wspierane jest zarówno uwierzytelnianie NTLM, Digest jak i Basic. Możliwe jest przekazanie danych użytkownika przy pomocy klasy NetworkCredential lub skorzystanie z domyślnych danych uwierzytelniających ustawiając właściwość UseDefaultCredentials klasy WebClient na true.

Najnowsze wiadomości

reklama

strony: 1 | 2 następna »
wydrukuj: print publikuj: wykop dodaj do flakera Dodaj jako nius na OSnews.pl! delicious

Czytaj webhosting.pl:

Dyskusja

dodaj komentarz
comnt Ten artykuł nie został jeszcze skomentowany. Bądź pierwszy!

Komentarze

  • Aby dodać komentarz, musisz podać swój nick, treść komentarza oraz poprawnie przepisać oba słowa z obrazka (słowa muszą być rozdzielone spacją).
  • Jeśli masz problemy z odczytaniem słów, zmień zdjęcie.
  • Używamy tego zabezpieczenia, ponieważ dzięki niemu rozwija się projekt reCAPTCHA. Sugerujemy jednak, by zarejestrować się w serwisie i w ten sposób ominąć konieczność ciągłego odczytywania wyrazów.
  • W treści komentarza można używać języka formatowania BBcode.