<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>tsjDEV</title>
	<atom:link href="http://www.tsjdev.de/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tsjdev.de</link>
	<description>Apps für Windows Phone und Windows 8</description>
	<lastBuildDate>Mon, 20 May 2013 19:42:26 +0000</lastBuildDate>
	<language>de-DE</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>App-Empfehlung #16</title>
		<link>http://www.tsjdev.de/app-empfehlung-16/</link>
		<comments>http://www.tsjdev.de/app-empfehlung-16/#comments</comments>
		<pubDate>Mon, 20 May 2013 16:30:18 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[AppDay]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[photoshop]]></category>
		<category><![CDATA[windows 8]]></category>
		<category><![CDATA[windows rt]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3907</guid>
		<description><![CDATA[Heute gibt es mal einen Tipp f&#252;r alle Photoshop-Nutzer, denn Adobe hat vor kurzem eine entsprechende Variante als kostenfreie App f&#252;r Windows 8 ver&#246;ffentlicht. Nat&#252;rlich handelt es sich nicht um das komplette Produkt, sondern Photoshop Express beherrscht die rudiment&#228;ren Bildbearbeitungsfunktionen: Beschneiden, Drehung, Kontrast, S&#228;ttigung, Sch&#228;rfe, Helligkeit und Co. Dar&#252;ber hinaus kann man sich noch weitere<p><a href="http://www.tsjdev.de/app-empfehlung-16/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Heute gibt es mal einen Tipp für alle Photoshop-Nutzer, denn Adobe hat vor kurzem eine entsprechende Variante als kostenfreie App für Windows 8 veröffentlicht. Natürlich handelt es sich nicht um das komplette Produkt, sondern Photoshop Express beherrscht die rudimentären Bildbearbeitungsfunktionen: Beschneiden, Drehung, Kontrast, Sättigung, Schärfe, Helligkeit und Co. Darüber hinaus kann man sich noch weitere Funktionalitäten per Inn-App-Purchase käuflich erwerben.</p>
<p style="text-align: justify;"><span id="more-3907"></span></p>
<p style="text-align: justify;"><!-- WP-Appbox (Store: windowsstore // ID: c08a0d72-28a1-465a-9e70-6a5b80b44d60) -->
<div class="appcontainer feed windowsstore">
<table width="100%;">
<tr>
<td style="width: 88px;"><a target="_blank" rel="nofollow" href="http://apps.microsoft.com/windows/de-DE/app/c08a0d72-28a1-465a-9e70-6a5b80b44d60" title="Adobe Photoshop Express"><img style="border-radius: 6px !important; border: 0 !important; padding: 0 !important; width: 80px !important; height: 80px !important;" src="http://wscont1.apps.microsoft.com/winstore/1x/d54e2b62-da2b-4fee-9fab-68a18dc211c1/Icon.125053.png" alt="Adobe Photoshop Express" /></a></td>
<td>
				<a target="_blank" rel="nofollow" href="http://apps.microsoft.com/windows/de-DE/app/c08a0d72-28a1-465a-9e70-6a5b80b44d60" title="Adobe Photoshop Express">Adobe Photoshop Express<img src="http://www.tsjdev.de/wp-content/plugins/wp-appbox/img/windowsstore-small.png" style="margin-left:6px !important;" /></a><br />
				Preis: Kostenlos			</td>
</tr>
</table>
</div>
<p><!-- /WP-Appbox --></p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/app-empfehlung-16/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>100 Beitr&#228;ge auf tsjDEV</title>
		<link>http://www.tsjdev.de/100-beitraege-auf-tsjdev/</link>
		<comments>http://www.tsjdev.de/100-beitraege-auf-tsjdev/#comments</comments>
		<pubDate>Fri, 17 May 2013 16:30:38 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[100]]></category>
		<category><![CDATA[beiträge]]></category>
		<category><![CDATA[tsjdev]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3898</guid>
		<description><![CDATA[Und schon ist es wieder passiert, denn dieses ist der n&#228;chste Jubil&#228;ums-Beitrag. Es ist mittlerweile der 100. Beitr&#228;ge in meinem Blog und ich m&#246;chte mich an dieser Stelle bei allen Lesern bedanken! Nat&#252;rlich sollt ihr auch wieder etwas davon haben und so gibt es wieder ein kleines Gewinnspiel f&#252;r euch. Ich w&#252;nsche euch viel Gl&#252;ck<p><a href="http://www.tsjdev.de/100-beitraege-auf-tsjdev/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Und schon ist es wieder passiert, denn dieses ist der nächste Jubiläums-Beitrag. Es ist mittlerweile der 100. Beiträge in meinem Blog und ich möchte mich an dieser Stelle bei allen Lesern bedanken! Natürlich sollt ihr auch wieder etwas davon haben und so gibt es wieder ein kleines Gewinnspiel für euch. Ich wünsche euch viel Glück und dann mal auf die nächsten 100 Beiträge.</p>
<p style="text-align: justify;"><span id="more-3898"></span></p>
<p style="text-align: justify;">Ich verlose unter allen Teilnehmern nach dem Zufallsprinzip Amazon-Gutscheine im Wert von 30€.  Ich setze für dieses Gewinnspiel den Dienst <a href="https://www.rafflecopter.com/" target="_blank">Rafflecopter</a> ein, einen Dienst, der für solche Aktionen in Blogs erschaffen wurde. Die Anmeldung erfolgt dabei via gültiger Mail-Adresse oder via Facebook-Login. Anschließend habt ihr die Möglichkeit mehrere Lose zu bekommen, so dass eure Gewinnchance steigt. Insgesamt kann man 10 Lose erhalten, wenn man alle Aufgaben erfolgreich erfüllt. Der Gewinner wird anschließend automatisch ermittelt – ich muss aber überprüfen, ob die Bedingungen auch eingehalten wurden, denn bei einer ungültigen eMail-Adresse oder einer doppeltes Teilnahme, werdet ihr aussortiert, ganz einfach Ich wünsche allen Teilnehmern viel Glück!</p>
<p><a id="rc-6db4971" class="rafl" href="http://www.rafflecopter.com/rafl/display/6db4971/" rel="nofollow"></a><br />
<script src="//d12vno17mo87cx.cloudfront.net/embed/rafl/cptr.js"></script><br />
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/100-beitraege-auf-tsjdev/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SemanticZoom in die eigene App einbauen</title>
		<link>http://www.tsjdev.de/semanticzoom-in-die-eigene-app-einbauen/</link>
		<comments>http://www.tsjdev.de/semanticzoom-in-die-eigene-app-einbauen/#comments</comments>
		<pubDate>Thu, 16 May 2013 16:30:12 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[entwicklung]]></category>
		<category><![CDATA[semanticzoom]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3876</guid>
		<description><![CDATA[In diesem Beitrag m&#246;chte ich euch zeigen, wir ihr ganz leicht SemanticZoom in eure bestehende Windows 8 App integrieren k&#246;nnt. Doch was ist eigentlich SemanticZoom? Semantischer Zoom ist eine f&#252;r Touchscreens optimierte Technik, die von Windows Store-Apps in Windows 8 verwendet wird, um gro&#223;e Mengen verwandter Daten oder Inhalte in einer einzelnen Ansicht darzustellen und darin<p><a href="http://www.tsjdev.de/semanticzoom-in-die-eigene-app-einbauen/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">In diesem Beitrag möchte ich euch zeigen, wir ihr ganz leicht SemanticZoom in eure bestehende Windows 8 App integrieren könnt. Doch was ist eigentlich SemanticZoom?</p>
<blockquote>
<p style="text-align: justify;">Semantischer Zoom ist eine für Touchscreens optimierte Technik, die von Windows Store-Apps in Windows 8 verwendet wird, um große Mengen verwandter Daten oder Inhalte in einer einzelnen Ansicht darzustellen und darin zu navigieren. Beispiele hierfür sind Fotoalben, App-Listen oder Adressbücher.</p>
</blockquote>
<p style="text-align: justify;"><span id="more-3876"></span></p>
<p style="text-align: justify;">Wie kann ich jetzt SemanticZoom in meiner App verwenden? Die Antwort ist ganz einfach, indem wir das Control SemanticZoom verwenden.</p>
<p></p><pre class="crayon-plain-tag">&lt;SemanticZoom Margin="0,-3,0,0"&gt;
  &lt;SemanticZoom.ZoomedInView&gt;
    &lt;!-- Innenansicht --&gt;
  &lt;/SemanticZoom.ZoomedInView&gt;

  &lt;SemanticZoom.ZoomedOutView&gt;
    &lt;!-- Aussenansicht --&gt;
  &lt;/SemanticZoom.ZoomedOutView&gt;
&lt;/SemanticZoom&gt;</pre><p></p>
<p style="text-align: justify;">Nun müssen nur noch die zwei Ansichten implementiert werden und anschließend erscheint in der rechten unteren Ecke ein kleines Minuszeichen, wenn ihr eure App ausführt, über welches ihr aus der App zoomen könnt. Alternativ klappt das natürlich auch über die bekannte Wisch-Geste.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/semanticzoom-in-die-eigene-app-einbauen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YouTube Search App #2</title>
		<link>http://www.tsjdev.de/youtube-search-app-2/</link>
		<comments>http://www.tsjdev.de/youtube-search-app-2/#comments</comments>
		<pubDate>Wed, 15 May 2013 16:30:54 +0000</pubDate>
		<dc:creator>Tobias Oliver Kahn</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Projekt]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[entwicklung]]></category>
		<category><![CDATA[xml-feed]]></category>
		<category><![CDATA[youtube]]></category>
		<category><![CDATA[youtube data api]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3814</guid>
		<description><![CDATA[Dieser Artikel ist ein Gastbeitrag von Tobias Oliver, Informatik-Student in Karlsruhe und begeisterter App-Entwickler. In diesem Artikel soll es um die XML-Verarbeitung (Atom) gehen. Allerdings an einem spannenden Beispiel, nicht dem alt-bekannten RSS-Reader. Wir holen uns einen Video-Feed von YouTube, stellen ihn h&#252;bsch dar und wollen am Ende nat&#252;rlich das Video sehen. Nachdem ich im letzten<p><a href="http://www.tsjdev.de/youtube-search-app-2/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><em>Dieser Artikel ist ein Gastbeitrag von Tobias Oliver, Informatik-Student in Karlsruhe und begeisterter App-Entwickler. </em>In diesem Artikel soll es um die XML-Verarbeitung (Atom) gehen. Allerdings an einem spannenden Beispiel, nicht dem alt-bekannten RSS-Reader. Wir holen uns einen Video-Feed von YouTube, stellen ihn hübsch dar und wollen am Ende natürlich das Video sehen.</p>
<p style="text-align: justify;"><span id="more-3814"></span></p>
<p style="text-align: justify;">Nachdem ich im <a title="YouTube Search App – Grundlagen #1" href="http://www.tsjdev.de/youtube-search-app-1/" target="_blank">letzten Artikel</a> bereits den allgemeinen Umgang mit der YouTube Data API gezeigt habe, soll es nun mit der eigentlichen Entwicklung losgehen. Wir benötigen ein &#8220;YoutubeDataItem&#8221;, dass die Daten eines Videos enthält, sowie ein Modell, dass wiederrum die Items enthält und die Suche ausführt.</p>
<p style="text-align: justify;">Um loszulegen, starten wir Visual Studio Express 2012 für Windows 8, wählen <b>Datei</b>– <b>Neues Projekt</b> (bzw. File &#8211; New Project) und legen eine leere Visual C# App &#8220;<em>YoutubeSearch</em>&#8220; an.</p>
<p style="text-align: justify;">Für das Model brauchen wir eine neue Klasse. Also Rechtsklick auf den Projektnamen im Projektmappen-Explorer, <strong>Hinzufügen &#8211; Klasse&#8230;</strong> , den Namen &#8220;<em>YoutubeDataModel.cs</em>&#8221; eingeben und <strong>hinzufügen</strong>.</p>
<p style="text-align: justify;">Diese Datei werden wir für die beiden Klassen &#8220;<em>YoutubeDataItem</em>&#8221; sowie &#8220;<em>YoutubeDataModel</em>&#8221; verwenden. Visual Studio hat bereits eine Klasse <em>YoutubeDataModel</em> anhand des Namens der Datei erstellt. Diese setzen wir noch auf <pre class="crayon-plain-tag">public</pre> um später noch darauf zuzugreifen und erstellen eine zweite Klasse &#8220;<em>YoutubeDataItem</em>&#8220;</p>
<p style="text-align: justify;">Das Item selbst ist nicht wahnsinnig kompliziert. Lediglich die Eigenschaften und die dazugehörigen getter/setter.</p>
<p></p><pre class="crayon-plain-tag">public class YoutubeDataItem
{
	public string AuthorName { get; set; }

	public string Description { get; set; }

	public ImageSource Image 
	{
		get
		{
			return new BitmapImage(new Uri("http://i.ytimg.com/vi/" + VideoId + "/mqdefault.jpg"));
		}
	}

	public string Title { get; set; }

	public TimeSpan Duration { get; set; }

	public string VideoId { get; set; }

	public int Likes { get; set; }

	public int RelativeLikes 
	{
		get
		{
			return (Likes + Dislikes &gt; 0) ? 250 * Likes / (Likes + Dislikes) : 0;
		}
	}

	public int Dislikes { get; set; }

	public int RelativeDislikes
	{
		get
		{
			return (Likes + Dislikes &gt; 0) ? 250 * Dislikes / (Likes + Dislikes) : 0;
		}
	}

	public int Views { get; set; }

	public string Subtitle 
	{
		get
		{
			return "von " + AuthorName + " | " + Duration.ToString(@"mm\:ss"); ;
		}
	}
}</pre><p></p>
<p style="text-align: justify;">Der meiste darin ist selbsterklärend. Der getter von der <em>Image</em>-Eigenschaft liefert ein BitmapImage zurück, dass von einer URL geladen wird. Diese ist bei allen YouTube-Videos identisch, es ändert sich nur die jeweilige Video-ID. Die URL führt dann auf ein Vorschaubild des Videos und könnte z.B. so aussehen:</p>
<p style="text-align: justify;">Der <em>Subtitle</em> ist für ein schöneres Design der Video-Kacheln. Es gibt dafür nur einen getter, da der Inhalt aus bereits bestehenden Inhalten (<em>AuthorName</em> und <em>Duration</em>) zusammengesetzt wird.</p>
<p style="text-align: justify;"><em>RelativeLikes</em> und <em>RelativeDislikes</em> normen die Likes und Dislikes eines Videos auf 250. Damit lässt sich der Indikator für Likes/Dislikes später besser darstellen.</p>
<p style="text-align: justify;">Nun zum Model und der Suchfunktion. Damit wir später möglichst wenig selbst managen müssen um die Daten darzustellen, bietet es sich an eine <pre class="crayon-plain-tag">ObservableCollection&lt;&gt;</pre> als Speicher für die Items zu verwenden. Diese Collection wird dann &#8220;automatisch&#8221; die Benutzeroberfläche informieren, wenn Sie sich verändert hat und die Sicht der Daten aktualisieren (siehe: <a href="http://msdn.microsoft.com/de-de/library/system.componentmodel.inotifypropertychanged.aspx">INotifyPropertyChanged</a> ).</p>
<p></p><pre class="crayon-plain-tag">public class YoutubeDataModel
{
	ObservableCollection&lt;YoutubeDataItem&gt; _items = new ObservableCollection&lt;YoutubeDataItem&gt;();
	public ObservableCollection&lt;YoutubeDataItem&gt; Items
	{
		get
		{
			return _items;
		}
	}
}</pre><p></p>
<p style="text-align: justify;">Kommen wir nun zur Video-Suche. Dazu muss der Feed von der URL <pre class="crayon-plain-tag">"http://gdata.youtube.com/feeds/api/videos?v=2&amp;q=" + query</pre>  geparst werden. Damit die Suche den UI-Thread nicht blockiert, die App also weiterläuft und auf die Fertigstellung des &#8220;Such-Threads&#8221; wartet, implementieren wir die Suche von vornherein asynchron. Mit C# 5.0 wurden dafür 2 neue Keywords eingeführt, <pre class="crayon-plain-tag">async</pre> und <pre class="crayon-plain-tag">await</pre>.</p>
<p style="text-align: justify;">Für die Suche erstellen wir einen neue Methode. Diese nimmt den Suchanfrage-String entgegen und gibt ein true/false zurück, im Form eines Tasks, der asynchron ausgeführt wird. Dazu schreibt man wie gehabt <pre class="crayon-plain-tag">public</pre>, dann das neue Keyword <pre class="crayon-plain-tag">async</pre>, nun den <pre class="crayon-plain-tag">Task</pre> und in spitzen Klammern den Rückgabetyp des Vorgangs, also <pre class="crayon-plain-tag">bool</pre>.</p>
<p style="text-align: justify;">Zusammen ergibt das alles <pre class="crayon-plain-tag">public async Task&lt;bool&gt; SearchAsync(string query)</pre></p>
<p style="text-align: justify;">Der grobe Ablauf sieht etwa so aus:</p>
<ol style="text-align: justify;">
<li>vorhandene Elemente in _items löschen</li>
<li>URL mithilfe des Parameters query zusammenbasteln</li>
<li>Http-Verbindung aufbauen und Feed runterladen</li>
<li>XML-Verarbeitung starten</li>
<li>nach &#8220;entry&#8221;-Knoten suchen</li>
<li>bei jedem &#8220;entry&#8221;-Knoten ein neues YoutubeDataItem anlegen</li>
<li>benötigte Eigenschaften filtern und zum Item hinzufügen</li>
<li>Item zur ObservableCollection hinzufügen</li>
<li>Anhand der Anzahl der Elemente prüfen, ob Suche erfolgreich war</li>
</ol>
<p style="text-align: justify;">Das schwierigste an diesen Schritten ist wahrscheinlich die Http-Verbindung und das richtige parsen. Dazu muss man die Struktur des Feeds kennen, was wir schon besprochen haben.</p>
<p style="text-align: justify;">Nun übersetzen wir diesen Ablauf Schritt für Schritt in Quellcode.</p>
<p style="text-align: justify;">1. <pre class="crayon-plain-tag">_items.Clear();</pre></p>
<p style="text-align: justify;">2. <pre class="crayon-plain-tag">Uri url = new Uri("http://gdata.youtube.com/feeds/api/videos?v=2&amp;q=" + query);</pre></p>
<p style="text-align: justify;">3.</p>
<p></p><pre class="crayon-plain-tag">HttpClient client = new HttpClient();
HttpResponseMessage response = new HttpResponseMessage();
response = await client.GetAsync(url);
string content = await response.Content.ReadAsStringAsync();</pre><p></p>
<p style="text-align: justify;"><pre class="crayon-plain-tag">content</pre> enthält anschließend den gesamten Feed als <pre class="crayon-plain-tag">string</pre></p>
<p style="text-align: justify;">4.</p>
<p></p><pre class="crayon-plain-tag">XmlReader reader = XmlReader.Create(new StringReader(content), new XmlReaderSettings() { Async = true });

while (await reader.ReadAsync())
{
  ...
}</pre><p></p>
<p style="text-align: justify;">Der <pre class="crayon-plain-tag">XmlReader</pre> kapselt die XML-Daten und stellt hilfreiche Methoden zur Verfügung zur einfachen Verarbeitung. Die while-Schleife durchläuft jeden Knoten innerhalb des root-Elements der XML-Datei (Feed). Das heißt, innerhalb der Schleife würden wir nur Zugriff auf die &#8220;entry&#8221;-Knoten haben (Zur Erinnering: &#8220;entry&#8221; ist ein Video-Element). Um auf die Daten eines &#8220;entry&#8221; zuzugreifen, müssen wir einen &#8220;Subtree&#8221; erstellen und diesen durchlaufen. Dieser Subtree liefert dann die eigentlichen Informationen eines Videos. Wenn dieser Subtree erstellt wird, wird auch gleichzeitig ein neues Item erstellt. Die vorherige while-Schleife wird also gefüllt mit:</p>
<p style="text-align: justify;">5. &amp; 6.</p>
<p></p><pre class="crayon-plain-tag">if (reader.NodeType == XmlNodeType.Element &amp;&amp; reader.Name == "entry")
{
	XmlReader itemTree = reader.ReadSubtree();
	YoutubeDataItem item = new YoutubeDataItem();
	while (await itemTree.ReadAsync())
	{
	  ...
	}
}</pre><p></p>
<p style="text-align: justify;">7.</p>
<p></p><pre class="crayon-plain-tag">if (itemTree.NodeType == XmlNodeType.Element || itemTree.NodeType == XmlNodeType.Text)
{
	switch (itemTree.Name)
	{
		case "title":
			item.Title = await itemTree.ReadElementContentAsStringAsync();
			break;

		case "name":
			item.AuthorName = await itemTree.ReadElementContentAsStringAsync();
			break;

		case "yt:videoid":
			item.VideoId = await itemTree.ReadElementContentAsStringAsync();
			break;

		case "media:description":
			item.Description = await itemTree.ReadElementContentAsStringAsync();
			break;

		case "yt:duration":
			int seconds = Convert.ToInt32(itemTree["seconds"]);
			item.Duration = TimeSpan.FromSeconds(seconds);
			break;

		case "yt:rating":
			item.Likes = int.Parse(itemTree["numLikes"]);
			item.Dislikes = int.Parse(itemTree["numDislikes"]);
			break;

		case "yt:statistics":
			item.Views = int.Parse(itemTree["viewCount"]);
			break;
	}
}</pre><p></p>
<p style="text-align: justify;">Warum wird mal mit <pre class="crayon-plain-tag">await itemTree.ReadElementContentAsStringAsync()</pre> und mal mit <pre class="crayon-plain-tag">itemTree["..."]</pre> auf die Daten zugegriffen? Weil die Daten innerhalb des Feeds unterschiedlich vorliegen. Wenn die Information selbst ein Element ist, dann nimmt man das erste (z.B: <pre class="crayon-plain-tag">item.Title = await itemTree.ReadElementContentAsStringAsync()</pre>) , wenn die Information in einem Attribut steckt, dann das zweite unter Angabe des Attributnamens (z.B: <pre class="crayon-plain-tag">itemTree["numLikes"]</pre>).</p>
<p style="text-align: justify;">8. <pre class="crayon-plain-tag">_items.Add(item);</pre></p>
<p style="text-align: justify;">9. <pre class="crayon-plain-tag">return _items.Count != 0 ? true : false;</pre><br />
Tipp: Bedingten Ausdruck anstatt unnötige if/else-Konstrukte nutzen, wenn es sich anbietet.<br />
z.B:<br />
<pre class="crayon-plain-tag">return _items.Count != 0 ? true : false;</pre><br />
statt</p>
<p></p><pre class="crayon-plain-tag">if(_items.Count != 0)
{
    return true;
}
else
{
    return false;
}</pre><p></p>
<p style="text-align: justify;">Damit auch alles so funktioniert wie es soll, müssen noch diese Namespaces eingebunden werden:</p>
<p></p><pre class="crayon-plain-tag">using System.ComponentModel;
using System.IO;
using System.Collections.ObjectModel;
using System.Net.Http;
using System.Runtime.CompilerServices;
using System.Xml;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Imaging;</pre><p></p>
<p style="text-align: justify;">Wie das ganze vollständig aussieht, könnt ihr euch im Sourcecode ansehen, den es zum Download gibt.</p>
<p style="text-align: justify;">Jetzt geht&#8217;s los mit der Anzeige! Um dem Windows 8 &#8211; Look-and-Feel gerecht zu werden, wollen wir die Videos natürlich in Kacheln anzeigen. Dazu nehmen wir das <pre class="crayon-plain-tag">GridView</pre> und fügen es in unsere automatisch erstellte MainPage ein. Wir bauen uns die Oberfläche innerhalb in der &#8220;MainPage.xaml&#8221; Datei und die Verknüpfung der Oberfläche mit unserem eben erstellten Modell wird dann in der Code-Behind-Datei &#8220;MainPage.xaml.cs&#8221; erledigt.</p>
<p style="text-align: justify;">Die MainPage kommt &#8220;ab Werk&#8221; lediglich mit einem Grid. In das Grid fügen wir nun folgendes GridView ein:</p>
<p><em>&lt;GridView Padding=&#8221;120,150,60,60&#8243;</em><br />
<em>  VerticalAlignment=&#8221;Stretch&#8221;</em><br />
<em>  HorizontalAlignment=&#8221;Stretch&#8221;</em><br />
<em>  ItemTemplate=&#8221;{StaticResource Standard250x250ItemTemplate}&#8221;</em><br />
<em>  ItemsSource=&#8221;{Binding Items}&#8221;&gt;</em><br />
<em>&lt;/GridView&gt;</em></p>
<p style="text-align: justify;">Wir nutzen also vorerst ein GridView im Vollbild, dazu das vorgefertige &#8220;Standard250x250ItemTemplate&#8221;-Template für die Items und binden die ItemsSource (also die Quelle für die darzustellenden Items/Kacheln) an &#8220;Items&#8221; (&#8211;&gt; <pre class="crayon-plain-tag">public ObservableCollection Items</pre> )</p>
<p style="text-align: justify;">Damit alleine werden allerdings noch nichts sehen. Der <pre class="crayon-plain-tag">DataContext</pre> muss noch konfiguriert und die Such-Methode gestartet werden. Wie gesagt, das machen wir im Code-Behind. Also öffnen wir MainPage.xaml.cs (Unterpunkt von MainPage.xaml).</p>
<p style="text-align: justify;">Wir deklarieren innerhalb der MainPage-Klasse eine neue Variable, unser Model, mit: <pre class="crayon-plain-tag">YoutubeDataModel model;</pre>.</p>
<p style="text-align: justify;">In der bereits vorhandenen Methode <pre class="crayon-plain-tag">OnNavigatedTo()</pre> erstellen wir nun unser Model, setzen es als <pre class="crayon-plain-tag">DataContext</pre> der MainPage und starten probeweise eine Suchanfrage (hardcoded &#8211; also vorerst ohne Benutzereingabe). Da wir unsere Suche asynchron implementiert haben und auch starten werden, muss vorher die Methode <pre class="crayon-plain-tag">OnNavigatedTo()</pre> um das Keyword <pre class="crayon-plain-tag">async</pre> ergänzt werden:</p>
<p></p><pre class="crayon-plain-tag">protected override async void OnNavigatedTo(NavigationEventArgs e)
{
	if (model == null)
	{
		model = new YoutubeDataModel();
	}

	this.DataContext = model;
	await model.SearchAsync("cat");
}</pre><p></p>
<p style="text-align: justify;">Das <pre class="crayon-plain-tag">await</pre> signalisiert dem Compiler nun, dass die nachfolgende Methode asynchron ausgeführt werden soll, sofern sie entsprechend implementiert wurde. Lässt man das <pre class="crayon-plain-tag">await</pre> weg, wird eine Warnung ausgegeben und der Vorgang synchron im UI-Thread ausgeführt. Genauso gibt es eine Warnung, wenn eine Methode auf <pre class="crayon-plain-tag">async</pre> gesetzt wird, jedoch den <pre class="crayon-plain-tag">await</pre>-Operator nicht enthält.</p>
<p style="text-align: justify;">Wenn ihr die App nun startet solltet ihr etwas ähnliches sehen:</p>
<p style="text-align: justify;"><a href="http://www.tsjdev.de/wp-content/uploads/2013/05/YoutubeSearch-1.png"><img class="aligncenter size-full wp-image-3834" alt="YoutubeSearch-1" src="http://www.tsjdev.de/wp-content/uploads/2013/05/YoutubeSearch-1.png" width="900" height="507" /></a></p>
<p style="text-align: justify;">Nicht wahnsinnig hübsch, aber für den Anfang schon ganz gut. Beim nächsten Mal geht es dann ans Design. Also ItemTemplate, die Video-Seite, Suchfeld zum richtigen Suchen, und mehr.</p>
<p style="text-align: justify;">Hier lässt sich das aktuelle Projekt bereits herunterladen:</p>
<p style="text-align: justify;">Note: There is a file embedded within this post, please visit this post to download the file.</p>
<p style="text-align: justify;">
<ol style="text-align: justify;">
<li>TimeSpan String &#8211; Formatierung: <a href="http://msdn.microsoft.com/de-de/library/zdtaw1bw(v=vs.80).aspx">http://msdn.microsoft.com/de-de/library/zdtaw1bw(v=vs.80).aspx</a></li>
<li>INotifyPropertyChanged &#8211; Interface : <a title="INotifyPropertyChanged" href="http://msdn.microsoft.com/de-de/library/system.componentmodel.inotifypropertychanged.aspx">http://msdn.microsoft.com/de-de/library/system.componentmodel.inotifypropertychanged.aspx</a></li>
<li>Weitere Infos zu asynchroner Programmierung:  <a href="http://msdn.microsoft.com/de-de/library/vstudio/hh191443.aspx">http://msdn.microsoft.com/de-de/library/vstudio/hh191443.aspx</a></li>
</ol>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/youtube-search-app-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video-Tutorials von Oliver</title>
		<link>http://www.tsjdev.de/video-tutorials-von-oliver/</link>
		<comments>http://www.tsjdev.de/video-tutorials-von-oliver/#comments</comments>
		<pubDate>Tue, 14 May 2013 16:30:34 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Tipp]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[windows 8]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3810</guid>
		<description><![CDATA[Heute m&#246;chte ich euch auf ein paar Video-Tutorials von Oliver Scheer aufmerksam machen. In wenigen Schritten zeigt euch Oliver, wie ihr schnell und einfach eine Windows 8 App mit einer GridView und einem ViewModel erstellen k&#246;nnt. Dar&#252;ber hinaus hat er noch Videos zum Thema &#8220;Verteilen von Apps zum Testen&#8221;, &#8220;Die Kamera&#8221; oder auch Rasteranwendungen. Schaut<p><a href="http://www.tsjdev.de/video-tutorials-von-oliver/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Heute möchte ich euch auf ein paar Video-Tutorials von <a href="http://blog.the-oliver.com/" target="_blank">Oliver Scheer</a> aufmerksam machen. In wenigen Schritten zeigt euch Oliver, wie ihr schnell und einfach eine Windows 8 App mit einer <strong>GridView</strong> und einem <strong>ViewModel</strong> erstellen könnt. Darüber hinaus hat er noch Videos zum Thema &#8220;Verteilen von Apps zum Testen&#8221;, &#8220;Die Kamera&#8221; oder auch Rasteranwendungen. Schaut euch doch die Videos direkt einmal an&#8230;</p>
<p style="text-align: justify;"><span id="more-3810"></span></p>
<p style="text-align: justify;">
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/00naOPq4XcM?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/Um2eIqdKA3c?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/40NMq_TG9mY?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/4QYrCr08qqs?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<p><span class='embed-youtube' style='text-align:center; display: block;'><iframe class='youtube-player' type='text/html' width='640' height='390' src='http://www.youtube.com/embed/0D-0X3Hqdfg?version=3&#038;rel=1&#038;fs=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;wmode=transparent' frameborder='0'></iframe></span></p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/video-tutorials-von-oliver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>App-Empfehlung #15</title>
		<link>http://www.tsjdev.de/app-empfehlung-15/</link>
		<comments>http://www.tsjdev.de/app-empfehlung-15/#comments</comments>
		<pubDate>Mon, 13 May 2013 16:30:26 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[AppDay]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3806</guid>
		<description><![CDATA[Mit dem Release von Windows Phone 7 gab es bereits eine YouTube-App, welche von Microsoft entwickelt wurde. Diese verwendete aber eigentlich nur den Internet Explorer und navigierte zur mobilen Webseite von YouTube. Doch nun hat Microsoft vor kurzem der App ein gro&#223;es Update spendiert und es ist nun tats&#228;chlich eine native App, welche sich wunderbar<p><a href="http://www.tsjdev.de/app-empfehlung-15/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Mit dem Release von Windows Phone 7 gab es bereits eine YouTube-App, welche von Microsoft entwickelt wurde. Diese verwendete aber eigentlich nur den Internet Explorer und navigierte zur mobilen Webseite von YouTube. Doch nun hat Microsoft vor kurzem der App ein großes Update spendiert und es ist nun tatsächlich eine native App, welche sich wunderbar in das Design von Windows Phone integriert. Darüber hinaus sind Features, wie das Anheften von beliebigen Videos, Wiedergabelisten, Kanälen und Suchabfragen an Live Tiles, das Verwalten des eigenen YouTube-Profil, das Verwalten von Wiedergabelisten, Uploads und Videolisten oder das Teilen von Videos über sozialen Netzwerke, E-Mail und SMS, implementiert worden. Somit kann man diese App wirklich verwenden, um sich seine Lieblingsvideos unterwegs auf dem Windows Phone anzuschauen.</p>
<p style="text-align: justify;"><span id="more-3806"></span></p>
<p style="text-align: justify;"><!-- WP-Appbox (Store: windowsphone // ID: dcbb1ac6-a89a-df11-a490-00237de2db9e) -->
<div class="appcontainer feed windowsphonestore">
<table width="100%;">
<tr>
<td style="width: 88px;"><a target="_blank" rel="nofollow" href="http://www.windowsphone.com/de-de/store/app/app/dcbb1ac6-a89a-df11-a490-00237de2db9e" title="YouTube"><img style="border-radius: 6px !important; border: 0 !important; padding: 0 !important; width: 80px !important; height: 80px !important;" src="http://cdn.marketplaceimages.windowsphone.com/v8/images/2169b9b9-3294-409a-b4bc-955dffe9eff2?imageType=ws_icon_large" alt="YouTube" /></a></td>
<td>
				<a target="_blank" rel="nofollow" href="http://www.windowsphone.com/de-de/store/app/app/dcbb1ac6-a89a-df11-a490-00237de2db9e" title="YouTube">YouTube<img src="http://www.tsjdev.de/wp-content/plugins/wp-appbox/img/windowsphonestore-small.png" style="margin-left:6px !important;" /></a><br />
				Preis: Kostenlos			</td>
</tr>
</table>
</div>
<p><!-- /WP-Appbox --></p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/app-empfehlung-15/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Frameworks f&#252;r Windows 8 Apps</title>
		<link>http://www.tsjdev.de/frameworks-fuer-windows-8-apps/</link>
		<comments>http://www.tsjdev.de/frameworks-fuer-windows-8-apps/#comments</comments>
		<pubDate>Fri, 10 May 2013 16:30:55 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[apps]]></category>
		<category><![CDATA[framwork]]></category>
		<category><![CDATA[vorlage]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3803</guid>
		<description><![CDATA[Heute m&#246;chte ich zum Wochenende auf ein paar kostenfreie Frameworks hinweisen, welche euch bei der Entwicklung eurer ersten Windows 8 App hilft. Mit diesen Frameworks habt ihr die M&#246;glichkeit ohne gro&#223;en Aufwand eure erste eigene App zu entwickeln und im Windows Store zu ver&#246;ffentlichen. ZipApp &#8211; Erstellt eine App, welche euch erm&#246;glicht YouTube, twitter, RSS<p><a href="http://www.tsjdev.de/frameworks-fuer-windows-8-apps/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Heute möchte ich zum Wochenende auf ein paar kostenfreie Frameworks hinweisen, welche euch bei der Entwicklung eurer ersten Windows 8 App hilft. Mit diesen Frameworks habt ihr die Möglichkeit ohne großen Aufwand eure erste eigene App zu entwickeln und im Windows Store zu veröffentlichen.</p>
<p style="text-align: justify;"><span id="more-3803"></span></p>
<ul style="text-align: justify;">
<li><a href="http://www.zipapp.co.uk/" target="_blank">ZipApp</a> &#8211; Erstellt eine App, welche euch ermöglicht YouTube, twitter, RSS und weitere Dienste innerhalb von nur einer App zu verwenden.</li>
<li><span style="text-align: justify;"><a href="http://www.microsoft.com/germany/msdn/academic/windows-8/app-revolution-live-kacheln-code-beispiel.aspx" target="_blank">Live Tile</a> &#8211; Wie kann man unter Windows 8 schnell und einfach eine App mit LiveTile, welches dann dynamische Informationen anzeigt, erstellen?</span></li>
<li><span style="text-align: justify;"><a href="http://www.microsoft.com/germany/msdn/academic/windows-8/app-revolution-fotoeffekt-code-beispiel.aspx" target="_blank">Foto-Effekte</a> &#8211; Wie kann man unter Windows 8 ganz einfach Bilder laden oder die Webcam ansprechen und diese Bilder dann mit einem Foto-Effekt versehen?</span></li>
<li><a href="http://www.microsoft.com/germany/msdn/academic/windows-8/app-revolution-feed-reader-code-beispiel.aspx" target="_blank">Feed-Reader</a> &#8211; Wie kann man unter Windows 8 ganz einfach einen RSS-Feed laden und diesen dann auch noch schön anzeigen lassen?</li>
<li><a href="http://www.microsoft.com/germany/msdn/academic/windows-8/app-revolution-poi-finder-code-beispiel.aspx" target="_blank">POI-Finder</a> &#8211; Wie kann man unter Windows 8 auf die aktuelle Position des Benutzers anzeigen lassen und dazu noch weitere interessante Punkte?</li>
<li><a href="http://wootstudio.ca/win8platstarter" target="_blank">Platformer Games</a> &#8211; Wie kann man unter Windows 8 mit der Hilfe von JavaScript und HTML ein eigenes Spiel mit wenig Aufwand erstellen?</li>
<li><a href="https://win8blogapp.codeplex.com/" target="_blank">WordPress-Blog</a> &#8211; Wie kann man unter Windows 8 seinen eigenen WordPress-Blog in eine eigene App verwandeln und Windows 8 Features verwenden?</li>
<li><a href="https://win8contentapp.codeplex.com/" target="_blank">Content-App</a> &#8211; Wie kann man unter Windows 8 seine eigenen Inhalte klar und strukturiert darstellen und dabei auf Windows 8 Features nicht verzichten?</li>
</ul>
<p style="text-align: justify;">Darüber hinaus findet ihr hier noch <a href="https://www.meetmyapp.in/meetmyapp/windows_8_build.aspx" target="_blank">weitere Vorlagen</a> und ein <a href="http://download.microsoft.com/download/1/D/D/1DD4F6E1-1C6A-49F4-9F58-0CD11F438D9A/windows8_cheat_sheet.pdf" target="_blank">Cheat-Sheet</a>, welches euch den Einstieg in die Programmierung vereinfacht.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/frameworks-fuer-windows-8-apps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YouTube Search App &#8211; Grundlagen #1</title>
		<link>http://www.tsjdev.de/youtube-search-app-1/</link>
		<comments>http://www.tsjdev.de/youtube-search-app-1/#comments</comments>
		<pubDate>Thu, 09 May 2013 16:30:03 +0000</pubDate>
		<dc:creator>Tobias Oliver Kahn</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Projekt]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[entwicklung]]></category>
		<category><![CDATA[xml-feed]]></category>
		<category><![CDATA[youtube]]></category>
		<category><![CDATA[youtube data api]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3776</guid>
		<description><![CDATA[Dieser Artikel ist ein Gastbeitrag von Tobias Oliver, Informatik-Student in Karlsruhe und begeisterter App-Entwickler. In diesem Artikel soll es um die XML-Verarbeitung (Atom) gehen. Allerdings an einem spannenden Beispiel, nicht dem alt-bekannten RSS-Reader. Wir holen uns einen Video-Feed von YouTube, stellen ihn h&#252;bsch dar und wollen am Ende nat&#252;rlich das Video sehen. Damit es nicht zu<p><a href="http://www.tsjdev.de/youtube-search-app-1/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><em>Dieser Artikel ist ein Gastbeitrag von Tobias Oliver, Informatik-Student in Karlsruhe und begeisterter App-Entwickler. </em>In diesem Artikel soll es um die XML-Verarbeitung (Atom) gehen. Allerdings an einem spannenden Beispiel, nicht dem alt-bekannten RSS-Reader. Wir holen uns einen Video-Feed von YouTube, stellen ihn hübsch dar und wollen am Ende natürlich das Video sehen.</p>
<p><span id="more-3776"></span></p>
<p style="text-align: justify;">Damit es nicht zu viel wird, soll es in diesem Artikel erst einmal nur um die benötigten theoretischen Grundlagen rund um die YouTube Data API gehen.</p>
<p style="text-align: justify;">Man kann auf 2 verschiedene Arten mit der API kommunizieren. Entweder ein Get-Request um Video-, Kommentare- und Playlistfeeds zu bekommen oder ein Post-Request um Favoriten, Playlisten oder andere Aktionen durchzuführen. Um einen Post durchzuführen, muss man allerdings registrierter Entwickler sein und man braucht die Genehmigung des Nutzers. Darum soll es an dieser Stelle erst einmal nicht gehen.</p>
<p style="text-align: justify;">Wir wollen also nur einen Videofeed von der API bekommen. Dazu können wir zwischen JSON, Atom und RSS 2.0 wählen. Da die Community Features (Favoriten, Like, Kommentare,&#8230;) ausschließlich mit Atom-Feeds arbeiten, sollte man an dieser Stelle auch schon den Atom-Feed nutzen.</p>
<p>Um nun die API aufzurufen, reicht es z.B. aus diese Url aufzurufen:</p>
<ul>
<li><a href="http://gdata.youtube.com/feeds/api/videos?v=2&amp;q=cat">http://gdata.youtube.com/feeds/api/videos?v=2&amp;q=cat</a></li>
</ul>
<p style="text-align: justify;">Die Stamm-Url ist immer &#8220;http://gdata.youtube.com/feeds/api/&#8221; und dann das was man haben möchte. Also &#8220;video&#8221; für eine Suche, oder &#8220;users/&lt;USERID&gt;/uploads&#8221; für die hochgeladenen Videos eines Nutzers. Dazu gibt es dann immer noch ein paar Parameter die notwendig oder optional sind. Bei der Suche beispielsweise ist der Suchbegriff (&#8220;q=&lt;QUERY&gt;&#8221;) notwendig für den Feed und bei allen Videos ist der Versions-Parameter &#8220;v=2&#8243; notwendig. Ansonsten wird die Version 1 der API genutzt (deprecated). Eine Übersicht über alle Feeds und deren Parameter findet man in der offiziellen &#8220;YouTube Data API Documentation&#8221; unter</p>
<ul>
<li><a href="https://developers.google.com/youtube/2.0/reference">https://developers.google.com/youtube/2.0/reference</a></li>
</ul>
<p>Um etwas mit den verschiedenen Feeds zu experimentieren und zu analysieren bietet sich die &#8220;Interactive YouTube Data API Demo&#8221; an:</p>
<ul>
<li><a href="https://gdata.youtube.com/demo/index.html">https://gdata.youtube.com/demo/index.html</a></li>
</ul>
<p>&nbsp;</p>
<p>Schauen wir uns nun die Response der API an. Beim Aufruf der Url in einem Atom/RSS-Feed-fähigen Browser sieht man nur so etwas:</p>
<p><a href="http://www.tsjdev.de/wp-content/uploads/2013/05/api-response.jpg"><img class="aligncenter size-large wp-image-3781" alt="YouTube Data API Response im Browser" src="http://www.tsjdev.de/wp-content/uploads/2013/05/api-response-1024x568.jpg" width="716" height="397" /></a></p>
<p>Doch es steckt viel mehr dahinter, als man im ersten Moment vielleicht denkt. Beschreibung, Kategorie, Likes, Dislikes, Views, Video-ID, Autor, Bewertung, Vorschaubilder, &#8230;. Kurz: Alle Informationen die man auf der YouTube-Seite eines Videos auch sieht. In kurzer Schreibweise sieht der Feed im Hintergrund etwa so aus:</p><pre class="crayon-plain-tag">&lt;?xml version='1.0' encoding='UTF-8'?&gt;
&lt;feed&gt;
&lt;!--Namespaces und unnötige Informationen sind gekürzt--&gt;
    &lt;entry&gt;
        &lt;!--Ein "entry" stellt ein Video dar--&gt;
        &lt;!--Hier sind sämtliche Videoinformationen--&gt;
    &lt;/entry&gt;

    &lt;entry&gt;
        ...
    &lt;/entry&gt;
    &lt;!--usw.--&gt;
&lt;/feed&gt;</pre><p>Gehen wir noch eine Stufe tiefer und sehen uns an was im &#8220;entry&#8221; steckt. Ebenfalls gekürzt:</p><pre class="crayon-plain-tag">&lt;entry gd:etag='W/"Dk8GQH47eCp7I2A9WhBTGE8."'&gt;
    &lt;id&gt;tag:youtube.com,2008:video:WmQOCoVeX8g&lt;/id&gt;
    &lt;published&gt;2013-02-14T06:48:58.000Z&lt;/published&gt;
    &lt;updated&gt;2013-02-14T06:53:41.000Z&lt;/updated&gt;
    &lt;title&gt;tsjDEV - WP8 DevRun - 01 - Einführung&lt;/title&gt;

	&lt;link ... /&gt; 
	&lt;!--Links zu weiteren Videofeeds, z.B. Uploader, Ähnliche Videos, aktuelles Video, Videoantworten und zur eigentlichen YouTube-Seite des Videos um es anzusehen--&gt;

    &lt;author&gt;
      &lt;name&gt;tsjDEV86&lt;/name&gt;
      &lt;uri&gt;https://gdata.youtube.com/feeds/api/users/tsjDEV86&lt;/uri&gt;
      &lt;yt:userId&gt;jkkaDgxf_kr3NYTJv__1SA&lt;/yt:userId&gt;
    &lt;/author&gt;

	&lt;yt:accessControl ... /&gt;
	&lt;!--Parameter zur Zugriffskontrolle. Z.B: Darf man kommentieren, bewerten,...?--&gt;

    &lt;gd:comments&gt;...&lt;/gd:comments&gt;
	&lt;!--Feed zu den Kommentaren des Videos--&gt;

    &lt;media:group&gt;
      &lt;media:category label='Bildung' scheme='http://gdata.youtube.com/schemas/2007/categories.cat'&gt;Education&lt;/media:category&gt;

      &lt;media:content url='https://www.youtube.com/v/WmQOCoVeX8g?version=3&amp;f=videos&amp;app=youtube_gdata' type='application/x-shockwave-flash' medium='video' isDefault='true' expression='full' duration='424' yt:format='5'/&gt;
      &lt;media:content url='rtsp://v4.cache3.c.youtube.com/CiILENy73wIaGQnIX16FCg5kWhMYDSANFEgGUgZ2aWRlb3MM/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='424' yt:format='1'/&gt;
      &lt;media:content url='rtsp://v4.cache3.c.youtube.com/CiILENy73wIaGQnIX16FCg5kWhMYESARFEgGUgZ2aWRlb3MM/0/0/0/video.3gp' type='video/3gpp' medium='video' expression='full' duration='424' yt:format='6'/&gt;

      &lt;media:credit role='uploader' scheme='urn:youtube' yt:display='tsjDEV86' yt:type='partner'&gt;tsjdev86&lt;/media:credit&gt;

      &lt;media:description type='plain'&gt;In der Serie 'WP8 DevRun' von tsjDEV.de möchte ich in kurzen Videos auf das Entwickeln von Apps für Windows Phone 8 näher eingehen. In diesem ersten Video ge...&lt;/media:description&gt;

      &lt;media:keywords/&gt;
      &lt;media:license type='text/html' href='http://www.youtube.com/t/terms'&gt;youtube&lt;/media:license&gt;

      &lt;media:player url='https://www.youtube.com/watch?v=WmQOCoVeX8g&amp;feature=youtube_gdata_player'/&gt;

      &lt;media:thumbnail url='http://i.ytimg.com/vi/WmQOCoVeX8g/default.jpg' height='90' width='120' time='00:03:32' yt:name='default'/&gt;
      &lt;media:thumbnail ... /&gt; 
	  &lt;!--in weiteren Auflösungen--&gt;

      &lt;media:title type='plain'&gt;tsjDEV - WP8 DevRun - 01 - Einführung&lt;/media:title&gt;

      &lt;yt:aspectRatio&gt;widescreen&lt;/yt:aspectRatio&gt;
      &lt;yt:duration seconds='424'/&gt;
      &lt;yt:uploaded&gt;2013-02-14T06:48:58.000Z&lt;/yt:uploaded&gt;
      &lt;yt:uploaderId&gt;UCjkkaDgxf_kr3NYTJv__1SA&lt;/yt:uploaderId&gt;
      &lt;yt:videoid&gt;WmQOCoVeX8g&lt;/yt:videoid&gt;
    &lt;/media:group&gt;

    &lt;yt:statistics favoriteCount='0' viewCount='58'/&gt;
    &lt;yt:rating numDislikes='0' numLikes='1'/&gt;
  &lt;/entry&gt;</pre><p>Und damit haben wir schon alles was wir brauchen.</p>
<p>Für das Projekt brauchen wir folgende Werte:</p>
<ul>
<li>Name des Autor (&#8220;&lt;name&gt;&#8230;&#8221; in Zeile 11)</li>
<li>Beschreibung des Videos (&#8220;&lt;media:description&gt;&#8230;&#8221; in Zeile 31)</li>
<li>URL des Vorschaubildes (&#8220;&lt;media:thumbnail &#8230; /&gt;&#8221; in Zeile 38)</li>
<li>Titel des Videos (&#8220;&lt;media:title&gt;&#8230;&#8221; in Zeile 42)</li>
<li>Dauer in s (&#8220;&lt;yt:duration &#8230; /&gt;&#8221; in Zeile 45)</li>
<li>Hochgeladen am (&#8220;&lt;yt:uploaded&gt;&#8230;&#8221; in Zeile 46)</li>
<li>Ganz wichtig: videoId (&#8220;&lt;yt:videoId&gt;&#8230;&#8221; in Zeile 48)</li>
<li>Likes, Dislikes, Views (&#8220;&lt;yt:statistics &#8230; /&gt;&#8221; in Zeile 51 &amp; 52)</li>
</ul>
<p>Das ganze lässt sich sehr leicht in einer Klasse kapseln, z.B. &#8220;YouTubeDataItem&#8221;.</p>
<p>Die Form der Videofeeds sieht übrigens immer ganz genau so aus, also muss man nur einmal einen Algorithmus entwickeln der den Feed verarbeitet und sich nur noch um die URL kümmern.</p>
<p>Im nächsten Teil der Serie geht es dann um dieses &#8220;YouTubeDataItem&#8221;, die eigentliche Feedverarbeitung sowie die Gestaltung der App.<br />
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/youtube-search-app-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Azure Mobile Services #4</title>
		<link>http://www.tsjdev.de/windows-azure-mobile-services-4/</link>
		<comments>http://www.tsjdev.de/windows-azure-mobile-services-4/#comments</comments>
		<pubDate>Wed, 08 May 2013 16:30:03 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[mobile services]]></category>
		<category><![CDATA[windows 8]]></category>
		<category><![CDATA[windows azure]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3766</guid>
		<description><![CDATA[Nachdem wir jetzt unseren ersten Windows Azure Mobile Service in Betrieb genommen haben, m&#246;chte ich in diesem Teil zeigen, wie ihr Push-Notification nutzen k&#246;nnt, um z.B. die Nutzer zu informieren, dass es neue Eintr&#228;ge in der Datenbank gibt. Daf&#252;r m&#252;ssen wir uns zun&#228;chst einen App-Namen im Store-Portal sichern. Wechselt auf diese Seite und gebt eurer<p><a href="http://www.tsjdev.de/windows-azure-mobile-services-4/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Nachdem wir jetzt unseren ersten Windows Azure Mobile Service in Betrieb genommen haben, möchte ich in diesem Teil zeigen, wie ihr Push-Notification nutzen könnt, um z.B. die Nutzer zu informieren, dass es neue Einträge in der Datenbank gibt. Dafür müssen wir uns zunächst einen App-Namen im Store-Portal sichern. Wechselt auf <a href="http://go.microsoft.com/fwlink/p/?linkid=266582&amp;clcid=0x409" target="_blank">diese Seite</a> und gebt eurer App einen Namen.</p>
<p><span id="more-3766"></span></p>
<p style="text-align: justify;">Nun wechselt ihr zurück in euer Visual Studio Projekt und verbindet dieses mit dem Store. Dazu klickt ihr mir rechts auf eure Solution und wählt <strong>STORE</strong> &#8211; <strong>ASSOCIATE APP WITH THE STORE</strong>. Es führt euch nun ein kleiner Assistent durch die Verbindung, wo ihr euch erst anmelden müsst und anschließend die neu angelegte App auswählen müsst.</p>
<p style="text-align: justify;">Anschließend geht es zurück in das Store-Portal und dort findet ihr die Rubrik <strong>Advanced features</strong>. Wählt diesen Menüpunkt aus und im oberen Bereich findet ihr die Informationen zu den Push-Notifcations.</p>
<div id="attachment_3768" class="wp-caption aligncenter" style="width: 403px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_4_1.jpg"><img class="size-full wp-image-3768" alt="Push-Benachrichtungen anlegen" src="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_4_1.jpg" width="393" height="128" /></a>
<p class="wp-caption-text">Push-Benachrichtungen anlegen</p>
</div>
<p style="text-align: justify;">Klickt dazu auf <strong>Push notifications and Live Connect services info</strong> und dann <strong>Authenticating your service</strong>. Auf dieser Seite findet ihr nun das Client-Secret und die eindeutige Package Security ID, welche wir nun noch in unsere App einfügen müssen. Wechselt dazu nun in das <a href="http://manage.windowsazure.com" target="_blank">Azure Portal</a> und öffnet euren Mobile Service. Dort findet ihr nun den Reiter <strong>PUSH</strong>, welchen wir auswählen. Hier müsst ihr nun die SID und den geheimen Schlüssel aus dem Store-Portal eintragen. Anschließend speichert ihr die Eingaben ab.</p>
<p style="text-align: justify;">Nun müssen wir noch ein wenig Code hinzufügen, damit die Push-Benachrichtigungen auch funktionieren. Öffnet dazu die <strong>App.xaml.cs</strong>-Datei und tragt zunächst das folgende Using ein: <pre class="crayon-plain-tag">using Windows.Networking.PushNotifications;</pre>. Anschließend fügt ihr noch unterhalb der MobileService-Deklaration die folgende Variable zusammen mit der Funktion ein:</p>
<p></p><pre class="crayon-plain-tag">public static PushNotificationChannel CurrentChannel { get; private set; }

private async void AcquirePushChannel()
{
   CurrentChannel =  await PushNotificationChannelManager.CreatePushNotificationChannelForApplicationAsync();
}</pre><p></p>
<p style="text-align: justify;">In der Methode <pre class="crayon-plain-tag">OnLaunched()</pre> fügen wir nun noch einen Aufruf der Funktion <pre class="crayon-plain-tag">AcquirePushChannel()</pre> ein.  Nun sind wir mit den Änderungen in der App.xaml.cs-Datei bereits fertig und wechseln in die <strong>MainPage.xaml.cs</strong>-Datei, um dort weitere Änderungen vorzunehmen. Zunächst erweitern wir die TodoItem-Klasse um einen weiteren Eintrag:</p>
<p></p><pre class="crayon-plain-tag">[JsonProperty(PropertyName = "channel")]
public string Channel { get; set; }</pre><p></p>
<p style="text-align: justify;">Nun müssen wir noch die <pre class="crayon-plain-tag">ButtonSave_Click()</pre>-Methode überarbeitet, da wir die Eigenschaft Channel ja auch mit Inhalt füllen wollen:</p>
<p></p><pre class="crayon-plain-tag">private void ButtonSave_Click(object sender, RoutedEventArgs e)
{
    var todoItem = new TodoItem { Text = TextInput.Text, Channel = App.CurrentChannel.Uri };
    InsertTodoItem(todoItem);
}</pre><p></p>
<p style="text-align: justify;">Dies waren auch schon alle Einstellungen, welche wir in der <strong>MainPage.xaml.cs</strong>-Datei vornehmen müssen. Abschließend öffnet ihr nun noch die <strong>Package.appxmanifest</strong>-Datei und wählt unter Badge Logo aus, dass wir Toasts nutzen wollen, falls dies noch nicht automatisch schon geschehen ist.</p>
<p style="text-align: justify;">Wechselt nun wieder zu eurem Mobile Service und wählt den Reiter <strong>Daten</strong> und öffnet die Tabelle <em>TodoItem</em>. Anschließend steht euch der Reiter <strong>Skript</strong> zur Verfügung, welchen wir anklicken. Ersetzt nun die vorgegebene Einfügen-Methode durch die folgende Variante:</p>
<p></p><pre class="crayon-plain-tag">function insert(item, user, request) {
    request.execute({
        success: function() {
            request.respond();
            push.wns.sendToastText04(item.channel, {
                text1: item.text
            }, {
                success: function(pushResponse) {
                    console.log("Sent push:", pushResponse);
                }
            });
        }
    });
}</pre><p></p>
<p style="text-align: justify;">Speichert das Skript nun ab und lasst eure App doch einmal laufen. Wenn ihr nun ein neues Element eintragt, dann wird eine Push-Benachrichtigung angezeigt.</p>
<div id="attachment_3769" class="wp-caption aligncenter" style="width: 416px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_4_2.jpg"><img class="size-full wp-image-3769" alt="empfangene Push-Nachricht" src="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_4_2.jpg" width="406" height="122" /></a>
<p class="wp-caption-text">empfangene Push-Nachricht</p>
</div>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/windows-azure-mobile-services-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Azure Mobile Services #3</title>
		<link>http://www.tsjdev.de/windows-azure-mobile-services-3/</link>
		<comments>http://www.tsjdev.de/windows-azure-mobile-services-3/#comments</comments>
		<pubDate>Tue, 07 May 2013 16:30:19 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[mobile services]]></category>
		<category><![CDATA[windows 8]]></category>
		<category><![CDATA[windows azure]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3756</guid>
		<description><![CDATA[Nachdem wir im letzten Teil einen neuen Windows Azure Mobile Service angelegt haben, m&#246;chte ich in diesem Teil zeigen, wie ihr das Demo-Projekt herunterladen und verwenden k&#246;nnt. Wechselt dazu zun&#228;chst in das Windows Azure Portal und klickt in der linken Men&#252;leiste auf Mobile Services. In der Auflistung solltet ihr nun euren angelegten WAMS finden und<p><a href="http://www.tsjdev.de/windows-azure-mobile-services-3/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Nachdem wir im letzten Teil einen neuen <strong>Windows Azure Mobile Service</strong> angelegt haben, möchte ich in diesem Teil zeigen, wie ihr das Demo-Projekt herunterladen und verwenden könnt. Wechselt dazu zunächst in das <a href="https://manage.windowsazure.com/" target="_blank">Windows Azure Portal</a> und klickt in der linken Menüleiste auf <strong>Mobile Services</strong>. In der Auflistung solltet ihr nun euren angelegten WAMS finden und wir öffnen diesen durch einen Klick auf den kleinen <strong>Linkspfeil</strong>.</p>
<p style="text-align: justify;"><span id="more-3756"></span></p>
<p style="text-align: justify;">Wir werden nun von der Schnell-Startseite des WAMS begrüßt.</p>
<div id="attachment_3757" class="wp-caption aligncenter" style="width: 797px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_3_1.jpg"><img class="size-full wp-image-3757" alt="Schnell-Start des WAMS" src="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_3_1.jpg" width="787" height="383" /></a>
<p class="wp-caption-text">Schnell-Start des WAMS</p>
</div>
<p style="text-align: justify;">Wir wählen nun unsere Plattform aus, wobei uns Windows 8, Windows Phone, iOS, Android und HTML/JavaScript zur Verfügung steht. Für dieses Beispiel wählen wir nun <strong>Windows Store</strong>. Anschließend klicken wir weiter unter auf den Link <strong>EINE NEUE WINDOWS STORE-APP ERSTELLEN</strong>.</p>
<div id="attachment_3758" class="wp-caption aligncenter" style="width: 801px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_3_2.jpg"><img class=" wp-image-3758 " alt="Eine neue App entwerfen" src="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_3_2.jpg" width="791" height="442" /></a>
<p class="wp-caption-text">Eine neue App entwerfen</p>
</div>
<p style="text-align: justify;">Klickt nun auf den grünen Button mit der Aufschrift <strong>TodoItem-Tabelle erstellen</strong>, um Demo-Daten zu erzeugen und anschließend auf <strong>Herunterladen</strong>. Anschließend habt ihr bereits eine komplett lauffähige Version einer Todo-App. Öffnet die Solution und tragt doch einfach mal ein paar Werte ein.</p>
<div id="attachment_3759" class="wp-caption aligncenter" style="width: 550px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_3_3.jpg"><img class="size-full wp-image-3759" alt="einige eingetragene TODO-Items" src="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_3_3.jpg" width="540" height="291" /></a>
<p class="wp-caption-text">einige eingetragene TODO-Items</p>
</div>
<p style="text-align: justify;">Wie können wir aber jetzt sicher sein, dass es sich hierbei um Daten auf unserem WAMS handelt und nicht einfach nur lokale Daten? Dazu wechseln wir zurück in das <a href="https://manage.windowsazure.com/" target="_blank">Azure Portal</a> und wählen Daten und anschließend <strong>TodoItem</strong> aus. Hier sieht man nun die gleichen Daten in der Cloud-Tabelle.</p>
<div id="attachment_3760" class="wp-caption aligncenter" style="width: 485px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_3_4.jpg"><img class="size-full wp-image-3760" alt="Tabelle in der Cloud" src="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_3_4.jpg" width="475" height="265" /></a>
<p class="wp-caption-text">Tabelle in der Cloud</p>
</div>
<p style="text-align: justify;">Somit haben wir jetzt bereits unseren ersten eigenen WAMS komplett in Betrieb genommen und können auf dieser Basis nun unsere ersten eigenen Apps entwickeln.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/windows-azure-mobile-services-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>App-Empfehlung #14</title>
		<link>http://www.tsjdev.de/app-empfehlung-14/</link>
		<comments>http://www.tsjdev.de/app-empfehlung-14/#comments</comments>
		<pubDate>Mon, 06 May 2013 16:30:41 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[AppDay]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3754</guid>
		<description><![CDATA[In der vergangen Woche hat Microsoft eine Beta-Version der neuen Facebook-App ver&#246;ffentlicht, welche sich vom Design jetzt eher an der vorhanden iOS- und Android-Version orientiert. Trotzdem l&#228;uft diese App jetzt schon deutlich performanter und erm&#246;glicht ein schnelles Wechseln zwischen Nachrichten, dem Facebook-Chat oder auch den Notifications. Auf jeden Fall geht die App in die richtige<p><a href="http://www.tsjdev.de/app-empfehlung-14/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">In der vergangen Woche hat Microsoft eine Beta-Version der neuen Facebook-App veröffentlicht, welche sich vom Design jetzt eher an der vorhanden iOS- und Android-Version orientiert. Trotzdem läuft diese App jetzt schon deutlich performanter und ermöglicht ein schnelles Wechseln zwischen Nachrichten, dem Facebook-Chat oder auch den Notifications.</p>
<p style="text-align: justify;"><span id="more-3754"></span></p>
<p style="text-align: justify;">Auf jeden Fall geht die App in die richtige Richtung, auch wenn sie sich ein wenig vom ursprünglichen Windows Phone Style entfernt&#8230;</p>
<p style="text-align: justify;"><!-- WP-Appbox (Store: windowsphone // ID: 93da5d29-daf0-4783-9ed5-a87b33247ec6) -->
<div class="appcontainer feed windowsphonestore">
<table width="100%;">
<tr>
<td style="width: 88px;"><a target="_blank" rel="nofollow" href="http://www.windowsphone.com/de-de/store/app/app/93da5d29-daf0-4783-9ed5-a87b33247ec6" title="Facebook Beta"><img style="border-radius: 6px !important; border: 0 !important; padding: 0 !important; width: 80px !important; height: 80px !important;" src="http://cdn.marketplaceimages.windowsphone.com/v8/images/250a6a34-c1ba-415f-9679-97a7a6b49d45?imageType=ws_icon_large" alt="Facebook Beta" /></a></td>
<td>
				<a target="_blank" rel="nofollow" href="http://www.windowsphone.com/de-de/store/app/app/93da5d29-daf0-4783-9ed5-a87b33247ec6" title="Facebook Beta">Facebook Beta<img src="http://www.tsjdev.de/wp-content/plugins/wp-appbox/img/windowsphonestore-small.png" style="margin-left:6px !important;" /></a><br />
				Preis: Kostenlos			</td>
</tr>
</table>
</div>
<p><!-- /WP-Appbox --></p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/app-empfehlung-14/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Neuigkeiten auf tsjDEV.de</title>
		<link>http://www.tsjdev.de/neuigkeiten-auf-tsjdev-de/</link>
		<comments>http://www.tsjdev.de/neuigkeiten-auf-tsjdev-de/#comments</comments>
		<pubDate>Fri, 03 May 2013 16:30:22 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[referenzen]]></category>
		<category><![CDATA[serien]]></category>
		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3748</guid>
		<description><![CDATA[Den heutigen Beitrag m&#246;chte ich dazu verwenden, um auf einige Neuigkeiten auf meiner Webseite hinzuweisen. So habe ich zun&#228;chst einmal das Men&#252; aufgeteilt, denn die Punkte Impressum, Kontakt und die Datenschutzerkl&#228;rungen findet ihr nun am unteren Ende der Seite, denn ich brauchte Platz f&#252;r die Hauptnavigation. Diese wurde n&#228;mlich um die Punkte Serien und Referenzen<p><a href="http://www.tsjdev.de/neuigkeiten-auf-tsjdev-de/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Den heutigen Beitrag möchte ich dazu verwenden, um auf einige Neuigkeiten auf meiner Webseite hinzuweisen. So habe ich zunächst einmal das Menü aufgeteilt, denn die Punkte Impressum, Kontakt und die Datenschutzerklärungen findet ihr nun am unteren Ende der Seite, denn ich brauchte Platz für die Hauptnavigation. Diese wurde nämlich um die Punkte <a href="http://www.tsjdev.de/serien/" target="_blank">Serien</a> und <a href="http://www.tsjdev.de/referenzen/" target="_blank">Referenzen</a> ergänzt.</p>
<p style="text-align: justify;"><span id="more-3748"></span></p>
<p style="text-align: center;"><a href="http://www.tsjdev.de/wp-content/uploads/2013/05/tsjDEVLogo.png"><img class="size-full wp-image-3749 aligncenter" alt="tsjDEVLogo" src="http://www.tsjdev.de/wp-content/uploads/2013/05/tsjDEVLogo.png" width="248" height="75" /></a></p>
<p style="text-align: justify;">So habe ich auf der Serien-Seite eine Anlaufstelle für die Beiträge geschaffen, welche über mehrere Teile verfügen, so dass ihr diese nicht mehr in meinem Blog suchen müsst, sondern alles auf einem Blick findet. Dabei habe ich die Beiträge auch noch nach Plattform (Windows 8, Windows Phone und Windows 8/Windows Phone) aufgeteilt, so dass ihr gezielt und schnell eure Informationen findet.</p>
<p style="text-align: justify;">Unter Referenzen findet ihr nun erste App-Projekte, welche ich nicht für mich, sondern für Kunden entwickelt bzw. mitgearbeitet habe. Diese Rubrik wird in den nächsten Tagen und Wochen noch weiter ausgebaut, soll aber erstmal eine erste Anlaufstelle darstellen. Auch hier gibt es eine Unterscheidung nach Plattform.</p>
<p style="text-align: justify;">Ich wünsche euch nun noch viel Spaß beim Stöbern!</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/neuigkeiten-auf-tsjdev-de/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Azure Mobile Services #2</title>
		<link>http://www.tsjdev.de/windows-azure-mobile-services-2/</link>
		<comments>http://www.tsjdev.de/windows-azure-mobile-services-2/#comments</comments>
		<pubDate>Thu, 02 May 2013 17:30:48 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[mobile services]]></category>
		<category><![CDATA[windows 8]]></category>
		<category><![CDATA[windows azure]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3716</guid>
		<description><![CDATA[Nachdem ich im ersten Teil die Windows Azure Mobile Services schon ein wenig vorgestellt habe, m&#246;chte ich diesem Teil nun einen ersten Mobile Service erstellen. Hierf&#252;r ist Konto bei Windows Azure notwendig, welches wir jetzt anlegen werden. Wechselt dazu auf die Startseite von Windows Azure und klickt auf den gro&#223;en gr&#252;nen Button mit der Aufschrift kostenlos<p><a href="http://www.tsjdev.de/windows-azure-mobile-services-2/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Nachdem ich im <a title="Windows Azure Mobile Services #1" href="http://www.tsjdev.de/windows-azure-mobile-services-1/">ersten Teil</a> die Windows Azure Mobile Services schon ein wenig vorgestellt habe, möchte ich diesem Teil nun einen ersten Mobile Service erstellen. Hierfür ist Konto bei Windows Azure notwendig, welches wir jetzt anlegen werden. Wechselt dazu auf die <a href="http://www.windowsazure.com/de-de/" target="_blank">Startseite von Windows Azure</a> und klickt auf den großen grünen Button mit der Aufschrift <strong>kostenlos testen</strong>.</p>
<p style="text-align: justify;"><span id="more-3716"></span></p>
<p style="text-align: justify;">Anschließend werden ihr auf Webseite weitergeleitet, wo noch einmal die Vorteile der kostenlosen Testversion hervorgehoben werden und aufgeführt wird, was in dem Paket alles enthalten ist. Klickt anschließend noch einmal auf den großen grünen Button mit der Aufschrift <strong>kostenlos testen</strong>.</p>
<p style="text-align: justify;">Meldet euch nun mit eurem Microsoft-Konto an und ihr gelangt zum Einrichtungsassistenten, welcher noch einmal auf das kostenlose Abo hinweist und mitteilt, dass neben einem Mobiltelefon auch eine Kreditkarte notwendig ist, welche aber nicht während der Testversion belastet wird.</p>
<div id="attachment_3717" class="wp-caption aligncenter" style="width: 767px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_2_1.jpg"><img class="size-full wp-image-3717" alt="Erster Schritt der Azure-Einrichtung" src="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_2_1.jpg" width="757" height="505" /></a>
<p class="wp-caption-text">Erster Schritt der Azure-Einrichtung</p>
</div>
<p style="text-align: justify;">Wenn ihr alles parat gelegt habt, könnt ihr mit einem Klick auf den kleinen Pfeil zum nächsten Schritt gelangen. Hier tragt ihr erstmal nur eure Handy-Nummer ein und wählt aus, ob ihr ein SMS oder einen Anruf mit einem Prüf-Code erhalten wollt. Diesen Code gebt ihr dann auf der gleichen Seite in das Feld ein und klickt auf <strong>Code überprüfen</strong>. Wenn ihr alles richtig gemacht habt, so könnt ihr mit der Einrichtung fortfahren.</p>
<div id="attachment_3718" class="wp-caption aligncenter" style="width: 834px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_2_2.jpg"><img class="size-full wp-image-3718" alt="Dritter Einrichtungsschritt" src="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_2_2.jpg" width="824" height="809" /></a>
<p class="wp-caption-text">Dritter Schritt der Azure-Einrichtung</p>
</div>
<p style="text-align: justify;">Tragt nun die Daten eurer Kreditkarte und bestätigt die Eingabe mit einem Klick auf <strong>Weiter</strong>. Anschließend werden die Daten kurz geprüft und das entsprechende Windows Azure Testabo erstellt.</p>
<p style="text-align: justify;">Wenn ihr alles richtig gemacht habt, so werdet ihr nach kurzer Zeit von dem folgenden Assistenten begrüßt:</p>
<div id="attachment_3719" class="wp-caption aligncenter" style="width: 804px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_2_3.jpg"><img class=" wp-image-3719 " alt="Willkommen bei Windows Azure" src="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_2_3.jpg" width="794" height="441" /></a>
<p class="wp-caption-text">Willkommen bei Windows Azure</p>
</div>
<p style="text-align: justify;">Gebt nun die Url <a href="http://manage.windowsazure.com" target="_blank">manage.windowsazure.com</a> in euren Browser ein, um Zugriff auf das Backend zu erhalten. Beim ersten Login werdet ihr mit einem kleinen Assistenten begrüßt, welcher euch durch das Portal führt und ihr solltet ihn auf jeden Fall ein wenig Aufmerksamkeit schenken.</p>
<p style="text-align: justify;">Nun wollen wir aber unseren ersten Mobile Service erstellen. Klickt dazu in der Leiste am unteren Bildschirmrand auf <strong>NEU</strong> &#8211; <strong>SERVER</strong> &#8211; <strong>MOBILER SERVICE</strong> &#8211; <strong>ERSTELLEN</strong>. Hier tragt ihr nun einen eindeutigen Bezeichner in das Feld URL ein. Anschließend müsst ihr noch die SQL-Datenbank auswählen oder eben eine neue erstellen, da wir aktuell ja noch gar keine angelegt haben. Stellt in Deutschland nun noch die Region auf  <strong>North Europe</strong> und klickt auf den kleinen Pfeil.</p>
<div id="attachment_3720" class="wp-caption aligncenter" style="width: 780px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_2_4.jpg"><img class="size-full wp-image-3720" alt="Einrichtung des Mobile-Services" src="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_2_4.jpg" width="770" height="518" /></a>
<p class="wp-caption-text">Einrichtung des Mobile-Services</p>
</div>
<p style="text-align: justify;">Wählt nun noch einen Namen für die Datenbank und den Datenbank-Server oder erstellt einen neuen Server mit den notwendigen Daten. Achtet auch hier auf die Region, denn die müssen identisch sein. Anschließend wird der Service auch schon erstellt, was ein paar Sekunden bis Minuten in Anspruch nehmen kann.</p>
<div id="attachment_3722" class="wp-caption aligncenter" style="width: 467px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_2_5.jpg"><img class="size-full wp-image-3722" alt="Unser erster Mobile Service" src="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_2_5.jpg" width="457" height="148" /></a>
<p class="wp-caption-text">Unser erster Mobile Service</p>
</div>
<p style="text-align: justify;">Nun haben wir bereits den ersten Mobile Service eingerichtet und können diesen auch verwenden. Wie wir dies jedoch tun, zeige ich euch im nächsten Teil dieser Serie.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/windows-azure-mobile-services-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Azure Mobile Services #1</title>
		<link>http://www.tsjdev.de/windows-azure-mobile-services-1/</link>
		<comments>http://www.tsjdev.de/windows-azure-mobile-services-1/#comments</comments>
		<pubDate>Wed, 01 May 2013 17:30:43 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[mobile services]]></category>
		<category><![CDATA[windows 8]]></category>
		<category><![CDATA[windows azure]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3712</guid>
		<description><![CDATA[Heute m&#246;chte ich bekannt geben, dass ich eine weitere Serie hier in meinem Blog starten werde. Diese wird sich ausgiebig mit den Windows Azure Mobile Services befassen. In diesem ersten Teil m&#246;chte ich zun&#228;chst die Windows Azure Mobile Services, oder kurz WAMS, kurz vorstellen, bevor wir dann in den n&#228;chsten Teilen der Serie mit diesen<p><a href="http://www.tsjdev.de/windows-azure-mobile-services-1/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Heute möchte ich bekannt geben, dass ich eine weitere Serie hier in meinem Blog starten werde. Diese wird sich ausgiebig mit den <a href="http://www.windowsazure.com/de-de/home/scenarios/mobile-services/" target="_blank">Windows Azure Mobile Services</a> befassen. In diesem ersten Teil möchte ich zunächst die Windows Azure Mobile Services, oder kurz WAMS, kurz vorstellen, bevor wir dann in den nächsten Teilen der Serie mit diesen auch arbeiten werden.</p>
<p style="text-align: justify;"><span id="more-3712"></span></p>
<div id="attachment_3713" class="wp-caption aligncenter" style="width: 797px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_1.jpg"><img class="size-full wp-image-3713" alt="Vorstellung des WAMS (Quelle: http://www.windowsazure.com/de-de/home/scenarios/mobile-services/)" src="http://www.tsjdev.de/wp-content/uploads/2013/05/wams_1.jpg" width="787" height="470" /></a>
<p class="wp-caption-text">Vorstellung des WAMS (Quelle: <a href="http://www.windowsazure.com/de-de/home/scenarios/mobile-services/" target="_blank">http://www.windowsazure.com/de-de/home/scenarios/mobile-services/</a>)</p>
</div>
<p style="text-align: justify;">Ziel der WAMS ist es mit wenig Aufwand ein komplettes Cloud-Backend für eine App zu entwickeln. Dabei kann man über diese Services Benutzerauthentifizierungen durchführen oder auch Pushbenachrichtung senden. Natürlich lassen sich auch bequem Daten in einer Datenbank ablegen und natürlich auch wieder auslesen.</p>
<p style="text-align: justify;">Das Beste an den Windows Azure Mobile Services ist es jedoch, dass diese sowohl mit Windows 8, mit Windows Phone 8, mit iOS, mit Android und sogar mit HTML zusammenarbeiten. Dadurch entwickelt man einmal ein Backend, welches man dann in allen Systemen ohne Probleme einbinden kann und so sich nur noch um das Frontend kümmern muss. Ein weiterer Vorteil ist die Einfachheit beim Entwickeln des Backends. Es werden alle notwendigen Code-Schnipsel übersichtlich dargestellt und mit wenigen Zeilen hat man einen WAMS bereits in eine  bestehende App integriert.</p>
<p style="text-align: justify;">Wie wir nun unsere erste Beispiel-Anwendung mit den WAMS erstellen können, zeige ich euch im nächsten Teil dieser Serie.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/windows-azure-mobile-services-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>StarterKit f&#252;r euer n&#228;chstes Windows 8 Game</title>
		<link>http://www.tsjdev.de/starterkit-fuer-euer-naechsten-windows-8-game/</link>
		<comments>http://www.tsjdev.de/starterkit-fuer-euer-naechsten-windows-8-game/#comments</comments>
		<pubDate>Tue, 30 Apr 2013 17:30:55 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[entwicklung]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3705</guid>
		<description><![CDATA[Heute m&#246;chte ich euch ein kleines Paket ans Herzen legen, welches euch erm&#246;glicht in kurzer Zeit ein eigenes Windows 8 Game zu erstellen. Das Paket beinhaltet bereits zwei Vorlage f&#252;r ein Spiele und beinhaltet auch Grafik und Sounds, also alles was man direkt zum Loslegen ben&#246;tigt. Dar&#252;ber hinaus findet ihr auf der Webseite noch weitere<p><a href="http://www.tsjdev.de/starterkit-fuer-euer-naechsten-windows-8-game/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Heute möchte ich euch ein kleines Paket ans Herzen legen, welches euch ermöglicht in kurzer Zeit ein eigenes Windows 8 Game zu erstellen. Das Paket beinhaltet bereits zwei Vorlage für ein Spiele und beinhaltet auch Grafik und Sounds, also alles was man direkt zum Loslegen benötigt. Darüber hinaus findet ihr auf der Webseite noch weitere hilfreiche Links zu Ressourcen. Also ladet euch das <a href="http://wootstudio.ca/win8platstarter" target="_blank">kostenlose Starterkit herunter</a> und baut ein eigenes Windows 8 Game.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/starterkit-fuer-euer-naechsten-windows-8-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>App-Empfehlung #13</title>
		<link>http://www.tsjdev.de/app-empfehlung-13/</link>
		<comments>http://www.tsjdev.de/app-empfehlung-13/#comments</comments>
		<pubDate>Mon, 29 Apr 2013 16:30:11 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[AppDay]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[deals]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3700</guid>
		<description><![CDATA[Heute gibt es eine Empfehlung f&#252;r alle Schn&#228;ppchenj&#228;ger! Die App Dealz Collector fasst f&#252;r euch alle wichtigen Schn&#228;ppchenseiten im Internet &#252;bersichtlich zusammen und b&#252;ndelt dadurch alle Angebote an einem zentralen Ort, so dass ihr kein Schn&#228;ppchen mehr verpasst. So habt ihr auch die Gelegenheit im Internet bares Geld zu sparen und genie&#223;t trotzdem das volle Shoppingerlebnis,<p><a href="http://www.tsjdev.de/app-empfehlung-13/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Heute gibt es eine Empfehlung für alle Schnäppchenjäger! Die App <strong>Dealz Collector</strong> fasst für euch alle wichtigen Schnäppchenseiten im Internet übersichtlich zusammen und bündelt dadurch alle Angebote an einem zentralen Ort, so dass ihr kein Schnäppchen mehr verpasst. So habt ihr auch die Gelegenheit im Internet bares Geld zu sparen und genießt trotzdem das volle Shoppingerlebnis, da ihr nicht selbst die verschiedenen Portale ansurfen müsst. In der App werden die Deals von MyDealZ, Mein-Deal, YourDealz, Bluray-Dealz, Travel-Dealz, Sparbaby, MonsterDealz und Dealgott berücksichtigt. Und nun heißt es nur noch Sparen!</p>
<p style="text-align: justify;"><span id="more-3700"></span></p>
<p style="text-align: justify;"><!-- WP-Appbox (Store: windowsstore // ID: 748a4a28-641e-485e-b239-38e796b36b39) -->
<div class="appcontainer feed windowsstore">
<table width="100%;">
<tr>
<td style="width: 88px;"><a target="_blank" rel="nofollow" href="http://apps.microsoft.com/windows/de-DE/app/748a4a28-641e-485e-b239-38e796b36b39" title="Dealz Collector"><img style="border-radius: 6px !important; border: 0 !important; padding: 0 !important; width: 80px !important; height: 80px !important;" src="http://wscont1.apps.microsoft.com/winstore/1x/4b552573-7aa6-4a11-ac11-948b88f08c29/Icon.16280.png" alt="Dealz Collector" /></a></td>
<td>
				<a target="_blank" rel="nofollow" href="http://apps.microsoft.com/windows/de-DE/app/748a4a28-641e-485e-b239-38e796b36b39" title="Dealz Collector">Dealz Collector<img src="http://www.tsjdev.de/wp-content/plugins/wp-appbox/img/windowsstore-small.png" style="margin-left:6px !important;" /></a><br />
				Preis: Kostenlos			</td>
</tr>
</table>
</div>
<p><!-- /WP-Appbox --></p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/app-empfehlung-13/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eigener Blog als Windows 8 App</title>
		<link>http://www.tsjdev.de/eigener-blog-als-windows-8-app/</link>
		<comments>http://www.tsjdev.de/eigener-blog-als-windows-8-app/#comments</comments>
		<pubDate>Fri, 26 Apr 2013 16:30:52 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3676</guid>
		<description><![CDATA[Bevor es in einen hoffentlich sch&#246;nes Wochenende geht, m&#246;chte ich gerne noch einen kleinen Tipp loswerden, wie ihr ganz leicht euren bestehenden WordPress-Blog in eine eigenst&#228;ndige Windows 8 App verwandeln k&#246;nnt. Dazu braucht ihr nur einen WordPress-Blog mit dem Json Api Plugin und einen Internet-Browser. Ruft nun die Webseite ideapress.me auf und klickt auf den<p><a href="http://www.tsjdev.de/eigener-blog-als-windows-8-app/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Bevor es in einen hoffentlich schönes Wochenende geht, möchte ich gerne noch einen kleinen Tipp loswerden, wie ihr ganz leicht euren bestehenden WordPress-Blog in eine eigenständige Windows 8 App verwandeln könnt. Dazu braucht ihr nur einen WordPress-Blog mit dem <a href="http://wordpress.org/extend/plugins/json-api/" target="_blank">Json Api Plugin</a> und einen Internet-Browser.</p>
<p style="text-align: justify;"><span id="more-3676"></span></p>
<p style="text-align: justify;">Ruft nun die Webseite <a href="http://ideapress.me/" target="_blank">ideapress.me</a> auf und klickt auf den großen grünen Button mit der Aufschrift Get Started. Nun müsst ihr die Internetadresse und eine eMail-Adresse eintragen, an welche später das fertige Projekt gesendet wird.</p>
<div id="attachment_3677" class="wp-caption aligncenter" style="width: 691px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/04/ideapress_01.jpg"><img class="size-full wp-image-3677" alt="Erster Einrichtungsschritt für eure WordPress-App" src="http://www.tsjdev.de/wp-content/uploads/2013/04/ideapress_01.jpg" width="681" height="375" /></a>
<p class="wp-caption-text">Erster Einrichtungsschritt für eure WordPress-App</p>
</div>
<p style="text-align: justify;">Anschließend wird überprüft, ob ihr das Json-Plugin installiert habt und anschließend wir die Einrichtung fortgesetzt. Ihr werden nun durch eine bebilderte Anleitung geführt. Hier tragt ihr bereits einen Titel der App ein oder wählt auch die Kategorien, welche angezeigt werden sollen. Auch eine Farbgebung lässt sich bereits vordefinieren.</p>
<p style="text-align: justify;">Wenn ihr damit fertig seid, dann bekommt ihr die fertige Solution an eure eMail-Adresse geschickt und schon könnt ihr die App einreichen und habt euren eigenen Blog als Windows 8 App.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/eigener-blog-als-windows-8-app/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Einf&#252;hrung in den TFS #3</title>
		<link>http://www.tsjdev.de/einfuehrung-in-den-tfs-3/</link>
		<comments>http://www.tsjdev.de/einfuehrung-in-den-tfs-3/#comments</comments>
		<pubDate>Thu, 25 Apr 2013 16:30:47 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[tfs]]></category>
		<category><![CDATA[windows 8]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3656</guid>
		<description><![CDATA[Schon folgt der dritte Teil meiner kleinen Serie &#252;ber den Team Foundation Service von Microsoft und nun m&#246;chte ich euch endlich  zeigen, wie ihr euren Code mit dem TFS abgleichen k&#246;nnt, so dass dieser entweder auf euren verschiedenen Devices zur Verf&#252;gung steht oder aber mit euren Mitarbeitern geteilt werden kann. Ihr &#246;ffnet Visual Studio und<p><a href="http://www.tsjdev.de/einfuehrung-in-den-tfs-3/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Schon folgt der dritte Teil meiner kleinen Serie über den <strong>Team Foundation Service</strong> von Microsoft und nun möchte ich euch endlich  zeigen, wie ihr euren Code mit dem TFS abgleichen könnt, so dass dieser entweder auf euren verschiedenen Devices zur Verfügung steht oder aber mit euren Mitarbeitern geteilt werden kann.</p>
<p style="text-align: justify;"><span id="more-3656"></span></p>
<p style="text-align: justify;">Ihr öffnet Visual Studio und wählt dann den Eintrag <strong>Team</strong> &#8211; <strong>Connect to Team Foundation Server</strong> aus.</p>
<div id="attachment_3657" class="wp-caption aligncenter" style="width: 368px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_3_01.jpg"><img class="size-full wp-image-3657" alt="Verbindung mit TFS herstellen" src="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_3_01.jpg" width="358" height="68" /></a>
<p class="wp-caption-text">Verbindung mit TFS herstellen</p>
</div>
<p style="text-align: justify;">Anschließend öffnet sich an der rechten Seite ein kleine Liste und dort findet ihr einen Verweis auf Connect, welchen ihr einfach anklickt.</p>
<div id="attachment_3658" class="wp-caption aligncenter" style="width: 401px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_3_02.jpg"><img class="size-full wp-image-3658" alt="Mit dem TFS verbinden durch Connect" src="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_3_02.jpg" width="391" height="227" /></a>
<p class="wp-caption-text">Mit dem TFS verbinden durch Connect</p>
</div>
<p style="text-align: justify;">In dem sich öffnenden Fenster klickt ihr auf Servers und tragt dort euren Team-Foundation-Server ein. Achtet dabei darauf, dass die URL zum Server mit einem https:// beginnt, denn sonst kann keine Verbindung hergestellt werden. Anschließend müsst ihr euch noch mit eurer Live-ID anmelden, bevor eine Verbindung mit dem Server hergestellt werden kann.</p>
<div id="attachment_3659" class="wp-caption aligncenter" style="width: 649px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_3_03.jpg"><img class="size-full wp-image-3659" alt="Mit dem TFS verbunden" src="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_3_03.jpg" width="639" height="461" /></a>
<p class="wp-caption-text">Mit dem TFS verbunden</p>
</div>
<p style="text-align: justify;">Wählt nun das entsprechende Projekt aus, in diesem Falle <em>TestProject</em> und klickt auf <strong>Connect</strong>. Nun legt ihr euch ein neues Projekt an oder öffnet ein bestehendes Projekt, welches ihr dem TFS hinzufügen wollt. Im Solution Explorer klickt ihr nun mit der rechten Maustaste auf Solution und wählt den Menüeintrag <strong>Add Solution to Source Control</strong> aus. Anschließend wählt ihr den entsprechenden Ordner auf dem TFS aus und bestätigt mit einem Klick auf OK.</p>
<div id="attachment_3660" class="wp-caption aligncenter" style="width: 557px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_3_04.jpg"><img class="size-full wp-image-3660" alt="Projekt dem TFS hinzufügen" src="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_3_04.jpg" width="547" height="549" /></a>
<p class="wp-caption-text">Projekt dem TFS hinzufügen</p>
</div>
<p style="text-align: justify;">Nun macht ihr eure Änderungen am Code und wenn ihr das ganze nun hochladen wollt, dann wählt ihr erneut die Solution mit einem Rechtsklick aus und wählt aus dem Menü den Eintrag <strong>Check In&#8230;</strong> aus. Tragt nun noch eine kurze Beschreibung in das entsprechende Feld ein und klickt auf <strong>Check In</strong>.</p>
<div id="attachment_3661" class="wp-caption aligncenter" style="width: 375px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_3_05.jpg"><img class="size-full wp-image-3661" alt="Code einchecken" src="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_3_05.jpg" width="365" height="205" /></a>
<p class="wp-caption-text">Code einchecken</p>
</div>
<p>Nun befindet sich eurer Code bereits auf dem TFS und wie ihr nun auf einem anderen Rechner wieder an euren Code herankommt, dass zeige ich euch im nächsten Teil dieser Serie.<br />
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/einfuehrung-in-den-tfs-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>tumblr-Blog f&#252;r die schnellen Neuigkeiten</title>
		<link>http://www.tsjdev.de/tumblr-blog-fuer-die-schnellen-neuigkeiten/</link>
		<comments>http://www.tsjdev.de/tumblr-blog-fuer-die-schnellen-neuigkeiten/#comments</comments>
		<pubDate>Wed, 24 Apr 2013 16:30:08 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[info]]></category>
		<category><![CDATA[tumblr]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3651</guid>
		<description><![CDATA[An dieser Stelle m&#246;chte ich &#252;ber einen neuen  Kanal informieren, n&#228;mlich meinen neuen tumblr-Blog unter tsjdev.tumblr.com. In diesem Blog-Ableger werde ich haupts&#228;chlich auf Themen und Aspekte eingehen, welche in meinem Hauptblog keinen Platz finden oder sehr aktuell sind und somit meist auch nicht in diesem Blog erscheinen k&#246;nnen. Dar&#252;ber hinaus halte ich in dem tumblr-Blog<p><a href="http://www.tsjdev.de/tumblr-blog-fuer-die-schnellen-neuigkeiten/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">An dieser Stelle möchte ich über einen neuen  Kanal informieren, nämlich meinen neuen <a href="http://tumblr.com/" target="_blank">tumblr</a>-Blog unter <a href="http://tsjdev.tumblr.com/" target="_blank">tsjdev.tumblr.com</a>. In diesem Blog-Ableger werde ich hauptsächlich auf Themen und Aspekte eingehen, welche in meinem <a href="http://www.tsjdev.de" target="_blank">Hauptblog</a> keinen Platz finden oder sehr aktuell sind und somit meist auch nicht in diesem Blog erscheinen können. Darüber hinaus halte ich in dem tumblr-Blog auch interessante Links, Videos und Bilder fest, welche sicherlich den einen oder anderen behilflich sein können. Wer nun alle Informationen von mir beziehen möchte, kann das am besten über meinen <a href="http://twitter.com/tsjDEV" target="_blank">twitter</a>-Account machen, denn dort werden alle Kanäle Blog, tumblr-Blog und sonstige Nachrichten verfügbar gemacht. Viel Spaß beim Lesen.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/tumblr-blog-fuer-die-schnellen-neuigkeiten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ToastNotification unter W8</title>
		<link>http://www.tsjdev.de/toastnotification-unter-w8/</link>
		<comments>http://www.tsjdev.de/toastnotification-unter-w8/#comments</comments>
		<pubDate>Tue, 23 Apr 2013 16:30:02 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[entwicklung]]></category>
		<category><![CDATA[toast notification]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3648</guid>
		<description><![CDATA[Manchmal m&#246;chte man den Nutzer einer App &#252;ber das Ende einer Operation informieren. Daf&#252;r bietet sich zum einen den klassische MessageDialog  an, aber es gibt auch die M&#246;glichkeit mit wenig Aufwand eine ToastNotification zu erstellen, welche dem Nutzer angezeigt wird. Wie man so eine ToastNotification am einfachsten erstellt, m&#246;chte ich in diesem Beitrag zeigen. Wie das ganze in einer<p><a href="http://www.tsjdev.de/toastnotification-unter-w8/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Manchmal möchte man den Nutzer einer App über das Ende einer Operation informieren. Dafür bietet sich zum einen den klassische MessageDialog  an, aber es gibt auch die Möglichkeit mit wenig Aufwand eine <strong>ToastNotification</strong> zu erstellen, welche dem Nutzer angezeigt wird. Wie man so eine <strong>ToastNotification</strong> am einfachsten erstellt, möchte ich in diesem Beitrag zeigen. Wie das ganze in einer Windows Phone Anwendung aussieht, habe ich <a title="ToastNotification unter WP7/WP8" href="http://www.tsjdev.de/toastnotification-unter-wp7wp8/" target="_blank">hier</a> einmal geschrieben.</p>
<p style="text-align: justify;"><span id="more-3648"></span></p>
<p style="text-align: justify;">Öffnet die Code-Behind-Datei eurer Seite, auf der die ToastNotification später angezeigt werden soll. Dort fügt ihr zunächst oberhalb des Konstruktors die folgende Variablen-Deklaration ein:</p>
<p></p><pre class="crayon-plain-tag">Windows.UI.Notifications.ToastNotifier _notifier = Windows.UI.Notifications.ToastNotificationManager.CreateToastNotifier();</pre><p>Anschließend könnt ihr den folgenden Code-Schnipsel verwenden, um eine Toast-Notification zu senden. Zunächst wird überprüft, ob die Toast-Nachrichten durch den Nutzer überhaupt zugelassen wurden und dann ein klassischer <strong>MessageDialog</strong> angezeigt und sonst der Toast.</p><pre class="crayon-plain-tag">if (_notifier.Setting != Windows.UI.Notifications.NotificationSetting.Enabled)
{
    await new MessageDialog("Message", "Title").ShowAsync();
}
else
{
    var template = Windows.UI.Notifications.ToastNotificationManager.GetTemplateContent(Windows.UI.Notifications.ToastTemplateType.ToastImageAndText02);
    template.GetElementsByTagName("image")[0].Attributes[1].AppendChild(template.CreateTextNode("path_to_image"));
    template.GetElementsByTagName("text")[0].AppendChild(template.CreateTextNode("first row"));
    template.GetElementsByTagName("text")[1].AppendChild(template.CreateTextNode("secondrow"));

    var toast = new Windows.UI.Notifications.ToastNotification(template);
    _notifier.Show(toast);
}</pre><p></p>
<p style="text-align: justify;"> Zu beachten ist, dass ihr in der Datei <strong>Package.appxmanifest</strong> unter<strong> Badge Logo</strong> bei <strong>Toast capable</strong> den Wert auf <em>Yes</em> setzt, denn sonst werden auch keine Toast-Nachrichten angezeigt. Das ist auch schon das ganze Geheimnis und ihr könnt eure Apps jetzt auch mit Toast ausstatten.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/toastnotification-unter-w8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>App-Empfehlung #12</title>
		<link>http://www.tsjdev.de/app-empfehlung-12/</link>
		<comments>http://www.tsjdev.de/app-empfehlung-12/#comments</comments>
		<pubDate>Mon, 22 Apr 2013 16:30:36 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[AppDay]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[wikipedia]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3643</guid>
		<description><![CDATA[Heute m&#246;chte ich euch den Gewinner eines Wettbewerbes von Microsoft vorstellen. In diesem Wettbewerb wurde der n&#228;chste App-Star gesucht. Also eine App, welche nicht nur die User beeindruckt, sonder auch eine Fachjury. Gewonnen hat eine Wikipedia-App, welche treffender Weise auf den Namen Wikipedia h&#246;rt. Die App hat sich gegen 9000 App-Einreichungen aus 79 L&#228;ndern durchgesetzt<p><a href="http://www.tsjdev.de/app-empfehlung-12/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Heute möchte ich euch den Gewinner eines Wettbewerbes von Microsoft vorstellen. In diesem Wettbewerb wurde der <a href="https://www.facebook.com/windowsphone/app_289569661171794?" target="_blank">nächste App-Star</a> gesucht. Also eine App, welche nicht nur die User beeindruckt, sonder auch eine Fachjury. Gewonnen hat eine Wikipedia-App, welche treffender Weise auf den Namen <strong>Wikipedia</strong> hört. Die App hat sich gegen 9000 App-Einreichungen aus 79 Ländern durchgesetzt und stammt vom Franzosen Rudy Huyn. Ich verwende diese App selbst sehr häufig am Tag, denn man kann mit ihr blitzschnell in der Wikipedia recherchieren ohne auf die mobile Webseite navigieren zu müssen. Somit hat Rudy für mich verdient gewonnen und nun könnt ihr euch selbst ein Bild von der App machen und sie kostenlos über den Windows Phone Store beziehen.</p>
<p style="text-align: justify;"><span id="more-3643"></span></p>
<p style="text-align: justify;"><!-- WP-Appbox (Store: windowsphone // ID: fd40c569-2681-48df-9ff3-53ffd80aa9b5) -->
<div class="appcontainer feed windowsphonestore">
<table width="100%;">
<tr>
<td style="width: 88px;"><a target="_blank" rel="nofollow" href="http://www.windowsphone.com/de-de/store/app/app/fd40c569-2681-48df-9ff3-53ffd80aa9b5" title="Wikipedia"><img style="border-radius: 6px !important; border: 0 !important; padding: 0 !important; width: 80px !important; height: 80px !important;" src="http://cdn.marketplaceimages.windowsphone.com/v8/images/0856a915-7e11-4091-9eef-a552420d82be?imageType=ws_icon_large" alt="Wikipedia" /></a></td>
<td>
				<a target="_blank" rel="nofollow" href="http://www.windowsphone.com/de-de/store/app/app/fd40c569-2681-48df-9ff3-53ffd80aa9b5" title="Wikipedia">Wikipedia<img src="http://www.tsjdev.de/wp-content/plugins/wp-appbox/img/windowsphonestore-small.png" style="margin-left:6px !important;" /></a><br />
				Preis: Kostenlos			</td>
</tr>
</table>
</div>
<p><!-- /WP-Appbox --></p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/app-empfehlung-12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kostenlose Domain-Weltkarte f&#252;r Blogger</title>
		<link>http://www.tsjdev.de/kostenlose-domain-weltkarte-fuer-blogger/</link>
		<comments>http://www.tsjdev.de/kostenlose-domain-weltkarte-fuer-blogger/#comments</comments>
		<pubDate>Fri, 19 Apr 2013 16:30:24 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[aktion]]></category>
		<category><![CDATA[blogger]]></category>
		<category><![CDATA[checkdomain]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3619</guid>
		<description><![CDATA[Heute gibt es mal einen Beitrag, welcher nicht so ganz mit meinem eigentlichen Thema &#8220;Entwicklung von Apps f&#252;r Windows Phone und Windows 8&#8243; zu tun hat, aber trotzdem einen Bezug zum Fachbereich IT hat. Checkdomain.de hat eine Aktion f&#252;r Blogger gestartet, welche f&#252;r einen Blog-Beitrag und einen Link auf die Aktionswebseite eine Domain-Weltkarte im Plakat-Format<p><a href="http://www.tsjdev.de/kostenlose-domain-weltkarte-fuer-blogger/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Heute gibt es mal einen Beitrag, welcher nicht so ganz mit meinem eigentlichen Thema &#8220;Entwicklung von Apps für Windows Phone und Windows 8&#8243; zu tun hat, aber trotzdem einen Bezug zum Fachbereich IT hat. <a href="https://www.checkdomain.de/" target="_blank">Checkdomain.de</a> hat eine Aktion für Blogger gestartet, welche für einen Blog-Beitrag und einen Link auf die <a href="https://www.checkdomain.de/domain-weltkarte/" target="_blank">Aktionswebseite</a> eine Domain-Weltkarte im Plakat-Format erhalten.</p>
<p style="text-align: justify;"><span id="more-3619"></span></p>
<div id="attachment_3620" class="wp-caption aligncenter" style="width: 798px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/04/checkdomain.png"><img class="size-full wp-image-3620" alt="Quelle: https://www.checkdomain.de/domain-weltkarte/" src="http://www.tsjdev.de/wp-content/uploads/2013/04/checkdomain.png" width="788" height="449" /></a>
<p class="wp-caption-text">Quelle: https://www.checkdomain.de/domain-weltkarte/</p>
</div>
<p style="text-align: justify;">Darüber hinaus spendet <a href="https://www.checkdomain.de/" target="_blank">checkdomain.de</a> pro Weltkarte noch 10€ für einen guten Zweck und daher habe ich beschlossen auch an dieser Aktion teilzunehmen, um so etwas Gutes zu tun. Natürlich können auch nicht Blogger etwas Gutes tun, indem sie die Karte für 27€ käuflich erwerben, denn auch hier fließen 10€ in die Kasse der Kinderkrebsstiftung.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/kostenlose-domain-weltkarte-fuer-blogger/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MSDN-Videos von der CeBIT</title>
		<link>http://www.tsjdev.de/msdn-videos-von-der-cebit/</link>
		<comments>http://www.tsjdev.de/msdn-videos-von-der-cebit/#comments</comments>
		<pubDate>Thu, 18 Apr 2013 16:30:08 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[cebit]]></category>
		<category><![CDATA[msdn]]></category>
		<category><![CDATA[rückblick]]></category>
		<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3617</guid>
		<description><![CDATA[Anfang M&#228;rz war ich selbst auf der CeBIT und konnte den einen oder anderen spannenden Vortrag auf der Hauptb&#252;hne und im MSDN-TechNet-Kino live anschauen. Mittlerweile stehen diese Video als kostenlosen Stream auf den MSDN-Seiten zur Verf&#252;gung. Somit habt ihr die M&#246;glichkeit auch ohne einen CeBIT-Besuch in den Genuss der Videos zu kommen. Copyright &#169; 2010-2013 Dieser<p><a href="http://www.tsjdev.de/msdn-videos-von-der-cebit/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Anfang März war ich selbst auf der CeBIT und konnte den einen oder anderen spannenden Vortrag auf der Hauptbühne und im MSDN-TechNet-Kino live anschauen. Mittlerweile stehen diese Video als kostenlosen Stream auf den <a href="http://www.microsoft.com/germany/msdn/events/cebit/2013/kino.aspx" target="_blank">MSDN-Seiten</a> zur Verfügung. Somit habt ihr die Möglichkeit auch ohne einen CeBIT-Besuch in den Genuss der Videos zu kommen.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/msdn-videos-von-der-cebit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weitere STC-Hackathon-App im Store</title>
		<link>http://www.tsjdev.de/weitere-stc-hackathon-app-im-store/</link>
		<comments>http://www.tsjdev.de/weitere-stc-hackathon-app-im-store/#comments</comments>
		<pubDate>Wed, 17 Apr 2013 16:30:53 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Projekt]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[hackathon]]></category>
		<category><![CDATA[remember me kitty]]></category>
		<category><![CDATA[stc]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3615</guid>
		<description><![CDATA[Neben meinem Basket-Game gibt es seit kurzem auch die Gewinner-App des Hackathons &#8216;Remember me Kitty&#8216; im Windows Store als kostenloses Download. Marius und Simon haben eine Variante des klassischen Spiels &#8216;Simons Says&#8217; entwickelt, welche sich mit zahlreichen Sensoren, wie dem Neigungssensor, bedienen l&#228;sst. F&#252;r klassische Desktop-PCs sind nat&#252;rlich auch Gesten durch Dr&#252;cken von verschiedenen Buttons<p><a href="http://www.tsjdev.de/weitere-stc-hackathon-app-im-store/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Neben meinem <a title="STC-Hackathon-App im Store" href="http://www.tsjdev.de/stc-hackathon-app-im-store/" target="_blank">Basket-Game</a> gibt es seit kurzem auch die Gewinner-App des Hackathons &#8216;<strong>Remember me Kitty</strong>&#8216; im Windows Store als kostenloses Download. <a href="https://twitter.com/yunotreadthis" target="_blank">Marius</a> und <a href="https://twitter.com/SimonPiep" target="_blank">Simon</a> haben eine Variante des klassischen Spiels &#8216;Simons Says&#8217; entwickelt, welche sich mit zahlreichen Sensoren, wie dem Neigungssensor, bedienen lässt. Für klassische Desktop-PCs sind natürlich auch Gesten durch Drücken von verschiedenen Buttons möglich. Insgesamt ein super Spiel für Zwischendurch mit Suchtpotenzial.</p>
<p style="text-align: justify;"><span id="more-3615"></span></p>
<p style="text-align: justify;"><!-- WP-Appbox (Store: windowsstore // ID: 807fb7ee-de79-40d5-93a0-e8295ea2a732) -->
<div class="appcontainer feed windowsstore">
<table width="100%;">
<tr>
<td style="width: 88px;"><a target="_blank" rel="nofollow" href="http://apps.microsoft.com/windows/de-DE/app/807fb7ee-de79-40d5-93a0-e8295ea2a732" title="Remember Me Kitty"><img style="border-radius: 6px !important; border: 0 !important; padding: 0 !important; width: 80px !important; height: 80px !important;" src="http://wscont1.apps.microsoft.com/winstore/1x/f6274e74-8d06-4a88-a8a5-e9a12da37ce9/Icon.126608.png" alt="Remember Me Kitty" /></a></td>
<td>
				<a target="_blank" rel="nofollow" href="http://apps.microsoft.com/windows/de-DE/app/807fb7ee-de79-40d5-93a0-e8295ea2a732" title="Remember Me Kitty">Remember Me Kitty<img src="http://www.tsjdev.de/wp-content/plugins/wp-appbox/img/windowsstore-small.png" style="margin-left:6px !important;" /></a><br />
				Preis: Kostenlos			</td>
</tr>
</table>
</div>
<p><!-- /WP-Appbox --></p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/weitere-stc-hackathon-app-im-store/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Einf&#252;hrung in den TFS #2</title>
		<link>http://www.tsjdev.de/einfuehrung-in-den-tfs-2/</link>
		<comments>http://www.tsjdev.de/einfuehrung-in-den-tfs-2/#comments</comments>
		<pubDate>Tue, 16 Apr 2013 16:30:46 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[tfs]]></category>
		<category><![CDATA[windows 8]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3607</guid>
		<description><![CDATA[Nachdem ich euch im letzten Beitrag gezeigt habe, wie ihr mit wenig Aufwand in den Genuss des Team Foundation Services &#252;ber http://tfs.visualstudio.com gelangt, m&#246;chte ich in diesem Teil zeigen, wie ihr nuan einzelne Projekte anlegen k&#246;nnt, bevor im dritten Teil dann der Code zu diesen Projekten hinzugef&#252;gt wird. Zun&#228;chst m&#252;sst ihr daf&#252;r euren Team Foundation<p><a href="http://www.tsjdev.de/einfuehrung-in-den-tfs-2/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Nachdem ich euch im <a title="Einführung in den TFS #1" href="http://www.tsjdev.de/einfuehrung-in-den-tfs-1/" target="_blank">letzten Beitrag</a> gezeigt habe, wie ihr mit wenig Aufwand in den Genuss des Team Foundation Services über <a href="http://tfs.visualstudio.com/" target="_blank">http://tfs.visualstudio.com</a> gelangt, möchte ich in diesem Teil zeigen, wie ihr nuan einzelne Projekte anlegen könnt, bevor im dritten Teil dann der Code zu diesen Projekten hinzugefügt wird. Zunächst müsst ihr dafür euren Team Foundation Service unter eurer eigenen URL aufrufen und euch mit dem verwendeten Microsoft Account bzw. der Live-ID anmelden.</p>
<p style="text-align: justify;"><span id="more-3607"></span></p>
<p style="text-align: justify;">Anschließend wählt im im linken Bereich der Webseite den Button<strong> New Team Projekt</strong> und klickt diesen an.</p>
<div id="attachment_3608" class="wp-caption aligncenter" style="width: 323px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_2_01.jpg"><img class="size-full wp-image-3608" alt="Neues Team-Projekt anlegen" src="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_2_01.jpg" width="313" height="140" /></a>
<p class="wp-caption-text">Neues Team-Projekt anlegen</p>
</div>
<p style="text-align: justify;">Nun begrüßt euch ein Dialog, welcher euch bei der Einrichtung des Projekts hilft. Zunächst tragt ihr einen Namen für das Projekt ein, welcher beliebig ist, aber zu einem späteren Zeitpunkt nicht mehr geändert werden kann. Anschließend könnt ihr noch eine kurze Beschreibung auswählen und welche Prozess-Vorlage verwendet wird. Dieser Punkt ist eigentlich nur dann relevant, wenn ihr euch intensiv mit diesen bereits auseinander gesetzt habt oder aber in einem größeren Team zusammenarbeitet. Zu guter Letzt könnt ihr noch zwischen Git oder der Team Foundation Version Control wählen, um so zu entscheiden, wie der Code später verwaltet werden soll.</p>
<div id="attachment_3609" class="wp-caption aligncenter" style="width: 579px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_2_02.jpg"><img class="size-full wp-image-3609" alt="Ein neues Team Projekt anlegen" src="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_2_02.jpg" width="569" height="486" /></a>
<p class="wp-caption-text">Ein neues Team-Projekt anlegen</p>
</div>
<p style="text-align: justify;">Habt ihr alle Felder ausgefüllt wird der Button <strong>Create Project</strong> aktiv und ihr könnt eure Angaben durch einen Klick bestätigen. Nun wird das Projekt für euch angelegt.</p>
<div id="attachment_3610" class="wp-caption aligncenter" style="width: 580px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_2_03.jpg"><img class="size-full wp-image-3610" alt="Team-Projekt wird angelegt" src="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_2_03.jpg" width="570" height="208" /></a>
<p class="wp-caption-text">Team-Projekt wird angelegt</p>
</div>
<p style="text-align: justify;">Nun habt ihr bereits euer ersten Projekt auf eurem TFS angelegt und es ist nun bereit mit Code befüllt zu werden, was ich euch im nächsten Teil ausführlich zeige.</p>
<div id="attachment_3611" class="wp-caption aligncenter" style="width: 767px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_2_04.jpg"><img class=" wp-image-3611 " alt="Das fertige Team-Projekt" src="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs_2_04.jpg" width="757" height="437" /></a>
<p class="wp-caption-text">Das fertige Team-Projekt</p>
</div>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/einfuehrung-in-den-tfs-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>App-Empfehlung #11</title>
		<link>http://www.tsjdev.de/app-empfehlung-11/</link>
		<comments>http://www.tsjdev.de/app-empfehlung-11/#comments</comments>
		<pubDate>Mon, 15 Apr 2013 16:30:13 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[AppDay]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[kostenlos]]></category>
		<category><![CDATA[photosynth]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3603</guid>
		<description><![CDATA[Heute m&#246;chte ich eine App f&#252;r Windows Phone aus dem Hause Microsoft empfehlen, n&#228;mlich Photosynth. Photosynth ist eine von den Microsoft Live Labs ver&#246;ffentlichte Panorama- und 3D-Modellierungssoftware. Sie erlaubt es, Fotos bekannter Schaupl&#228;tze aus verschiedenen Quellen in einen 3D-Raum zusammenzuf&#252;gen, durch den sich der Benutzer dann hindurchbewegen kann und Panoramabilder zu erstellen. Beim Zusammenstellen der Fotos,<p><a href="http://www.tsjdev.de/app-empfehlung-11/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Heute möchte ich eine App für Windows Phone aus dem Hause <a href="http://www.microsoft.de" target="_blank">Microsoft</a> empfehlen, nämlich Photosynth. Photosynth ist eine von den Microsoft Live Labs veröffentlichte Panorama- und 3D-Modellierungssoftware. Sie erlaubt es, Fotos bekannter Schauplätze aus verschiedenen Quellen in einen 3D-Raum zusammenzufügen, durch den sich der Benutzer dann hindurchbewegen kann und Panoramabilder zu erstellen. Beim Zusammenstellen der Fotos, der Generierung des 3D-Raumes und dem Zusammenführen von Panoramas arbeitet die Software automatisch. Sie erkennt Umrisse, Gegenstände, Kamerapositionen und -winkel; auf dieser Grundlage werden die Bilder miteinander verknüpft. Mit wenig Aufwand lassen sich so erstklassige Panorama-Aufnahmen von Räumen oder ähnlichem erstellen. Also einfach mal ausprobieren&#8230;</p>
<p style="text-align: justify;"><span id="more-3603"></span></p>
<p style="text-align: justify;"><!-- WP-Appbox (Store: windowsphone // ID: ef860a79-5f68-4ed6-aa21-c038d1a55517) -->
<div class="appcontainer feed windowsphonestore">
<table width="100%;">
<tr>
<td style="width: 88px;"><a target="_blank" rel="nofollow" href="http://www.windowsphone.com/de-de/store/app/app/ef860a79-5f68-4ed6-aa21-c038d1a55517" title="Photosynth"><img style="border-radius: 6px !important; border: 0 !important; padding: 0 !important; width: 80px !important; height: 80px !important;" src="http://cdn.marketplaceimages.windowsphone.com/v8/images/47ed1dc6-669f-4ac5-b1f9-5bdee8273838?imageType=ws_icon_large" alt="Photosynth" /></a></td>
<td>
				<a target="_blank" rel="nofollow" href="http://www.windowsphone.com/de-de/store/app/app/ef860a79-5f68-4ed6-aa21-c038d1a55517" title="Photosynth">Photosynth<img src="http://www.tsjdev.de/wp-content/plugins/wp-appbox/img/windowsphonestore-small.png" style="margin-left:6px !important;" /></a><br />
				Preis: Kostenlos			</td>
</tr>
</table>
</div>
<p><!-- /WP-Appbox --></p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/app-empfehlung-11/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>App-Revolution zum Thema &#8220;Live-Kacheln&#8221;</title>
		<link>http://www.tsjdev.de/app-revolution-zum-thema-live-kacheln/</link>
		<comments>http://www.tsjdev.de/app-revolution-zum-thema-live-kacheln/#comments</comments>
		<pubDate>Fri, 12 Apr 2013 16:30:30 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Tipp]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[apprevolution]]></category>
		<category><![CDATA[live tile]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3600</guid>
		<description><![CDATA[Aktuell findet eine weitere Runde der App-Revolution f&#252;r Sch&#252;ler und Studenten statt. Ziel ist es dieses Mal eine App f&#252;r Windows 8 oder Windows Phone 8 zu entwickeln, welche sich mit dem Thema &#8220;Live-Kacheln&#8221; besch&#228;ftigt. Alles war ihr f&#252;r die Teilnahme tun m&#252;sst, ist die App bis zum 2. Mai 2013 in den jeweiligen Store<p><a href="http://www.tsjdev.de/app-revolution-zum-thema-live-kacheln/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Aktuell findet eine weitere Runde der <a href="http://www.microsoft.com/germany/msdn/academic/windows-8/app-revolution.aspx" target="_blank">App-Revolution</a> für Schüler und Studenten statt. Ziel ist es dieses Mal eine App für Windows 8 oder Windows Phone 8 zu entwickeln, welche sich mit dem Thema &#8220;Live-Kacheln&#8221; beschäftigt. Alles war ihr für die Teilnahme tun müsst, ist die App bis zum 2. Mai 2013 in den jeweiligen Store zu stellen und dann den Store-Link an techstudent@microsoft.com zu schicken. Wer noch keine Idee hat, kann sich ja mal das <a href="http://www.microsoft.com/germany/msdn/academic/windows-8/app-revolution-live-kacheln-code-beispiel.aspx" target="_blank">Demo-Projekt</a> anschauen und dann heißt es ran ans Coden!</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/app-revolution-zum-thema-live-kacheln/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>STC-Hackathon-App im Store</title>
		<link>http://www.tsjdev.de/stc-hackathon-app-im-store/</link>
		<comments>http://www.tsjdev.de/stc-hackathon-app-im-store/#comments</comments>
		<pubDate>Thu, 11 Apr 2013 16:30:52 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[hackathon]]></category>
		<category><![CDATA[stc]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3596</guid>
		<description><![CDATA[Auf der diesj&#228;hrigen STC habe ich am Hackathon teilgenommen und eine App f&#252;r Windows 8. Die einzige Vorgabe war es, dass Sensoren, wie z.B. das Gyrometer oder der Lichtsensor verwendet werden sollen. Ich habe mich f&#252;r ein klassisches Mini-Spiel entschieden, wo man vom Himmel fallende Basketb&#228;lle mit einem Einkaufswagen auffangen muss. Das besondere dabei ist,<p><a href="http://www.tsjdev.de/stc-hackathon-app-im-store/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Auf der diesjährigen <a href="http://www.microsoft.com/germany/msdn/academic/imagine-cup/microsoft-student-technology-conference-2013.aspx" target="_blank">STC</a> habe ich am Hackathon teilgenommen und eine App für Windows 8. Die einzige Vorgabe war es, dass Sensoren, wie z.B. das Gyrometer oder der Lichtsensor verwendet werden sollen. Ich habe mich für ein klassisches Mini-Spiel entschieden, wo man vom Himmel fallende Basketbälle mit einem Einkaufswagen auffangen muss. Das besondere dabei ist, dass die Bälle nur akzeptiert werden bzw. Punkte bringen, wenn diese schwarz sind, denn zum Teil habe die Bälle andere Farben und müsse durch ein Antippen zunächst schwarz gefärbt werden.</p>
<p style="text-align: justify;"><span id="more-3596"></span></p>
<p style="text-align: justify;">Obwohl die App am Ende den Hackathon nicht gewonnen hat, habe ich die Rückfahrt nach Kiel genutzt und die App fertig gestellt, so dass diese ab sofort kostenfrei über den Windows 8 Store verfügbar ist.</p>
<p style="text-align: justify;"><!-- WP-Appbox (Store: windowsstore // ID: eef62e42-1832-4de0-9931-70c3c1290fa3) -->
<div class="appcontainer feed windowsstore">
<table width="100%;">
<tr>
<td style="width: 88px;"><a target="_blank" rel="nofollow" href="http://apps.microsoft.com/windows/de-DE/app/eef62e42-1832-4de0-9931-70c3c1290fa3" title="Basket-Game"><img style="border-radius: 6px !important; border: 0 !important; padding: 0 !important; width: 80px !important; height: 80px !important;" src="http://wscont1.apps.microsoft.com/winstore/1x/edfef825-4799-4794-95be-18019c3693dc/Icon.124914.png" alt="Basket-Game" /></a></td>
<td>
				<a target="_blank" rel="nofollow" href="http://apps.microsoft.com/windows/de-DE/app/eef62e42-1832-4de0-9931-70c3c1290fa3" title="Basket-Game">Basket-Game<img src="http://www.tsjdev.de/wp-content/plugins/wp-appbox/img/windowsstore-small.png" style="margin-left:6px !important;" /></a><br />
				Preis: Kostenlos			</td>
</tr>
</table>
</div>
<p><!-- /WP-Appbox --></p>
<p style="text-align: justify;">
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/stc-hackathon-app-im-store/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Einf&#252;hrung in den TFS #1</title>
		<link>http://www.tsjdev.de/einfuehrung-in-den-tfs-1/</link>
		<comments>http://www.tsjdev.de/einfuehrung-in-den-tfs-1/#comments</comments>
		<pubDate>Wed, 10 Apr 2013 16:30:38 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[tfs]]></category>
		<category><![CDATA[windows 8]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3583</guid>
		<description><![CDATA[Ich m&#246;chte mit diesem Beitrag eine neue Serie auf tsjDEV.de beginnen, welche sich mit dem Team Foundation Server oder kurz TFS von Microsoft befasst. Der TFS ist eine Plattform for kollaborative Softwareprojekt. &#220;ber den TFS k&#246;nnen Projekte geplant, erstellt und verwaltet werden. Mit der Online-Variante dem Team Foundation Service stellt Microsoft Entwickler aktuell eine kostenlose<p><a href="http://www.tsjdev.de/einfuehrung-in-den-tfs-1/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Ich möchte mit diesem Beitrag eine neue Serie auf <a href="http://www.tsjdev.de" target="_blank">tsjDEV.de</a> beginnen, welche sich mit dem Team Foundation Server oder kurz <strong>TFS</strong> von Microsoft befasst. Der TFS ist eine Plattform for kollaborative Softwareprojekt. Über den TFS können Projekte geplant, erstellt und verwaltet werden. Mit der Online-Variante dem Team Foundation Service stellt Microsoft Entwickler aktuell eine kostenlose Variante des Team Foundation Servers zur Verfügung. Nun möchte ich diesen Service euch ein wenig näher vorstellen  und dabei in diesem ersten Teil den Service einrichten.</p>
<p style="text-align: justify;"><span id="more-3583"></span></p>
<p style="text-align: justify;">Beginnt mit dem Aufruf der Webseite <a href="http://tfs.visualstudio.com/" target="_blank">http://tfs.visualstudio.com/</a> in einem Browser eurer Wahl.</p>
<div id="attachment_3584" class="wp-caption aligncenter" style="width: 878px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs-1-01.jpg"><img class=" wp-image-3584 " alt="Startseite von http://tfs.visualstudio.com/" src="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs-1-01.jpg" width="868" height="550" /></a>
<p class="wp-caption-text">Startseite von http://tfs.visualstudio.com/</p>
</div>
<p style="text-align: justify;">Im rechten oberen Bereich findet ihr einen Hinweis &#8220;Sign up for free&#8221;, auf welchen wir klicken müssen. Im ersten Schritt werden wir um die Eingabe einer Url gebeten, unter welcher der Service nachher zur Verfügung steht.</p>
<div id="attachment_3585" class="wp-caption aligncenter" style="width: 543px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs-1-02.jpg"><img class="size-full wp-image-3585" alt="Account anlegen" src="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs-1-02.jpg" width="533" height="215" /></a>
<p class="wp-caption-text">Account anlegen</p>
</div>
<p style="text-align: justify;">Im nächsten Schritt meldet ihr euch mit eurem Live-Account an, damit die eingegebene Url mit diesem Konto verknüpft werden kann. Das war eigentlich auch schon alles und eucht steht nun der Team Foundation Service unter eurer angegeben Url zur Verfügung.</p>
<div id="attachment_3586" class="wp-caption aligncenter" style="width: 835px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs-1-03.jpg"><img class="size-full wp-image-3586" alt="Der Service läuft bereits nach kurzer Registrierung." src="http://www.tsjdev.de/wp-content/uploads/2013/04/tfs-1-03.jpg" width="825" height="517" /></a>
<p class="wp-caption-text">Der Service läuft bereits nach kurzer Registrierung.</p>
</div>
<p style="text-align: justify;">Im nächsten Teil werde ich euch nun zeigen, wir ihr euren Code integrieren könnt und somit ständig euren letzte Variante des Codes auf allen euren Geräten dabei habt.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/einfuehrung-in-den-tfs-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>R&#252;ckblick auf die STC</title>
		<link>http://www.tsjdev.de/rueckblick-auf-die-stc/</link>
		<comments>http://www.tsjdev.de/rueckblick-auf-die-stc/#comments</comments>
		<pubDate>Tue, 09 Apr 2013 16:30:10 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[berlin]]></category>
		<category><![CDATA[gasometer]]></category>
		<category><![CDATA[imagine cup]]></category>
		<category><![CDATA[student technology conference]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3591</guid>
		<description><![CDATA[In der vergangenen Woche fand die Student Technology Conference im Gasometer Berlin statt. Ebenfalls fanden in diesem Zeitraum das nationale Finale des Imagine Cups und das Treffen der StudentPartner und CampusExperten statt. Ich selbst habe zusammen mit Jens am Imagine Cup teilgenommen und wir d&#252;rften unsere L&#246;sung POSIAL der Fachjury vorstellen. Bei POSIAL geht es<p><a href="http://www.tsjdev.de/rueckblick-auf-die-stc/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">In der vergangenen Woche fand die <a href="http://www.microsoft.com/germany/msdn/academic/imagine-cup/microsoft-student-technology-conference-2013.aspx" target="_blank">Student Technology Conference</a> im Gasometer Berlin statt. Ebenfalls fanden in diesem Zeitraum das nationale Finale des <a href="http://www.microsoft.com/germany/msdn/academic/imagine-cup/gewinner-2013.aspx" target="_blank">Imagine Cups</a> und das Treffen der StudentPartner und CampusExperten statt. Ich selbst habe zusammen mit Jens am Imagine Cup teilgenommen und wir dürften unsere Lösung <a href="http://posial.tsjdev.de/" target="_blank">POSIAL</a> der Fachjury vorstellen. Bei POSIAL geht es um den Bereic &#8216;Werbung&#8217;, denn diese soll die richtigen Kundengruppen zum richtigen Zeitpunkt und am richtigen Ort erreichen. Hierbei soll multisensorisches Marketing dazu beitragen, Marken eine entsprechende Identität zu geben, nachhaltige loyalere Kundenbeziehungen aufzubauen, eine höhere Wertschöpfung zu generieren und generell wirtschaftlich erfolgreicher zu sein. Posial bietet hierzu erstmals klein- und mittelständischen Unternehmen die Möglichkeit Audiowerbung gezielt zur Verkaufsförderung einzusetzen.</p>
<p style="text-align: justify;"><span id="more-3591"></span></p>
<div id="attachment_3592" class="wp-caption aligncenter" style="width: 860px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/04/388670_564957736869009_1085970524_n.jpg"><img class="size-full wp-image-3592" alt="Student Technology Conference" src="http://www.tsjdev.de/wp-content/uploads/2013/04/388670_564957736869009_1085970524_n.jpg" width="850" height="566" /></a>
<p class="wp-caption-text">Student Technology Conference</p>
</div>
<p style="text-align: justify;">Es hat zwar nicht zu einer Top-Platzierung gereicht, aber trotzdem hat es uns sehr viel Spaß gemacht, denn wir haben viele neue Eindrücke mitgenommen und interessante Fachgespräche geführt und einige neue Freundschaften knüpfen können. Darüber hinaus gab es auch den einen oder anderen spannenden Vortrag, wie zum Beispiel der Vortrag von Kai, welcher in nur sechs Schritten aus einer sehr hässlichen App eine ganz passable App gebastelt hat und sicherlich werde ich diese Punkte auch in meinen kommenden Apps beachten. Oder auch der Vortrag von <a href="www.linkedin.com/in/dionhut" target="_blank">Dion Hutchings</a> über die Windows Azure Mobile Services, welche ebenfalls in meinem Blog noch einmal vorgestellt werden.</p>
<p style="text-align: justify;">Insgesamt war es wieder ein tolles Event und mein Dank geht an Jan, Peter und Alex für die Möglichkeit an diesem Event teilnehmen zu dürfen.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/rueckblick-auf-die-stc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>App-Empfehlung #10</title>
		<link>http://www.tsjdev.de/app-empfehlung-10/</link>
		<comments>http://www.tsjdev.de/app-empfehlung-10/#comments</comments>
		<pubDate>Mon, 08 Apr 2013 17:30:54 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[AppDay]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[malte]]></category>
		<category><![CDATA[spiel]]></category>
		<category><![CDATA[windows 8]]></category>
		<category><![CDATA[zahlenwurm]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3579</guid>
		<description><![CDATA[Nun ist es also endlich wieder so weit und nach 14 Tagen Ruhe hier im Blog geht es nun direkt mit einer App-Empfehlung weiter. Dieses Mal ist es ein kleines Spiel f&#252;r Zwischendurch aus der Feder von Malte, welcher hier auch schon den einen oder anderen Gastbeitrag verfasst hat, n&#228;mlich das Spiel &#8216;Zahlenwurm&#8217;. Hierbei habt<p><a href="http://www.tsjdev.de/app-empfehlung-10/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Nun ist es also endlich wieder so weit und nach 14 Tagen Ruhe hier im Blog geht es nun direkt mit einer App-Empfehlung weiter. Dieses Mal ist es ein kleines Spiel für Zwischendurch aus der Feder von <a href="http://www.maltepeers.de/" target="_blank">Malte</a>, welcher hier auch schon den <a href="http://www.tsjdev.de/author/mpeers/" target="_blank">einen oder anderen Gastbeitrag verfasst</a> hat, nämlich das Spiel &#8216;Zahlenwurm&#8217;. Hierbei habt ihr ein tabellenartiges Spielfeld mit bunten Kugeln und müsst nun eine Kette aus der angegeben Länge bilden, so dass das komplette Spielfeld ausgelegt ist. Dies klingt zunächst recht simpel, aber mit 50 handerstellten Leveln ist das eine oder andere schwierige Level dabei. Aber es macht trotzdem jederzeit viel Spaß und ist genau das richtige für eine kleine Ablenkung.</p>
<p style="text-align: justify;"><span id="more-3579"></span></p>
<p style="text-align: justify;"><!-- WP-Appbox (Store: windowsstore // ID: 16e45d92-b60a-4d5e-a482-5bc59d5948b9) -->
<div class="appcontainer feed windowsstore">
<table width="100%;">
<tr>
<td style="width: 88px;"><a target="_blank" rel="nofollow" href="http://apps.microsoft.com/windows/de-DE/app/16e45d92-b60a-4d5e-a482-5bc59d5948b9" title="Zahlenwurm"><img style="border-radius: 6px !important; border: 0 !important; padding: 0 !important; width: 80px !important; height: 80px !important;" src="http://wscont1.apps.microsoft.com/winstore/1x/ac397909-a5ec-4afe-9734-c9fc68777102/Icon.97202.png" alt="Zahlenwurm" /></a></td>
<td>
				<a target="_blank" rel="nofollow" href="http://apps.microsoft.com/windows/de-DE/app/16e45d92-b60a-4d5e-a482-5bc59d5948b9" title="Zahlenwurm">Zahlenwurm<img src="http://www.tsjdev.de/wp-content/plugins/wp-appbox/img/windowsstore-small.png" style="margin-left:6px !important;" /></a><br />
				Preis: Kostenlos			</td>
</tr>
</table>
</div>
<p><!-- /WP-Appbox --></p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/app-empfehlung-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kurze Pause</title>
		<link>http://www.tsjdev.de/kurze-pause/</link>
		<comments>http://www.tsjdev.de/kurze-pause/#comments</comments>
		<pubDate>Mon, 25 Mar 2013 17:00:04 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[pause]]></category>
		<category><![CDATA[tsjdev]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3573</guid>
		<description><![CDATA[An dieser Stelle der Hinweis, dass ich eine kurze Pause in meinem Blog einlegen werde, da ich aktuell an einigen Apps f&#252;r das nationale Finale des Imagine Cups arbeite und diese nat&#252;rlich eine h&#246;here Priorit&#228;t haben. Aber ich kann euch beruhigen, denn in 14 Tagen geht es genauso wie gewohnt hier an dieser Stelle weiter.<p><a href="http://www.tsjdev.de/kurze-pause/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">An dieser Stelle der Hinweis, dass ich eine kurze Pause in meinem Blog einlegen werde, da ich aktuell an einigen Apps für das nationale Finale des Imagine Cups arbeite und diese natürlich eine höhere Priorität haben. Aber ich kann euch beruhigen, denn in 14 Tagen geht es genauso wie gewohnt hier an dieser Stelle weiter.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/kurze-pause/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MessageDialog mit eigenen Antwortm&#246;glichkeiten</title>
		<link>http://www.tsjdev.de/messagedialog-mit-eigenen-antwortmoeglichkeiten/</link>
		<comments>http://www.tsjdev.de/messagedialog-mit-eigenen-antwortmoeglichkeiten/#comments</comments>
		<pubDate>Sat, 23 Mar 2013 17:30:04 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[messagedialog]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3569</guid>
		<description><![CDATA[Standardm&#228;&#223;ig beistzt ein MessageDialog in einer Windows 8 App einen Schlie&#223;en-Button, aber manchmal m&#246;chte man einen Message-Dialog auch dazu benutzen, um den Nutzer eine Frage zu stellen, welcher er z.B. mit Ja oder Nein beantworten soll. In diesem Beitrag m&#246;chte ich euch nun zeigen, wir ihr mit wenig Aufwand das ganze realisieren k&#246;nnt. An der<p><a href="http://www.tsjdev.de/messagedialog-mit-eigenen-antwortmoeglichkeiten/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Standardmäßig beistzt ein MessageDialog in einer Windows 8 App einen Schließen-Button, aber manchmal möchte man einen Message-Dialog auch dazu benutzen, um den Nutzer eine Frage zu stellen, welcher er z.B. mit Ja oder Nein beantworten soll. In diesem Beitrag möchte ich euch nun zeigen, wir ihr mit wenig Aufwand das ganze realisieren könnt.</p>
<p style="text-align: justify;"><span id="more-3569"></span></p>
<p style="text-align: justify;">An der Stelle, wo ihr die Abfrage einfügen wollte, fügt ihr nun den folgenden Code ein:</p>
<p></p><pre class="crayon-plain-tag">MessageDialog dialog = new MessageDialog("Message", "Title");
dialog.Commands.Add(new UICommand { Label = "Ja" });
dialog.Commands.Add(new UICommand { Label = "Nein" });
IUICommand result = await dialog.ShowAsync();</pre><p></p>
<p style="text-align: justify;">Somit wird jetzt ein Message-Dialog erstellt, welcher die beiden Buttons Ja und Nein besitzt. Anschließend könnt ihr die Variable result verwenden, um zu erfahren, welche Wahl der Nutzer getroffen hat. Dazu verwendet ihr nun die folgende Abfrage</p>
<p></p><pre class="crayon-plain-tag">if (result.Label.Equals("Ja"))
{
    // Logik
}
else if (result.Label.Equals("Nein"))
{
    // Logik
}</pre><p></p>
<p style="text-align: justify;">Ihr könnt jedoch bei der Definition der neuen Buttons auch direkt die Invoke-Eigenschaft verwenden, denn dann wird automatisch das angegebene Event bei einem Klick gefeuert und ihr könnt dann damit weiterarbeiten.</p>
<p style="text-align: justify;">
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/messagedialog-mit-eigenen-antwortmoeglichkeiten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 8 Controls auf einem Blick</title>
		<link>http://www.tsjdev.de/windows-8-controls-auf-einem-blick/</link>
		<comments>http://www.tsjdev.de/windows-8-controls-auf-einem-blick/#comments</comments>
		<pubDate>Fri, 22 Mar 2013 17:30:33 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[control]]></category>
		<category><![CDATA[liste]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3563</guid>
		<description><![CDATA[Manchmal verliert man schnell den &#220;berblick bei der gro&#223;en Anzahl an Controls, welche direkt von Microsoft zur Verf&#252;gung gestellt werden. Nun gibt diese Seite, auf der alle zur Verf&#252;gung stehenden Controls aufgef&#252;hrt sind. Passend dazu findet man meistens einen Screenshot, welcher das Control erl&#228;utert oder aber auch eine Verlinkung zu weiteren Informationen, wie man das<p><a href="http://www.tsjdev.de/windows-8-controls-auf-einem-blick/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Manchmal verliert man schnell den Überblick bei der großen Anzahl an Controls, welche direkt von Microsoft zur Verfügung gestellt werden. Nun gibt <a href="http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh465351.aspx" target="_blank">diese Seite</a>, auf der alle zur Verfügung stehenden Controls aufgeführt sind. Passend dazu findet man meistens einen Screenshot, welcher das Control erläutert oder aber auch eine Verlinkung zu weiteren Informationen, wie man das Control z.B. einsetzt. Wer sich nun also viel mit der Entwicklung von Apps unter Windows 8 beschäftigt, sollte diese Seite unbedingt in der Favoritenleiste abspeichern.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/windows-8-controls-auf-einem-blick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PushPin auf Map unter WP8</title>
		<link>http://www.tsjdev.de/pushpin-auf-map-unter-wp8/</link>
		<comments>http://www.tsjdev.de/pushpin-auf-map-unter-wp8/#comments</comments>
		<pubDate>Thu, 21 Mar 2013 17:30:15 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[karte]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[pushpin]]></category>
		<category><![CDATA[windows phone 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3556</guid>
		<description><![CDATA[Ich habe ja bereits gezeigt, wie ihr die aktuelle Position des Smartphone-Nutzers ermitteln k&#246;nnt und welche Stolpersteine bei der Einbindung einer Karte in die WP8-App auftreten k&#246;nnen und in diesem Beitrag m&#246;chte ich nun einen Code-Schnipsel ver&#246;ffentlichen, welcher es erlaubt einen PushPin auf der Karte anzuzeigen. Zwar gibt es unter WP8 ein neues Karten-Control, aber<p><a href="http://www.tsjdev.de/pushpin-auf-map-unter-wp8/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Ich habe ja bereits gezeigt, wie ihr die <a title="Location unter WP ermitteln" href="http://www.tsjdev.de/location-unter-wp-ermitteln/">aktuelle Position des Smartphone-Nutzers</a> ermitteln könnt und welche <a title="Stolperfallen bei der Verwendung von Maps" href="http://www.tsjdev.de/stolperfallen-bei-der-verwendung-von-maps/">Stolpersteine bei der Einbindung einer Karte</a> in die WP8-App auftreten können und in diesem Beitrag möchte ich nun einen Code-Schnipsel veröffentlichen, welcher es erlaubt einen PushPin auf der Karte anzuzeigen. Zwar gibt es unter WP8 ein neues Karten-Control, aber dieses unterstütz keine PushPins von Haus aus, so dass wir gezwungen sind, diese selbst zu zeichnen, aber mit diesen beiden Methoden ist das gar kein Problem.</p>
<p style="text-align: justify;"><span id="more-3556"></span></p>
<p style="text-align: justify;">Die Methode <pre class="crayon-plain-tag">CreateLocationPushpin()</pre> erstellt den PushPin, welcher aus einem Rechteck und einem Polygon besteht. In diesem Beispiel hat der PushPin die Farbe schwarz, aber dies lässt sich beliebig anpassen.</p>
<p></p><pre class="crayon-plain-tag">private Grid CreateLocationPushpin()
{
    Grid MyGrid = new Grid();
    MyGrid.RowDefinitions.Add(new RowDefinition());
    MyGrid.RowDefinitions.Add(new RowDefinition());
    MyGrid.Background = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Transparent);

    System.Windows.Shapes.Rectangle MyRectangle = new System.Windows.Shapes.Rectangle();
    MyRectangle.Fill = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Black);
    MyRectangle.Height = 20;
    MyRectangle.Width = 20;
    MyRectangle.SetValue(Grid.RowProperty, 0);
    MyRectangle.SetValue(Grid.ColumnProperty, 0);

    MyGrid.Children.Add(MyRectangle);

    System.Windows.Shapes.Polygon MyPolygon = new System.Windows.Shapes.Polygon();
    MyPolygon.Points.Add(new Point(2, 0));
    MyPolygon.Points.Add(new Point(22, 0));
    MyPolygon.Points.Add(new Point(2, 40));
    MyPolygon.Stroke = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Black);
    MyPolygon.Fill = new System.Windows.Media.SolidColorBrush(System.Windows.Media.Colors.Black);
    MyPolygon.SetValue(Grid.RowProperty, 1);
    MyPolygon.SetValue(Grid.ColumnProperty, 0);

    MyGrid.Children.Add(MyPolygon);

    return MyGrid;
}</pre><p></p>
<p style="text-align: justify;">Als nächstes müssen wir dieses Grid nun auf der Karte, welche hier MyMap heißt, anzeigen lassen und dafür benötigen wir die folgende Methode:</p>
<p></p><pre class="crayon-plain-tag">private void AddLocationMapOverlay(GeoCoordinate position)
{
    Grid MyGrid = CreateLocationPushpin();

    MapOverlay MyOverlay = new MapOverlay();
    MyOverlay.Content = MyGrid;
    MyOverlay.GeoCoordinate = position;
    MyOverlay.PositionOrigin = new Point(0, 0.5);

    MapLayer MyLayer = new MapLayer();
    MyLayer.Add(MyOverlay);
    MyMap.Layers.Add(MyLayer);
}</pre><p>Um nun einen PushPin auf der Karte zu setzen, braucht ihr nun die <pre class="crayon-plain-tag">AddLocationMapOverlay()</pre>-Methode aufrufen und die Position übergeben, wo der PushPin angezeigt werden soll und das war auch schon alles. Das Ergebnis sieht dann so aus:</p>
<div id="attachment_3559" class="wp-caption aligncenter" style="width: 388px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/pushpin_wp8_01.jpg"><img class="size-full wp-image-3559" alt="der fertige Pushpin" src="http://www.tsjdev.de/wp-content/uploads/2013/03/pushpin_wp8_01.jpg" width="378" height="521" /></a>
<p class="wp-caption-text">der fertige Pushpin</p>
</div>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/pushpin-auf-map-unter-wp8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Internetverbindung unter Win8 testen</title>
		<link>http://www.tsjdev.de/internetverbindung-unter-win8-testen/</link>
		<comments>http://www.tsjdev.de/internetverbindung-unter-win8-testen/#comments</comments>
		<pubDate>Wed, 20 Mar 2013 17:30:55 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[netzwerk]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3551</guid>
		<description><![CDATA[Heute gibt es mal wieder einen kurzen Code-Schnipsel, welchen man immer wieder mal gebrauchen kann. Dabei geht es um das Testen auf eine Internetverbindung, denn viele Dinge ben&#246;tigen heutzutage einfach eine Internetverbindung, aber nicht immer liegt diese auch vor, so dass dies zu komischen Verhalten kommen kann, wenn man dieses nicht vorher &#252;berpr&#252;ft. Dazu gibt<p><a href="http://www.tsjdev.de/internetverbindung-unter-win8-testen/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Heute gibt es mal wieder einen kurzen Code-Schnipsel, welchen man immer wieder mal gebrauchen kann. Dabei geht es um das Testen auf eine Internetverbindung, denn viele Dinge benötigen heutzutage einfach eine Internetverbindung, aber nicht immer liegt diese auch vor, so dass dies zu komischen Verhalten kommen kann, wenn man dieses nicht vorher überprüft. Dazu gibt es die Methode <pre class="crayon-plain-tag">CheckInternetConnectivity()</pre>, welche entweder <pre class="crayon-plain-tag">true</pre> bzw. <pre class="crayon-plain-tag">false</pre> zurückliefert und somit für uns eine große Hilfe ist.</p>
<p><span id="more-3551"></span></p><pre class="crayon-plain-tag">private bool CheckInternetConnectivity()
{
    bool isOnline = false;
    Windows.Networking.Connectivity.ConnectionProfile profile = Windows.Networking.Connectivity.NetworkInformation.GetInternetConnectionProfile();

    if (profile != null)
    {
        Windows.Networking.Connectivity.NetworkConnectivityLevel connectivityLevel = profile.GetNetworkConnectivityLevel();

        if (connectivityLevel == Windows.Networking.Connectivity.NetworkConnectivityLevel.InternetAccess)
            isOnline = true;
    }

    return isOnline;
}</pre><p></p>
<p style="text-align: justify;"> Diese Methode fügt ihr nun entsprechen in euer Projekt hinzu und könnt dann z.B. eine kurze Nachricht ausgeben, das zur Zeit keine Internetverbindung besteht und somit bestimmte Eigenschaften eurer App deaktiviert wurden.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/internetverbindung-unter-win8-testen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Stolperfallen bei der Verwendung von Maps</title>
		<link>http://www.tsjdev.de/stolperfallen-bei-der-verwendung-von-maps/</link>
		<comments>http://www.tsjdev.de/stolperfallen-bei-der-verwendung-von-maps/#comments</comments>
		<pubDate>Tue, 19 Mar 2013 17:30:04 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3544</guid>
		<description><![CDATA[In diesem Beitrag m&#246;chte ich auf ein paar Stolperfallen hinweisen, welche beim Einbinden einer Karte in die eigene Windows Phone 8 Anwendung auftreten k&#246;nnen. Zu allererst w&#228;re dort die entsprechende Berechtigung, welche gesetzt werden muss, damit man &#252;berhaupt die Karte anzeigen darf und nicht eine Exception beim Aufrufen bekommt. &#214;ffnet dazu die Datei WMAppManifest.xml, welche<p><a href="http://www.tsjdev.de/stolperfallen-bei-der-verwendung-von-maps/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">In diesem Beitrag möchte ich auf ein paar Stolperfallen hinweisen, welche beim Einbinden einer Karte in die eigene Windows Phone 8 Anwendung auftreten können. Zu allererst wäre dort die entsprechende <strong>Berechtigung</strong>, welche gesetzt werden muss, damit man überhaupt die Karte anzeigen darf und nicht eine <em>Exception</em> beim Aufrufen bekommt.</p>
<p style="text-align: justify;"><span id="more-3544"></span></p>
<p style="text-align: justify;">Öffnet dazu die Datei <strong>WMAppManifest.xml</strong>, welche ihr im Ordner <strong>Properties</strong> eurer Solution findet. Dort öffnet ihr nun den <strong>Capabilities</strong>-Reiter und setzt den Haken bei <em>ID_CAP_MAP</em>. Erst dann könnt ihr eine Karte in eurer Anwendung verwenden.</p>
<p style="text-align: justify;">Anschließend müssen wir die Frage beantworten, wie wir eine Karte nun in der eigenen App anzeigen lassen können. Der einfachste Weg geht über die Toolbox, denn dort braucht ihr nur das <a href="http://msdn.microsoft.com/en-us/library/windowsphone/develop/microsoft.phone.maps.controls.map(v=vs.105).aspx" target="_blank">Map-Control</a> suchen und per Drag and Drop  die Karte an die entsprechende Stelle in der App ziehen. Somit braucht ihr euch nicht mehr um die Einbindung der richtigen DLL-Dateien und der richtigen Namesspaces kümmern, denn das übernimmt nun direkt Visual Studio für euch.</p>
<p style="text-align: justify;">Nun kann man auch bereits die Karten auf dem eigenen Device oder im Emulator testen. Möchte man jedoch die App später in den Store stellen, so müssen noch die <em>ApplicationID</em> und das <em>AuthenticationToken</em> ergänzt werden, denn sonst wird die App nicht zertifiziert. Wechselt daher vorher in das Developer-Dashboard unter <a href="https://dev.windowsphone.com/en-us" target="_blank">dev.windowsphone.com</a> und reicht eine App ein, denn dort findet ihr unter dem Bereich Optional den Eintrag Map services.</p>
<div id="attachment_3546" class="wp-caption aligncenter" style="width: 407px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/mapservice_wp8_01.jpg"><img class="size-full wp-image-3546" alt="Map-Services im Dashboard" src="http://www.tsjdev.de/wp-content/uploads/2013/03/mapservice_wp8_01.jpg" width="397" height="86" /></a>
<p class="wp-caption-text">Map-Services im Dashboard</p>
</div>
<p style="text-align: justify;">Anschließend braucht ihr nur noch auf den Button <strong>Get Token</strong> klicken und schon werden die beiden Werte für euch generiert und diese müsst ihr nun in eure App integrieren.</p>
<div id="attachment_3547" class="wp-caption aligncenter" style="width: 712px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/mapservice_wp8_02.jpg"><img class="size-full wp-image-3547" alt="ApplicationId und AuthenticationToken" src="http://www.tsjdev.de/wp-content/uploads/2013/03/mapservice_wp8_02.jpg" width="702" height="382" /></a>
<p class="wp-caption-text">ApplicationId und AuthenticationToken</p>
</div>
<p style="text-align: justify;">Dazu implementiert ihr das <strong>Loaded</strong>-Event der Karte und erhaltet dann die folgende Methode:</p>
<p></p><pre class="crayon-plain-tag">private void myMap_Loaded(object sender, RoutedEventArgs e)
{
    Microsoft.Phone.Maps.MapsSettings.ApplicationContext.ApplicationId = "EURE ApplicationID";
    Microsoft.Phone.Maps.MapsSettings.ApplicationContext.AuthenticationToken = "EUER AuthenticationToken";
}</pre><p></p>
<p style="text-align: justify;">Hier tragt ihr also nur noch die beiden Werte ein und schon könnt ihr die App zur Zertifizierung einreichen und dann steht einer erfolgreichen Zertifizierung auch nichts mehr im Weg.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/stolperfallen-bei-der-verwendung-von-maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>App-Empfehlung #9</title>
		<link>http://www.tsjdev.de/app-empfehlung-9/</link>
		<comments>http://www.tsjdev.de/app-empfehlung-9/#comments</comments>
		<pubDate>Mon, 18 Mar 2013 17:30:50 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[AppDay]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[tsjdev]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3537</guid>
		<description><![CDATA[Heute m&#246;chte ich eine App vorstellen, welche von einigen Nutzern schon lang erwartet wurde und nun endlich f&#252;r Windows 8 und Windows RT zur Verf&#252;gung steht, n&#228;mlich die offizielle twitter-App. In der linken Navigation findet man die M&#246;glichkeit den gesamten twitter-Stream, die Erw&#228;hnungen bzw. Mentions und nat&#252;rlich auch die Direktnachrichten zu betrachten. Dar&#252;ber hinaus unterst&#252;tzt die App<p><a href="http://www.tsjdev.de/app-empfehlung-9/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Heute möchte ich eine App vorstellen, welche von einigen Nutzern schon lang erwartet wurde und nun endlich für Windows 8 und Windows RT zur Verfügung steht, nämlich die offizielle <strong>twitter</strong>-App. In der linken Navigation findet man die Möglichkeit den gesamten twitter-Stream, die Erwähnungen bzw. Mentions und natürlich auch die Direktnachrichten zu betrachten. Darüber hinaus unterstützt die App selbstverständlich die neue SnapView, sodass man die App andocken kann und eine weitere App aufrufen und im Fokus haben kann. Auch das Teilen wurde implementiert und noch das eine oder andere Windows 8 Feature, wie z.B. ein LiveTile. Also nichts wie ran und die neue <strong>twitter</strong>-App kostenlos herunterladen und direkt <a href="https://twitter.com/tsjDEV" target="_blank">@tsjdev</a> folgen.</p>
<p style="text-align: justify;"><!-- WP-Appbox (Store: windowsstore // ID: 8289549f-9bae-4d44-9a5c-63d9c3a79f35) -->
<div class="appcontainer feed windowsstore">
<table width="100%;">
<tr>
<td style="width: 88px;"><a target="_blank" rel="nofollow" href="http://apps.microsoft.com/windows/de-DE/app/8289549f-9bae-4d44-9a5c-63d9c3a79f35" title="Twitter"><img style="border-radius: 6px !important; border: 0 !important; padding: 0 !important; width: 80px !important; height: 80px !important;" src="http://wscont1.apps.microsoft.com/winstore/1x/14eea6bd-80f7-4914-8a61-f9eb3b14e115/Icon.102048.png" alt="Twitter" /></a></td>
<td>
				<a target="_blank" rel="nofollow" href="http://apps.microsoft.com/windows/de-DE/app/8289549f-9bae-4d44-9a5c-63d9c3a79f35" title="Twitter">Twitter<img src="http://www.tsjdev.de/wp-content/plugins/wp-appbox/img/windowsstore-small.png" style="margin-left:6px !important;" /></a><br />
				Preis: Kostenlos			</td>
</tr>
</table>
</div>
<p><!-- /WP-Appbox --></p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/app-empfehlung-9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Phone Samples</title>
		<link>http://www.tsjdev.de/windows-phone-samples/</link>
		<comments>http://www.tsjdev.de/windows-phone-samples/#comments</comments>
		<pubDate>Sat, 16 Mar 2013 17:30:21 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3533</guid>
		<description><![CDATA[Heute gibt es nur einen kurzen Link-Tipp von mir, welcher es erm&#246;glicht einen Einblick in die Windows Phone Programmierung zu erhalten, denn auf der Seite http://code.msdn.microsoft.com/wpapps/ gibt es eine gro&#223;e Anzahl an Beispielanwendungen als kostenlosen Download, so dass man hier eine Menge lernen kann. Dabei stehen die Beispiel zum Teil auch in den verschiedenen Programmiersprachen zur<p><a href="http://www.tsjdev.de/windows-phone-samples/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Heute gibt es nur einen kurzen Link-Tipp von mir, welcher es ermöglicht einen Einblick in die Windows Phone Programmierung zu erhalten, denn auf der Seite <a href="http://code.msdn.microsoft.com/wpapps/" target="_blank">http://code.msdn.microsoft.com/wpapps/</a> gibt es eine große Anzahl an Beispielanwendungen als kostenlosen Download, so dass man hier eine Menge lernen kann. Dabei stehen die Beispiel zum Teil auch in den verschiedenen Programmiersprachen zur Verfügung, wobei die meisten Anwendungen als C#-Projekt. Damit habt ihr immer eine Anlaufstelle für einige komplette Apps.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/windows-phone-samples/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Datei mit dem FileOpenPicker &#246;ffnen</title>
		<link>http://www.tsjdev.de/datei-mit-dem-fileopenpicker-oeffnen/</link>
		<comments>http://www.tsjdev.de/datei-mit-dem-fileopenpicker-oeffnen/#comments</comments>
		<pubDate>Fri, 15 Mar 2013 17:30:47 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[datei]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[fileopenpicker]]></category>
		<category><![CDATA[open]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3528</guid>
		<description><![CDATA[In diesem kurzen Beitrag m&#246;chte ich euch zeigen, wie ihr mit wenig Aufwand eine Datei durch den Benutzer  innerhalb von eurer Windows 8 App ausw&#228;hlen lassen k&#246;nnt und diese Datei dann verarbeiten k&#246;nnt. Dabei machen wir uns den FileOpenPicker zunutze, so dass sich der Code relativ kurz darstellt. Zun&#228;chst &#246;ffnet ihr euer Projekt oder legt<p><a href="http://www.tsjdev.de/datei-mit-dem-fileopenpicker-oeffnen/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">In diesem kurzen Beitrag möchte ich euch zeigen, wie ihr mit wenig Aufwand eine Datei durch den Benutzer  innerhalb von eurer Windows 8 App auswählen lassen könnt und diese Datei dann verarbeiten könnt. Dabei machen wir uns den FileOpenPicker zunutze, so dass sich der Code relativ kurz darstellt.</p>
<p style="text-align: justify;"><span id="more-3528"></span></p>
<p style="text-align: justify;">Zunächst öffnet ihr euer Projekt oder legt euch ein neues Projekt an. Dann wechselt ihr in die Code-Behind-Datei und fügt einen Eintrag in die using-Liste hinzu, nämlich <pre class="crayon-plain-tag">using Windows.Storage.Pickers;</pre>.</p>
<p style="text-align: justify;">Anschließend erstellen wir die Methode <pre class="crayon-plain-tag">PickAFile</pre>, welche einen <strong>FileOpenPicker</strong> erstellt und dort nur Bild-Dateien zulässt. Anschließend kann mit der Datei bzw. dem Stream der Datei gearbeitet werden.</p>
<p></p><pre class="crayon-plain-tag">private async void PickAFile()
{
    var picker = new FileOpenPicker();

    picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
    picker.ViewMode = PickerViewMode.Thumbnail;
    picker.FileTypeFilter.Add(".jpg");
    picker.FileTypeFilter.Add(".jpeg");
    picker.FileTypeFilter.Add(".png");
    picker.FileTypeFilter.Add(".bmp");

    var file = await picker.PickSingleFileAsync();

    if (file == null) 
        return;

    var stream = await file.OpenReadAsync();

    // Logik
}</pre><p>Das ist eigentlich auch schon das ganze Geheimnis und ihr könnt jetzt eure Logik implementieren.<br />
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/datei-mit-dem-fileopenpicker-oeffnen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Erstellung eines Entwickler-Accounts f&#252;r den WP-Store</title>
		<link>http://www.tsjdev.de/erstellung-eines-entwickler-accounts-fuer-den-windowsphone-store/</link>
		<comments>http://www.tsjdev.de/erstellung-eines-entwickler-accounts-fuer-den-windowsphone-store/#comments</comments>
		<pubDate>Thu, 14 Mar 2013 17:30:48 +0000</pubDate>
		<dc:creator>Malte Peers</dc:creator>
				<category><![CDATA[Einstieg]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[account]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[einstieg]]></category>
		<category><![CDATA[Entwickler]]></category>
		<category><![CDATA[windowsphone]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3500</guid>
		<description><![CDATA[Dieser Artikel ist ein Gastbeitrag von Malte, welcher sonst f&#252;r CodingCave.de Beitr&#228;ge verfasst. Die Registrierung f&#252;r den WindowsPhoneStore gestaltet sich einfacher als die hier bereits beschriebene Erstellung eines Entwicklerkontos f&#252;r den Windows 8 Store. Ein Nachteil: die Registrierung ist aktuell nur auf Englisch m&#246;glich. Wir beginnen, indem wir auf die Entwickler-Seite f&#252;r das WindowsPhone navigieren: dev.windowsphone.com. Als erstes m&#252;ssen<p><a href="http://www.tsjdev.de/erstellung-eines-entwickler-accounts-fuer-den-windowsphone-store/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><em>Dieser Artikel ist ein Gastbeitrag von Malte, welcher sonst für <a href="http://www.codingcave.de/" target="_blank">CodingCave.de</a> Beiträge verfasst. </em>Die Registrierung für den WindowsPhoneStore gestaltet sich einfacher als die <a title="Erstellung eines Entwickleraccounts für den Windows Store" href="http://www.tsjdev.de/erstellung-eines-entwickleraccounts-fuer-den-windows-store/">hier</a> bereits beschriebene Erstellung eines Entwicklerkontos für den Windows 8 Store. Ein Nachteil: die Registrierung ist aktuell nur auf Englisch möglich. Wir beginnen, indem wir auf die Entwickler-Seite für das WindowsPhone navigieren: <a title="WindowsPhone" href="http://www.dev.windowsphone.com/en-us">dev.windowsphone.com</a>.</p>
<p style="text-align: justify;"><span id="more-3500"></span>Als erstes müssen wir uns oben rechts unter <strong>Sign In</strong> mit der bestehenden WindowsLive-ID anmelden. Danach kommen wir mit einem Klick auf <strong>Dashboard</strong> zu der Aufforderung, der WindowsPhone-Entwicklung beizutreten:</p>
<div id="attachment_3501" class="wp-caption aligncenter" style="width: 908px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/FireShot-Screen-Capture-026-Windows-Phone-Dev-Center-dev_windowsphone_com_en-us_join.png"><img class="size-large wp-image-3501" alt="Dem Entwicklerkreis beitreten..." src="http://www.tsjdev.de/wp-content/uploads/2013/03/FireShot-Screen-Capture-026-Windows-Phone-Dev-Center-dev_windowsphone_com_en-us_join-898x1024.png" width="898" height="1024" /></a>
<p class="wp-caption-text">Dem Entwicklerkreis beitreten&#8230;</p>
</div>
<p style="text-align: justify;">Hier auf dem <strong>Dashboard</strong> findet sich nach der Registrierung, ebenso wie bei dem Windows8-Entwickleraccount ,die Übersicht der bereits veröffentlichten Applikationen und natürlich auch die Möglichkeit, eine App zur Verifizierung hochzuladen.</p>
<p style="text-align: justify;">Solltet ihr bereits einen Windows8-Entwickleraccount besitzen, erscheint beim nächsten Schritt die auf dem nächsten Bild zu sehende, gelb hinterlegte Information, welche die Angabe des <strong>Landes und des Accounttyps</strong> ausgraut. Möchtet ihr einen anderen Microsoftaccount für den WindowsPhone-Store verwenden, ist dies ebenfalls möglich.</p>
<p style="text-align: justify;">Zusätzlich zu dieser Auswahl müssen die Bedingungen akzeptiert werden.</p>
<div id="attachment_3502" class="wp-caption aligncenter" style="width: 822px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/FireShot-Screen-Capture-027-Windows-Phone-Dev-Center-dev_windowsphone_com_en-us_register.png"><img class="size-full wp-image-3502" alt="Land und Accounttyp auswählen" src="http://www.tsjdev.de/wp-content/uploads/2013/03/FireShot-Screen-Capture-027-Windows-Phone-Dev-Center-dev_windowsphone_com_en-us_register.png" width="812" height="944" /></a>
<p class="wp-caption-text">Land und Accounttyp auswählen</p>
</div>
<p style="text-align: justify;">Der nächste Schritt enthält die obligatorischen <strong>Account-Informationen</strong>. Hier kann es zu Problemen mit der Telefonnummer kommen. Es ist die Regions-Vorwahl, <strong>nicht</strong> die Landesvorwahl (+49) in das Feld in Klammern einzutragen!</p>
<p style="text-align: justify;">Der im WindowsPhone-Store angezeigte Name muss in das letzte Feld eingetragen werden. Überprüft die Verfügbarkeit eures Namens. Ist er bereits im Windows8-Store registriert, ist das kein Garant, dass nicht jemand schon diesen Namen im WindowsPhone-Store benutzt.</p>
<div id="attachment_3503" class="wp-caption aligncenter" style="width: 779px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/FireShot-Screen-Capture-028-Windows-Phone-Dev-Center-dev_windowsphone_com_en-us_Register_UserInfo.png"><img class="size-large wp-image-3503" alt="Kontaktdetails" src="http://www.tsjdev.de/wp-content/uploads/2013/03/FireShot-Screen-Capture-028-Windows-Phone-Dev-Center-dev_windowsphone_com_en-us_Register_UserInfo-769x1024.png" width="769" height="1024" /></a>
<p class="wp-caption-text">Kontaktdetails</p>
</div>
<p style="text-align: justify;">Der letzte Schritt behandelt die <strong>Bezahloptionen</strong>. Eine normale jährliche Mitgliedschaft kostet 75€. Studenten oder Nutzer mit Promotionscode können diese Gebühr umgehen. Um als Student eine kostenlose Mitgliedschaft zu erhalten, muss ein verifizierter Dreamspark-Account mit dem WindowsLive-Account verbunden sein. Wenn ihr diese Option auswählt leitet euch ein Assistent für die Zusammenführung von Konten durch den weiteren Prozess. Gibt es hierbei Probleme, führt leider kein Weg an einem Support-Ticket vorbei.</p>
<p style="text-align: justify;">Für alle anderen Nutzer müssen im nächsten Schritt <strong>PayPal- oder Kreditkarteninformationen</strong> angegeben werden. Das angegebene Konto wird dann mit dem fälligen Betrag belastet.</p>
<p style="text-align: justify;">Umsatzsteuer-Informationen können erst einmal übersprungen werden.</p>
<div id="attachment_3504" class="wp-caption aligncenter" style="width: 768px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/FireShot-Screen-Capture-029-Windows-Phone-Dev-Center-dev_windowsphone_com_en-us_Register_SubscriptionOptions.png"><img class="size-full wp-image-3504" alt="Bezahloptionen" src="http://www.tsjdev.de/wp-content/uploads/2013/03/FireShot-Screen-Capture-029-Windows-Phone-Dev-Center-dev_windowsphone_com_en-us_Register_SubscriptionOptions.png" width="758" height="866" /></a>
<p class="wp-caption-text">Bezahloptionen</p>
</div>
<p style="text-align: justify;">Daten absenden und schon ist die Registrierung abgeschlossen. Ihr gelangt auf das nun frische <strong>Dashboard</strong>, welches auf eure Apps wartet!</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/erstellung-eines-entwickler-accounts-fuer-den-windowsphone-store/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Location unter W8 ermitteln</title>
		<link>http://www.tsjdev.de/location-unter-w8-ermitteln/</link>
		<comments>http://www.tsjdev.de/location-unter-w8-ermitteln/#comments</comments>
		<pubDate>Wed, 13 Mar 2013 17:30:26 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[apprevolution]]></category>
		<category><![CDATA[location]]></category>
		<category><![CDATA[position]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3520</guid>
		<description><![CDATA[Nachdem ich gestern bereits einen Code-Schnipsel zur Bestimmung der Position auf einem Windows Phone ver&#246;ffentlicht habe, m&#246;chte ich das ganze heute f&#252;r Windows 8 machen, denn an der App-Revolution kann man auch mit einer Windows 8 App teilnehmen. Auch hier &#246;ffnen wir zun&#228;chst Visual Studio und &#246;ffnen die Package.appxmanifest-Datei. Dort w&#228;hlen wir unter Capabilities den<p><a href="http://www.tsjdev.de/location-unter-w8-ermitteln/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Nachdem ich gestern bereits einen <a title="Location unter WP ermitteln" href="http://www.tsjdev.de/location-unter-wp-ermitteln/" target="_blank">Code-Schnipsel zur Bestimmung der Position auf einem Windows Phone </a>veröffentlicht habe, möchte ich das ganze heute für Windows 8 machen, denn an der <a href="http://www.microsoft.com/germany/msdn/academic/windows-8/app-revolution.aspx" target="_blank">App-Revolution</a> kann man auch mit einer Windows 8 App teilnehmen.</p>
<p style="text-align: justify;"><span id="more-3520"></span></p>
<p style="text-align: justify;">Auch hier öffnen wir zunächst Visual Studio und öffnen die Package.appxmanifest-Datei. Dort wählen wir unter Capabilities den Eintrag Location aus, damit wir überhaupt die Berechtigung haben auf die aktuellen Positionsdaten zuzugreifen.</p>
<div id="attachment_3521" class="wp-caption aligncenter" style="width: 876px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/location_w8_01.jpg"><img class="size-full wp-image-3521" alt="'Location' in der Package.appxmanifest-Datei aktivieren" src="http://www.tsjdev.de/wp-content/uploads/2013/03/location_w8_01.jpg" width="866" height="305" /></a>
<p class="wp-caption-text">&#8216;Location&#8217; in der Package.appxmanifest-Datei aktivieren</p>
</div>
<p style="text-align: justify;">Nun fügen wir noch zwei Referenzen zu den bereits vorhanden<pre class="crayon-plain-tag">using</pre>-Einträgen hinzu:</p>
<p></p><pre class="crayon-plain-tag">using Windows.Devices.Geolocation;
using System.Threading;</pre><p></p>
<p style="text-align: justify;">Nun erstellen wir die asynchrone Methode <pre class="crayon-plain-tag">GetLocation()</pre>, welche die aktuelle Position abruft:</p>
<p></p><pre class="crayon-plain-tag">private async void GetLocation()
{
    private Geolocator geolocator = new Geolocator();
    private CancellationTokenSource cts = null;

    try
    {
        cts = new CancellationTokenSource();
        CancellationToken token = cts.Token;

        Geoposition pos = await geolocator.GetGeopositionAsync().AsTask(token);
    }
    catch (Exception ex)
    {
        new MessageDialog(String.Format("Leider ist ein Fehler aufgetreten: ", ex.Message), "Fehler").ShowAsync();
    }
    finally
    {
        _cts = null;
    }
}</pre><p></p>
<p style="text-align: justify;">Nun könnt ihr hier mit den Daten, welche in der Variablen <pre class="crayon-plain-tag">pos</pre> gespeichert sind, arbeiten und z.B. interessante Plätze in der Umgebung anzeigen.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/location-unter-w8-ermitteln/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Location unter WP ermitteln</title>
		<link>http://www.tsjdev.de/location-unter-wp-ermitteln/</link>
		<comments>http://www.tsjdev.de/location-unter-wp-ermitteln/#comments</comments>
		<pubDate>Tue, 12 Mar 2013 17:30:25 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Entwicklung]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[gps]]></category>
		<category><![CDATA[location]]></category>
		<category><![CDATA[position]]></category>
		<category><![CDATA[windows phone]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3516</guid>
		<description><![CDATA[Aktuell findet wieder die App-Revolution von Microsoft statt. Das Ziel ist es eine App f&#252;r Windows Phone 8 oder Windows 8 zu entwickeln, welche mit dem Thema &#8216;Location&#8216; zu tun hat. Daher habe ich mir gedacht, dass ich an dieser Stelle einen kurzen Code-Schnipsel zur Verf&#252;gung stelle, welcher es euch erm&#246;glicht die aktuelle Position des<p><a href="http://www.tsjdev.de/location-unter-wp-ermitteln/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Aktuell findet wieder die <a href="http://www.microsoft.com/germany/msdn/academic/windows-8/app-revolution.aspx" target="_blank">App-Revolution</a> von <a href="http://www.microsoft.com/de-de/default.aspx" target="_blank">Microsoft</a> statt. Das Ziel ist es eine App für Windows Phone 8 oder Windows 8 zu entwickeln, welche mit dem Thema &#8216;<strong>Location</strong>&#8216; zu tun hat. Daher habe ich mir gedacht, dass ich an dieser Stelle einen kurzen Code-Schnipsel zur Verfügung stelle, welcher es euch ermöglicht die aktuelle Position des Nutzers seines Windows Phones zu ermitteln.</p>
<p style="text-align: justify;"><span id="more-3516"></span></p>
<p style="text-align: justify;">Dazu legt ihr euch zunächst ein neues WP-Projekt in Visual Studio an und öffnet dann die <strong>WMAppManifest.xml</strong>-Datei, welche ihr im Ordner <strong>Properties</strong> findet. Dort klickt ihr auf <strong>Capabilities</strong> und wählt <em>ID_CAP_LOCATION</em> aus, damit es überhaupt möglich ist, auf die aktuelle Position zuzugreifen.</p>
<div id="attachment_3517" class="wp-caption aligncenter" style="width: 596px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/location_wp8_01.jpg"><img class="size-full wp-image-3517" alt="Berechtigung zur Lokalisierung setzen" src="http://www.tsjdev.de/wp-content/uploads/2013/03/location_wp8_01.jpg" width="586" height="376" /></a>
<p class="wp-caption-text">Berechtigung zur Lokalisierung setzen</p>
</div>
<p style="text-align: justify;">Anschließend fügen wir eine Referenz auf den <strong>Geolocation</strong>-Namespace ein, indem wir die folgende <em>using</em>-Anweisung ergänzen <pre class="crayon-plain-tag">using Windows.Devices.Geolocation;</pre></p>
<p style="text-align: justify;">Nun erstellen wir die Methode <pre class="crayon-plain-tag">GetLocation()</pre>, welche die aktuelle Position ermittelt und in einer MessageBox ausgibt:</p>
<p></p><pre class="crayon-plain-tag">private async void GetLocation()
{
    Geolocator geolocator = new Geolocator();
    geolocator.DesiredAccuracyInMeters = 10;

    try
    {
        Geoposition geoposition = await geolocator.GetGeopositionAsync(
            maximumAge: TimeSpan.FromMinutes(1),
            timeout: TimeSpan.FromSeconds(10)
            );

        MessageBox.Show("Latitude: " + geoposition.Coordinate.Latitude.ToString() + " - Longitude: " + geoposition.Coordinate.Longitude.ToString());
    }
    catch (UnauthorizedAccessException)
    {
        MessageBox.Show("Leider ist ein Fehler aufgetreten");
    }
}</pre><p></p>
<p style="text-align: justify;">Das ist eigentlich schon das ganze Geheimnis und ihr könnt nun natürlich mit dem Längen- und Breitengrad arbeiten und zum Beispiel die Position auf einer Karte anzuzeigen oder über die <a href="http://www.microsoft.com/maps/developers/web.aspx" target="_blank">Bing Maps API</a> an interessante Punkte der Umgebung gelangen.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/location-unter-wp-ermitteln/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>App-Empfehlung #8</title>
		<link>http://www.tsjdev.de/app-empfehlung-8/</link>
		<comments>http://www.tsjdev.de/app-empfehlung-8/#comments</comments>
		<pubDate>Mon, 11 Mar 2013 17:30:17 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[AppDay]]></category>
		<category><![CDATA[Windows Phone]]></category>
		<category><![CDATA[dev center]]></category>
		<category><![CDATA[windows phone]]></category>
		<category><![CDATA[windows phone 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3511</guid>
		<description><![CDATA[Heute habe ich eine Empfehlung f&#252;r alle &#8216;Windows Phone&#8217;-Entwickler, denn Microsoft hat vor kurzem das Dev Center ver&#246;ffentlicht. Mit dieser App, welche sich aktuell noch im Beta-Stadium befindet, haben Entwickler die M&#246;glichkeit auf ihr Dashboard zu zugreifen, um so z.B. die Downloadzahlen zu ermitteln oder die Bewertung der eigenen Apps zu lesen. Diese App wurde<p><a href="http://www.tsjdev.de/app-empfehlung-8/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Heute habe ich eine Empfehlung für alle &#8216;Windows Phone&#8217;-Entwickler, denn Microsoft hat vor kurzem das <strong>Dev Center</strong> veröffentlicht. Mit dieser App, welche sich aktuell noch im Beta-Stadium befindet, haben Entwickler die Möglichkeit auf ihr Dashboard zu zugreifen, um so z.B. die Downloadzahlen zu ermitteln oder die Bewertung der eigenen Apps zu lesen. Diese App wurde von zahlreichen Entwickler immer wieder erwartet und nun ist sie endlich da. Übersichtlich als Pivot-App findet man neben einem Graphen, welcher die Downloadzahlen anzeigt, auch noch die Crash-Reports angezeigt, so kann man sehen, welche App häufig abstürzt.</p>
<p style="text-align: justify;"><span id="more-3511"></span></p>
<p style="text-align: justify;"><!-- WP-Appbox (Store: windowsphone // ID: 2d3063c2-4b29-4e69-9c03-50b67b0e6aec) -->
<div class="appcontainer feed windowsphonestore">
<table width="100%;">
<tr>
<td style="width: 88px;"><a target="_blank" rel="nofollow" href="http://www.windowsphone.com/de-de/store/app/app/2d3063c2-4b29-4e69-9c03-50b67b0e6aec" title="Dev Center"><img style="border-radius: 6px !important; border: 0 !important; padding: 0 !important; width: 80px !important; height: 80px !important;" src="http://cdn.marketplaceimages.windowsphone.com/v8/images/656aa01c-fc78-4ab8-af67-7caf668ab4ae?imageType=ws_icon_large" alt="Dev Center" /></a></td>
<td>
				<a target="_blank" rel="nofollow" href="http://www.windowsphone.com/de-de/store/app/app/2d3063c2-4b29-4e69-9c03-50b67b0e6aec" title="Dev Center">Dev Center<img src="http://www.tsjdev.de/wp-content/plugins/wp-appbox/img/windowsphonestore-small.png" style="margin-left:6px !important;" /></a><br />
				Preis: Kostenlos			</td>
</tr>
</table>
</div>
<p><!-- /WP-Appbox --></p>
<p style="text-align: justify;">Wem das jetzt noch alles nicht reicht, sei gesagt, dass die App auch über ein LiveTile verfügt. Diese zeigt direkt neue Reviews, Crashes oder Verkäufe auf dem Startbildschirm an. Probiert doch als WP-Entwickler die App doch selber einmal aus!</p>
<p style="text-align: justify;">
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/app-empfehlung-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter-Search-App f&#252;r Windows 8 #5</title>
		<link>http://www.tsjdev.de/twitter-search-app-fuer-windows-8-5/</link>
		<comments>http://www.tsjdev.de/twitter-search-app-fuer-windows-8-5/#comments</comments>
		<pubDate>Sat, 09 Mar 2013 17:30:24 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Projekt]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[projekt]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3480</guid>
		<description><![CDATA[Willkommen zur neuen Serie hier bei tsjDEV.de. Wie der Name es schon vermuten l&#228;sst, m&#246;chte ich in dieser Serie eine Twitter-Suche implementieren. Im ersten Teil haben wir bereits das Daten-Modell implementiert, im zweiten Teil eine erste Anzeige der Tweets, im dritten Teil haben wir die Anzeige erg&#228;nzt und das Teilen als Windows 8 Feature hinzugef&#252;gt<p><a href="http://www.tsjdev.de/twitter-search-app-fuer-windows-8-5/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Willkommen zur neuen Serie hier bei tsjDEV.de. Wie der Name es schon vermuten lässt, möchte ich in dieser Serie eine Twitter-Suche implementieren. Im ersten Teil haben wir bereits das Daten-Modell implementiert, im zweiten Teil eine erste Anzeige der Tweets, im dritten Teil haben wir die Anzeige ergänzt und das Teilen als Windows 8 Feature hinzugefügt und im vierten Teil haben wir LiveTiles eingebaut und auch App-Icons integriert. In dem heutigen Teil werden wir die Suche implementieren. Außerdem werden wir das Impressum und eine Datenschutzerklärung in die App integrieren.</p>
<p style="text-align: justify;">Hier findet ihr den Source-Code aus Teil 4 zum Herunterladen:</p>
<p style="text-align: justify;">Note: There is a file embedded within this post, please visit this post to download the file.</p>
<p style="text-align: justify;"><span id="more-3480"></span></p>
<p style="text-align: justify;">Zunächst starten wir Visual Studio Express 2012 for Windows 8 und öffnen unser Projekt <i>TwitterSearch</i>. Im <b>Solution-Explorer</b> klicken wir nun doppelt auf die Datei <b>MainPage.xaml</b>. Anschließend öffnet sich diese Datei und wir sehen ein simuliertes Windows 8 Tablet als Vorschauobjekt und den bekannten XAML-Code, welcher die Oberfläche unserer App beschreibt.</p>
<div id="attachment_3481" class="wp-caption aligncenter" style="width: 939px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil5_01.jpg"><img class="size-full wp-image-3481" alt="das bisherige Projekt" src="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil5_01.jpg" width="929" height="565" /></a>
<p class="wp-caption-text">das bisherige Projekt</p>
</div>
<p style="text-align: justify;">Wir werden jetzt die MainPage ein wenig umgestalten, denn wir wollen das Suchfeld in der Charms-Leiste nutzen und daher benötigen wir das Suchfeld auf der MainPage nicht mehr.</p>
<p style="text-align: justify;">Aktuell sieht ein Teil der MainPage wie folgt aus:</p>
<p></p><pre class="crayon-plain-tag">&lt;ScrollViewer VerticalScrollMode="Disabled" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" Grid.Row="1" Margin="120,10,10,10"&gt;
    &lt;Grid&gt;
        &lt;Grid.ColumnDefinitions&gt;
            &lt;ColumnDefinition Width="250"/&gt;
            &lt;ColumnDefinition /&gt;
        &lt;/Grid.ColumnDefinitions&gt;

        &lt;StackPanel Margin="0" VerticalAlignment="Top" Grid.Column="0"&gt;
            &lt;TextBlock Margin="0" TextWrapping="Wrap" Text="Twitter-Hashtag:" Style="{StaticResource SubheaderTextStyle}"/&gt;
            &lt;TextBox TextWrapping="Wrap" Margin="0,20,0,0" Text="{Binding SearchTag, Mode=TwoWay}"/&gt;
            &lt;Button Content="Suchen" Margin="0,20,0,0" Width="250" Click="Button_Click_1"/&gt;
        &lt;/StackPanel&gt;

        &lt;GridView x:Name="TweetGrid" Grid.Column="1" Margin="20,0,0,0" ItemsSource="{Binding Tweets}" ItemTemplate="{StaticResource TweetItemTemplate}" SelectionMode="Single" SelectedItem="{Binding SelectedTweet, Mode=TwoWay}"/&gt;

    &lt;/Grid&gt;
&lt;/ScrollViewer&gt;</pre><p></p>
<p style="text-align: justify;">Diesen Teil werden wir jetzt so überarbeiten, dass nur noch das GridView erhalten bleibt. Allerdings werden einige Eigenschaften der GridView verändert. Nachher erhalten wir diese eine Code-Zeile:</p>
<p></p><pre class="crayon-plain-tag">&lt;GridView x:Name="TweetGrid" Grid.Row="1" Margin="120,10,10,10" ItemsSource="{Binding Tweets}" ItemTemplate="{StaticResource TweetItemTemplate}" SelectionMode="Single" SelectedItem="{Binding SelectedTweet, Mode=TwoWay}"/&gt;</pre><p></p>
<p style="text-align: justify;">Nun wechseln wir in die Code-Behind-Datei und werden auch hier einiges entfernen, was wir nicht mehr benötigen. Dazu zählt die <strong>Button_Click_1</strong>-Methode, welche wir einfach entfernen.</p>
<p style="text-align: justify;">Nun öffnen wir die <strong>Package.appxmanifest</strong> Datei über den Solution Explorer. Dort wechseln wir auf den Reiter Declarations.</p>
<div id="attachment_3482" class="wp-caption aligncenter" style="width: 939px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil5_02.jpg"><img class="size-full wp-image-3482" alt="Implementierung der Suche" src="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil5_02.jpg" width="929" height="565" /></a>
<p class="wp-caption-text">Implementierung der Suche</p>
</div>
<p style="text-align: justify;">Aus dem Auswahlmenü wählt ihr den Eintrag <strong>Search</strong> und klickt auf <strong>Add</strong>. Anschließend ist die Suche rein formal schon einmal möglich, aber jetzt müssen wir noch die Logik hinter der Suche schreiben.</p>
<p style="text-align: justify;">Dafür öffnen wir wieder die MainPage.xaml.cs-Datei und fügen die folgende Methode in die Klasse ein:</p>
<p></p><pre class="crayon-plain-tag">protected override void OnNavigatedTo(NavigationEventArgs e)
{
    if (e.Parameter != null)
    {
        App.MainPageViewModel.SearchTag = e.Parameter as string;
        App.MainPageViewModel.Refresh();
    }

    base.OnNavigatedTo(e);
}</pre><p>Außerdem erstellen wir noch die Activate-Methode:</p><pre class="crayon-plain-tag">internal static void Activate(string searchText)
{
    var previousContent = Window.Current.Content;
    var frame = previousContent as Frame;

    if (frame == null)
    {
        frame = new Frame();
        Window.Current.Content = frame;
    }

    frame.Navigate(typeof(MainPage), searchText);
    Window.Current.Activate();
}</pre><p></p>
<p style="text-align: justify;">Nun wechseln wir noch in die <strong>App.xaml.cs</strong>-Datei und fügen die <strong>OnSearchActivated</strong>-Methode hinzu:</p>
<p></p><pre class="crayon-plain-tag">protected override void OnSearchActivated(SearchActivatedEventArgs args)
{
    MainPage.Activate(args.QueryText);
}</pre><p></p>
<p style="text-align: justify;">Ebenso ersetzen wir die bisherige <strong>OnLaunched()</strong>-Methode mit dem folgenden Code-Schnipsel:</p>
<p></p><pre class="crayon-plain-tag">protected override void OnLaunched(LaunchActivatedEventArgs args)
{
    if (args.PreviousExecutionState == ApplicationExecutionState.Running)
    {
        Window.Current.Activate();
        return;
    }

    if (args.PreviousExecutionState == ApplicationExecutionState.Terminated)
    {

    }

    var rootFrame = new Frame();

    if (!rootFrame.Navigate(typeof(MainPage)))
    {
        throw new Exception("Failed to create initial page");
    }

    Window.Current.Content = rootFrame;
    Window.Current.Activate();
}</pre><p>Nun ist die App durchsuchbar. Sowohl bei laufender App als auch bei geschlossener App. Damit ist unsere App jetzt auch schon komplett. Damit man die App in den Store hochladen kann, müsste noch das Impressum und die Datenschutzerklärung ergänzt werden, wofür sich das <a title="Settings-Flyout mit Callisto" href="http://www.tsjdev.de/settings-flyout-mit-callisto/">SettingsFlyout aus dem Callisto-Toolkit</a> anbietet.</p>
<p>Den kompletten Source-Code findet ihr nun hier:</p>
<p>Note: There is a file embedded within this post, please visit this post to download the file.<br />
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/twitter-search-app-fuer-windows-8-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter-Search-App f&#252;r Windows 8 #4</title>
		<link>http://www.tsjdev.de/twitter-search-app-fuer-windows-8-4/</link>
		<comments>http://www.tsjdev.de/twitter-search-app-fuer-windows-8-4/#comments</comments>
		<pubDate>Fri, 08 Mar 2013 17:30:05 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Projekt]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[projekt]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3477</guid>
		<description><![CDATA[Willkommen zur neuen Serie hier bei tsjDEV.de. Wie der Name es schon vermuten l&#228;sst, m&#246;chte ich in dieser Serie eine Twitter-Suche implementieren. Im ersten Teil haben wir bereits das Daten-Modell implementiert, im zweiten Teil eine erste Anzeige der Tweets und im dritten Teil haben wir die Anzeige erg&#228;nzt und das Teilen als Windows 8 Feature<p><a href="http://www.tsjdev.de/twitter-search-app-fuer-windows-8-4/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Willkommen zur neuen Serie hier bei tsjDEV.de. Wie der Name es schon vermuten lässt, möchte ich in dieser Serie eine Twitter-Suche implementieren. Im ersten Teil haben wir bereits das Daten-Modell implementiert, im zweiten Teil eine erste Anzeige der Tweets und im dritten Teil haben wir die Anzeige ergänzt und das Teilen als Windows 8 Feature hinzugefügt. In diesem Teil folgt nun das Verwenden von LiveTiles und das einbinden eines Application-Icons.</p>
<p style="text-align: justify;">Hier findet ihr den Source-Code aus Teil 3 zum Herunterladen:</p>
<p style="text-align: justify;">Note: There is a file embedded within this post, please visit this post to download the file.</p>
<p style="text-align: justify;"><span id="more-3477"></span></p>
<p style="text-align: justify;">Zunächst starten wir Visual Studio Express 2012 for Windows 8 und öffnen unser Projekt <i>TwitterSearch</i>. Im <b>Solution-Explorer</b> klicken wir nun doppelt auf die Datei <b>MainPage.xaml</b>. Anschließend öffnet sich diese Datei und wir sehen ein simuliertes Windows 8 Tablet als Vorschauobjekt und den bekannten XAML-Code, welcher die Oberfläche unserer App beschreibt.</p>
<div id="attachment_3478" class="wp-caption aligncenter" style="width: 939px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil4_01.jpg"><img class="size-full wp-image-3478" alt="die bisherige App" src="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil4_01.jpg" width="929" height="565" /></a>
<p class="wp-caption-text">die bisherige App</p>
</div>
<p style="text-align: justify;">Öffnet nun die Datei <strong>MainPageViewMode.cs</strong>, denn wir müssen die <pre class="crayon-plain-tag">Refresh()</pre>-Methode ein wenig ergänzen. Vorher müssen wir aber eine weitere Referenz einfügen. Dafür fügen wir die folgende Zeile zur using-Liste hinzu:</p>
<p></p><pre class="crayon-plain-tag">using Windows.UI.Notifications;</pre><p></p>
<p style="text-align: justify;">Nun navigiert ihr mit dem Cursor unter die <strong>foreach</strong>-Schleife, aber vor der schließenden geschweiften Klammer der Methode und fügt dort den folgenden Code ein:</p>
<p></p><pre class="crayon-plain-tag">var updater = TileUpdateManager.CreateTileUpdaterForApplication();
updater.EnableNotificationQueue(true);

foreach (var tweet in _tweets)
{
    var wideContent = TileUpdateManager.GetTemplateContent(TileTemplateType.TileWideBlockAndText01);
    wideContent.GetElementsByTagName("text")[0].AppendChild(wideContent.CreateTextNode(tweet.Author));
    wideContent.GetElementsByTagName("text")[1].AppendChild(wideContent.CreateTextNode(tweet.Body));

    var smallContent = TileUpdateManager.GetTemplateContent(TileTemplateType.TileSquareText02);
    smallContent.GetElementsByTagName("text")[0].AppendChild(smallContent.CreateTextNode(tweet.Author));
    smallContent.GetElementsByTagName("text")[1].AppendChild(smallContent.CreateTextNode(tweet.Body));

    var wideNotification = new TileNotification(wideContent);
    updater.Update(wideNotification);

    var smallNotification = new TileNotification(smallContent);
    updater.Update(smallNotification);
}</pre><p></p>
<p style="text-align: justify;">Somit funktioniert bereits das LiveTile bereits für eine große und eine kleine Kachel und wir können uns um ein neues App-Logo kümmern. Wir brauchen das Logo in mindestens 3 Größen und wenn wir ein großes Teil verwenden wollen sogar in 4 Größen:</p>
<ul>
<li><span style="line-height: 13px;">Logo: 150 x 150</span></li>
<li>WideLogo: 310 x 150</li>
<li>SmallLogo: 30 x 30</li>
<li>StoreLogo: 50 x 50</li>
</ul>
<p style="text-align: justify;">Erstellt einfach das Logo mit einem Grafikprogramm, z.B. Paint oder Paint.Net. Anschließend entfernen wir die Bilder <em>Logo.png</em>, <em>SmallLogo.png</em> und <em>StoreLogo.png</em> aus dem Asset-Ordner und fügen an diese Stelle unsere eigenen Icons per Drag &amp; Drop wieder ein.</p>
<p style="text-align: justify;">Nun öffnet ihr die <strong>Package.appxmanifest</strong>-Datei über den Solution Explorer und ihr seht dort bereits euer neues Logo. Da ich die Hintergrund-Farbe grau ein wenig langweilig finde, ersetze ich diese durch ein freundliches Orange. Dazu klicke ich zunächst auf <strong>Tile Images and Logos</strong> und wähle dort unter Background <strong>color</strong> einen neuen Farbwert, z.B. <em>FF6E22</em>. Außerdem möchte ich nicht, dass der App-Name angezeigt wird. Daher trage ich bei <strong>Show name</strong> einfach <em>No Logos</em> ein.</p>
<p style="text-align: justify;">Nun fehlt nur noch einen Splash-Screen. Dieser wird angezeigt, wenn die App startet. Dazu müssen wir ein Bild mit einer Größe von 620x300px erstellen. Auch hierfür eigenen sich wunderbar Paint oder Paint.Net. Nun wird einfach die Datei <em>SplashScreen.png</em> im Asset-Ordner ausgetauscht und schon verfügt die App über ein eigenes ansprechendes Logo.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/twitter-search-app-fuer-windows-8-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter-Search-App f&#252;r Windows 8 #3</title>
		<link>http://www.tsjdev.de/twitter-search-app-fuer-windows-8-3/</link>
		<comments>http://www.tsjdev.de/twitter-search-app-fuer-windows-8-3/#comments</comments>
		<pubDate>Thu, 07 Mar 2013 17:30:01 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Projekt]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[projekt]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3471</guid>
		<description><![CDATA[Willkommen zur neuen Serie hier bei tsjDEV.de. Wie der Name es schon vermuten l&#228;sst, m&#246;chte ich in dieser Serie eine Twitter-Suche implementieren. Im ersten Teil haben wir bereits das Daten-Modell implementiert und im zweiten Teil eine erste Anzeige der Tweets. In diesem Teil folgen eine weitere Darstellungsform und die Einbindung in den Teilen-Charm. Hier findet<p><a href="http://www.tsjdev.de/twitter-search-app-fuer-windows-8-3/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Willkommen zur neuen Serie hier bei tsjDEV.de. Wie der Name es schon vermuten lässt, möchte ich in dieser Serie eine Twitter-Suche implementieren. Im ersten Teil haben wir bereits das Daten-Modell implementiert und im zweiten Teil eine erste Anzeige der Tweets. In diesem Teil folgen eine weitere Darstellungsform und die Einbindung in den Teilen-Charm.</p>
<p style="text-align: justify;"><span id="more-3471"></span>Hier findet ihr den den Source-Code aus Teil 2 als kostenlosen Download:</p>
<p style="text-align: justify;">Note: There is a file embedded within this post, please visit this post to download the file.</p>
<p style="text-align: justify;">Zunächst starten wir Visual Studio Express 2012 for Windows 8 und öffnen unser Projekt <i>TwitterSearch</i>. Im <b>Solution-Explorer</b> klicken wir nun doppelt auf die Datei <b>MainPage.xaml</b>. Anschließend öffnet sich diese Datei und wir sehen ein simuliertes Windows 8 Tablet als Vorschauobjekt und den bekannten XAML-Code, welcher die Oberfläche unserer App beschreibt.</p>
<div id="attachment_3472" class="wp-caption aligncenter" style="width: 939px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil3_01.jpg"><img class="size-full wp-image-3472" alt="bisherige App" src="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil3_01.jpg" width="929" height="565" /></a>
<p class="wp-caption-text">bisherige App</p>
</div>
<p style="text-align: justify;">Wechselt nun in die MainPageViewModel.cs-Datei. Bevor wir hier Änderungen vornehmen, müssen wir vorher erst noch eine weitere Referenz hinzufügen. Navigiert dazu ganz nach oben und tragt dort <pre class="crayon-plain-tag">using Windows.ApplicationModel.DataTransfer;</pre> in die Liste ein.</p>
<p>Anschließend definiert ihr zwischen der Klassendefinition und dem Konstruktor noch die folgende Variable:</p><pre class="crayon-plain-tag">private DataTransferManager dataTransferManager;</pre><p>Navigiert nun zum noch leeren Konstruktor und tragt dort den folgenden Code ein:</p><pre class="crayon-plain-tag">dataTransferManager = DataTransferManager.GetForCurrentView();
dataTransferManager.DataRequested += dataTransferManager_DataRequested;</pre><p>Anschließend erstellt ihr unterhalb des Konstruktors eine weitere Methode, welche wie folgt aussieht:</p><pre class="crayon-plain-tag">void dataTransferManager_DataRequested(DataTransferManager sender, DataRequestedEventArgs args)
{

}</pre><p>Dort tragt ihr jetzt den folgenden Rumpf ein:</p>
<p>&nbsp;</p><pre class="crayon-plain-tag">if (SelectedTweet != null)
{
    args.Request.Data.Properties.Title = SelectedTweet.Author;
    args.Request.Data.Properties.Description = SelectedTweet.Body;

    args.Request.Data.SetText(SelectedTweet.Body);
}
else
{
    args.Request.FailWithDisplayText("No tweet selected");
}</pre><p></p>
<p style="text-align: justify;">Falls der Nutzer nun einen Tweet ausgewählt hat, so werden die entsprechenden Daten aufbereitet und einer durch den Nutzer ausgewählten App zur Verfügung gestellt. Ist kein Tweet ausgewählt, so wird eine (kleine) Fehlermeldung angezeigt.</p>
<p style="text-align: justify;">Wenn wir die App nun testen, werden wir sehen, dass sobald ein Tweet ausgewählt wurde und der Teilen-Charm geöffnet wird, dass sich der Inhalt des Tweets teilen lässt.</p>
<div id="attachment_3473" class="wp-caption aligncenter" style="width: 760px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil3_02.jpg"><img class="size-full wp-image-3473" alt="das Teilen ist integriert" src="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil3_02.jpg" width="750" height="563" /></a>
<p class="wp-caption-text">das Teilen ist integriert</p>
</div>
<p style="text-align: justify;">Was aber auch auffällt, ist die Tatsache, dass man innerhalb der GridView gar nicht den gesamten Tweet sehen kann. Dies wollen wir nun nachholen, indem wir ein Popup definieren, welches sich beim Auswählen eines Tweets automatisch öffnet und den Tweet in voller Größe präsentiert. Dazu wechseln wir zurück zur <strong>MainPage.xaml</strong>-Datei und unterhalb von <pre class="crayon-plain-tag">&lt;/ScrollViewer&gt;</pre> definieren wir nun ein Popup:</p>
<p></p><pre class="crayon-plain-tag">&lt;Popup x:Name="TweetPopup" HorizontalOffset="10" VerticalOffset="10" IsLightDismissEnabled="True"&gt;
    &lt;Popup.ChildTransitions&gt;
        &lt;TransitionCollection&gt;
            &lt;PopupThemeTransition /&gt;
        &lt;/TransitionCollection&gt;
     &lt;/Popup.ChildTransitions&gt;
     &lt;Border x:Name="TweetBorder" BorderBrush="{StaticResource ApplicationForegroundThemeBrush}" BorderThickness="2" Width="500" Height="250"&gt;
        &lt;Grid Background="LightGray"&gt;
            &lt;Grid.ColumnDefinitions&gt;
                &lt;ColumnDefinition Width="125"/&gt;
                &lt;ColumnDefinition/&gt;
            &lt;/Grid.ColumnDefinitions&gt;

            &lt;StackPanel Grid.Column="1" Margin="10"&gt;
                &lt;TextBlock TextWrapping="Wrap" Text="{Binding Author}" Style="{StaticResource SubheaderTextStyle}" Foreground="Black"/&gt;
                &lt;TextBlock TextWrapping="Wrap" Text="{Binding Body}" Style="{StaticResource BodyTextStyle}" Foreground="Black"/&gt;
            &lt;/StackPanel&gt;

            &lt;Image Margin="10,10,0,10" Stretch="Uniform" VerticalAlignment="Center" HorizontalAlignment="Center" Source="{Binding Image}"/&gt;

        &lt;/Grid&gt;
    &lt;/Border&gt;
&lt;/Popup&gt;</pre><p></p>
<p style="text-align: justify;">Nun sucht ihr auf der MainPage.xaml das definierte Daten-Template zur Anzeige eines Tweets innerhalb unserer GridView. Dieses befindet sich innerhalb der Page-Resourcen. Markiert dort das Grid<sup><a href="http://www.tsjdev.de/twitter-search-app-fuer-windows-8-3/#footnote_0_3471" id="identifier_0_3471" class="footnote-link footnote-identifier-link" title="Einfach den Cursor in die Zeile mit dem Grid navigieren.">1</a></sup> und öffnet das Properties-Fenster, was ihr am rechten Rand von Visual Studio findet. Dort wechseln wir zu den Events, indem wir oben neben dem Namen auf das Blitz-Icon klicken. Sucht dort das <strong>Tapped</strong>-Event und klickt doppelt in die leere TextBox.</p>
<div id="attachment_3474" class="wp-caption aligncenter" style="width: 939px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil3_03.jpg"><img class="size-full wp-image-3474" alt="Tapped-Event implementieren" src="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil3_03.jpg" width="929" height="565" /></a>
<p class="wp-caption-text">Tapped-Event implementieren</p>
</div>
<p style="text-align: justify;">Somit habt ihr einen neuen Methoden-Rumpf in der <strong>MainPage.xaml.cs</strong>-Datei angelegt. Nun definieren wir zunächst in der Code-Behind-Datei, welche sich automatisch geöffnet hat, eine Variable oberhalb des Konstruktors:</p>
<p></p><pre class="crayon-plain-tag">using TwitterSearch.DataModel;</pre><p>Den erstellen Methoden-Rumpf füllen wir nun mit den folgenden Zeilen:</p><pre class="crayon-plain-tag">if (!TweetPopup.IsOpen)
{
    TweetPopup.HorizontalOffset = (_windowsSize.Width / 2) - (TweetBorder.Width / 2);
    TweetPopup.VerticalOffset = (_windowsSize.Height / 2) - (TweetBorder.Height / 2);

    TweetBorder.DataContext = dc;

    TweetPopup.IsOpen = true;
}</pre><p>Nun sind wir in der Lage einen Tweet in einem Popup-Fenster anzeigen zu lassen und diesen auch schon zu teilen.</p>
<div id="attachment_3475" class="wp-caption aligncenter" style="width: 760px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil3_04.jpg"><img class="size-full wp-image-3475" alt="Tweet-Popup in Aktion" src="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil3_04.jpg" width="750" height="563" /></a>
<p class="wp-caption-text">Tweet-Popup in Aktion</p>
</div>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small>
<ol class="footnotes">
<li id="footnote_0_3471" class="footnote">Einfach den Cursor in die Zeile mit dem Grid navigieren.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/twitter-search-app-fuer-windows-8-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TwitterSearch-App f&#252;r Windows 8 #2</title>
		<link>http://www.tsjdev.de/twittersearch-app-fuer-windows-8-2/</link>
		<comments>http://www.tsjdev.de/twittersearch-app-fuer-windows-8-2/#comments</comments>
		<pubDate>Wed, 06 Mar 2013 17:30:56 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Projekt]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[projekt]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3459</guid>
		<description><![CDATA[Willkommen zur neuen Serie hier bei tsjDEV.de. Wie der Name es schon vermuten l&#228;sst, m&#246;chte ich in dieser Serie eine Twitter-Suche implementieren. Im letzten Teil haben wir bereits das Daten-Modell implementiert. In diesem Teil wollen wir nun die Daten aus dem Modell in unserer App anzeigen. Den Source-Code aus Teil 1 k&#246;nnt ihr hier herunterladen:<p><a href="http://www.tsjdev.de/twittersearch-app-fuer-windows-8-2/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Willkommen zur neuen Serie hier bei tsjDEV.de. Wie der Name es schon vermuten lässt, möchte ich in dieser Serie eine Twitter-Suche implementieren. Im letzten Teil haben wir bereits das Daten-Modell implementiert. In diesem Teil wollen wir nun die Daten aus dem Modell in unserer App anzeigen.</p>
<p style="text-align: justify;"><span id="more-3459"></span>Den Source-Code aus Teil 1 könnt ihr hier herunterladen:</p>
<p style="text-align: justify;">Note: There is a file embedded within this post, please visit this post to download the file.</p>
<p style="text-align: justify;">Zunächst starten wir Visual Studio Express 2012 for Windows 8 und öffnen unser Projekt <i>TwitterSearch</i>. Im <b>Solution-Explorer</b> klicken wir nun doppelt auf die Datei <b>MainPage.xaml</b>. Anschließend öffnet sich diese Datei und wir sehen ein simuliertes Windows 8 Tablet als Vorschauobjekt und den bekannten XAML-Code, welcher die Oberfläche unserer App beschreibt.</p>
<div id="attachment_3460" class="wp-caption aligncenter" style="width: 939px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil2_01.jpg"><img class="size-full wp-image-3460" alt="unser bisheriges Projekt" src="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil2_01.jpg" width="929" height="565" /></a>
<p class="wp-caption-text">unser bisheriges Projekt</p>
</div>
<p style="text-align: justify;">Nun wende ich einen kleinen Trick an, denn die vorliegende Seite hat nur wenige Vorgaben und ist noch nicht nach dem Windows Design ausgelegt. Daher klicken wir nun die <b>MainPage.xaml</b>-Datei mit der rechten Maustaste an und klicken auf <b>Delete</b> und bestätigen den Dialog mit <b>OK</b>.</p>
<p>Nun klicken wir mit der rechten Maustaste auf <i>TwitterSearch</i> und wählen Add – New Item. Dort wählen wir <b>Basic Page</b> aus und geben den Namen <b>MainPage</b> ein.</p>
<div id="attachment_3461" class="wp-caption aligncenter" style="width: 810px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil2_02.jpg"><img class="size-full wp-image-3461" alt="neue 'Basic Page' anlegen" src="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil2_02.jpg" width="800" height="450" /></a>
<p class="wp-caption-text">neue &#8216;Basic Page&#8217; anlegen</p>
</div>
<p style="text-align: justify;">Nun erhalten wir den Hinweis, dass einige Dateien in unserem Projekt fehlen und Visual Studio diese gerne automatisch hinzufügen möchte. Diesen Dialog bestätigen wir mit einen Klick auf <b>Ja</b>.</p>
<div id="attachment_3462" class="wp-caption aligncenter" style="width: 490px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil2_03.jpg"><img class="size-full wp-image-3462" alt="automatisch Dateien hinzufügen" src="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil2_03.jpg" width="480" height="185" /></a>
<p class="wp-caption-text">automatisch Dateien hinzufügen</p>
</div>
<p style="text-align: justify;">Anschließend sehen wir eine neue Seite, welche über eine Überschrift und einen Zurück-Button verfügt.</p>
<div id="attachment_3463" class="wp-caption aligncenter" style="width: 939px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil2_04.jpg"><img class="size-full wp-image-3463" alt="die neue MainPage als 'Basic Page'" src="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil2_04.jpg" width="929" height="565" /></a>
<p class="wp-caption-text">die neue MainPage als &#8216;Basic Page&#8217;</p>
</div>
<p style="text-align: justify;">Wir wollen nun den Namen &#8216;My Application&#8217; ändern. Dazu suchen wir die folgende Zeile im XAML-Code<sup><a href="http://www.tsjdev.de/twittersearch-app-fuer-windows-8-2/#footnote_0_3459" id="identifier_0_3459" class="footnote-link footnote-identifier-link" title="Die Zeile befindet sich innerhalb der Page.Resources.">1</a></sup>:</p>
<p></p><pre class="crayon-plain-tag">&lt;x:String x:Key="AppName"&gt;My Application&lt;/x:String&gt;</pre><p>und ändert den String <em>My Application</em> in <em>TwitterSearch</em>.</p>
<p style="text-align: justify;">Nun gehen wir unterhalb des des Grids mit dem Kommentar <pre class="crayon-plain-tag">&lt;!-- Back button and page title --&gt;</pre> und geben dort den folgenden Code ein:</p>
<p></p><pre class="crayon-plain-tag">&lt;ScrollViewer VerticalScrollMode="Disabled" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled" Grid.Row="1" Margin="120,10,10,10"&gt;
    &lt;Grid&gt;
        &lt;Grid.ColumnDefinitions&gt;
            &lt;ColumnDefinition Width="250"/&gt;
            &lt;ColumnDefinition /&gt;
        &lt;/Grid.ColumnDefinitions&gt;

        &lt;StackPanel Margin="0" VerticalAlignment="Top" Grid.Column="0"&gt;
            &lt;TextBlock Margin="0" TextWrapping="Wrap" Text="Twitter-Hashtag:" Style="{StaticResource SubheaderTextStyle}"/&gt;
            &lt;TextBox TextWrapping="Wrap" Margin="0,20,0,0" Text="{Binding SearchTag, Mode=TwoWay}"/&gt;
            &lt;Button Content="Suchen" Margin="0,20,0,0" Width="250"/&gt;
        &lt;/StackPanel&gt;

    &lt;/Grid&gt;
&lt;/ScrollViewer&gt;</pre><p></p>
<p style="text-align: justify;">Hier wird zunächst eine scrollbare Ansicht definiert, welche ein Grid beinhaltet. Das Grid besteht aus zwei Spalten. In der ersten Spalte definieren wir eine Überschrift, eine TextBox und ein Button. Die rechte Spalte haben wir noch nicht definiert, aber hier sollen später die Twitter-Ergebnisse angezeigt werden.</p>
<p>In die Lücke zwischen <pre class="crayon-plain-tag">&lt;/StackPanel&gt;</pre> und <pre class="crayon-plain-tag">&lt;/Grid&gt;</pre> fügen wir nun noch den folgenden Code ein:</p><pre class="crayon-plain-tag">&lt;GridView x:Name="TweetGrid" Grid.Column="1" Margin="20,0,0,0" ItemsSource="{Binding Tweets}" ItemTemplate="{StaticResource TweetItemTemplate}" SelectionMode="Single" SelectedItem="{Binding SelectedTweet, Mode=TwoWay}"/&gt;</pre><p></p>
<p style="text-align: justify;">Ihr werdet merken, dass euch Visual Studio die Definition des <strong>ItemTemplates</strong> blau unterkringelt, denn diese ist noch nicht definiert. Das wollen wir nun nachholen, in dem wir den folgenden Code zwischen <pre class="crayon-plain-tag">&lt;Page.Resources&gt;</pre> und <pre class="crayon-plain-tag">&lt;/Page.Resources&gt;</pre> im oberen Bereich der XAML-Datei einfügen:</p>
<p></p><pre class="crayon-plain-tag">&lt;DataTemplate x:Key="TweetItemTemplate"&gt;
    &lt;Grid Height="80" Width="300" Background="LightGray"&gt;
        &lt;Grid.ColumnDefinitions&gt;
            &lt;ColumnDefinition Width="80"/&gt;
            &lt;ColumnDefinition/&gt;
        &lt;/Grid.ColumnDefinitions&gt;

        &lt;StackPanel Grid.Column="1" Margin="10"&gt;
            &lt;TextBlock TextWrapping="Wrap" Text="{Binding Author}" Width="200" Foreground="Black"/&gt;
            &lt;TextBlock TextWrapping="Wrap" Text="{Binding Body}" Foreground="Black"/&gt;
        &lt;/StackPanel&gt;

        &lt;Image Margin="10,10,0,10" Stretch="UniformToFill" Source="{Binding Image}"/&gt;

    &lt;/Grid&gt;
&lt;/DataTemplate&gt;</pre><p></p>
<p style="text-align: justify;">Auch hier wird wieder ein zweispaltiges Grid angelegt, welches in der linken Spalte das Bild anzeigt und in der rechten Spalte den Autor und die Twitter-Nachricht.</p>
<p style="text-align: justify;">Nun sind wir auch fast schon fertig und können die App testen, allerdings muss vorher noch eine Verbindung zwischen dem Modell und den UI hergestellt werden. Dafür öffnet ihr die <strong>App.xaml.cs</strong>-Datei und gebt dort oberhalb von <pre class="crayon-plain-tag">public App()</pre> den folgenden Code ein:</p>
<p></p><pre class="crayon-plain-tag">private static MainPageViewModel _mainPageViewModel;

public static MainPageViewModel MainPageViewModel
{
    get
    {
        if (_mainPageViewModel == null)
            _mainPageViewModel = new MainPageViewModel();

            return _mainPageViewModel;
    }
}</pre><p></p>
<p style="text-align: justify;">Nun wechselt ihr zurück auf die <strong>MainPage.xaml</strong> und klickt doppelt auf den Button, damit wir die Suche nach dem String noch implementieren können. In die automatisch generierte Methode tragt ihr die folgende Zeile ein, welche einfach die <pre class="crayon-plain-tag">Refresh()</pre>-Funktion in unserem Modell aufruft:</p>
<p></p><pre class="crayon-plain-tag">App.MainPageViewModel.Refresh();</pre><p>Nun gebt ihr in dem Konstruktor, unterhalb von <pre class="crayon-plain-tag">this.InitializeComponent()</pre> noch die folgende Code-Zeile ein:</p><pre class="crayon-plain-tag">this.DataContext = App.MainPageViewModel;</pre><p></p>
<p style="text-align: justify;">Nun solltet ihr spätestens eine Internetverbindung herstellen und dann könnt ihr über den &#8220;Play-Button&#8221; die App ausführen.</p>
<div id="attachment_3464" class="wp-caption aligncenter" style="width: 775px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil2_06.png"><img class=" wp-image-3464  " alt="die bisherige App" src="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil2_06.png" width="765" height="430" /></a>
<p class="wp-caption-text">die bisherige App</p>
</div>
<p style="text-align: justify;">Somit haben wir jetzt bereits eine lauffähige Version unserer Twitter-Anwendung geschrieben. Diese Stand nehmen wir nun in den weiteren Teilen der Serie als Grundlage und werde somit tolle Windows 8 Features in die App integrieren.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small>
<ol class="footnotes">
<li id="footnote_0_3459" class="footnote">Die Zeile befindet sich innerhalb der Page.Resources.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/twittersearch-app-fuer-windows-8-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TwitterSearch-App f&#252;r Windows 8 #1</title>
		<link>http://www.tsjdev.de/twittersearch-app-fuer-windows-8-1/</link>
		<comments>http://www.tsjdev.de/twittersearch-app-fuer-windows-8-1/#comments</comments>
		<pubDate>Tue, 05 Mar 2013 17:30:56 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[Projekt]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[projekt]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3378</guid>
		<description><![CDATA[Willkommen zur neuen Serie hier bei tsjDEV.de. Wie der Name es schon vermuten l&#228;sst, m&#246;chte ich in dieser Serie eine Twitter-Suche implementieren. Dazu stellen wir dem Nutzer zun&#228;chst eine TextBox zur Verf&#252;gung, wo er einen Hashtag1 eintragen kann und dann werden die aktuellsten Tweets2 zu diesem Thema abgerufen und &#252;bersichtlich dargestellt. Im Verlaufe der Serie<p><a href="http://www.tsjdev.de/twittersearch-app-fuer-windows-8-1/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Willkommen zur neuen Serie hier bei tsjDEV.de. Wie der Name es schon vermuten lässt, möchte ich in dieser Serie eine Twitter-Suche implementieren. Dazu stellen wir dem Nutzer zunächst eine <strong>TextBox</strong> zur Verfügung, wo er einen Hashtag<sup><a href="http://www.tsjdev.de/twittersearch-app-fuer-windows-8-1/#footnote_0_3378" id="identifier_0_3378" class="footnote-link footnote-identifier-link" title="Ein Hashtag ist ein Stichwort in Form eines Tags, das insbesondere bei Twitter Verwendung findet. Die Bezeichnung stammt vom Doppelkreuz, mit dem das betreffende Wort markiert wird.">1</a></sup> eintragen kann und dann werden die aktuellsten Tweets<sup><a href="http://www.tsjdev.de/twittersearch-app-fuer-windows-8-1/#footnote_1_3378" id="identifier_1_3378" class="footnote-link footnote-identifier-link" title="Die Beitr&auml;ge bei Twitter selbst werden als &quot;Tweets&quot; oder &bdquo;Updates&ldquo; bezeichnet.">2</a></sup> zu diesem Thema abgerufen und übersichtlich dargestellt. Im Verlaufe der Serie werden wir diese App immer wieder um weitere Windows 8 Features ergänzen. Die Gesamtserie umfasst dabei 5 Teile.</p>
<p style="text-align: justify;"><span id="more-3378"></span></p>
<p style="text-align: justify;">Zunächst starten wir Visual Studio Express 2012 for Windows 8 und wählen <b>File</b> – <b>New Project</b>. Ich werde die Anwendung in C# entwickeln und daher wähle ich <b>Visual C#</b> &#8211; <b>Windows Store</b> – <b>Blank App (XAML)</b>. Anschließend wählen wir noch einen Namen für das Projekt, z.B. <i>TwitterSearch</i>. Anschließend bestätigen wir diesen Dialog mit einem Klick auf <b>OK</b>.</p>
<div id="attachment_3379" class="wp-caption aligncenter" style="width: 857px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil1_01.jpg"><img class="size-full wp-image-3379" alt="Anlegen der TwitterSearch-App in VS2012" src="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil1_01.jpg" width="847" height="515" /></a>
<p class="wp-caption-text">Anlegen der TwitterSearch-App in VS2012</p>
</div>
<p style="text-align: justify;">Anschließend legt Visual Studio bereits ein paar Dateien an, welche für die App notwendig sind. Im Lauf dieser Serie werden wir bestehende Dateien ergänzen bzw. ändern, aber auch neue Dateien anlegen.</p>
<div id="attachment_3380" class="wp-caption aligncenter" style="width: 939px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil1_02.jpg"><img class="size-full wp-image-3380" alt="leere App" src="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil1_02.jpg" width="929" height="565" /></a>
<p class="wp-caption-text">leere App</p>
</div>
<p style="text-align: justify;">Zunächst wollen wir das Daten-Modell für unsere Twitter-Suche implementieren. Dazu gehen wir mit der rechten Maustaste auf TwitterSearch und wählen <b>Add</b> – <b>New Folder</b>. Diesen neuen Ordner nennen wir <i>DataModel</i>. Nun klicken wir mit der rechten Maustaste auf den neuen Ordner <i>DataModel</i> und wählen <b>Add</b> – <b>Class</b>. Diese Klasse nennen wir <i>TweetItem</i>. Nun sollten wir das folgende Bild haben:</p>
<div id="attachment_3381" class="wp-caption aligncenter" style="width: 939px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil1_03.jpg"><img class="size-full wp-image-3381" alt="die TweetItem-Klasse" src="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil1_03.jpg" width="929" height="565" /></a>
<p class="wp-caption-text">die TweetItem-Klasse</p>
</div>
<p style="text-align: justify;">Zunächst ergänzen wir <pre class="crayon-plain-tag">public</pre> vor<pre class="crayon-plain-tag">class</pre>, damit wir später auf die Klasse zugreifen können. Anschließend fügen wir noch eine Referenz auf <pre class="crayon-plain-tag">Windows.UI.Xaml.Media</pre> hinzu. Dazu geben wir oberhalb der Klassen-Definition die folgende Zeile ein:</p>
<p></p><pre class="crayon-plain-tag">using Windows.UI.Xaml.Media;</pre><p></p>
<p style="text-align: justify;">Anschließend geben wir die drei Eigenschaften, welche ein Tweet bei uns erhalten soll in die Klasse ein. Dazu zählen der Autor, die eigentliche Nachricht, sowie das Autor-Bild. Es ergibt sich somit die folgende Klasse:</p>
<p></p><pre class="crayon-plain-tag">public class TweetItem
{
    public string Author { get; set; }
    public string Body { get; set; }
    public ImageSource Image { get; set; }
}</pre><p></p>
<p style="text-align: justify;">Damit haben wir bereits einen Tweet definiert. Nun definieren wir noch eine weitere Klasse, welche die Tweets abruft und für uns zur weiteren Verwendung aufbereitet. Dazu klicken wir erneut mit der rechten Maustaste auf den Ordner <i>DataModel</i> und wählen <b>Add</b> – <b>Class</b>. Als Namen wählen wir <i>MainPageViewModel</i>, denn hierbei handelt es sich um das ViewModel der späteren MainPage.</p>
<p>Auch hier müssen wir ein paar Referenzen hinzufügen, welche wir innerhalb der Klasse benötigen. Gebt dazu einfach im oberhalb der Klassen-Definition die folgenden Zeilen ein:</p><pre class="crayon-plain-tag">using System.Collections.ObjectModel;
using System.ComponentModel;
using Windows.UI.Xaml.Media.Imaging;
using Windows.Web.Syndication;</pre><p>Ihr solltet nun folgendes auf dem Bildschirm sehen:</p>
<div id="attachment_3383" class="wp-caption aligncenter" style="width: 939px"><a href="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil1_04.jpg"><img class="size-full wp-image-3383" alt="das leere MainPageViewModel" src="http://www.tsjdev.de/wp-content/uploads/2013/03/twittersearch_teil1_04.jpg" width="929" height="565" /></a>
<p class="wp-caption-text">das leere MainPageViewModel</p>
</div>
<p style="text-align: justify;">Auch diese Klassen machen wir zunächst<pre class="crayon-plain-tag">public</pre>. Dann wollen wir noch das<pre class="crayon-plain-tag">INotifyPropertyChanged</pre>-Interface verwenden. Dazu geben wir hinter der Klassen-Definition<sup><a href="http://www.tsjdev.de/twittersearch-app-fuer-windows-8-1/#footnote_2_3378" id="identifier_2_3378" class="footnote-link footnote-identifier-link" title="vor der &ouml;ffnenden geschweiften Klammer">3</a></sup> einfach <pre class="crayon-plain-tag">: INotfiyPropertyChagend</pre> ein. Wir erhalten somit die folgende Klassen-Definition:</p>
<p></p><pre class="crayon-plain-tag">public class MainPageViewModel : INotifyPropertyChanged</pre><p></p>
<p style="text-align: justify;">Nun definieren wir ein paar Variablen. Dazu gehört zum Beispiel die URL zum Twitter-Dienst oder auch die Liste zum Verwalten der gefunden Tweets. Dazu geben wir die folgenden Zeilen in die Klassen-Definition ein:</p>
<p></p><pre class="crayon-plain-tag">private const string _twitterUri = "http://search.twitter.com/search.rss?q=";
private string _searchTag = String.Empty;
private TweetItem _selectedTweet;
private ObservableCollection&lt;TweetItem&gt; _tweets = new ObservableCollection&lt;TweetItem&gt;();</pre><p></p>
<p style="text-align: justify;">Im nächsten Schritt implementieren wir das angegebene Interface. Dazu geben wir den folgenden Code oberhalb der schließenden geschweiften Klammer ein:</p>
<p></p><pre class="crayon-plain-tag">public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
    if (PropertyChanged != null)
    {
        PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    }
}</pre><p></p>
<p style="text-align: justify;">Damit wir nun auch außerhalb dieser Klasse auf die Daten zugreifen können, definieren wir eine Reihe von Getter- und Setter-Methoden. Diese fügen wir unterhalb der Methode <pre class="crayon-plain-tag">OnPropertyChanged()</pre> ein:</p>
<p></p><pre class="crayon-plain-tag">public string SearchTag
{
    get { return _searchTag; }
    set { if (value != _searchTag) { _searchTag = value; OnPropertyChanged("SearchTag"); } }
}

public TweetItem SelectedTweet
{
    get { return _selectedTweet; }
    set { if (value != _selectedTweet) { _selectedTweet = value; } }
}

public ObservableCollection&lt;TweetItem&gt; Tweets
{
    get { return _tweets; }
}</pre><p>Nun erstellen wir den Konstruktor, welcher zunächst jedoch leer bleibt und erst im weiteren Verlauf der Serie mit Inhalt gefüllt wird.</p><pre class="crayon-plain-tag">public MainPageViewModel()
{

}</pre><p></p>
<p style="text-align: justify;">Abschließend benötigen wir noch eine Refresh-Methode, welche den eingegeben Search-Tag nimmt und die entsprechende Anfrage an Twitter sendet. Dann werden die übermittelten Tweets an die Liste übergeben, so dass wir später darauf Zugriff haben. Die Methode Refresh() hat nun den folgenden Rumpf:</p>
<p></p><pre class="crayon-plain-tag">public async void Refresh()
{
    var uri = new Uri(_twitterUri + Uri.EscapeUriString(_searchTag));

    var client = new SyndicationClient();
    var feed = await client.RetrieveFeedAsync(uri);

    _tweets.Clear();

    foreach (var item in feed.Items)
    {
        _tweets.Add(new TweetItem()
        {
            Author = item.Authors.First().NodeValue,
            Body = item.Title.Text,
            Image = new BitmapImage(new Uri(item.ElementExtensions.First(e =&gt; e.NodeName == "image_link").NodeValue))
        });
    }
}</pre><p></p>
<p style="text-align: justify;">Zunächst wird hier die endgültige URL zur Twitter-Sucher erstellt, bevor ein sogenannter SyndicationClient für den Abruf der Daten zuständig ist. Abschließend werden die Ergebnisse noch der Tweet-Liste hinzugefügt.</p>
<p style="text-align: justify;">Damit haben wir auch schon das Ende des ersten Teils dieser Twitter-App erreicht. Im nächsten Teil werden wir eine erste Ansicht bauen, welche dann die Daten aus dem Modell entnimmt und uns auf der <strong>MainPage</strong> darstellt.</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small>
<ol class="footnotes">
<li id="footnote_0_3378" class="footnote">Ein Hashtag ist ein Stichwort in Form eines Tags, das insbesondere bei Twitter Verwendung findet. Die Bezeichnung stammt vom Doppelkreuz, mit dem das betreffende Wort markiert wird.</li>
<li id="footnote_1_3378" class="footnote">Die Beiträge bei Twitter selbst werden als &#8220;Tweets&#8221; oder „Updates“ bezeichnet.</li>
<li id="footnote_2_3378" class="footnote">vor der öffnenden geschweiften Klammer</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/twittersearch-app-fuer-windows-8-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>App-Empfehlung #7</title>
		<link>http://www.tsjdev.de/app-empfehlung-7/</link>
		<comments>http://www.tsjdev.de/app-empfehlung-7/#comments</comments>
		<pubDate>Mon, 04 Mar 2013 17:30:03 +0000</pubDate>
		<dc:creator>Thomas Sebastian Jensen</dc:creator>
				<category><![CDATA[AppDay]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[app]]></category>
		<category><![CDATA[audials radio]]></category>
		<category><![CDATA[windows 8]]></category>

		<guid isPermaLink="false">http://www.tsjdev.de/?p=3385</guid>
		<description><![CDATA[Was w&#228;re das Leben ohne Musik? Ich denke, dass die Antwort eindeutig sehr trist und langweilig lauten sollte. Daher m&#246;chte ich heute die App Audials Radio f&#252;r Windows 8 vorstellen. Diese App holt euch zahlreiche Radiosender schnell und unkompliziert auf euren Rechner. Einfach f&#252;r einen Radiosender oder ein Genre entscheiden und schon ert&#246;nt die Musik<p><a href="http://www.tsjdev.de/app-empfehlung-7/">Weiterlesen &#8594;</a></p>]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;">Was wäre das Leben ohne Musik? Ich denke, dass die Antwort eindeutig sehr trist und langweilig lauten sollte. Daher möchte ich heute die App <strong>Audials Radio</strong> für Windows 8 vorstellen. Diese App holt euch zahlreiche Radiosender schnell und unkompliziert auf euren Rechner. Einfach für einen Radiosender oder ein Genre entscheiden und schon ertönt die Musik aus den Boxen.</p>
<p style="text-align: justify;"><span id="more-3385"></span></p>
<p style="text-align: justify;"><!-- WP-Appbox (Store: windowsstore // ID: f65f3eba-715a-4990-99af-eb579e82c1bc) -->
<div class="appcontainer feed windowsstore">
<table width="100%;">
<tr>
<td style="width: 88px;"><a target="_blank" rel="nofollow" href="http://apps.microsoft.com/windows/de-DE/app/f65f3eba-715a-4990-99af-eb579e82c1bc" title="Audials Radio"><img style="border-radius: 6px !important; border: 0 !important; padding: 0 !important; width: 80px !important; height: 80px !important;" src="http://wscont1.apps.microsoft.com/winstore/1x/337ca48f-cace-4170-a5b1-85f48c093fcb/Icon.62485.png" alt="Audials Radio" /></a></td>
<td>
				<a target="_blank" rel="nofollow" href="http://apps.microsoft.com/windows/de-DE/app/f65f3eba-715a-4990-99af-eb579e82c1bc" title="Audials Radio">Audials Radio<img src="http://www.tsjdev.de/wp-content/plugins/wp-appbox/img/windowsstore-small.png" style="margin-left:6px !important;" /></a><br />
				Preis: Kostenlos			</td>
</tr>
</table>
</div>
<p><!-- /WP-Appbox --></p>
<p style="text-align: justify;">Durch die eingebaute Suchfunktion in der Charms-Bar findet ihr schnell und unkompliziert den Radiosender eurer Wahl. Die App läuft dann bequem im Hintergrund und ihr könnt gewohnt mit eurem Rechner oder Tablet weiterarbeiten. Dabei könnt ihr den Radiosender sogar kurzfristig pausiert und setzt dann ab dem Zeitpunkt wieder mit der Musik ein. Dabei beschränkt sich die App auch nicht nur auf deutsche Radiosender, denn laut der App-Beschreibung hat <strong>Audials Radio</strong> mehr als 40.000 Sender im Angebot und somit ist garantiert für jeden Geschmack etwas dabei!</p>
<hr /><small>Copyright &copy; 2010-2013<br /> Dieser Feed ist nur für den persönlichen, nicht gewerblichen Gebrauch bestimmt und Inhalt des Angebotes von www.tsjdev.de. (Digital Fingerprint: 65515e974e1962d25342c76264cf0cd7)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tsjdev.de/app-empfehlung-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>