Erschaffe eine neue Welt!

Erste Schritte mit WinRT (Teil 3)
Kommentare

Windows Developer

Der Artikel „Erschaffe eine neue Welt“ von Gregor Biswanger ist erstmalig erschienen im Windows Developer 4.2012
Die Antwort des Servers wird mit XML erfolgen. Der leichtgewichtige

Windows Developer

Der Artikel „Erschaffe eine neue Welt“ von Gregor Biswanger ist erstmalig erschienen im Windows Developer 4.2012

Die Antwort des Servers wird mit XML erfolgen. Der leichtgewichtige Proxy ruft hierbei einen Web Service, der auf REST basiert, auf. Der Client muss deshalb eine Beschreibung für deren Entities beinhalten. Aus diesem Grund muss dem Projekt manuell eine neue Klasse mit dem Namen TwitterItem hinzugefügt werden. Das Entity TwitterItem bekommt folgende String Properties: UserName, Message und ImageSource, wie in Lisitng 3 zu sehen. Jetzt kann die Antwort, die per XML kommt, auf das neu erstellte Entity TwitterItem gemappt werden. Das Mappen soll jedoch mittels LINQ to XML erfolgen. In der MainPage.xaml.cs muss dazu ein using System.Xml.Linq; deklariert werden. Anschließend kann nach der GetAsync-Methode die XML-Antwort gemappt werden. Der Sourcecode für das Mappen und Zuweisen der Daten zur ListBox finden Sie in Listing 4.

Listing 3

namespace WinRTTwitterExample
{
    public class Tweet
    {
        public string Username { get; set; }
        public string Message { get; set; }
        public string ImageSource { get; set; }
    }
}  
Listing 4

private async void Button_Tapped(object sender, Windows.UI.Xaml.Input.TappedEventArgs e)
{
  HttpClient proxy = new HttpClient();
  var result = await proxy.GetAsync(new Uri("http://api.twitter.com/1/statuses/user_timeline.xml?screen_name=" + tbUsername.Text));
  
  XElement xmlTweets = XElement.Parse(result.Content.ReadAsString());
  TweetsBox.ItemsSource = from tweet in xmlTweets.Descendants("status")
                          select new Tweet
                          {
                            Username = tweet.Element("user").Element("screen_name").Value,
                            Message = tweet.Element("text").Value,
                            ImageSource = tweet.Element("user").Element("profile_image_url").Value
                          };
}  

Jetzt ist die eigene Metro Style Twitter App fast fertig. Es muss nun bei der ListBox auf der Oberfläche beschrieben werden, wie die Daten dargestellt werden sollen. Das Besondere an XAML und somit an WPF und Silverlight ist, dass hierbei eine komplette Gestaltungsfreiheit der Controls herrscht und somit keine Grenzen gesetzt sind. Die Daten sollen nun in drei Elementen für jeweils einen Eintrag auf der ListBox angezeigt werden: ein Image– und zwei TextBlock-Steuerelemente. Damit sie verschachtelt nebeneinander stehen können, nutzt man ein Layout-Steuerelement StackPanel. Diese Deklaration folgt als eine DataTemplate-Instanz, die dem Property ItemTemplate der ListBox zugewiesen wird. Die Zuweisung, welche Information von TwitterItem angezeigt werden soll, erfolgt über Data Binding. Somit muss im XAML der Oberfläche nun der Sourcecode von Listing 5 hinzugefügt werden. Nun sind alle Schritte für die eigenen Windows 8 App gemacht. Mit einem Tastendruck auf F5 wird die App auch schon direkt unter der MetroUI gestartet. Die Anwendung macht auf den ersten Blick einen sehr guten Eindruck, und beim Eingeben eines Twitter-Usernamen werden auch die Tweets angezeigt (Abb. 5).

Listing 5


  
    
    
      
      

Abb. 5: Die erste eigene Twitter App für Windows 8
Abb. 5: Die erste eigene Twitter App für Windows 8
Fazit

Das Beispiel verdeutlicht, wie einfach für Windows 8 eigene Apps erzeugt werden können. Dabei bemerkt man eine starke Ähnlichkeit mit Silverlight for Windows Phone. Ein Nachteil ist hier ganz klar, es bleibt bei RIA-Szenarien. Es kann eben nicht direkt Einfluss auf das Betriebssystem genommen werden, und es ist vom Anwender abhängig, wie das System angesprochen werden darf, das allerdings aus Anwendersicht einen hohen Schutz bietet. Als .NET-Entwickler wird man kaum bemerken, dass sich kein .NET Framework darunter befindet. Wer also hochperformante Apps für Desktop und Slides programmieren möchte, ist mit WinRT und C# bestens ausgerüstet. Viel Spaß mit Windows 8 und WinRT!

Gregor Biswanger ist Microsoft MVP für Client App Dev und arbeitet als Solution Architect und Silverlight-Experte bei der Firma impuls Informationsmanagement GmbH aus Nürnberg. Seine Schwerpunkte liegen in der .NET-Architektur, Silverlight und in agilen Prozessen. Er veröffentlichte vor Kurzem seine DVD mit Videotrainings zum Thema „WPF 4 und Silverlight 4“ bei Addison-Wesley von video2brain. Biswanger ist auch freier Autor, Speaker und Microsoft CLIPler der INdotNET (Ingolstädter .NET Developers Group). Sie erreichen seinen Blog unter www.dotnet-blog.net.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -