<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>patricb</title><link>http://blogs.msdn.com/b/patricb/</link><description /><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>Geolocation mit Windows 8</title><link>http://blogs.msdn.com/b/patricb/archive/2013/04/04/geolocation-mit-windows-8.aspx</link><pubDate>Thu, 04 Apr 2013 14:52:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10407592</guid><dc:creator>patricb</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/patricb/rsscomments.aspx?WeblogPostID=10407592</wfw:commentRss><comments>http://blogs.msdn.com/b/patricb/archive/2013/04/04/geolocation-mit-windows-8.aspx#comments</comments><description>&lt;p&gt;Als nächstes steht auf meiner Liste der Sensoren der Geolocation Sensor. Um hier nicht mit dem Emulator arbeiten zu müssen, installiere ich auf meinem Surface Tablet den Remote Debugger. Eine Anleitung dafür findet man auf dem &lt;a href="http://timheuer.com/blog/archive/2012/10/26/remote-debugging-windows-store-apps-on-surface-arm-devices.aspx" target="_blank"&gt;Blog meines Kollegen Tim Heuer&lt;/a&gt;. Das Thema Geolocation ist ebenfalls in der &lt;a href="http://msdn.microsoft.com/library/windows/apps/BR225603" target="_blank"&gt;Dokumentation&lt;/a&gt; vorhanden. Wenn auch nicht ganz so ausführlich, dafür aber extrem einfach zum nachbauen. &lt;/p&gt;  &lt;p&gt;Dann kann unsere Reise ja auch schon beginnen und wir starten damit ein neues Projekt anzulegen. Wie im Beispiel zuvor lege ich dafür eine C# XAML Applikation an und starte mit dem Blank Solution Template. &lt;/p&gt;  &lt;p&gt;Wir setzen einen Button auf die MainPage.xaml über den Designer und geben ihm den Pregnanten namen “btnTracking” und hinterlegen einen entsprechenden Click Handler. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/0447.image_5F00_561B4251.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/4336.image_5F00_thumb_5F00_337703D6.png" width="823" height="429" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Und das gleiche machen wir ein weiteres mal um das Tracking anzuhalten. Nun brauchen wir noch 2 Elemente. Eine Liste mit dem Status des Gerätes. Und eine weitere Liste mit den Positionen. Also fügen wir zwei ListView Controls unserer BlankPage.xaml hinzu. Das fertige XAML sieht also wie folgt aus:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;Page
    &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;x&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Class&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;GeolocationSimple.MainPage&amp;quot;
    &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;
    &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;x&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;
    &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;local&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;using:GeolocationSimple&amp;quot;
    &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;d&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;http://schemas.microsoft.com/expression/blend/2008&amp;quot;
    &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;mc&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;http://schemas.openxmlformats.org/markup-compatibility/2006&amp;quot;
    &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;mc&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Ignorable&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;d&amp;quot;&amp;gt;

    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;Grid &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Background&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;StaticResource &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;ApplicationPageBackgroundThemeBrush&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;}&amp;quot;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;Button &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;btnStartTracking&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Content&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Start Tracking&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Left&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Margin&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;36,32,0,0&amp;quot; &lt;br /&gt;                &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Top&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Height&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;81&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Width&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;171&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Click&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;btnTracking_Click&amp;quot;/&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;Button &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;btnStopTracking&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Content&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Stop Tracking&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Left&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Height&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;79&amp;quot; &lt;br /&gt;                &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Margin&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;226,34,0,0&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Top&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Width&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;171&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Click&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;btnStopTracking_Click&amp;quot;/&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;ListView &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;listStatus&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Left&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Height&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;554&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Margin&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;78,167,0,0&amp;quot; &lt;br /&gt;                  &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Top&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Width&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;532&amp;quot;/&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;ListView &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;listLocation&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Left&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Height&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;554&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Margin&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;682,167,0,0&amp;quot; &lt;br /&gt;                  &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Top&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Width&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;596&amp;quot;/&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;Grid&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;Page&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Das dazugehörige Codebehind File sollte also nun 2 Eventhandler haben und gut.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background: white; color: blue;"&gt;using &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;System;
&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;using &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;System.Collections.Generic;
&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;using &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;System.IO;
&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;using &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;System.Linq;
&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;using &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Foundation;
&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;using &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Foundation.Collections;
&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;using &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.UI.Xaml;
&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;using &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.UI.Xaml.Controls;
&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;using &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.UI.Xaml.Controls.Primitives;
&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;using &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.UI.Xaml.Data;
&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;using &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.UI.Xaml.Input;
&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;using &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.UI.Xaml.Media;
&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;using &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.UI.Xaml.Navigation;

&lt;/span&gt;&lt;span style="background: white; color: green;"&gt;// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238

&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;namespace &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;GeolocationSimple
{
    &lt;/span&gt;&lt;span style="background: white; color: gray;"&gt;/// &amp;lt;summary&amp;gt;
    /// &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;An empty page that can be used on its own or navigated to within a Frame.
    &lt;/span&gt;&lt;span style="background: white; color: gray;"&gt;/// &amp;lt;/summary&amp;gt;
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;public sealed partial class &lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;MainPage &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;: &lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Page
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;{
        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;public &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;MainPage()
        {
            &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;this&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.InitializeComponent();
        }

        &lt;/span&gt;&lt;span style="background: white; color: gray;"&gt;/// &amp;lt;summary&amp;gt;
        /// &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;Invoked when this page is about to be displayed in a Frame.
        &lt;/span&gt;&lt;span style="background: white; color: gray;"&gt;/// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;e&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: green;"&gt;Event data that describes how this page was reached.  The Parameter
        &lt;/span&gt;&lt;span style="background: white; color: gray;"&gt;/// &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;property is typically used to configure the page.&lt;/span&gt;&lt;span style="background: white; color: gray;"&gt;&amp;lt;/param&amp;gt;
        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;protected override void &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;OnNavigatedTo(&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;NavigationEventArgs &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;e)
        {

        }

        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;private void &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;btnTracking_Click(&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;object &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;sender, &lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;RoutedEventArgs &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;e)
        {

        }

        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;private void &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;btnStopTracking_Click(&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;object &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;sender, &lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;RoutedEventArgs &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;e)
        {

        }
    }
}
&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;Als nächstes wollen wir uns dem &lt;a href="http://msdn.microsoft.com/library/windows/apps/BR225603" target="_blank"&gt;Geolocator&lt;/a&gt; widmen. &lt;/p&gt;

