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

Z Wikipedii, wolnej encyklopedii
[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
StankoBot (dyskusja | edycje)
m poprawa linków przy użyciu AWB
m WP:CHECK#64 linki tożsame z tekstem linka
Linia 12: Linia 12:


==Historia==
==Historia==
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ść]].
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|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]] 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]], ulepszyła wsparcie obsługi myszki czy możliwość [[Przeciągnij i upuść|przeciągnij i upuść]].


==Wersje i różnice między nimi==
==Wersje i różnice między nimi==
Istnieją 4 główne implementacje języka XAML:
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
* [[Windows Presentation Foundation]], który jest używane dla [[.NET Framework]] zaczynając od wersji 3.0
* [[Microsoft Silverlight|Silverlight 3]]
* [[Microsoft Silverlight|Silverlight 3]]
* [[Microsoft Silverlight|Silverlight 4]]
* [[Microsoft Silverlight|Silverlight 4]]
Linia 28: Linia 28:
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.
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.
Jeżeli zaś XAML używany jest dla [[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]].
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]].

Wersja z 01:30, 16 lut 2016

XAML (ang. Extensible Application Markup Language, wym. /ˈzæməl/[1]) jest językiem opisu interfejsu użytkownika wykorzystywanym m.in. w technologii Windows Presentation Foundation (w skrócie WPF), która jest elementem platformy .NET Framework począwszy od wersji 3.0.

XAML jest językiem opartym na języku XML zoptymalizowanym do opisu bogatych, wizualnych interfejsów, takich jak tworzone w Adobe Flash. SVG, LZX czy XUL (ten ostatni używany jest między innymi do budowy rozszerzeń dla Firefoksa) są przykładami podobnych języków interfejsu użytkownika rozprowadzonymi na warunkach wolnego oprogramowania.

Pliki XAML zazwyczaj tworzone są ręcznie lub przy pomocy wizualnych narzędzi, takich jak Microsoft Expression Studio. Wynikowy kod XML interpretowany jest w locie przez podsystem systemu operacyjnego odpowiedzialny za wyświetlanie danych, co zastępuje GDI z poprzednich wersji Windows. Elementy XAML mapowane są do obiektów Common Language Runtime. Atrybuty mapowane są do właściwości lub zdarzeń tych obiektów.

XAML został stworzony w celu zapewnienia wsparcia klasom i metodom w architekturze .NET, które zajmują się obsługą interakcji z użytkownikiem, zwłaszcza wyświetlaniem. Język ten może być wykorzystywany jako język opisu nie tylko technologii Windows Presentation Foundation, lecz także innych, jak np. Windows Workflow Foundation.

Akronim XAML pierwotnie rozwijany był jako eXtensible Avalon Markup Language, gdzie Avalon było nazwą kodową dla biblioteki .NET.

Okrojona wersja Windows Presentation Foundation, pozwalająca tworzyć aplikacje internetowe, jest wykorzystywana w Silverlight.

Historia

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. 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 w wersji 3.0 język XAML został rozszerzony o data binding , kontrolki czy wzorzec MVVM. W 2007 roku wraz z pojawieniem się wersji 1.0 Silverlight język XAML był używany do budowania interfejsu użytkownika, jednak tworzone projekty nie używały WPF. Wraz z rozwojem WPF rozszerzane były możliwości języka XAML. W wersji 3.5 wprowadzone zostały animacje oraz elementy 3D. 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ść 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 API. W tym samym czasie rozwijał się 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ądarką. Wersja 4.0 z roku 2010 między innymi wspierała przeglądarkę Google Chrome, ulepszyła wsparcie obsługi myszki czy możliwość przeciągnij i upuść.

Wersje i różnice między nimi

Istnieją 4 główne implementacje języka XAML:

Różnice między wersjami pojawiają się na etapie analizowania. Dodatkowo wersja 4 Silverlight nie jest w pełni 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 interfejsu użytkownika. Język ten umożliwia rozdzielenie definicji 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 interfejsem i nad logiką.

W przypadku użycia XAML w 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 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 WPF.

Przykłady

<Grid>
        <Button Background="Blue" Content="Hello World" Click="Button_Click"/>
        <TextBox TextWrapping="Wrap" Text="Hello XAML"/>
</Grid>

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 MVVM możemy zawartość kontrolek czy wywoływane zdarzenia wiązać z właściwościami czy metodami zaimplementowanymi w View Modelu. Aby było to możliwe należy podać źródło naszych właściwości czy metod:

<DataContext="{Binding Category, Source={StaticResource Locator}}">

Oznacza to, że wszystkie właściwości będą pochodzić z ViewModelu nazwane przez nas jako Category. Nazwania dokonaliśmy w miejscu Locator, które jest klasą gromadzącą wszystkie ViewModele:

public CategoryViewModel Category
        {
            get { return ServiceLocator.Current.GetInstance<CategoryViewModel>(); }
        }

dzięki temu można odwoływać się do właściwości czy metod z tej klasy:

<TextBox Text="{Binding Filling}"/>
<Button Command="{Binding SaveToXmlCommand}"/>

Zobacz też

  1. VTC – QuickStart Microsoft .NET Framework 3.5 [2009]

Linki zewnętrzne