<?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>Christian Giesswein</title>
	<atom:link href="http://www.giesswein-web.at/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.giesswein-web.at</link>
	<description>www.Giesswein-Web.at - It &#38; more ...</description>
	<lastBuildDate>Sat, 11 May 2013 11:43:31 +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>Exchange, Outlook und Facebookbilder</title>
		<link>http://www.giesswein-web.at/exchange-outlook-und-facebookbilder/</link>
		<comments>http://www.giesswein-web.at/exchange-outlook-und-facebookbilder/#comments</comments>
		<pubDate>Sat, 11 May 2013 11:43:31 +0000</pubDate>
		<dc:creator>Christian Giesswein</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.giesswein-web.at/?p=575</guid>
		<description><![CDATA[<p>Hallo, ist zwar nur eine Kleingkeit durch die Soziale Integration von Facebook überall, aber dennoch habe ich bei meinen Kontakten sehr gern ein Profilbild fix hinterlegt. Hierfür habe ich mir ...</p><p>The post <a href="http://www.giesswein-web.at/exchange-outlook-und-facebookbilder/">Exchange, Outlook und Facebookbilder</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Hallo,</p>
<p>ist zwar nur eine Kleingkeit durch die Soziale Integration von Facebook überall, aber dennoch habe ich bei meinen Kontakten sehr gern ein Profilbild fix hinterlegt.</p>
<p>Hierfür habe ich mir ein kleines Addin für Outlook 2013 geschrieben um alle Profilbilder aus Facebook rauszuziehen und bei den Kontakten zu hinterlegen:</p>
<pre class="brush: csharp; gutter: true">private void StartSynchronizing()
{
    MAPIFolder folderContacts = this.Application.ActiveExplorer().Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
    Items searchFolder = folderContacts.Items;

    FacebookClient client = new FacebookClient(&quot;&lt;FACEBOOKAPIKEY&gt;&quot;);
    dynamic info = client.Get(&quot;/me/friends&quot;);
    var friends = (JsonArray)info.data;
            
    WebClient webClient = new WebClient();

    var allFriends = friends.Cast&lt;JsonObject&gt;().Select(x =&gt; new
    {
        Name = ((string)x[&quot;name&quot;]).ToLower(),
        Id = (string)x[&quot;id&quot;]
    }).OrderBy(x =&gt; x.Name).ToList();

    foreach (ContactItem contact in searchFolder.Cast&lt;ContactItem&gt;().Where(x =&gt; x.FirstName != null &amp;&amp; x.LastName != null))
    {
        Trace.WriteLine(contact.LastNameAndFirstName);
        var lastName = contact.LastName.ToLower();
        var firstName = contact.FirstName.ToLower();

        var user = allFriends.FirstOrDefault(x =&gt; x.Name.Contains(lastName) &amp;&amp;
                                                    x.Name.Contains(firstName));
        if (user != null)
        {
            var b = contact.HasPicture;
            var imageSrc = string.Format(&quot;http://graph.facebook.com/{0}/picture?type=large&quot;, user.Id);
            var img = webClient.DownloadData(imageSrc);
            File.WriteAllBytes(&quot;temp.jpg&quot;, img);
            contact.AddPicture(&quot;temp.jpg&quot;);
            contact.Save();
            File.Delete(&quot;temp.jpg&quot;);
        }
    }
}</pre>
<p>The post <a href="http://www.giesswein-web.at/exchange-outlook-und-facebookbilder/">Exchange, Outlook und Facebookbilder</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.giesswein-web.at/exchange-outlook-und-facebookbilder/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Phone 8 &#8211; Facebook Beta</title>
		<link>http://www.giesswein-web.at/windows-phone-8-facebook-beta/</link>
		<comments>http://www.giesswein-web.at/windows-phone-8-facebook-beta/#comments</comments>
		<pubDate>Fri, 10 May 2013 16:16:59 +0000</pubDate>
		<dc:creator>Christian Giesswein</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.giesswein-web.at/?p=566</guid>
		<description><![CDATA[<p>Hallo, ich bin ja schon immer ein Fan von Windows Phone und liebe es eigentlich. Nachdem ich aus einer jüngeren Generation komme, bin ich mit Social Media aufgewachsen und meine ...</p><p>The post <a href="http://www.giesswein-web.at/windows-phone-8-facebook-beta/">Windows Phone 8 &#8211; Facebook Beta</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Hallo, ich bin ja schon immer ein Fan von Windows Phone und liebe es eigentlich. Nachdem ich aus einer jüngeren Generation komme, bin ich mit Social Media aufgewachsen und meine Facebook App ist mein täglicher Begleiter. Jetzt bin ich zufällig über die neue Facebook App für Windows Phone 8 drübergestolpert und muss sagen: &#8220;Wow&#8221; :-) Prinzipiell der richtige Weg den Microsoft mit der App da einschlägt, leider noch etwas verbuggt.</p>
<p>Download für Interessierte: <a href="http://www.windowsphone.com/de-de/store/app/facebook-beta/93da5d29-daf0-4783-9ed5-a87b33247ec6">http://www.windowsphone.com/de-de/store/app/facebook-beta/93da5d29-daf0-4783-9ed5-a87b33247ec6</a></p>
<div id="attachment_569" class="wp-caption alignleft" style="width: 190px"><a href="http://www.giesswein-web.at/wp-content/uploads/2013/05/wp_ss_20130504_0004.png"><img class="size-medium wp-image-569" alt="Windows Phone 8 - Facebook Beta" src="http://www.giesswein-web.at/wp-content/uploads/2013/05/wp_ss_20130504_0004-180x300.png" width="180" height="300" /></a><p class="wp-caption-text">Windows Phone 8 &#8211; Facebook Beta</p></div>
<div id="attachment_568" class="wp-caption alignleft" style="width: 190px"><a href="http://www.giesswein-web.at/wp-content/uploads/2013/05/wp_ss_20130504_0003.png"><img class="size-medium wp-image-568" alt="Windows Phone 8 - Facebook Beta" src="http://www.giesswein-web.at/wp-content/uploads/2013/05/wp_ss_20130504_0003-180x300.png" width="180" height="300" /></a><p class="wp-caption-text">Windows Phone 8 &#8211; Facebook Beta</p></div>
<div id="attachment_567" class="wp-caption alignleft" style="width: 190px"><a href="http://www.giesswein-web.at/wp-content/uploads/2013/05/wp_ss_20130504_0002.png"><img class="size-medium wp-image-567" alt="Windows Phone 8 - Facebook Beta" src="http://www.giesswein-web.at/wp-content/uploads/2013/05/wp_ss_20130504_0002-180x300.png" width="180" height="300" /></a><p class="wp-caption-text">Windows Phone 8 &#8211; Facebook Beta</p></div>
<p>The post <a href="http://www.giesswein-web.at/windows-phone-8-facebook-beta/">Windows Phone 8 &#8211; Facebook Beta</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.giesswein-web.at/windows-phone-8-facebook-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entitiy Framework &#8211; FirstOrDefault vs. SingleOrDefault</title>
		<link>http://www.giesswein-web.at/entitiy-framework-firstordefault-vs-singleordefault/</link>
		<comments>http://www.giesswein-web.at/entitiy-framework-firstordefault-vs-singleordefault/#comments</comments>
		<pubDate>Thu, 28 Mar 2013 11:33:31 +0000</pubDate>
		<dc:creator>Christian Giesswein</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.giesswein-web.at/?p=559</guid>
		<description><![CDATA[<p>Eine kleine Frage die mich immer schon etwas beschäftigt hat, war der Unterschied zwischen FirstOrDefault und SingleOrDefault bei der Verwendung von LINQ. Prinzipiell war mir der Unterschied bekannt, wenn ich ...</p><p>The post <a href="http://www.giesswein-web.at/entitiy-framework-firstordefault-vs-singleordefault/">Entitiy Framework &#8211; FirstOrDefault vs. SingleOrDefault</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Eine kleine Frage die mich immer schon etwas beschäftigt hat, war der Unterschied zwischen FirstOrDefault und SingleOrDefault bei der Verwendung von LINQ.</p>
<p>Prinzipiell war mir der Unterschied bekannt, wenn ich eine Datenmenge abfrage, bekomme ich durch:</p>
<ul>
<li>FirstOrDefault den erstbesten Treffer oder eben den &#8220;standardwert&#8221; &#8211; default(T).</li>
<li>SingleOrDefault liefert mir genau einen Treffer oder default(T) ABER sollte es ein zweites Element geben, dass die Einschränkung erfüllt so wird eine Exception geworfen.</li>
</ul>
<p>Soweit war mir das auch länger schon bewusst, fraglich war mir nur was passiert eigentlich bei LINQ2SQL ?</p>
<p>Dafür habe ich folgenden Code geschrieben und einen Breakpoint gesetzt.</p>
<pre class="brush: csharp; gutter: true">var p = db.Persons.FirstOrDefault(x =&gt; x.Id == 1);
p = db.Persons.SingleOrDefault(x =&gt; x.Id == 1);</pre>
<p>IntelliTrace verrät mir auch welches SQL-Kommando eigentlich abgesetzt wurde&#8230; und da sieht man schon den kleinen, aber feinen Unterschied.</p>
<p><a href="http://www.giesswein-web.at/wp-content/uploads/2013/03/11.png"><img class="alignnone size-full wp-image-560" alt="1" src="http://www.giesswein-web.at/wp-content/uploads/2013/03/11.png" width="650" height="70" /></a></p>
<p>&nbsp;</p>
<p>LINQ2SQL generiert also ein SELECT Statement der 2 Datensätze abruft,.. sollte also ein zweiter Eintrag zurückkommen so wird eine Exception ausgelöst ;-)</p>
<p>The post <a href="http://www.giesswein-web.at/entitiy-framework-firstordefault-vs-singleordefault/">Entitiy Framework &#8211; FirstOrDefault vs. SingleOrDefault</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.giesswein-web.at/entitiy-framework-firstordefault-vs-singleordefault/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery und ASP.NET WebAPI &#8211; Ein Selbstversuch</title>
		<link>http://www.giesswein-web.at/jquery-und-asp-net-webapi-ein-selbstversuch/</link>
		<comments>http://www.giesswein-web.at/jquery-und-asp-net-webapi-ein-selbstversuch/#comments</comments>
		<pubDate>Thu, 28 Mar 2013 10:44:15 +0000</pubDate>
		<dc:creator>Christian Giesswein</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.giesswein-web.at/?p=549</guid>
		<description><![CDATA[<p>Hi, sooo&#8230; jQuery toll.. ich kann Sachen einblenden, ausblenden, faden, tooglen, kann komfortabel auf User-Interaktionen reagieren&#8230;. aber viel interessanter finde ich den einfachen AJAX Ansatz durch jQuery. Doch wie funktioniert ...</p><p>The post <a href="http://www.giesswein-web.at/jquery-und-asp-net-webapi-ein-selbstversuch/">jQuery und ASP.NET WebAPI &#8211; Ein Selbstversuch</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.giesswein-web.at/wp-content/uploads/2013/03/3.png"><img class="size-thumbnail wp-image-553 alignright" title="jQuery und WebAPI" alt="jQuery und WebAPI" src="http://www.giesswein-web.at/wp-content/uploads/2013/03/3-150x150.png" width="150" height="150" /></a></p>
<p>Hi,</p>
<p>sooo&#8230; jQuery toll.. ich kann Sachen einblenden, ausblenden, faden, tooglen, kann komfortabel auf User-Interaktionen reagieren&#8230;. aber viel interessanter finde ich den einfachen AJAX Ansatz durch jQuery.<br />
Doch wie funktioniert das ganze in Verbindung mit der WebAPI (Ich verweise gern auf meinen Artikel in der Visual Studio One ;-)&#8230;)?</p>
<p>Ich habe zu meinen bestehenden ASP.NET MVC Projekt im Ordner &#8220;Controllers&#8221; einen Unterordner &#8220;API&#8221; erstellt und dort liegen auch alle WebAPI-Controller.<br />
Dort kann man natürlich nun schön seine API-Funktionen bauen und per REST anbieten, dafür gibts meiner Meinung nach recht viel Anleitungen zum nachlesen.</p>
<p>Die viel knackigere Frage ist doch, wie spreche ich diese WebAPI aus meiner Anwendung heraus an ?</p>
<p>Mein ApiController besteht aus 2 Methoden, einer zum abrufen, eine fürs Daten hinzufügen:</p>
<pre class="brush: csharp; gutter: true">[HttpGet] //Optional if methodname starts with Get...
public IEnumerable&lt;DateTime&gt; GetDate()
{
    return Enumerable.Range(0, 10).Select(x =&gt; DateTime.Today.AddDays(x));
}

[HttpPost]
public void SendData(IEnumerable&lt;DateTime&gt; dates)
{

}</pre>
<p>Das heißt, bei einer GET Anfrage werden heute und die nächsten 9 Tage als DateTime zurückgegeben, bei einem POST der mehrere Daten (Mehrzahl Datum :-)..) beinhält wird diese Methode aufgerufen.<br />
jQuery mäßig sieht das ganze dann so aus:</p>
<pre class="brush: csharp; gutter: true">$(&quot;#getData&quot;).click(function () {
    $.get(&quot;API/ApiHome&quot;, function (data) {
        $(&quot;#result&quot;).empty();
        $.each(data, function (idx, item) {
            $(&quot;#result&quot;).append(&quot;&lt;li&gt;&quot; + item + &quot;&lt;/li&gt;&quot;);
        });
    });
});

$(&quot;#sendData&quot;).click(function () {

    var data = [&quot;2013-03-28&quot;, &quot;2013-03-29&quot;];

    $.ajax({
        type: &quot;POST&quot;,
        url: &quot;API/ApiHome&quot;,
        contentType: &quot;application/json&quot;,
        data: JSON.stringify(data)
    });
});</pre>
<p>Wobei das HTML recht simpel gehalten ist:</p>
<pre class="brush: html; gutter: true">&lt;a id=&quot;getData&quot; href=&quot;#&quot;&gt;Frage Daten ab...&lt;/a&gt;
&lt;ul id=&quot;result&quot;&gt;&lt;/ul&gt;
&lt;a id=&quot;sendData&quot; href=&quot;#&quot;&gt;Sende Daten...&lt;/a&gt;</pre>
<p>&nbsp;</p>
<p>Schwupps werden die Daten auf &#8220;Linkklick&#8221; asynchron geladen, und auch bei Bedarf werden 2 Datensätze wieder zum Service geschickt.<br />
Achtung: $.POST() würde dahingehend verleiten den POST-Request mit dieser Methode zu machen, dies funktioniert aber nicht da der ContentType &#8220;falsch&#8221; gesetzt wird (Content-Type: application/x-www-form-urlencoded).</p>
<p>Das Beispiel komplett: <a href="http://www.giesswein-web.at/wp-content/uploads/2013/03/jQueryWebAPI.zip">jQueryWebAPI</a></p>
<p>&nbsp;</p>
<p>The post <a href="http://www.giesswein-web.at/jquery-und-asp-net-webapi-ein-selbstversuch/">jQuery und ASP.NET WebAPI &#8211; Ein Selbstversuch</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.giesswein-web.at/jquery-und-asp-net-webapi-ein-selbstversuch/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery und ich&#8230;</title>
		<link>http://www.giesswein-web.at/jquery-und-ich/</link>
		<comments>http://www.giesswein-web.at/jquery-und-ich/#comments</comments>
		<pubDate>Thu, 28 Mar 2013 09:49:06 +0000</pubDate>
		<dc:creator>Christian Giesswein</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.giesswein-web.at/?p=541</guid>
		<description><![CDATA[<p>Hallo, ich bin bei weitem kein Webdesigner oder Webdeveloper. Für mich war eigentlich immer die &#8220;Windows-Welt&#8221; bzw. klar gesagt die Anwendungswelt immer mein &#8220;zu Hause&#8221;. Dennoch schaut man gern über ...</p><p>The post <a href="http://www.giesswein-web.at/jquery-und-ich/">jQuery und ich&#8230;</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Hallo,</p>
<p>ich bin bei weitem kein Webdesigner oder Webdeveloper. Für mich war eigentlich immer die &#8220;Windows-Welt&#8221; bzw. klar gesagt die Anwendungswelt immer mein &#8220;zu Hause&#8221;.<br />
Dennoch schaut man gern über den Tellerrand und sieht sich ein wenig um, wie die &#8220;Welt da drüben&#8221; eigentlich so aussieht.</p>
<p>Daher bastele ich gerade recht viel mit ASP.NET MVC, WebAPI und jQuery herum. Ich will es kaum sagen, aber mit jQuery zu arbeiten macht schon Spaß :-)<br />
Mir fehlen hier leider recht häufig &#8220;Best practise&#8221;  Ansätze und ich &#8220;leg halt mal los&#8221;, komme halt auch zum Ziel aber fern ab vom Optimum vermute ich.</p>
<p>Etwas was mich schon länger etwas beschäftigt hat, war Intellisense im VS2012 und Javascript.<br />
Ich arbeite mit einem Masterlayout in ASP.NET MVC und wenn ich die Scriptinkludierung in den HEAD Bereich festlege, verlor ich bis jetzt immer das Intellisense in den &#8220;Subpages&#8221;.</p>
<p>Kleine Abhilfe:</p>
<p><a href="http://www.giesswein-web.at/wp-content/uploads/2013/03/1.png"><img class="wp-image-542 alignnone" alt="1" src="http://www.giesswein-web.at/wp-content/uploads/2013/03/1.png" width="600" height="350" /></a> <a href="http://www.giesswein-web.at/wp-content/uploads/2013/03/2.png"><br />
</a></p>
<p>In den Einstellungen ist standardmäßig folgendes eingestellt:</p>
<p>Daher werden daraus die Referenzen fürs Intellisense gezogen.<br />
Erstellt man nun die _reference.js im Scriptsordner, können per Drag&amp;Drop auch die Javascript Dateien darauf gezogen werden und es werden automatisch die Pfade hinzugefügt.</p>
<p>Voila, ab diesem Zeitpunkt hat man auch brav Intellisense in Dateien wo der Verweis auf jQuery nicht direkt vorhanden ist sondern z.b. erst in der _ViewStart.cshtml definiert wird.</p>
<p><a href="http://www.giesswein-web.at/wp-content/uploads/2013/03/2.png"><img alt="2" src="http://www.giesswein-web.at/wp-content/uploads/2013/03/2.png" width="579" height="189" /></a></p>
<p>The post <a href="http://www.giesswein-web.at/jquery-und-ich/">jQuery und ich&#8230;</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.giesswein-web.at/jquery-und-ich/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>osm2mssql 0.3.0</title>
		<link>http://www.giesswein-web.at/osm2mssql-0-3-0/</link>
		<comments>http://www.giesswein-web.at/osm2mssql-0-3-0/#comments</comments>
		<pubDate>Fri, 22 Mar 2013 20:29:14 +0000</pubDate>
		<dc:creator>Christian Giesswein</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.giesswein-web.at/?p=538</guid>
		<description><![CDATA[<p>Hi, vor kurzem habe ich eine neue Version von osm2mssql veröffentlich, diese ist bei CodePlex abrufbar. Die neue Version ist beim Importvorgang deutlich schneller geworden, und ist der RelationBuilder nun ...</p><p>The post <a href="http://www.giesswein-web.at/osm2mssql-0-3-0/">osm2mssql 0.3.0</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><img class="alignright" alt="" src="http://download-codeplex.sec.s-msft.com/Download?ProjectName=osm2mssql&amp;DownloadId=339435&amp;Build=20310" width="169" height="100" />Hi,</p>
<p>vor kurzem habe ich eine neue Version von osm2mssql veröffentlich, diese ist bei <a title="osm2mssql" href="http://osm2mssql.codeplex.com/" target="_blank">CodePlex </a>abrufbar.<br />
Die neue Version ist beim Importvorgang deutlich schneller geworden, und ist der RelationBuilder nun funktionsfähig.</p>
<p>Daher werden nun auch die Relationen in der Datenbank korrekt hinterlegt.</p>
<p>OpenStreetMap in der Microsoft Welt :-)</p>
<p>The post <a href="http://www.giesswein-web.at/osm2mssql-0-3-0/">osm2mssql 0.3.0</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.giesswein-web.at/osm2mssql-0-3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nachtrag: Entity Framework 5.0 und Index Hint-Workaround</title>
		<link>http://www.giesswein-web.at/nachtrag-entity-framework-5-0-und-index-hint-workaround/</link>
		<comments>http://www.giesswein-web.at/nachtrag-entity-framework-5-0-und-index-hint-workaround/#comments</comments>
		<pubDate>Sat, 09 Mar 2013 18:36:55 +0000</pubDate>
		<dc:creator>Christian Giesswein</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.giesswein-web.at/?p=532</guid>
		<description><![CDATA[<p>Entity Framework abstrahiert uns die SQL &#8211; Welt und wir haben leider keinen direkten Zugriff nun um die Query zu bearbeiten. Ein kleiner Tipp im Bezug auf meinen vorherigen Blogeintrag ...</p><p>The post <a href="http://www.giesswein-web.at/nachtrag-entity-framework-5-0-und-index-hint-workaround/">Nachtrag: Entity Framework 5.0 und Index Hint-Workaround</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.giesswein-web.at/wp-content/uploads/2013/03/Unbenannt1.png"><img class="alignright size-full wp-image-534" alt="Unbenannt" src="http://www.giesswein-web.at/wp-content/uploads/2013/03/Unbenannt1.png" width="677" height="343" /></a>Entity Framework abstrahiert uns die SQL &#8211; Welt und wir haben leider keinen direkten Zugriff nun um die Query zu bearbeiten.<br />
Ein kleiner Tipp im Bezug auf meinen vorherigen Blogeintrag aber.<br />
Sobald man in eine SQL-Query die einen Spatialen Typ enthält ein order by einbaut, wird der Index auch verwendet.</p>
<p>Plain-SQL:</p>
<pre class="brush: sql; gutter: true">declare @p4 sys.geography
set @p4=convert(sys.geography,0xE6100000010C574DA85B43A04740663FA355AF9F2840)
SELECT TOP (1) *
FROM [info].[AdminLevels] a -- WITH(index(idx_AdminLevelsSpatial))
WHERE ([TagInfo] = 8) AND (([Geo].STIntersects(@p4)) = 1)
order by geo.STDistance(&#039;POINT(0 0)&#039;)</pre>
<p>Entity Framework:</p>
<pre class="brush: csharp; gutter: true">var level = db.AdminLevels
                .AsNoTracking()
                .Where(x =&gt; x.TagInfo == adminLevel &amp;&amp; x.Geo.Intersects(point))
                .OrderBy(x =&gt; x.Geo.Distance(DbGeography.PointFromText(&quot;POINT(0 0)&quot;,4326)))
                .Select(x =&gt; x.Name)
                .FirstOrDefault();</pre>
<p>The post <a href="http://www.giesswein-web.at/nachtrag-entity-framework-5-0-und-index-hint-workaround/">Nachtrag: Entity Framework 5.0 und Index Hint-Workaround</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.giesswein-web.at/nachtrag-entity-framework-5-0-und-index-hint-workaround/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>osm2mssql &#8211; Spatial Index Hint</title>
		<link>http://www.giesswein-web.at/osm2mssql-spatial-index-hint/</link>
		<comments>http://www.giesswein-web.at/osm2mssql-spatial-index-hint/#comments</comments>
		<pubDate>Sat, 09 Mar 2013 18:27:07 +0000</pubDate>
		<dc:creator>Christian Giesswein</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.giesswein-web.at/?p=529</guid>
		<description><![CDATA[<p>Hi, ich dachte bzw. war ich eigentlich der Meinung der &#8220;Bug&#8221; wurde mit SQL 2012 endlich behoben &#8211; leider ist dies aber nicht der Fall. Spatiale Datenabfragen sind mit 2008 ...</p><p>The post <a href="http://www.giesswein-web.at/osm2mssql-spatial-index-hint/">osm2mssql &#8211; Spatial Index Hint</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Hi,</p>
<p>ich dachte bzw. war ich eigentlich der Meinung der &#8220;Bug&#8221; wurde mit SQL 2012 endlich behoben &#8211; leider ist dies aber nicht der Fall.<br />
Spatiale Datenabfragen sind mit 2008 R2 dazugekommen, und ich verwende diese in dem Open-Source Projekt ausgiebig. Leider ist es der Fall, dass die Abfragen nicht so schnell und performant sind, wie ich es gerne hätte und das obwohl ein &#8220;Spatial Index&#8221; vorhanden ist.</p>
<p><a href="http://www.giesswein-web.at/wp-content/uploads/2013/03/Unbenannt.png"><img class="alignright size-full wp-image-530" alt="Unbenannt" src="http://www.giesswein-web.at/wp-content/uploads/2013/03/Unbenannt.png" width="677" height="343" /></a>Folgende Abfrage:</p>
<pre class="brush: sql; gutter: true">SELECT TOP (1) *
FROM [info].[AdminLevels] a WITH(index(idx_AdminLevelsSpatial))
WHERE ([TagInfo] = 8) AND (([Geo].STIntersects(geography::STPointFromText(&#039;{0}&#039;,4326))) = 1)</pre>
<p>Wobei hier eben der sogenannte Index-Hint der entscheidende Unterschied ist.</p>
<p>Meine Testumgebung war erst die LocalDB und anschließend der klassische SQL Express 2012, jedesmal das selbe Ergebnis!<br />
Importiert habe ich hierbei von Openstreetmap ganz Tirol und hab anschließend 20 Anfragen mit zufälligen Reverse Geocoding anfragen gestartet.</p>
<p>Mit Entity Framework 5.0: 100 ms<br />
Mit ADO.NET: 75 ms<br />
Mit ADO.NET und Hint: 20ms<br />
<em id="__mceDel"><br />
</em></p>
<p>Sauberer Performanceschub :-)</p>
<p>The post <a href="http://www.giesswein-web.at/osm2mssql-spatial-index-hint/">osm2mssql &#8211; Spatial Index Hint</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.giesswein-web.at/osm2mssql-spatial-index-hint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTC 8S &#8211; Probleme beim Booten</title>
		<link>http://www.giesswein-web.at/htc-8s-probleme-beim-booten/</link>
		<comments>http://www.giesswein-web.at/htc-8s-probleme-beim-booten/#comments</comments>
		<pubDate>Wed, 20 Feb 2013 20:13:32 +0000</pubDate>
		<dc:creator>Christian Giesswein</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.giesswein-web.at/?p=526</guid>
		<description><![CDATA[<p>Habe heute mein neues HTC 8S in Betrieb genommen &#8211; fast. Leider hing es nämlich in der Bootsequenz fest, und startete andauernt neu. Die Lösung: Nach dem Einschaltvibrieren sofort (!) ...</p><p>The post <a href="http://www.giesswein-web.at/htc-8s-probleme-beim-booten/">HTC 8S &#8211; Probleme beim Booten</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>Habe heute mein neues HTC 8S in Betrieb genommen &#8211; fast.</p>
<p>Leider hing es nämlich in der Bootsequenz fest, und startete andauernt neu.<br />
Die Lösung: Nach dem Einschaltvibrieren sofort (!) &#8220;Lautstärke Minus&#8221; drücken&#8230;</p>
<p>Anschließend kommt ein Ausrufezeichen und nun kommt der beste Trick von HTC: &#8220;Lautstärke Plus &gt; Lautstärke Minus &gt; Power-Taste &gt; Lautstärke Minus&#8221; drücken.<br />
Schwupps, das Ding führt einen Hard Reset durch und anschließend lief es wieder :-)</p>
<p>Guter Einstieg&#8230; das kann ja was werden :-)</p>
<p>The post <a href="http://www.giesswein-web.at/htc-8s-probleme-beim-booten/">HTC 8S &#8211; Probleme beim Booten</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.giesswein-web.at/htc-8s-probleme-beim-booten/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SOLID-Prinzipien</title>
		<link>http://www.giesswein-web.at/solid-prinzipien/</link>
		<comments>http://www.giesswein-web.at/solid-prinzipien/#comments</comments>
		<pubDate>Tue, 19 Feb 2013 12:37:22 +0000</pubDate>
		<dc:creator>Christian Giesswein</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.giesswein-web.at/?p=523</guid>
		<description><![CDATA[<p>SOLID-Prinzipen ? Was steckt da, dahinter? Single Responsibility Principle Eine Klasse hat auch nur eine Verantwortlichkeit. Open/Closed Principle Klassen sollen offen für Erweiterungen sein und geschlossen für Veränderungen. Dementsprechend, statt ...</p><p>The post <a href="http://www.giesswein-web.at/solid-prinzipien/">SOLID-Prinzipien</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></description>
				<content:encoded><![CDATA[<p>SOLID-Prinzipen ? Was steckt da, dahinter?</p>
<p><strong><span style="line-height: 13px;">Single Responsibility Principle</span></strong></p>
<p>Eine Klasse hat auch nur eine Verantwortlichkeit.</p>
<p><strong>Open/Closed Principle</strong></p>
<p>Klassen sollen offen für Erweiterungen sein und geschlossen für Veränderungen.<br />
Dementsprechend, statt eine Klasse mit 100 Methoden zu schreiben, soll per Interface die Interaktionsmöglichkeiten festgelegt werden und nach außen freigegeben werden.</p>
<p>Zum Beispiel Logging &#8211;&gt; ILog gibt an, welche Operationen zur Verfügung stehen (Write, WriteLine,..) und die jeweilige Implementation beschreibt wie geloggt wird (DB, File, Trace,&#8230;)</p>
<pre class="brush: csharp; gutter: true">public class Log
{
    public void LogError(ILog log, Exception ex)
    {
    }
}</pre>
<p><strong></strong><strong>Liskov Substitution Principle</strong></p>
<p>Vereinfacht gesagt: Eine abgeleitete Klasse soll sich gleich Verhalten wie die Basisklasse. Methoden die für gewöhnlich keine erwarteten Exception werfen, sollen auch in den Subklassen keine werfen.</p>
<p><strong></strong><strong>Interface Segration Principle</strong></p>
<p>Interfaces sollen überschaubar sein, und nicht zu komplex. Lieber viele kleine Interfaces als ein riesengroßes. (IDisposable hat genau eine Methode, INotifyPropertyChanged ein Event,.. klein, überschaubar, austauschbar)</p>
<p><strong></strong><strong>Dependency Inversion Principle</strong></p>
<p>Koppelung von Klassen sollten möglich gering gehalten werden. Statt einer konkreten Referenz auf eine Implementierung empfiehlt sich ein Interface.</p>
<p>The post <a href="http://www.giesswein-web.at/solid-prinzipien/">SOLID-Prinzipien</a> appeared first on <a href="http://www.giesswein-web.at">Christian Giesswein</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://www.giesswein-web.at/solid-prinzipien/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
