XAML.cz Magazín moderních technologií založených na XAML

Využíváme data z WPF aplikací

Napsáno pro WPF od Jarda Jirava  [21.01.2010]

Trochu netradiční nadpis, neboť data nemají přiliš společného s jazykem XAML, přesto se většina desktopových aplikací bez dat neobejde. Taktéž pro příklady budu potřebovat nějaká data a tak je vhodný čas k tomu, říci si něco o tom, jak přistoupit k datům, potažmo datovým zdrojům a službám a jak je využít v aplikaci.

WPF a služby pro přístup k datům

Hned na úvod je dobré říct, že WPF je schopno zpřístupnit a zobrazit mnoho typů, dat a informací poskytovaných službami.

Je to dáno především tím, že WPF je postaveno na verzi .NET frameworku 2.0 a tak je možno spolupracovat s dlouhým seznamem datových úložišť a objektů. Můžeme tak naše uživatelské rozhraní svázat s XML daty a jejich stromovou strukturou, nebo použít Linq to XML k manipulaci s daty a ty zobrazit. Zároveň nám nic nebrání v tom, abychom využili ADO.NET, které je na trhu již několik let a existuje tak nespočet providerů, pro přístup k různým datovým úložištím. V neposlední řadě pak můžeme využít i Entity framework nebo jiný framework pro přístup k datům jako je třeba NHibernate. V konečném důsledku se ale stejně jedná o třídy a objekty .NET frameworku, které budeme zobrazovat.

Samozřejmě že WPF je schopné snadné interakce s objekty, které přicházeji z komunikace pomocí WCF, které podporuje širokou škálu komunikačních protokolů a strategií jako je SOAP, WS-* nebo můžeme použít k předávání dat REST.

A v případě, že vám to stále ještě není dost, můžeme využít i jednu z posledních možností, kterou nabízí .NET framework a tou jsou ADO.NET Data Services. Tento přístup k datům se nám bude hodit především u psaní Silverlight aplikací.

Ukázková data

Jak již bylo napsáno v předchozích článcích, máme vytvořen základ naší aplikace, která bude zobrazovat informace o vínech ve vinotéce. Tato data mohou samozřejmě být uložena kdekoliv a my si je můžeme díky .NET frameworku zpřístupnit. Já jsem pro tuto ukázkovou aplikaci využil možnosti uložení dat v databázi typu MS SQL Server připojenou jako soubor na kterou se napojím prostřednictvím Entity frameworku.

Do aplikace si tedy přidáme novou položku typu ADO.NET Entity Data Model a nazvěme si ji třeba CohoDataModel.

ADO.NET Entity Data Model

Pokračujeme vytvořením modelu z databáze. A v následujícím dialogu pak vybereme databázový soubor (nebo databázi) a zapíšeme název pro connection settings. Po potvrzení dialogu se nám začne načítat struktura databáze a zobrazí se nám přehled tabulek, pohledů a procedur v databázovém souboru.

Já jsem vybral jen několik objektů z databáze, které bude možné využít a zpřístupním si je tak pomocí Entity frameworku, jak je vidět na následujícím obrázku

Selected Data Objects

Po stisku tlačítka Finish se nám pak vytvoří potřebné třídy pro přístup k databázovým objektům a zobrazí se nám návrhář pro práci s entitami. Tyto jsou znázorněny na následujícím obrázku

Data Model

Nyní tedy máme k dispozici třídy, pomocí nichž můžeme přistupovat k datům v našem datovém úložišti. Tato data tedy můžeme konečně zobrazit v naší aplikaci.

Závěrem

V dnešním, maličko netypickém, článku jsme si představili možnosti, které nám nabízí .NET framework ve spojení s WPF pro prezentaci a hlavně získávání a interakci s daty z různých datových zdrojů nebo služeb poskytujících data. V následujícím článku si ukážeme, jak tato data zobrazit uživateli.

Komentáře

ukládám komentář, vyčkejte prosím..
  1. Buďte první, kdo napíše komentář.

@xamlcz

  • RT @jvanrhyn: XAML, It's a bit like olives. Takes a while to get used to. But once you're used to it. It is actually pretty good. <3 XAML
  • RT @moser_christian: WPF Inspector 0.9.7 is released. It supports .NET 3.5 and 4.0 The project is now open source and available on CodeP ...
  • Jeff Handley oznámil vydání WCF RIA Services v.1.0 SP1 RTM http://bit.ly/gOgckn ke stažení na http://bit.ly/gVAXdK
  • jedna výzva pro Brno. Byl někdo z vás na přednášce o RIA v MS Akvárku? Dejte o sobě vědět. Děkuji
  • také jste uvažovali o tom, že zkusíte na projekt použít Caliburn Micro nebo naopak Prism 4? A co tak obojí, šlo by to nebo ne? Již brzy