Extensible Application Markup Language: Różnice pomiędzy wersjami

Dodana historia XAML, rozszerzone przykłady.
m (int., odstępy)
(Dodana historia XAML, rozszerzone przykłady.)
Okrojona wersja [[Windows Presentation Foundation]], pozwalająca tworzyć aplikacje internetowe, jest wykorzystywana w [[Microsoft Silverlight|Silverlight]].
 
==PrzykładHistoria==
Początki języka XAML sięgają roku 2003. Akronim XAML początkowo rozwijał się do nazwy Extensible Avalon Markup Language, gdzie Avalon to pierwotna nazwa [[Windows Presentation Foundation|Windows Presentation Foundation]]. [[Windows Presentation Foundation|Avalon]] wprowadził język XAML w celu umożliwienia mapowania języka na obiekty graficzne i połączenia pracy programistów i grafików w jednym miejscu. W roku 2006 w momencie wydania [[Windows Presentation Foundation|Windows Presentation Foundation]] w wersji 3.0 język XAML został rozszerzony o [[Data Binding|data binding ]], kontrolki czy wzorzec [[Model-View-Controller|MVVM]]. W 2007 roku wraz z pojawieniem się wersji 1.0 [[Microsoft Silverlight|Silverlight]] język XAML był używany do budowania [[Interfejs graficzny|interfejsu użytkownika]], jednak tworzone projekty nie używały [[Windows Presentation Foundation|WPF]]. Wraz z rozwojem [[Windows Presentation Foundation|WPF]] rozszerzane były możliwości języka XAML. W wersji 3.5 wprowadzone zostały animacje oraz elementy 3D. [[Windows Presentation Foundation|WPF]] 4.0 z roku 2010 wprowadza między innymi nowe kontrolki takie jak: DataGrid, Calendar, DatePicker oraz wsparcie dla dotyku. Wraz z wypuszczeniem wersji 4.5 wprowadzona została możliwość [[Data Binding|wiązania]] do statycznych właściwości, asynchroniczna walidacja danych przy użyciu INotifyDataErrorInfo, nowe metody dla klasy Dispachter. Window 8.1 XAML wprowadza nowe zmiany: nowe kontrolki oraz nowe [[Application Programming Interface|API]]. W tym samym czasie rozwijał się [[Microsoft Silverlight|Silverlight]]. W roku 2009 wraz z pojawieniem się wersji 2.0 rozszerzona została ilość kontrolek, a wersja 3.0 z roku 2009 poza dodatkowymi kontrolkami (DataGrid, TreeView) umożliwiała tworzenie aplikacje, które mogły być uruchamiane w osobnym oknie poza [[Przeglądarka internetowa|przeglądarką]]. Wersja 4.0 z roku 2010 między innymi wspierała przeglądarkę [[Google Chrome|Google Chrome]], ulepszyła wsparcie obsługi myszki czy możliwość [[Przeciągnij i upuść|przeciągnij i upuść]].
 
==Wersje i różnice między nimi==
Istnieją 4 główne implementacje języka XAML:
* [[Windows Presentation Foundation|Windows Presentation Foundation]], który jest używane dla [[.NET Framework|.NET Framework]] zaczynając od wersji 3.0
* [[Microsoft Silverlight|Silverlight 3]]
* [[Microsoft Silverlight|Silverlight 4]]
* Windows 8 XAML / Jupiter
 
Różnice między wersjami pojawiają się na etapie analizowania. Dodatkowo wersja 4 Silverlight nie jest w pełni [[Kompatybilność wsteczna|kompatybilna wstecz]], oznacza to, że niektóre pliki akceptowane przez wersje 3 będą inaczej interpretowane przez wersję 4.
 