&lt;p&gt;Dazu legen wir ein Feld an, das nach dem InitializeComponent Vorgang gesetzt wird. &lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background: white; color: black;"&gt;    …&lt;br /&gt;    &lt;/span&gt;&lt;span style="background: white; color: gray;"&gt;/// &amp;lt;summary&amp;gt;
    /// &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;An empty page that can be used on its own or navigated to within a Frame.
    &lt;/span&gt;&lt;span style="background: white; color: gray;"&gt;/// &amp;lt;/summary&amp;gt;
    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;public sealed partial class &lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;MainPage &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;: &lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Page
    &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;{
        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;private &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Geolocator &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;_location;

        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;public &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;MainPage()
        {
            &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;this&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.InitializeComponent();
            _location = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;new &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Geolocator&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;();
        }&lt;br /&gt;    …&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Und schon haben wir den Zugriff auf den Geolocator. Als erstes wollen wir nun den Status des GPS Moduls abfragen. Als erstes setzen wir die beiden Buttons und Ihren entsprechenden State in der OnNavigatedTo Methode die der Einstiegspunkt für unsere App ist. &lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background: white; color: black;"&gt;        &lt;/span&gt;&lt;span style="background: white; color: gray;"&gt;/// &amp;lt;summary&amp;gt;
        /// &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;Invoked when this page is about to be displayed in a Frame.
        &lt;/span&gt;&lt;span style="background: white; color: gray;"&gt;/// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;e&amp;quot;&amp;gt;&lt;/span&gt;&lt;span style="background: white; color: green;"&gt;Event data that describes how this page was reached.  The Parameter
        &lt;/span&gt;&lt;span style="background: white; color: gray;"&gt;/// &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;property is typically used to configure the page.&lt;/span&gt;&lt;span style="background: white; color: gray;"&gt;&amp;lt;/param&amp;gt;
        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;protected override void &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;OnNavigatedTo(&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;NavigationEventArgs &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;e)
        {
            btnStartTracking.IsEnabled = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;true&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
            btnStopTracking.IsEnabled = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;false&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
        }&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;Als nächstes wollen wir uns dem btnStart zuwenden und die entsprechende Logik hineterlegen.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background: white; color: black;"&gt;        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;private void &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;btnTracking_Click(&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;object &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;sender, &lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;RoutedEventArgs &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;e)
        {
            _location.PositionChanged += &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;new &lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;TypedEventHandler&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;&amp;lt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Geolocator&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;, &lt;br /&gt;                                         Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;PositionChangedEventArgs&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;&amp;gt;(OnPositionChanged);
            _location.StatusChanged += &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;new &lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;TypedEventHandler&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;&amp;lt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Geolocator&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;, &lt;br /&gt;                                         Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;StatusChangedEventArgs&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;&amp;gt;(OnStatusChanged);

            btnStartTracking.IsEnabled = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;false&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
            btnStopTracking.IsEnabled = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;true&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
        }&lt;/span&gt;&lt;/pre&gt;

&lt;pre class="code"&gt;&lt;span style="background: white; color: black;"&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Als erstes fügen wir zwei neue Delegaten hinzu. Die setzen wir auf die Events des Geolocators. Die beiden Events an denen wir interessiert sind, ist zum einen die Position und zum anderen den Status des Gerätes. Ich habe auch hier wieder den vollständigen Namespace ausgeschrieben. So dass man Ihn leichter finden kann. &lt;/p&gt;

&lt;p&gt;In der OnStatusChanged Methode erstellen holen wir uns den CoreDispatcher der in Windows.UI.Core lebt. Er sorgt dafür, dass wir wann immer sich der Status ändert wir das entsprechend unterscheiden können. Dafür fragen wir den Status der Eventargs e ab. Cool daran ist, dass wir mit dem Switch-Case Snippet und dem args.Status sowie einem Shift+Enter das komplette Statement von Visual Studio automatisch ausgespuckt bekommen.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background: white; color: black;"&gt;        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;private async void &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;OnStatusChanged(Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Geolocator &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;sender, &lt;br /&gt;                                           Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;StatusChangedEventArgs &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;args)
        {
            &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;await &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Dispatcher.RunAsync(Windows.UI.Core.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;CoreDispatcherPriority&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.Normal, () =&amp;gt; 
            {
                &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;switch &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(args.Status)
                {
                    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;case &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;PositionStatus&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.Disabled:
                        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;break&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
                    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;case &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;PositionStatus&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.Initializing:
                        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;break&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
                    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;case &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;PositionStatus&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.NoData:
                        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;break&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
                    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;case &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;PositionStatus&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.NotAvailable:
                        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;break&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
                    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;case &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;PositionStatus&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.NotInitialized:
                        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;break&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
                    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;case &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;PositionStatus&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.Ready:
                        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;break&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
                    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;default&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;:
                        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;break&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
                }
            });
        }&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Die Liste listStatus wollen wir nun mit den entsprechenden Staten befüllen.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background: white; color: black;"&gt;        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;private async void &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;OnStatusChanged(Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Geolocator &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;sender, &lt;br /&gt;                                           Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;StatusChangedEventArgs &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;args)
        {
            &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;await &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Dispatcher.RunAsync(Windows.UI.Core.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;CoreDispatcherPriority&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.Normal, () =&amp;gt; 
            {
                &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;switch &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(args.Status)
                {
                    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;case &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;PositionStatus&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.Disabled:
                        listStatus.Items.Add(&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;&amp;quot;Diabled&amp;quot;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;);
                        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;break&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
                    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;case &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;PositionStatus&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.Initializing:
                        listStatus.Items.Add(&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;&amp;quot;Initializing&amp;quot;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;);
                        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;break&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
                    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;case &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;PositionStatus&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.NoData:
                        listStatus.Items.Add(&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;&amp;quot;No data&amp;quot;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;);
                        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;break&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
                    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;case &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;PositionStatus&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.NotAvailable:
                        listStatus.Items.Add(&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;&amp;quot;Not available&amp;quot;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;);
                        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;break&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
                    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;case &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;PositionStatus&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.NotInitialized:
                        listStatus.Items.Add(&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;&amp;quot;Not initialized&amp;quot;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;);
                        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;break&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
                    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;case &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;PositionStatus&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.Ready:
                        listStatus.Items.Add(&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;&amp;quot;Ready&amp;quot;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;);
                        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;break&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
                    &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;default&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;:
                        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;break&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
                }
            });
        }&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Als nächstes wollen wir nun die eigentlichen Werte abfragen.&lt;/p&gt;

&lt;p&gt;…&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background: white; color: black;"&gt;        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;private async void &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;OnPositionChanged(Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Geolocator &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;sender, &lt;br /&gt;                                            Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;PositionChangedEventArgs &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;args)
        {
            &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;await &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Dispatcher.RunAsync(Windows.UI.Core.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;CoreDispatcherPriority&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.Normal, () =&amp;gt;
            {
                Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Geoposition &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;pos = args.Position;

                &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;var &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;latitude = pos.Coordinate.Latitude.ToString();
                &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;var &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;longitude = pos.Coordinate.Longitude.ToString();

                listLocation.Items.Add(&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;&amp;quot;lat:&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;+ latitude + &lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;&amp;quot;, &amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;+ &lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;&amp;quot;long&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;+ longitude);
            });
        }&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;…&lt;/p&gt;

&lt;p&gt;Auch hier verwenden wir wieder den CoreDispatcher und fragen in diesem Szenario die Position ab, die sich in den args des PostionChangedEvents verbergen. Wir benötigen die Longitude und die Latitude. Die wir der liste hinzufügen.&lt;/p&gt;

&lt;p&gt;Noch eben schnell den Button btnStopTracking editiert und dann sind wir auch schon fertig.&lt;/p&gt;

&lt;p&gt;…&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background: white; color: black;"&gt;        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;private void &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;btnStopTracking_Click(&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;object &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;sender, &lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;RoutedEventArgs &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;e)
        {
            _location.PositionChanged -= &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;new &lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;TypedEventHandler&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;&amp;lt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Geolocator&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;, &lt;br /&gt;                                             Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;PositionChangedEventArgs&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;&amp;gt;(OnPositionChanged);
            _location.StatusChanged -= &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;new &lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;TypedEventHandler&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;&amp;lt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Geolocator&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;, &lt;br /&gt;                                           Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;StatusChangedEventArgs&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;&amp;gt;(OnStatusChanged);

            btnStartTracking.IsEnabled = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;true&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
            btnStopTracking.IsEnabled = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;false&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
        }&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;…&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Wir lassen die Applikation laufen. Und auch hier kommt das Security Model zum tragen. Deshalb wie schon zu vor in der &lt;a href="http://blogs.msdn.com/b/patricb/archive/2013/04/02/internet-of-things-spa-223-mit-sensoren.aspx" target="_blank"&gt;CameraCaptureApp&lt;/a&gt; stellen wir die entsprechende Berechtigung der App im Manifest ein. &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/2086.image_5F00_58281B4D.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/1184.image_5F00_thumb_5F00_0464A232.png" width="795" height="503" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Die fertige App sieht nun also wie folgt aus:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/6787.image_5F00_1BAFA6A3.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/3731.image_5F00_thumb_5F00_61C063B6.png" width="803" height="502" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Wir wollen das ganze jetzt einmal auf dem Slate testen. Dazu baue ich eine Remote Verbindung auf das Slate auf. &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/2642.image_5F00_52A984DC.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/8446.image_5F00_thumb_5F00_717FF8BA.png" width="792" height="277" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Aus der Liste der Maschinen selektiere ich das Slate. &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/0083.image_5F00_3D6B5967.png"&gt;&lt;img title="image" style="display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/4718.image_5F00_thumb_5F00_3BBA8D93.png" width="435" height="533" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Beim ersten verbinden, muss eine Developer Lizenz gestartet werden. Und schon sollte Ihre App auf dem Remote Gerät laufen.&lt;/p&gt;

&lt;p&gt;Das ist zwar schon ganz nett, aber jetzt wollen wir unsere Position auch auf einer Karte anzeigen. Dazu verwende ich das &lt;a href="http://visualstudiogallery.msdn.microsoft.com/bb764f67-6b2c-4e14-b2d3-17477ae1eaca" target="_blank"&gt;Bing Maps SDK&lt;/a&gt;. Dazu wird ein entsprechender &lt;a href="http://msdn.microsoft.com/en-us/library/ff428642.aspx" target="_blank"&gt;Key benötigt&lt;/a&gt;. Dazu fügen wir zu unserem Projekt eine Referenz über Add Referzen hinzu. &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/7532.image_5F00_67F71477.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/0412.image_5F00_thumb_5F00_31A5EC68.png" width="386" height="280" /&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/0676.image_5F00_44E6A307.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/5466.image_5F00_thumb_5F00_26B8E553.png" width="407" height="280" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Unter Windows Extensions fügt man einfach eine Referenz auf Bing Maps für C# hinzu. Unter umständen muss man nun im Configuration Manager die Target Plattform ändern. In meinem Fall ändere ich das Target auf x86 um.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/5861.image_5F00_6133E527.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/0564.image_5F00_thumb_5F00_43DE8D5D.png" width="678" height="422" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Als nächstes fügen wir die Bing Maps dem Grid hinzu. &lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/8507.image_5F00_1E0866FA.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/6825.image_5F00_thumb_5F00_0E192236.png" width="719" height="396" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Nun muss nur noch der Key eingetragen werden. Das geht über das Crediantials Attribute. Der Vollständige XAML Code sieht so aus:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background: white; color: blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;Page
    &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&amp;quot;
    &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;x&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;http://schemas.microsoft.com/winfx/2006/xaml&amp;quot;
    &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;local&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;using:GeolocationSimple&amp;quot;
    &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;d&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;http://schemas.microsoft.com/expression/blend/2008&amp;quot;
    &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;mc&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;http://schemas.openxmlformats.org/markup-compatibility/2006&amp;quot;
    &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;xmlns&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Maps&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;using:Bing.Maps&amp;quot;
    &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;x&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Class&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;GeolocationSimple.MainPage&amp;quot;
    &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;mc&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Ignorable&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;d&amp;quot;&amp;gt;

    &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;Grid &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Background&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;{&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;StaticResource &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;ApplicationPageBackgroundThemeBrush&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;}&amp;quot;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;Button &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;x&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;btnStartTracking&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Content&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Start Tracking&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Left&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Margin&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;36,32,0,0&amp;quot; &lt;br /&gt;                &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Top&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Height&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;81&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Width&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;171&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Click&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;btnTracking_Click&amp;quot;/&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;Button &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;x&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;btnStopTracking&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Content&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Stop Tracking&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Left&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Height&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;79&amp;quot; &lt;br /&gt;                &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Margin&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;226,34,0,0&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Top&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Width&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;171&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Click&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;btnStopTracking_Click&amp;quot;/&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;ListView &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;x&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;listStatus&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Left&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Height&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;188&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Margin&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;1054,136,0,0&amp;quot; &lt;br /&gt;                  &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Top&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Width&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;285&amp;quot;/&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;ListView &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;x&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;listLocation&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Left&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Height&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;254&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Margin&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;1059,371,0,0&amp;quot; &lt;br /&gt;                  &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Top&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Width&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;280&amp;quot;/&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;Maps&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;Map &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;x&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;:&lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Name&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;bingMap&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Credentials&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;BingMapsKey&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;HorizontalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Left&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Margin&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;36,136,0,0&amp;quot; &lt;br /&gt;                  &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;VerticalAlignment&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;Top&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Height&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;489&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: red;"&gt;Width&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;=&amp;quot;1018&amp;quot;/&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;Grid&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;Page&lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;&amp;gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Und nun wollen wir unsere Positionsdaten auf die Map bringen. Dazu gehen wir zurück in das Code Behind File. &lt;/p&gt;

&lt;p&gt;Als erstes müssen wir die Geolocation Informationen von Windows 8 auslesen und in Bing Koordinaten konvertieren. Dann einen entsprechenden Pushpin anlegen. Als nächstes können wir die Position des Pushpins bestimmen. Und schließlich zeichnen wir den Pushpin auf die Karte. Als letzter Schritt Zoomen wir in der Karte auf die Richtige Position. Der Code dafür sieht wie folgt aus.&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background: white; color: black;"&gt;        &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;private async void &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;OnPositionChanged(Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Geolocator &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;sender, &lt;br /&gt;                                             Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;PositionChangedEventArgs &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;args)
        {
            &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;await &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Dispatcher.RunAsync(Windows.UI.Core.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;CoreDispatcherPriority&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.Normal, () =&amp;gt;
            {
                &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;//Retrieve the Geolocation from Geolocator
                &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Windows.Devices.Geolocation.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Geoposition &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;pos = args.Position;

                &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;//Create a new pushpin
                &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Bing.Maps.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Pushpin &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;pin = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;new &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Bing.Maps.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Pushpin&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;();
                pin.Text = &lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;&amp;quot;Meine Position&amp;quot;&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;;
                &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;//Get the geolocation from windows 8 and convert to bing maps location
                &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Bing.Maps.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Location &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;location = &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;new &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Bing.Maps.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;Location&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;(pos.Coordinate.Latitude, &lt;br /&gt;                                                                               pos.Coordinate.Longitude);
                &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;//Set the position of the pushpin
                &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;Bing.Maps.&lt;/span&gt;&lt;span style="background: white; color: rgb(43, 145, 175);"&gt;MapLayer&lt;/span&gt;&lt;span style="background: white; color: black;"&gt;.SetPosition(pin, location);
                &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;//Add the pushpin
                &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;bingMap.Children.Add(pin);
                &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;//Zoom Bing Maps to location
                &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;bingMap.SetView(location, 18.0f);

                &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;//Convert the postiong for list
                &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;var &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;latitude = pos.Coordinate.Latitude.ToString();
                &lt;/span&gt;&lt;span style="background: white; color: blue;"&gt;var &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;longitude = pos.Coordinate.Longitude.ToString();
                &lt;/span&gt;&lt;span style="background: white; color: green;"&gt;//Set the Value in list
                &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;listLocation.Items.Add(&lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;&amp;quot;lat:&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;+ latitude + &lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;&amp;quot;, &amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;+ &lt;/span&gt;&lt;span style="background: white; color: rgb(163, 21, 21);"&gt;&amp;quot;long&amp;quot; &lt;/span&gt;&lt;span style="background: white; color: black;"&gt;+ longitude);
            });
        }
    }&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Die fertige App sieht dann wie folgt aus:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/7485.image_5F00_32CA39AD.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/0640.image_5F00_thumb_5F00_4362349B.png" width="797" height="498" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Und Fertig! Nun könnte man anfangen richtig Spaß zu haben und eigene Shapes auf die Karte zu zeichnen. In dieser &lt;a href="http://www.piotrwalat.net/getting-started-with-bing-maps-sdk-for-windows-store-apps/" target="_blank"&gt;Blog Post&lt;/a&gt; von Piotr Walat gibt es eine schöne Beschreibung dazu.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10407592" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Visual+Studio/">Visual Studio</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/-net/">.net</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/C_2300_/">C#</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Windows+8/">Windows 8</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Sensoren/">Sensoren</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Visual+Studio+2012/">Visual Studio 2012</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Bing+Maps/">Bing Maps</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Geolocation/">Geolocation</category></item><item><title>Spaß mit Sensoren - “Internet of Things”</title><link>http://blogs.msdn.com/b/patricb/archive/2013/04/02/internet-of-things-spa-223-mit-sensoren.aspx</link><pubDate>Tue, 02 Apr 2013 10:50:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10406892</guid><dc:creator>patricb</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/patricb/rsscomments.aspx?WeblogPostID=10406892</wfw:commentRss><comments>http://blogs.msdn.com/b/patricb/archive/2013/04/02/internet-of-things-spa-223-mit-sensoren.aspx#comments</comments><description>&lt;p&gt;In der Blog Post &lt;a href="http://blogs.technet.com/b/peter_jaegers_blog_zu_technologie_apps_innovation_und_it_strategie/archive/2013/03/14/kontext-im-natural-user-interface.aspx" target="_blank"&gt;Kontext – die rechte Maustaste der NUI – Entwicklung&lt;/a&gt; vom 14 März geht Peter Jäger auf die zunehmende Anzahl vernetzter Geräte ein. Seiner Meinung nach ist das ein Konzept das auf bedeutsamer Weise mit zu den natürlichen Steuerungskonzepten der Zukunft zählt. Aber in welchem Kontext stehen nun die zunehmende Anzahl von vernetzten Geräten?&lt;/p&gt;  &lt;p&gt;Wenn ich den Facebook Profil meines Kollegen Kai Jäger folge hat dieser ein Talent dafür Prominente an Bahnhöfen und Flughäfen dieser Welt zu treffen. Mir fallen diese zumeist gar nicht auf. Aber was mir hingegen ins Auge springt ist die Tatsache das unglaublich viele Endgeräte an so einem Flughafen present sind. Zum einen sind es Smart Phones und Tablets. Kaum jemand der heute nicht ein gutes dutzend Sensoren in der Tasche versteckt hat. &lt;/p&gt;  &lt;h2&gt;“Intelligent Systems”&lt;/h2&gt;  &lt;p&gt;Projekte wie das FALCON-Projekt, also eine App die im Context der Umgebung startet sind naheliegende Szenarien. Der Context in dem sich ein Gerät befindet kann aber mehr bedeuten als nur das automatische bestimmen meiner Position (&lt;a href="http://en.wikipedia.org/wiki/Geolocation" target="_blank"&gt;Geo-Location&lt;/a&gt;) und ein Checkin bei &lt;a href="https://foursquare.com/" target="_blank"&gt;Foursquare&lt;/a&gt;. Vor ungefähr 3 Jahren haben wir uns in Ingolstadt folgende Fragen gestellt. Bei Elektro Fahrzeugen wie der &lt;a href="http://www.audi.de/de/brand/de/neuwagen/audi_e-tron.html" target="_blank"&gt;e-tron&lt;/a&gt; Reihe von Audi oder dem &lt;a href="http://www.bmw-i.de/de_de/" target="_blank"&gt;i-Konzept&lt;/a&gt; von BMW, spielen da Drehzahl und Tankanzeige eine untergeordnete Rolle? Welche Informationen sind wichtig? Die Reichweite des Fahrzeuges, muss ich tanken? Wenn ja, muss ich die Batterie laden oder mal eben kurz zum Erdgasshändler um die Ecke? Eigentlich eine einfache Frage, aber gibt es Einflüsse in der Umgebung des Fahrzeuges die einen Positiven oder Negativen Einfluss auf bspw. die Engergiezellen des Fahrzeuges haben? Und wie visualisiert man diese Faktoren für den Fahrer. Welche Informationen sind Relevant und noch wichtiger auf welche kann der Fahrer Tatsächlich Einfluss nehmen? &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/8422.BMWi8Spyder17_5F00_58A8EFBF.jpg"&gt;&lt;img title="BMW-i8-Spyder-17" style="border: 0px currentcolor; display: inline;" border="0" alt="BMW-i8-Spyder-17" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/7838.BMWi8Spyder17_5F00_thumb_5F00_6F87C13B.jpg" width="815" height="343" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;(Quelle: &lt;a title="http://carsensation.blogspot.de/2012/09/bmw-i8-spyder.html" href="http://carsensation.blogspot.de/2012/09/bmw-i8-spyder.html"&gt;http://carsensation.blogspot.de/2012/09/bmw-i8-spyder.html&lt;/a&gt; BMW i8 – Spyder Fahrer Informationssystem)&lt;/p&gt;  &lt;p&gt;Ein Fahrzeug benötigt also heute 101 Sensor um zu Wissen in welcher Umgebung es sich gerade befindet, und welchen Einfluss die Umwelt auf das &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/7026.8168.image_5F00_2082439D_5F00_0D199C3B.png"&gt;&lt;img title="8168.image_2082439D" style="border: 0px currentcolor; margin-right: 0px; margin-left: 0px; display: inline;" border="0" alt="8168.image_2082439D" align="left" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/6431.8168.image_5F00_2082439D_5F00_thumb_5F00_2464A0AC.png" width="240" height="145" /&gt;&lt;/a&gt;Fahrzeug und einen Schritt weiter gedacht, welchen Einfluss das Fahrzeug auf die Umwelt hat. Stichwort Emission etc.     &lt;br /&gt;Aber nicht nur Fahrzeuge haben heute gleich eine ganze Reihe von Sensoren. Der Markt der “Intelligent Systems” wird laut IDC auf ca. 649 Billion USD geschätzt und wird bereits 2016 2.6 Billion USD erreicht haben. Segmente wie Medizin, Smart-Home und Smart-Cities um nur einige des wachsenden Marktes zu nennen. Dabei geht es also im Wesentlichen immer folgendes Konzept. Ein Gerät wird mit einer Vielzahl von Sensoren bestückt die Informationen Sammeln. Diese Daten müssen in den richitgen Context gesetzt werden, gespeichert und verarbeitet werden. Und für den Benutzer ausgewertet und Intuitive repräsentiert werden. Dann spricht man von sogenannten “Intelligent Systems”. Der Trend in dem Technologie in unserem Alltag integriert ist und Teil des Alltages selbst ist. Ob das nun das autark fahrende Fahrzeug ist oder die App die unser Zuhause steuert. &lt;/p&gt;  &lt;h2&gt;Connected&lt;/h2&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/4377.jamytoaster1_5F00_1_5F00_5EDFA080.jpg"&gt;&lt;img title="jamy-toaster1_1" style="border: 0px currentcolor; margin-right: 0px; margin-left: 0px; display: inline;" border="0" alt="jamy-toaster1_1" align="right" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/7026.jamytoaster1_5F00_1_5F00_thumb_5F00_1D64EE27.jpg" width="194" height="161" /&gt;&lt;/a&gt;Ein weitere wichtiger Faktor in diesem Zusammenhang ist das Stichwort “Connected”. Ein Fahrzeug oder ein Zuhause das Informationen aufzeichnet und Intelligent in dem Sinne ist, das es seine Umgebung wahr nimmt ist nur ein Teil der Betrachtungsweise. Ein weiterer wichitger Aspekt ist die Speicherung und Verarbeitung der Daten. Zwar sind die Geräte alle mit einem entsprechenden Datenträger versehen, aber der Ansatz das Systeme anderen Systemen Ihre Informationen zur Verfügung Stellen ist die Idee des “Internet of Things”. Der Toaster der aktuelle Wetterkarten auf das Brot brennt ist nun wirklich nichts Neues. Aber Kühlschränke die Automatisch melden wenn Produkte ablaufen und uns das beste Angebot der hiesigen Lieferanten per E-Mail schickt ist schon eine coole Sache. So kann ich bequem von unterwegs bestellen und am Abend die Tüte mit den frisch gelieferten Waren im Kühlschrank verstauen. Der die Lebensmittel in Zukunft nicht nur frisch hält sondern auch Überwacht. Das bedeutet aber auch, dass mein Kühlschrank dazu in der Lage sein muss Angebote über das Internet abzurufen, und mich darüber zu Benachrichtigen. Also bekommt unser Kühlschrank einen entsprechenden Internet Anschluss über W-LAN oder LAN. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Andere Geräte die längst in unserem Alltag sind wie Smart-Phones und Tablets haben längst den dafür Notwendigen Internet Anschluss und sind ein toller Start um sich dieser neuen Welt zu nähern. &lt;/p&gt;  &lt;h2&gt;Sensoren in Windows 8 und Windows Phone 8&lt;/h2&gt;  &lt;p&gt;Windows Phone 8 und Windows 8 bietet dank Ihrer APIs einen direkten Zugriff auf vorhandene Hardware Ressourcen. Von der Webcam bis hin zu Accelerometer, Geolocation Sensor und Co. &lt;/p&gt;  &lt;p&gt;Da die Demos den Rahmen dieser Blogpost sprengen würden, habe ich mich dazu entschlossen die einzelnen Demos auf andere Blogposts auszulagern. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/patricb/archive/2013/04/02/internet-of-things-spa-223-mit-sensoren.aspx" target="_blank"&gt;Windows 8 CameraCapture Sample + MediaCapture API&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/patricb/archive/2013/04/04/geolocation-mit-windows-8.aspx" target="_blank"&gt;Geolocation Sample&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Accelerometer (cooming soon)&lt;/p&gt;  &lt;p&gt;Lightsensor (cooming soon)&lt;/p&gt;  &lt;p&gt;NFC (cooming soon)&lt;/p&gt;  &lt;p&gt;Anhand der Demos hat man gesehen wie einfach der Zugriff auf die Sensoren tatsächlich ist. Apps wie Foursquare, MyTaxi, … nutzen die unterschiedlichsten Sensoren um den User einen Mehrwert zu bieten. Dieser Mehrwert entscheidet ob ein User sich für oder gegen eine App entscheidet.&lt;/p&gt;  &lt;p&gt;Aber Apps stehen für sich alleine. Also ein Endgerät oder ein Benutzer. Die Idee die Werte und die Informationen zu bündeln um dadurch Mehrwerte zu schaffen ist der Gedanke hinter dem Schlagwort Internet of Things.&lt;/p&gt;  &lt;p&gt;Merhwerte schaffen durch Hardware? In unserem Alltag begegnen uns im Augenblick schon viele Sensoren die uns helfen wollen. Manchmal muss man aber auch erst einen Prototypen für eine solche Hardware-/Sotfwarelösung bauen. &lt;/p&gt;  &lt;h2&gt;Rapid Prototyping mit dem .net Gadgeteer&lt;/h2&gt;  &lt;p&gt;In der Industrie und auch an den Universitäten muss man aber oft ein PoC oder einen kleinen Prototypen also eine Machbarkeitsstudie bauen. gerade wenn es um Hardware geht und die nächste Generation UX spielt Time to Market immer häufiger eine große Rolle. Auch kann man darüber prüfen ob eine Idee tatsächlich Umsetzbar ist. Dank dem &lt;a href="http://www.netmf.com/" target="_blank"&gt;.net Microframework 4.2&lt;/a&gt; und dem &lt;a href="http://www.netmf.com/gadgeteer/" target="_blank"&gt;.net Gadgeteer&lt;/a&gt; der Firma &lt;a href="http://www.ghielectronics.com/" target="_blank"&gt;GHI Electronics&lt;/a&gt; ist genau dieses Szenario komfortabel und einfach geworden. &lt;/p&gt;  &lt;p&gt;Los geht es auf der &lt;a href="https://www.ghielectronics.com/support/.net-micro-framework" target="_blank"&gt;Support Seite von GHI Electronics&lt;/a&gt;, nach dem Registrieren/Anmelden erhält man zugriff auf Treiber und aktuelleste Flashes für die Hardware. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/2727.image_5F00_0E4E0F4D.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/1641.image_5F00_thumb_5F00_6562FA43.png" width="772" height="347" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Zum starten benötigt man das FEZ Spyder bzw. Hydra Mainbord (&lt;a href="http://www.ghielectronics.com/catalog/product/297" target="_blank"&gt;siehe Spezifikation&lt;/a&gt;) und das rote USB Client Dual Power Module. Dieses wird einfach über USB mit dem Computer verbunden. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/6763.WP_5F00_20130329_5F00_006_5F00_3F20A0EB.jpg"&gt;&lt;img title="WP_20130329_006" style="border: 0px currentcolor; display: inline;" border="0" alt="WP_20130329_006" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/3125.WP_5F00_20130329_5F00_006_5F00_thumb_5F00_20F2E337.jpg" width="179" height="185" /&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/8103.WP_5F00_20130329_5F00_010_5F00_3FC95715.jpg"&gt;&lt;img title="WP_20130329_010" style="border: 0px currentcolor; display: inline;" border="0" alt="WP_20130329_010" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/4774.WP_5F00_20130329_5F00_010_5F00_thumb_5F00_24445512.jpg" width="269" height="184" /&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/5270.image_5F00_57A0186E.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/1663.image_5F00_thumb_5F00_65AEE19E.png" width="273" height="181" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In der Konfiguration Port 1 = USBCDP lässt sich das Mainboard flashen. Und man kann im nächsten Schritt beginnen seinen Eigene Hardware zu bauen. &lt;/p&gt;  &lt;p&gt;ACHTUNG! Jeweils nur ein rotes Modul (USB Client Dual Power Module) an das Mainboard anschließen!!!&lt;/p&gt;  &lt;h2&gt;Hallo Welt mit Hardware&lt;/h2&gt;  &lt;p&gt;Bei den Windows 8 Sensoren Beispielen war als erstes die Kamera aufgeführt. Genau dieses Beispiel will ich jetzt mit dem Gadgeteer nachbauen. &lt;/p&gt;  &lt;p&gt;Dazu starte ich Visual Studio 2010 und lege ein neues Gadgeteer Projekt an. Die Toolbox Items und die Projekt Vorlage ist Teil des &lt;a href="https://www.ghielectronics.com/download/ghi-software-package-v4.2-02142013" target="_blank"&gt;GHI Software Package&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/2627.image_5F00_15898360.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/8004.image_5F00_thumb_5F00_1A1F8E1A.png" width="793" height="545" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Dadurch gelangt man zum Designer. Der einem das Mainboard anzeigt und in der Toolbox findet man eine aktuelle Liste der Module und Sensoren. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/3223.image_5F00_10771FE4.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/8585.image_5F00_thumb_5F00_6DD2E168.png" width="789" height="470" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Unser Versuchsaufbau sieht wie folgt aus:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/2543.image_5F00_315A6CBE.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/2627.image_5F00_thumb_5F00_65CB1939.png" width="383" height="254" /&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/1638.image_5F00_49D9E441.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/7024.image_5F00_thumb_5F00_133C1330.png" width="326" height="251" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Port 4 = Button    &lt;br /&gt;Port 3 = Camera     &lt;br /&gt;Port 1 = USB Client Dual Power Module     &lt;br /&gt;Touch Display T35     &lt;br /&gt;Port 14 = Display Port R     &lt;br /&gt;Port 13 = Display Port G     &lt;br /&gt;Port 12 = Display Port B     &lt;br /&gt;Port 10 = Display Port T (touch)&lt;/p&gt;  &lt;p&gt;Und damit ist unser Setup auch schon fertig. Genau diesen Aufbau bauen wir im Visual Studio im Designer nach. Was dabei heraus kommt ist eine entsprechende Partial Class die folgt definiert ist:&lt;/p&gt;  &lt;div style="border: 1px solid rgb(0, 0, 128); color: rgb(0, 0, 0); font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 10pt;"&gt;   &lt;div style="background: rgb(0, 0, 128); padding: 2px 5px; color: rgb(255, 255, 255); font-family: verdana, tahoma, arial, sans-serif; font-weight: bold;"&gt;Code Snippet&lt;/div&gt;    &lt;div style="background: rgb(221, 221, 221); overflow: auto; max-height: 300px;"&gt;     &lt;ol style="background: rgb(255, 255, 255); margin: 0px 0px 0px 2.5em; padding: 0px 0px 0px 5px;"&gt;       &lt;li&gt;&amp;#160;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;//------------------------------------------------------------------------------&lt;/span&gt;&lt;/li&gt;        &lt;li&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;// &amp;lt;auto-generated&amp;gt;&lt;/span&gt;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;//&amp;#160;&amp;#160;&amp;#160;&amp;#160; This code was generated by the Gadgeteer Designer.&lt;/span&gt;&lt;/li&gt;        &lt;li&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;//&lt;/span&gt;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;//&amp;#160;&amp;#160;&amp;#160;&amp;#160; Changes to this file may cause incorrect behavior and will be lost if&lt;/span&gt;&lt;/li&gt;        &lt;li&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;//&amp;#160;&amp;#160;&amp;#160;&amp;#160; the code is regenerated.&lt;/span&gt;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;// &amp;lt;/auto-generated&amp;gt;&lt;/span&gt;&lt;/li&gt;        &lt;li&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;//------------------------------------------------------------------------------&lt;/span&gt;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&lt;/li&gt;        &lt;li&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; Gadgeteer;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; GTM = Gadgeteer.Modules;&lt;/li&gt;        &lt;li&gt;&amp;#160;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;namespace&lt;/span&gt; stcHelloWorldGadgeteer&lt;/li&gt;        &lt;li&gt;{&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;partial&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Program&lt;/span&gt; : Gadgeteer.&lt;span style="color: rgb(43, 145, 175);"&gt;Program&lt;/span&gt;&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;// GTM.Module definitions&lt;/span&gt;&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Gadgeteer.Modules.GHIElectronics.&lt;span style="color: rgb(43, 145, 175);"&gt;Display_T35&lt;/span&gt; display_T35;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Gadgeteer.Modules.GHIElectronics.&lt;span style="color: rgb(43, 145, 175);"&gt;Camera&lt;/span&gt; camera;&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Gadgeteer.Modules.GHIElectronics.&lt;span style="color: rgb(43, 145, 175);"&gt;Button&lt;/span&gt; button;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt; Main()&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;//Important to initialize the Mainboard first&lt;/span&gt;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Mainboard = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; GHIElectronics.Gadgeteer.&lt;span style="color: rgb(43, 145, 175);"&gt;FEZSpider&lt;/span&gt;();&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/li&gt;        &lt;li&gt;&amp;#160;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(43, 145, 175);"&gt;Program&lt;/span&gt; program = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Program&lt;/span&gt;();&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; program.InitializeModules();&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; program.ProgramStarted();&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; program.Run(); &lt;span style="color: rgb(0, 128, 0);"&gt;// Starts Dispatcher&lt;/span&gt;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/li&gt;        &lt;li&gt;&amp;#160;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt; InitializeModules()&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&amp;#160;&amp;#160; &lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;// Initialize GTM.Modules and event handlers here.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; camera = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; GTM.GHIElectronics.&lt;span style="color: rgb(43, 145, 175);"&gt;Camera&lt;/span&gt;(3);&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; button = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; GTM.GHIElectronics.&lt;span style="color: rgb(43, 145, 175);"&gt;Button&lt;/span&gt;(4);&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; display_T35 = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; GTM.GHIElectronics.&lt;span style="color: rgb(43, 145, 175);"&gt;Display_T35&lt;/span&gt;(14, 13, 12, 10);&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/li&gt;        &lt;li&gt;}&lt;/li&gt;     &lt;/ol&gt;   &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Dadurch werden also Ports und Componenten Initialisiert. In der Partial Class Program.cs starten wir nun unsere Applikation.&lt;/p&gt;  &lt;p&gt;Sie besteht eigentlich nur aus zwei Delegaten. Der erste um herauszufinden ob der Button gedrückt wurde und der zweite um das geschossene Bild der Kamera auf dem Display darzustellen. &lt;/p&gt;  &lt;div style="border: 1px solid rgb(0, 0, 128); color: rgb(0, 0, 0); font-family: &amp;quot;Courier New&amp;quot;, courier, monospace; font-size: 10pt;"&gt;   &lt;div style="background: rgb(0, 0, 128); padding: 2px 5px; color: rgb(255, 255, 255); font-family: verdana, tahoma, arial, sans-serif; font-weight: bold;"&gt;Code Snippet&lt;/div&gt;    &lt;div style="background: rgb(221, 221, 221); overflow: auto; max-height: 300px;"&gt;     &lt;ol style="background: rgb(255, 255, 255); margin: 0px 0px 0px 2.5em; padding: 0px 0px 0px 5px;"&gt;       &lt;li&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; System;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; System.Collections;&lt;/li&gt;        &lt;li&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; System.Threading;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; Microsoft.SPOT;&lt;/li&gt;        &lt;li&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; Microsoft.SPOT.Presentation;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; Microsoft.SPOT.Presentation.Controls;&lt;/li&gt;        &lt;li&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; Microsoft.SPOT.Presentation.Media;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; Microsoft.SPOT.Touch;&lt;/li&gt;        &lt;li&gt;&amp;#160;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; Gadgeteer.Networking;&lt;/li&gt;        &lt;li&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; GT = Gadgeteer;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; GTM = Gadgeteer.Modules;&lt;/li&gt;        &lt;li&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;using&lt;/span&gt; Gadgeteer.Modules.GHIElectronics;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&lt;/li&gt;        &lt;li&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;namespace&lt;/span&gt; stcHelloWorldGadgeteer&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;{&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 0, 255);"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;partial&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Program&lt;/span&gt;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;// This method is run when the mainboard is powered up or reset.&amp;#160;&amp;#160; &lt;/span&gt;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt; ProgramStarted()&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;/*******************************************************************************************&lt;/span&gt;&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;Modules added in the Program.gadgeteer designer view are used by typing &lt;/span&gt;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;their name followed by a period, e.g.&amp;#160; button.&amp;#160; or&amp;#160; camera.&lt;/span&gt;&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;&lt;/span&gt;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;Many modules generate useful events. Type +=&amp;lt;tab&amp;gt;&amp;lt;tab&amp;gt; to add a handler to an event, e.g.:&lt;/span&gt;&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;button.ButtonPressed +=&amp;lt;tab&amp;gt;&amp;lt;tab&amp;gt;&lt;/span&gt;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;&lt;/span&gt;&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;If you want to do something periodically, use a GT.Timer and handle its Tick event, e.g.:&lt;/span&gt;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;GT.Timer timer = new GT.Timer(1000); // every second (1000ms)&lt;/span&gt;&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;timer.Tick +=&amp;lt;tab&amp;gt;&amp;lt;tab&amp;gt;&lt;/span&gt;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;timer.Start();&lt;/span&gt;&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;*******************************************************************************************/&lt;/span&gt;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; button.ButtonPressed += &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Button&lt;/span&gt;.&lt;span style="color: rgb(43, 145, 175);"&gt;ButtonEventHandler&lt;/span&gt;(button_ButtonPressed);&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; camera.PictureCaptured += &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;Camera&lt;/span&gt;.&lt;span style="color: rgb(43, 145, 175);"&gt;PictureCapturedEventHandler&lt;/span&gt;(camera_PictureCaptured);&lt;/li&gt;        &lt;li&gt;&amp;#160;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 128, 0);"&gt;// Use Debug.Print to show messages in Visual Studio's &amp;quot;Output&amp;quot; window during debugging.&lt;/span&gt;&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(43, 145, 175);"&gt;Debug&lt;/span&gt;.Print(&lt;span style="color: rgb(163, 21, 21);"&gt;&amp;quot;Program Started&amp;quot;&lt;/span&gt;);&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/li&gt;        &lt;li&gt;&amp;#160;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt; camera_PictureCaptured(&lt;span style="color: rgb(43, 145, 175);"&gt;Camera&lt;/span&gt; sender, GT.&lt;span style="color: rgb(43, 145, 175);"&gt;Picture&lt;/span&gt; picture)&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; display_T35.SimpleGraphics.DisplayImage(picture, 5, 5);&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt; button_ButtonPressed(&lt;span style="color: rgb(43, 145, 175);"&gt;Button&lt;/span&gt; sender, &lt;span style="color: rgb(43, 145, 175);"&gt;Button&lt;/span&gt;.&lt;span style="color: rgb(43, 145, 175);"&gt;ButtonState&lt;/span&gt; state)&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; camera.TakePicture();&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/li&gt;        &lt;li&gt;&amp;#160;&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;&amp;#160;&lt;/li&gt;        &lt;li&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/li&gt;        &lt;li style="background: rgb(243, 243, 243);"&gt;}&lt;/li&gt;     &lt;/ol&gt;   &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Das ganze war schon sehr einfach. So schnell kann man also seine eigene Applikation mit dem .net Gadgeteer bauen.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Ein Beispiel für Home Automation ist das Projekt Heidi. Das Bernd und ich für die CeBit gebaut haben.    &lt;br /&gt;    &lt;br /&gt;Demo Project Heidi (cooming soon)&lt;/p&gt;  &lt;h2&gt;Fazit&lt;/h2&gt;  &lt;p&gt;In der Zukunft wird uns Technologie umgeben und Intelligent Systems werden unseren Alltag vereinfachen. Ob es nun Fahrzeuge sind oder Städte wie im Falle von Logica (gehört jetzt zu CGI Gruppe) die sich auf Smart City und Energie Effizienz spezialisert haben. Die zukünftige UX des Users wird also viel von der Umgebung abhängen und den Sensoren die wiederum Apps die sich der Umgebung anpassen, oder die Umgebung steuern. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Die Präsentation von der STC finden Sie hier:&lt;/p&gt; &lt;iframe height="400" marginheight="0" src="http://www.slideshare.net/slideshow/embed_code/18210370" frameborder="0" width="476" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10406892" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Tools/">Tools</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Windows/">Windows</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Visual+Studio/">Visual Studio</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/-net/">.net</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/C_2300_/">C#</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Windows+8/">Windows 8</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Sensoren/">Sensoren</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Security/">Security</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Visual+Studio+2012/">Visual Studio 2012</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Camera/">Camera</category></item><item><title>App Developer Day in München</title><link>http://blogs.msdn.com/b/patricb/archive/2013/03/21/app-developer-day-in-m-252-nchen.aspx</link><pubDate>Thu, 21 Mar 2013 12:17:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10404173</guid><dc:creator>patricb</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/patricb/rsscomments.aspx?WeblogPostID=10404173</wfw:commentRss><comments>http://blogs.msdn.com/b/patricb/archive/2013/03/21/app-developer-day-in-m-252-nchen.aspx#comments</comments><description>&lt;p&gt;Aufgrund der großen Nachfrage, meine Slides zum App Developer Day in München:&lt;/p&gt; &lt;iframe style="border-width: 1px 1px 0px; border-style: solid; border-color: rgb(204, 204, 204); margin-bottom: 5px;" height="356" marginheight="0" src="http://www.slideshare.net/slideshow/embed_code/17451100" frameborder="0" width="427" marginwidth="0" scrolling="no" mozallowfullscreen="mozallowfullscreen" webkitallowfullscreen="webkitallowfullscreen" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;   &lt;div style="margin-bottom: 5px;"&gt;&lt;strong&gt;&lt;a title="Windows 8 App Developer Day" href="http://www.slideshare.net/patricsmsdn/windows-8-app-developer-day" target="_blank"&gt;Windows 8 App Developer Day&lt;/a&gt; &lt;/strong&gt;from &lt;strong&gt;&lt;a href="http://www.slideshare.net/patricsmsdn" target="_blank"&gt;Patric Boscolo&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;  &lt;p&gt;Und da ich viele Nachfragen zu den Windows Azure Slides bekommen habe, hier sind Sie.&lt;/p&gt; &lt;iframe style="border-width: 1px 1px 0px; border-style: solid; border-color: rgb(204, 204, 204); margin-bottom: 5px;" height="356" marginheight="0" src="http://www.slideshare.net/slideshow/embed_code/17454469" frameborder="0" width="427" marginwidth="0" scrolling="no" mozallowfullscreen="mozallowfullscreen" webkitallowfullscreen="webkitallowfullscreen" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;   &lt;div style="margin-bottom: 5px;"&gt;&lt;strong&gt;&lt;a title="Erfolgsfaktor app!" href="http://www.slideshare.net/patricsmsdn/erfolgsfaktor-app-muc" target="_blank"&gt;Erfolgsfaktor app!&lt;/a&gt; &lt;/strong&gt;from &lt;strong&gt;&lt;a href="http://www.slideshare.net/patricsmsdn" target="_blank"&gt;Patric Boscolo&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;  &lt;p&gt; Die ausführliche Studie die wir besprochen haben, finden Sie in der Blogpost: &lt;a href="http://blogs.msdn.com/b/patricb/archive/2013/03/19/studie-zur-mobilen-strategie-von-compuware.aspx" target="_blank"&gt;Studie zur Mobilen Strategie von Compuware&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10404173" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Windows/">Windows</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Windows+Azure/">Windows Azure</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Windows+Azure+Mobile+Services/">Windows Azure Mobile Services</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Windows+8/">Windows 8</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Mobile+Strategie/">Mobile Strategie</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Windows+Phone+8/">Windows Phone 8</category></item><item><title>Studie zur Mobilen Strategie von Compuware</title><link>http://blogs.msdn.com/b/patricb/archive/2013/03/19/studie-zur-mobilen-strategie-von-compuware.aspx</link><pubDate>Tue, 19 Mar 2013 15:58:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10403539</guid><dc:creator>patricb</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/patricb/rsscomments.aspx?WeblogPostID=10403539</wfw:commentRss><comments>http://blogs.msdn.com/b/patricb/archive/2013/03/19/studie-zur-mobilen-strategie-von-compuware.aspx#comments</comments><description>&lt;p&gt;&lt;a href="http://www.compuware.com/" target="_blank"&gt;&lt;font size="3"&gt;Compuware&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; hat letzte Woche eine Studie zur Nutzung von Apps auf Mobilen Endgeräten (Smartphone/Tablet) veröffentlicht. Befragt wurden rund 3.500 Nutzer aus unterschiedlichen Regionen (USA, Deutschland, UK, Frankreich, Japan und Indien). Die Befragung wurde im Oktober letzten Jahres durchgeführt weshalb hier weder Windows 8 noch Windows Phone 8 berücksichtigt sind. Das Fazit? &lt;/font&gt;&lt;a href="http://techcrunch.com" target="_blank"&gt;&lt;font size="3"&gt;Techcrunch&lt;/font&gt;&lt;/a&gt;&lt;font size="3"&gt; schreibt: &lt;/font&gt;&lt;a href="http://techcrunch.com/2013/03/12/users-have-low-tolerance-for-buggy-apps-only-16-will-try-a-failing-app-more-than-twice/" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://techcrunch.com/2013/03/12/users-have-low-tolerance-for-buggy-apps-only-16-will-try-a-failing-app-more-than-twice/" target="_blank"&gt;&lt;font size="3"&gt;&lt;strong&gt;Users Have Low Tolerance for Buggy Apps.&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;a href="http://www.zite.com/" target="_blank"&gt;Zite&lt;/a&gt; für Windows Phone hat mich letzte Woche auf die Studie aufmerksam gemacht. Und ich habe Sie jetzt auch schon in einigen Vorträgen zitiert. Was mich persönlich beeindruckt hat, sind folgende Thesen:&lt;/font&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font size="3"&gt;&lt;strong&gt;85%&lt;/strong&gt; der Befragten ziehen eine Mobile App einer Mobilen Internetseite vor.         &lt;br /&gt;&lt;/font&gt;&lt;font size="3"&gt;Die Befragten loben die &lt;strong&gt;Schnelligkeit&lt;/strong&gt;, &lt;strong&gt;einfache Handhabung&lt;/strong&gt; und &lt;strong&gt;Komfortabilität&lt;/strong&gt; der Apps. Im Vergleich zu Mobilen Internetseiten. &lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="3"&gt;Dafür sind Sie aber auch nicht gerade Fehlertolerant. Apps dürfen sich zwar zum Starten 3 Sekunden Zeit lassen, besonders Spiele dürfen auch ein wenig länger brauchen. Aber wenn eine App hängt oder nicht wie gewünscht funktioniert. Selbst wenn die Erwartungshaltung nicht erfüllt wird, ist die liebe zur App ganz schnell vorbei. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Aus eigenem Konsumenten Verhalten kann ich das bestätigen. Erfüllt eine App eine konkrete Aufgabe nicht, gebe ich Ihr natürlich eine zweite Chance, auch eine dritte vielleicht noch. Aber mit mehr Toleranz und Guten Willen darf eine App nicht erwarten. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Die Studie findet man hier: &lt;a href="http://offers2.compuware.com/apm.en.wp_thank_you.html?aliId=3413717" target="_blank"&gt;Compuware Whitepapers&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Einige Quellen und Artikel zu diesem Thema:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.thestrategyweb.com/study-consumers-prefer-mobile-apps-to-mobile-websites" href="http://www.thestrategyweb.com/study-consumers-prefer-mobile-apps-to-mobile-websites"&gt;http://www.thestrategyweb.com/study-consumers-prefer-mobile-apps-to-mobile-Websites&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.mobilemarketingwatch.com/study-85-of-consumers-prefer-mobile-apps-to-mobile-websites-30253/" href="http://www.mobilemarketingwatch.com/study-85-of-consumers-prefer-mobile-apps-to-mobile-websites-30253/"&gt;http://www.mobilemarketingwatch.com/study-85-of-consumers-prefer-mobile-apps-to-mobile-websites-30253/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://techcrunch.com/2013/03/12/users-have-low-tolerance-for-buggy-apps-only-16-will-try-a-failing-app-more-than-twice/" href="http://techcrunch.com/2013/03/12/users-have-low-tolerance-for-buggy-apps-only-16-will-try-a-failing-app-more-than-twice/"&gt;http://techcrunch.com/2013/03/12/users-have-low-tolerance-for-buggy-apps-only-16-will-try-a-failing-app-more-than-twice/&lt;/a&gt;&lt;/p&gt; &lt;iframe style="border-width: 1px 1px 0px; border-style: solid; border-color: rgb(204, 204, 204); margin-bottom: 5px;" height="356" marginheight="0" src="http://de.slideshare.net/slideshow/embed_code/17369282" frameborder="0" width="427" marginwidth="0" scrolling="no" mozallowfullscreen="mozallowfullscreen" webkitallowfullscreen="webkitallowfullscreen" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;   &lt;div style="margin-bottom: 5px;"&gt;&lt;strong&gt;&lt;a title="Studie Mobile Apps" href="http://de.slideshare.net/patricsmsdn/studie-mobile-apps" target="_blank"&gt;Studie Mobile Apps&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a href="http://de.slideshare.net/patricsmsdn" target="_blank"&gt;Patric Boscolo&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10403539" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Mobile+Strategy/">Mobile Strategy</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Studie/">Studie</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Mobile+Sites/">Mobile Sites</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Mobile+Apps/">Mobile Apps</category></item><item><title>A better Command Prompt</title><link>http://blogs.msdn.com/b/patricb/archive/2012/08/20/a-better-command-prompt.aspx</link><pubDate>Sun, 19 Aug 2012 23:22:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10341466</guid><dc:creator>patricb</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/patricb/rsscomments.aspx?WeblogPostID=10341466</wfw:commentRss><comments>http://blogs.msdn.com/b/patricb/archive/2012/08/20/a-better-command-prompt.aspx#comments</comments><description>&lt;p&gt;Since I like the CMD Shell per Default to be the Visual Studio Command Prompt I was wondering how to achieve this. Found a way by simply adding the Following Arguments to the System Settings.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;%comspec% /k &amp;quot;&amp;quot;C:\Program Files\Microsoft Visual Studio 11.0\VC\vcvarsall.bat&amp;quot;&amp;quot; x86&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;And here is where you set this. &lt;/p&gt;  &lt;p&gt;Press: Windows + Pause and click on Advanced System Settings. &lt;/p&gt;  &lt;p&gt;The Full Variable Value should look like this:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;%SystemRoot%\system32\cmd.exe %comspec% /k &amp;quot;&amp;quot;C:\Program Files\Microsoft Visual Studio 11.0\VC\vcvarsall.bat&amp;quot;&amp;quot; x86&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/5734.image_5F00_54BF8B61.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline; background-image: none;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/6305.image_5F00_thumb_5F00_0240AB25.png" width="348" height="420" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;This is: How to make Visual Studio Command Shell the default command Shell. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10341466" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Tools/">Tools</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Tipps+_2600_+Tricks/">Tipps &amp; Tricks</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Windows/">Windows</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/-net/">.net</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Microsoft+Visual+Studio/">Microsoft Visual Studio</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Visual+Studio+Command+Shell/">Visual Studio Command Shell</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Command+Shell/">Command Shell</category></item><item><title>Write a WorkItem or Bug to TFS Preview in the Cloud</title><link>http://blogs.msdn.com/b/patricb/archive/2012/08/16/write-a-workitem-or-bug-to-tfs-preview-in-the-cloud.aspx</link><pubDate>Thu, 16 Aug 2012 01:34:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10340253</guid><dc:creator>patricb</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/patricb/rsscomments.aspx?WeblogPostID=10340253</wfw:commentRss><comments>http://blogs.msdn.com/b/patricb/archive/2012/08/16/write-a-workitem-or-bug-to-tfs-preview-in-the-cloud.aspx#comments</comments><description>&lt;p&gt;Ok, some folks just my search the interweb in how to connect to programmatically via C# to TFS Preview. Here is the how to guide. &lt;/p&gt;  &lt;p&gt;So First you need the TFS SDK which you can find here.&lt;/p&gt;  &lt;p&gt;Afterwards please make sure you have installed the &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=29082" target="_blank"&gt;KB2662296 Fix&lt;/a&gt; which is explained &lt;a href="http://support.microsoft.com/kb/2662296" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;That's all you need to get started. &lt;/p&gt;  &lt;p&gt;So you start be Making a new Project. In my case I’d like to do a ASP.net MVC Application. So I just wanted to have Controller which is doing all the Magic.    &lt;br /&gt;    &lt;br /&gt;public string SetWorkitems() { }&lt;/p&gt;  &lt;p&gt;In order to connect to the TFS in the cloud you have to check out the Endpoint. Here is how this is supposed too look like:&lt;/p&gt;  &lt;p&gt;&amp;#160; &amp;gt;&amp;gt; &lt;a title="https://darksidebakery.tfspreview.com/defaultcollection" href="https://YOURACCOUNT.tfspreview.com/defaultcollection"&gt;https://YOURACCOUNT.tfspreview.com/defaultcollection&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once you figured that out you just need to know how to authenticate against the TFS Preview. Here is the reason why you need to install the KB Fix. Same is true if you want to connect to TFS Preview in the Cloud via Visual Studio 2010 and Team Explorer. Since we use the Identity Service Provider. So that means somewhere behind that is a Resource STS checking if you are allowed to do what you are supposed to do. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The magical Class is &lt;font color="#0080c0"&gt;ServiceIdentityCredentialsProvider&lt;/font&gt; which you should find in the Microsoft.TeamFoundation.Client.dll.&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;If it is missing you should Install the &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=29082" target="_blank"&gt;KB2662296&lt;/a&gt; we discussed earlier. &lt;/p&gt;  &lt;p&gt;Well you can now write your own Identity Service Factory to retrieve the Account or you can just use the &lt;a href="http://blog.hinshelwood.com/tfs-service-credential-viewer/" target="_blank"&gt;Tool by Martin Hinshelwood&lt;/a&gt;.     &lt;br /&gt;Once you authenticated against your TFS Preview instance you get the corresponding User and Password strings. &lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;public string SetWorkitems()     &lt;br /&gt; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; const string serviceUser = &amp;quot;&lt;font color="#ff0000"&gt;Account Service (generated by Tool&lt;/font&gt;)&amp;quot;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; const string servicePassword = &lt;font color="#ff0000"&gt;&amp;quot;generated by Tool&amp;quot;;&lt;/font&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; var collection = new Uri(&amp;quot;https://&lt;font color="#ff0000"&gt;YOURACCOUNT&lt;/font&gt;.tfspreview.com/defaultcollection&amp;quot;);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; const string teamProject = &amp;quot;&lt;font color="#ff0000"&gt;YOURPROJECT&lt;/font&gt;&amp;quot;; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160; var provider = new ServiceIdentityCredentialsProvider(serviceUser, servicePassword); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160; var tfs = new TfsTeamProjectCollection(collection, provider);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; // check if authentication works      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; tfs.EnsureAuthenticated(); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160; var workItemStore = tfs.GetService&amp;lt;WorkItemStore&amp;gt;();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if (workItemStore==null)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //just for the error handling once more the call      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var tmpTest = new WorkItemStore(tfs);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160; if (workItemStore != null)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WorkItemTypeCollection workItemTypes = workItemStore.Projects[teamProject].WorkItemTypes; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //Define Workitem Type as Bug     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WorkItemType workItemType = workItemTypes[&amp;quot;Bug&amp;quot;]; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //Assign values to each mandatory field     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var workItem = new WorkItem(workItemType); &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string workItemTitle = &amp;quot;YOURWORKITEMTITLE&amp;quot;;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string workItemIterationPath = @&amp;quot;YOURAREAPATH\Release 1&amp;quot;;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string workItemAreaPath = &amp;quot;YOURAREAPATH&amp;quot;;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; workItem.Title = workItemTitle;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; workItem.AreaPath = workItemAreaPath;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; workItem.IterationPath = workItemIterationPath; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //Check for Validation errors before saving     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var validationErrors = workItem.Validate();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (validationErrors.Count==0)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; workItem.Save();      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return validationErrors.Count.ToString(CultureInfo.InvariantCulture);      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Consolas"&gt;&amp;#160;&amp;#160;&amp;#160; return &amp;quot;success&amp;quot;;     &lt;br /&gt; }&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The rest is just API Stuff, which should be easy. Notice in order to Retrieve and work with Workitems there is a bunch of Team Foundation SDK References you will need to add. Here is the List.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/6136.image_5F00_1B3F7211.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/2474.image_5F00_thumb_5F00_0B5ECFCC.png" width="536" height="177" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;That's it happy Extensioning!!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10340253" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Visual+Studio/">Visual Studio</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/-net/">.net</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/C_2300_/">C#</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Microsoft+Visual+Studio/">Microsoft Visual Studio</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Visual+Studio+SDK/">Visual Studio SDK</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/-net+4/">.net 4</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/TFS+Preview/">TFS Preview</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/TFS+in+the+Cloud/">TFS in the Cloud</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/TFS/">TFS</category></item><item><title>Mapping SCRUM to Visual Studio 2012</title><link>http://blogs.msdn.com/b/patricb/archive/2012/08/15/mapping-scrum-to-visual-studio-2012.aspx</link><pubDate>Tue, 14 Aug 2012 23:59:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10339683</guid><dc:creator>patricb</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/patricb/rsscomments.aspx?WeblogPostID=10339683</wfw:commentRss><comments>http://blogs.msdn.com/b/patricb/archive/2012/08/15/mapping-scrum-to-visual-studio-2012.aspx#comments</comments><description>&lt;p&gt;Come over this nice definitions of Richard Hundhausen about that terminology in SCRUM and TFS. Which I found very useful, so maybe you like to check that out as well?&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Scrum Concept&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;Visual Studio Concept&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Team&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;Team Foundation Server security groups&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Definition of Done&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;Wiki entry or document on the portal&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Product&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;Team Project&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Product Backlog&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;Product Backlog shared query or Backlog page on TWA&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Product Backlog Item&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;PBI or Bug work item&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Acceptance Criteria&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;Acceptance Criteria field and (optionally) associated Test Case work item(s)&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Release&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;Iteration Path (high level)&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Release Plan&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;Backlog page on Team Web Access (w/ Forecast tool)&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Sprint&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;Iteration Path (low level)&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Sprint Dates&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;Iteration start and end dates&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Sprint Goal&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;Wiki entry or document on the portal&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Sprint Backlog&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;Sprint Backlog shared query or Backlog &amp;amp; Board pages on TWA&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Task&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;Task work item&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Burndown and Velocity&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;Release Burndown, Sprint Burndown, and Velocity reports and charts on TWA&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Impediment&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;Impediment work item&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td width="277"&gt;         &lt;p&gt;Retrospective&lt;/p&gt;       &lt;/td&gt;        &lt;td width="923"&gt;         &lt;p&gt;Wiki entry or document on the portal&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10339683" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Visual+Studio/">Visual Studio</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/TFS/">TFS</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Agile/">Agile</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/SCRUM/">SCRUM</category></item><item><title>Windows Azure Blob Storage einrichten</title><link>http://blogs.msdn.com/b/patricb/archive/2012/06/10/windows-azure-blob-storage-einrichten.aspx</link><pubDate>Sun, 10 Jun 2012 19:26:45 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10318110</guid><dc:creator>patricb</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/patricb/rsscomments.aspx?WeblogPostID=10318110</wfw:commentRss><comments>http://blogs.msdn.com/b/patricb/archive/2012/06/10/windows-azure-blob-storage-einrichten.aspx#comments</comments><description>&lt;p align="justify"&gt;Das neue Portal ist online, und da ich gerade einen Sample Download Ordner für die Dark Side Bakery Samples anlege, dachte ich mir ich mache mal eben kurz ein Tutorial. &lt;/p&gt;  &lt;p align="justify"&gt;Zuerst melde ich mich über das neue Portal &lt;a title="https://manage.windowsazure.com" href="https://manage.windowsazure.com"&gt;https://manage.windowsazure.com&lt;/a&gt; an.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/2677.image_5F00_3A900EB1.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/8446.image_5F00_thumb_5F00_733D496F.png" width="828" height="504" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Dort angekommen gehe ich in den Bereich Storage. Und lege eine neue Storage an. Über den Punkt +New&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/0511.image_5F00_329D8DB1.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/7853.image_5F00_thumb_5F00_7D938F31.png" width="816" height="483" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Ich fülle die entsprechenden Felder aus.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/0027.image_5F00_214F477D.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/0508.image_5F00_thumb_5F00_6C4548FD.png" width="815" height="486" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Jede Blob Storage hat eine eindeutige URL als Endpoint. Ich trage also die URL ein und kann eine Regionsauswahl treffen. Für Europa können nun entweder Affinity Groups definiert und ausgewählt werden, oder man verwendet die Datacenter in Dublin bzw. Amsterdam. Da bei meinem letzten Loadtest eine bessere Performance von Amsterdam gemessen wurde. Lege ich diese Blob Storage auch dort an. Da ich mehrere Accounts auf Azure habe, wähle ich im Menupunkt Subscriptions meinen Internen Account aus. &lt;/p&gt;  &lt;p align="justify"&gt;Insgesamt gibt es derzeit auf Windows Azure 3 Arten von Storages. Die BLOB (Binary Large Object) Storage, die Table Storage (NoSQL) und Queue. Bei letzteren ist der Name Program. Um die BLOB Storage nutzen zu können richtet Windows Azure einen Entsprechenden DNS Eintrag ein. Mehr zu diesem Thema findet man auf der &lt;a href="http://www.windowsazure.com/en-us/develop/net/how-to-guides/blob-storage/" target="_blank"&gt;Azure Developer Seite&lt;/a&gt;.&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/0083.image_5F00_3DEE5401.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/4606.image_5F00_thumb_5F00_46DDE640.png" width="814" height="47" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p align="justify"&gt;Ist das erledigt, ist die BLOB Storage unter der URL &lt;a href="http://darksidebakery.blob.core.windows.net/"&gt;&lt;/a&gt;&lt;a href="http://darksidebakery.blob.core.windows.net/" target="_blank"&gt;http://darksidebakery.blob.core.windows.net/&lt;/a&gt; zu erreichen. &lt;/p&gt;  &lt;p align="justify"&gt;Im nächsten Schritt, erstelle ich ein Monitoring. Dazu gehe ich in der oberen Leiste auf Monitoring und setze die Einstellungen so, dass wir ein präzises Monitoring für Transaktionen auf den BLOB erhalten. Das Portal weißt mich auch darauf hin, dass ich nun höhere Kosten habe und mit Performance einbrüchen rechnen muss.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/5850.image_5F00_08E45582.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/2046.image_5F00_thumb_5F00_53DA5702.png" width="823" height="494" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Damit man auch Daten ablegen kann, benötigt man sogenannte Container. Diese kann man mit einer entsprechenden Berechtigung versehen. Um diese Container anzulegen, kann man entweder das SDK verwenden und einige Zeilen Code Tippen oder &lt;a href="http://www.cloudberrylab.com/free-microsoft-azure-explorer.aspx" target="_blank"&gt;CloudBerry&lt;/a&gt; verwenden. &lt;/p&gt;  &lt;p&gt;Der Zugriff von CloudBerry geschieht über einen sogenannten Access Key. In Cloud Berry kann man unter Source: Add Azure Blob Storage Account Container anlegen. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/3201.image_5F00_77960F4D.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/5857.image_5F00_thumb_5F00_428C10CE.png" width="837" height="498" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Dazu wählt man einen beliebigen Display Name aus und hinterlegt den Account was in diesem Beispiel “darksidebakery” ist. Und übernimmt aus dem Portal den Access Key über Manage Keys. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/7870.image_5F00_6647C919.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/0636.image_5F00_thumb_5F00_313DCA9A.png" width="825" height="488" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Via Copy und Paste in CloudBerry einfügen und Test Connection verrät ob alles geklappt hat.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/5415.image_5F00_30D42856.png"&gt;&lt;img title="image" style="border: 0px currentcolor; display: inline;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/0143.image_5F00_thumb_5F00_7BCA29D6.png" width="825" height="457" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Ist der Account angelegt, kann man sich auf die BLOB Storage verbinden und einen neuen Container anlegen. In unserem Fall wollen wir dem Internet einen Full Read Access geben. Und wählen die entsprechende Einstellung aus. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/2678.image_5F00_666F051F.png"&gt;&lt;img title="image" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block;" border="0" alt="image" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/0525.image_5F00_thumb_5F00_5D15D09C.png" width="362" height="272" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Jetzt kann man via Cloudberry und Drag &amp;amp; Drop Dateien wie man es von einem klassischen FTP Program gewohnt ist uploaden. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10318110" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Tools/">Tools</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Windows+Azure/">Windows Azure</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Cloud/">Cloud</category></item><item><title>Windows 8 RC Installation</title><link>http://blogs.msdn.com/b/patricb/archive/2012/06/04/windows-8-rc-installation.aspx</link><pubDate>Mon, 04 Jun 2012 13:55:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10314674</guid><dc:creator>patricb</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/patricb/rsscomments.aspx?WeblogPostID=10314674</wfw:commentRss><comments>http://blogs.msdn.com/b/patricb/archive/2012/06/04/windows-8-rc-installation.aspx#comments</comments><description>&lt;p&gt;Wie hat &lt;a href="http://www.bennyn.de/" target="_blank"&gt;Benny&lt;/a&gt; so treffend formuliert? &lt;/p&gt;  &lt;blockquote&gt;   &lt;h6&gt;Die Entwicklung für Windows 8 ist einfacher als seine Installation. &lt;/h6&gt; &lt;/blockquote&gt;  &lt;p&gt;Da wir hier in der &lt;a href="http://darksidebakery.de/" target="_blank"&gt;Dark Side Bakery&lt;/a&gt; schon häufiger die Frage gestellt bekommen haben: Wie, Welche Reihenfolge? …     &lt;br /&gt;Habe ich mich dazu durchgerungen einen Installationsguide zu schreiben. Alle Angaben sind wie immer ohne Gewähr und zum Thema Haftung Ihr kennt die Antwort. Ich bin nicht Schuld. Wer &lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;h6&gt;&amp;gt;Format c:&lt;/h6&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;macht ist selber Schuld!&lt;/p&gt;  &lt;h2&gt;Zutaten&lt;/h2&gt;  &lt;p&gt;Da wir das hinreichend geklärt haben, können wir wie bei jedem guten Kochbuch auf die Zutaten schauen:&lt;/p&gt;  &lt;p&gt;3,4 GB &lt;a href="http://msdn.microsoft.com/de-DE/windows/apps/br229516" target="_blank"&gt;Windows 8 RC Build 8400&lt;/a&gt;     &lt;br /&gt;103 MB &lt;a href="http://www.zune.net/de-DE/" target="_blank"&gt;Zune Player&lt;/a&gt;     &lt;br /&gt;290 MB Expression Studio 4     &lt;br /&gt;2,6 GB Office 2010 SP1 Professional     &lt;br /&gt;686 MB SQL Server 2012 Express with Advanced Services &amp;amp; Management Studio     &lt;br /&gt;2,3 GB Visual Studio 2010 Ultimate     &lt;br /&gt;1,6 GB Visual Studio 2012 Ultimate     &lt;br /&gt;41,8 MB &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=15658" target="_blank"&gt;Windows Azure SDK 1.4&lt;/a&gt;     &lt;br /&gt;41,4 MB &lt;a href="http://www.windowsazure.com/de-de/develop/net/" target="_blank"&gt;Windows Azure SDK 1.6&lt;/a&gt;     &lt;br /&gt;2,9 MB &lt;a href="http://wapmmc.codeplex.com/" target="_blank"&gt;Windows Azure MMC&lt;/a&gt;     &lt;br /&gt;33,9 MB &lt;a href="http://watwindows8.codeplex.com/" target="_blank"&gt;Windows Azure Toolkit for Windows 8&lt;/a&gt;     &lt;br /&gt;559 MB &lt;a href="http://create.msdn.com/en-us/home/getting_started" target="_blank"&gt;Windows Phone Tools&lt;/a&gt;     &lt;br /&gt;Über den Webplattform Installer kommen noch weitere Zutaten wie: &lt;a href="http://www.asp.net/mvc/mvc4" target="_blank"&gt;ASP.net MVC 4 RC&lt;/a&gt;, Webmatrix, ISS Developer Express …     &lt;br /&gt;Und natürlich noch &lt;a href="http://blogs.msdn.com/b/patricb/archive/2011/01/22/der-neue-und-das-thinkpad.aspx" target="_blank"&gt;die Tools der Wahl&lt;/a&gt;…&lt;/p&gt;  &lt;h2&gt;Zubereitung&lt;/h2&gt;  &lt;p&gt;Nachdem man Windows 8 via des &lt;a href="http://emea.microsoftstore.com/DE/de-DE/Service-Center/Windows-7-USB-DVD-Download-Tool" target="_blank"&gt;Windows 7 USB Stick Tools&lt;/a&gt; auf einen bootbaren USB Stick gebracht hat, beginnt die Installation. … Nach round about 1800 Sekunden sollte die Installation fertig sein. Und ich beginne immer mit Office aber auch die kleinen Helferlein die jeder haben mag, also Tools sind ein willkommener Startpunkt. Nach der Installation von Office folgt die Installation der Add- und Plugins für die Office 2010 Suite. Jetzt noch schnell Zune installiert. Habe kürzlich einige Einstellungen zerschossen, als ich Zune nachinstalliert habe. Deswegen der frühe Zeitpunkt. &lt;/p&gt;  &lt;p&gt;Nach der Installation der Tools und Helfer die spätestens jetzt angesagt ist, beginnen wir mit dem SQL Server 2012. Diesen gibt es in Unterschiedlichen Geschmacksrichtungen. Und hier sollte nun wirklich für jeden was dabei sein. Ich habe mich für die Express variante Entschieden und nach der Installation als SQLExpress Instanz kommen die Expression Tools dazu. Dazu zählt auch die Installation der Windows Phone Tools, die gleich nach der Expression Studio Serie installiert wird. &lt;/p&gt;  &lt;p&gt;So, jetzt sind Visual Studio 2010 und die damit verbundenen Extensions an die Reihe. Und natürlich nicht zu vergessen, das &lt;a href="http://www.microsoft.com/en-us/download/details.aspx?id=23691" target="_blank"&gt;SP 1 für Visual Studio 2010&lt;/a&gt;.    &lt;br /&gt;Dann sind auch schon Webmatrix, IIS Express und ASP.net MVC 4 an der Reihe. &lt;/p&gt;  &lt;p&gt;Gefolgt von den Windows Azure SDK 1.4. Die Schritte lassen sich hier nachvollziehen. Dann kommen Windows Azure MMC und Windows Azure SDK 1.6 . Dann folgen die Azure Tools wie Cloud Berry und Co. und dann zuletzt die Visual Studio 2012 Version. Der Abschluss der SDKs ist nun das Windows Azure Toolkit für Windows 8. Jetzt noch kurz die Resharper 7 EAP installieren und fertig. &lt;/p&gt;  &lt;p&gt;Hier noch eine grafische Anleitung...&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/3108.clip_5F00_image002_5F00_2F5A0455.jpg"&gt;&lt;img title="clip_image002" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block;" border="0" alt="clip_image002" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/4760.clip_5F00_image002_5F00_thumb_5F00_4E9F3BD9.jpg" width="665" height="498" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Damit ist der Windows 8 Installations HowTo Guide auch schon zu ende. Wenn das ganze fertig ist, sollte es so aussehen.&lt;/p&gt;  &lt;p&gt;&lt;img title="373712_396984773673707_497004241_n" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block;" border="0" alt="373712_396984773673707_497004241_n" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/0363.373712_5F00_396984773673707_5F00_497004241_5F00_n_5F00_1B659321.jpg" width="361" height="269" /&gt;Happy Coding!!!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10314674" width="1" height="1"&gt;</description></item><item><title>Windows Azure Konfiguration / Definition</title><link>http://blogs.msdn.com/b/patricb/archive/2012/03/25/windows-azure-konfiguration-definition.aspx</link><pubDate>Sun, 25 Mar 2012 20:08:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:10287365</guid><dc:creator>patricb</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blogs.msdn.com/b/patricb/rsscomments.aspx?WeblogPostID=10287365</wfw:commentRss><comments>http://blogs.msdn.com/b/patricb/archive/2012/03/25/windows-azure-konfiguration-definition.aspx#comments</comments><description>&lt;p&gt;Bei Windows Azure handelt es sich um eine Sammlung von Diensten. Dazu gehört unter anderem natürlich die Möglichkeit Virtuelle Maschinen in der Public Cloud zu betreiben. In der Windows Azure Welt nennen wir das Konzept “Hosted Services”. Die entsprechenden SDK für Windows Azure produzieren ein Deployment Package und eine Konfigurationsdatei. &lt;/p&gt;  &lt;p&gt;Ein Packet besteht also aus:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/5531.Parallels-Picture-17_5F00_2.png"&gt;&lt;img title="Parallels Picture 17" style="border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;" border="0" alt="Parallels Picture 17" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-42-96-metablogapi/8255.Parallels-Picture-17_5F00_thumb.png" width="729" height="236" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In der Service Konfiguration befinden sich Informationen über die Virtuelle Maschine selbst. So können hier größe und Anzahl der Instanzen angegeben werden. Mehr zur Service Konfiguration finden Sie auf MSDN. &lt;a title="http://msdn.microsoft.com/en-us/library/windowsazure/ee758710.aspx" href="http://msdn.microsoft.com/en-us/library/windowsazure/ee758710.aspx"&gt;http://msdn.microsoft.com/en-us/library/windowsazure/ee758710.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In der Service Definition befinden sich Informationen über Endpoints und erweiterte Einstellungen. Mehr zu dieser XML Konfigurations Datei finden Sie ebenfalls auf MSDN. &lt;a title="http://msdn.microsoft.com/en-us/library/windowsazure/ee758711.aspx" href="http://msdn.microsoft.com/en-us/library/windowsazure/ee758711.aspx"&gt;http://msdn.microsoft.com/en-us/library/windowsazure/ee758711.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Die Project Binaries representieren Ihre Lösung. Auf Grund der beiden Konfig Dateien erstellt Windows Azure nach dem Upload in die Cloud eine Virtuelle Maschine aus den vorgefertigten VM Templates erstellt.&lt;/p&gt;  &lt;p&gt;Bei den VM Templates handelt es sich um VHD Images mit einer preinstallierten Windows Server 2008 Version. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=10287365" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Windows/">Windows</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Windows+Azure/">Windows Azure</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Definition/">Definition</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Cloud/">Cloud</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Konfiguration/">Konfiguration</category><category domain="http://blogs.msdn.com/b/patricb/archive/tags/Hosted+Services/">Hosted Services</category></item></channel></rss>