==Cele i technologie==
Język XAML jest używany w celu tworzenie elementów [[Interfejs graficzny|interfejsu użytkownika]]. Język ten umożliwia rozdzielenie definicji [[Interfejs graficzny|interfejsu]] od kodu logicznego, który często znajduje się w plikach code-behind. XAML daje możliwość wspólnej pracy, gdzie rozgraniczona jest praca nad [[Interfejs graficzny|interfejsem]] i nad logiką.
W przypadku użycia XAML w [[Windows Presentation Foundation|WPF]] możliwe jest definiowanie grafiki zarówno 2D jak i 3D, animacji oraz wielu innych efektów.
 
Jeżeli zaś XAML używany jest dla [[Windows Workflow Foundation|Windows Workflow Foundation]] to w celu opisywania potencjalnie długiej logiki (np. narzędzia modelowania procesów). Początkowo format ten był określany jako XOML, w celu zaznaczenia różnicy pomiędzy nim a XAML, jednak dzisiaj nie jest już to praktykowane, jednak rozszerzenie plików to .xoml.
 
Pliki XAML mogą być kompilowane w pliki .BAML, które mogą zostać umieszczanie w zasobach i w czasie rzeczywistym tłumaczone, czego wynikiem jest odpowiadający interfejs np. w [[Windows Presentation Foundation|WPF]].
 
==Przykłady==
<source lang=XML>
<Grid>
<Button Background="Blue" Content="Hello World" Click="Button_Click"/>
<TextBox TextWrapping="Wrap" Text="Hello XAML"/>
</Grid>
</source>
W tym przypadku zostanie wyświetlony niebieski przycisk z napisem Hello World, a po kliknięciu zostanie wywołane zdarzenie Button_Click (zaimplementowane w tzw. Code-behind) oraz pole tekstowe z napisem Hello XAML.
 
W przypadku pracy z [[Model-View-Controller|MVVM]] możemy zawartość kontrolek czy wywoływane zdarzenia wiązać z właściwościami czy metodami zaimplementowanymi w [[Model-View-Controller|View Modelu]]. Aby było to możliwe należy podać źródło naszych właściwości czy metod:
 
<source lang=XML>
<DataContext="{Binding Category, Source={StaticResource Locator}}">
</source>
 
Oznacza to, że wszystkie właściwości będą pochodzić z [[Model-View-Controller|ViewModelu]] nazwane przez nas jako Category. Nazwania dokonaliśmy w miejscu Locator, które jest klasą gromadzącą wszystkie [[Model-View-Controller|ViewModele]]:
 
<source lang="csharp">
public CategoryViewModel Category
{
get { return ServiceLocator.Current.GetInstance<CategoryViewModel>(); }
}
</source>
 
dzięki temu możemy odwoływać się do właściwości czy metod z tej klasy:
 
<source lang=XML>
<TextBox Text="{Binding Filling}"/>
<Window x:Class="Program" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Hello World!">
<Button Command="{Binding SaveToXmlCommand}"/>
<Grid>
<Rectangle Fill="Red" Height="50" Width="50" Margin="10,10,700,444"></Rectangle>
<Button Content="Przycisk" HorizontalAlignment="Left" Margin="65,10,0,0" VerticalAlignment="Top" Width="75"/>
</Grid>
</Window>
</source>
Spowoduje on wyświetlenie okna zawierającego czerwony kwadrat i przycisk.
 
== Zobacz też ==
* [http://msdn2.microsoft.com/en-us/library/ms752059.aspx Omówienie XAML (ang.)]
* Artykuł ''[http://m.zdnet.com.au/mozilla-gnome-mull-united-front-against-longhorn-139146163.htm Mozilla, Gnome mull united front against Longhorn]'' (ZDNET)
* [http://www.microsoftvirtualacademy.com/training-courses/xaml-deep-dive-for-windows-windows-phone-apps-jump-start Kurs z podstaw XAML]
* [http://www.microsoftvirtualacademy.com/training-courses/designing-your-xaml-ui-with-blend-jump-start Kurs z XAML z użyciem Blend]
{{Przypisy}}
 
Anonimowy użytkownik