<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Jan Welker</title>
    <link>http://blog.jan-welker.de/</link>
    <description>.NET and Community</description>
    <language>de-de</language>
    <copyright>Jan Welker</copyright>
    <lastBuildDate>Sat, 28 Jan 2012 07:26:02 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>info@jan-welker.de</managingEditor>
    <webMaster>info@jan-welker.de</webMaster>
    <item>
      <trackback:ping>http://blog.jan-welker.de/Trackback.aspx?guid=f6ddc5ef-50f0-477e-add6-0a3fb56e91ba</trackback:ping>
      <pingback:server>http://blog.jan-welker.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.jan-welker.de/PermaLink,guid,f6ddc5ef-50f0-477e-add6-0a3fb56e91ba.aspx</pingback:target>
      <dc:creator>Jan Welker</dc:creator>
      <wfw:comment>http://blog.jan-welker.de/CommentView,guid,f6ddc5ef-50f0-477e-add6-0a3fb56e91ba.aspx</wfw:comment>
      <wfw:commentRss>http://blog.jan-welker.de/SyndicationService.asmx/GetEntryCommentsRss?guid=f6ddc5ef-50f0-477e-add6-0a3fb56e91ba</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Timeouts-beim-Datenbankzugriff-zwischen-_5803/Sql-Azure_4.png">
            <img style="background-image: none; border-right-width: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Sql-Azure" border="0" alt="Sql-Azure" align="left" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Timeouts-beim-Datenbankzugriff-zwischen-_5803/Sql-Azure_thumb_1.png" width="121" height="124" />
          </a>Bei
einer Webanwendung, dich gerade in ASP.NET entwickle, bin ich vor kurzem auf eine
große Anzahl von Verbindungsproblemen zwischen Windows Azure (IIS) und SQL Azure gestoßen.
</p>
        <p>
Die Webseite nutzt Windows Azure, AppFabric-Cache und SQL Azure. Alles lag im Rechenzentrum
West-Europa.
</p>
        <p>
Wie haben sich die Probleme geäußert und wann sind sie aufgetreten?
</p>
        <p>
Beim Datenbankzugriff mit dem Entity Framework gab es folgende Exceptions:
</p>
        <ul>
          <li>
Invalid attempt to read when no data is present. 
</li>
          <li>
The underlying provider failed on Open. 
</li>
          <li>
Calling 'Read' when the data reader is closed is not a valid operation. 
</li>
          <li>
An error occurred while reading from the store provider's data reader. 
</li>
          <li>
A connection was successfully established with the server, but then an error occurred
during the pre-login handshake. (provider: TCP Provider, error: 0 - An existing connection
was forcibly closed by the remote host.) 
</li>
          <li>
A transport-level error has occurred when receiving results from the server. (provider:
TCP Provider, error: 0 - The semaphore timeout period has expired.) 
</li>
        </ul>
        <p>
Die Fehler sind sind aufgetreten, sobald die Webseite etwas stärker belastet wurde.
Dies geschah immer dann, wenn die Webseite durch einen Bot (z.B. Google oder Bing)
gecrawlt wurde. Eigentlich sollten solche geringen Lastschwankungen Windows Azure
bzw. SQL Azure nicht weiter beeindrucken - dachte ich.<br /><br />
Mein erster Versuch die Fehler zu beheben, war die Größe der VM Instanz zu erhöhen.
Leider brachte dies keine Besserung.<br />
An meinem Code konnten diese Fehler nicht liegen, da die Webseite vor dem Umzug zu
Azure schon einige Monate auf meinem eigenen Server fehlerfrei lief.<br />
Ich schilderte diese Probleme dem Azure Support und war von der Antwort sehr überrascht.
Der Support wusste von dem Problem und hatte auch einen Namen dafür parat: “Transient
Conditions”. Ich wurde auf einen <a href="http://windowsazurecat.com/2010/10/best-practices-for-handling-transient-conditions-in-sql-azure-client-applications/" target="_blank">Artikel</a> vom
“Windows Azure Customer Advisory Team” hingewiesen, in dem folgendes zu lesen ist:
</p>
        <blockquote>The database connections may also be dropped due to the variety of reasons
related to network connectivity between the client and distant Microsoft data centers:
quality of network, intermittent network faults in the client’s LAN or WAN infrastructure
and other transient technical reasons.</blockquote>
        <p>
Als Lösung wird der Einsatz des so genannten <a href="http://code.msdn.microsoft.com/Transient-Fault-Handling-b209151f" target="_blank">Transient
Fault Handling Framework</a> vorgeschlagen, das im wesentlichen nichts weiter macht,
als den Datenbankzugriff zu überwachen. Im Fehlerfall wird der Datenbankzugriff einfach
erneut versucht.<br /><br />
Ich habe mich aus mehreren Gründen gegen den Einsatz dieses Frameworks entschieden:
</p>
        <ul>
          <li>
das Framework ist riesengroß und hat einige Abhängigkeiten 
</li>
          <li>
es ist schlecht dokumentiert 
</li>
          <li>
ich sehe nicht ein, Infrastruktur-Fehler im Code auszugleichen, wodurch die Ladegeschwindigkeit
der Webseite sinken würde 
</li>
        </ul>
        <p>
Gerade zum letzten Punkt, der Performance, habe ich einige Versuche gemacht. 
<br />
30 bis 50 Versuche um Daten zu lesen waren im Fehlerfall keine Seltenheit und das,
obwohl Datenbank und IIS im selben Azure – Rechenzentrum (West-Europa) lagen. Die
Performance der Webseite würde mit dieser Strategie deutlich in die Knie gehen.<br /><br />
Als nächstes habe ich versucht herauszufinden, ob man die Verbindungsprobleme nicht
anders in den Griff bekommen kann.<br />
Ich habe die Webseite wieder auf meinem eigenen Webserver gelegt, aber die Datenbank
bei Azure gelassen, schon waren die Fehler weg!
</p>
        <p>
Auch wenn die Webseite im Rechenzentrum Europa Nord liegt und die Datenbank in Europa
West, gibt es keine Probleme. In dieser Konstellation läuft die Webseite jetzt einen
Monat fehlerfrei.
</p>
        <p>
Bin ich mit meinen Erfahrungen ein Einzelfall (Ich habe ja öfter mal Pech mit Server-Hardware),
oder hat Microsoft hier noch massive Probleme?
</p>
        <img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=f6ddc5ef-50f0-477e-add6-0a3fb56e91ba" />
      </body>
      <title>Verbindungsprobleme beim Datenbankzugriff zwischen Windows Azure und SQL Azure</title>
      <guid isPermaLink="false">http://blog.jan-welker.de/PermaLink,guid,f6ddc5ef-50f0-477e-add6-0a3fb56e91ba.aspx</guid>
      <link>http://blog.jan-welker.de/2012/01/28/VerbindungsproblemeBeimDatenbankzugriffZwischenWindowsAzureUndSQLAzure.aspx</link>
      <pubDate>Sat, 28 Jan 2012 07:26:02 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Timeouts-beim-Datenbankzugriff-zwischen-_5803/Sql-Azure_4.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Sql-Azure" border="0" alt="Sql-Azure" align="left" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Timeouts-beim-Datenbankzugriff-zwischen-_5803/Sql-Azure_thumb_1.png" width="121" height="124"&gt;&lt;/a&gt;Bei
einer Webanwendung, dich gerade in ASP.NET entwickle, bin ich vor kurzem auf eine
große Anzahl von Verbindungsproblemen zwischen Windows Azure (IIS) und SQL Azure gestoßen.
&lt;/p&gt;
&lt;p&gt;
Die Webseite nutzt Windows Azure, AppFabric-Cache und SQL Azure. Alles lag im Rechenzentrum
West-Europa.
&lt;/p&gt;
&lt;p&gt;
Wie haben sich die Probleme geäußert und wann sind sie aufgetreten?
&lt;/p&gt;
&lt;p&gt;
Beim Datenbankzugriff mit dem Entity Framework gab es folgende Exceptions:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Invalid attempt to read when no data is present. 
&lt;li&gt;
The underlying provider failed on Open. 
&lt;li&gt;
Calling 'Read' when the data reader is closed is not a valid operation. 
&lt;li&gt;
An error occurred while reading from the store provider's data reader. 
&lt;li&gt;
A connection was successfully established with the server, but then an error occurred
during the pre-login handshake. (provider: TCP Provider, error: 0 - An existing connection
was forcibly closed by the remote host.) 
&lt;li&gt;
A transport-level error has occurred when receiving results from the server. (provider:
TCP Provider, error: 0 - The semaphore timeout period has expired.) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Die Fehler sind sind aufgetreten, sobald die Webseite etwas stärker belastet wurde.
Dies geschah immer dann, wenn die Webseite durch einen Bot (z.B. Google oder Bing)
gecrawlt wurde. Eigentlich sollten solche geringen Lastschwankungen Windows Azure
bzw. SQL Azure nicht weiter beeindrucken - dachte ich.&lt;br&gt;
&lt;br&gt;
Mein erster Versuch die Fehler zu beheben, war die Größe der VM Instanz zu erhöhen.
Leider brachte dies keine Besserung.&lt;br&gt;
An meinem Code konnten diese Fehler nicht liegen, da die Webseite vor dem Umzug zu
Azure schon einige Monate auf meinem eigenen Server fehlerfrei lief.&lt;br&gt;
Ich schilderte diese Probleme dem Azure Support und war von der Antwort sehr überrascht.
Der Support wusste von dem Problem und hatte auch einen Namen dafür parat: “Transient
Conditions”. Ich wurde auf einen &lt;a href="http://windowsazurecat.com/2010/10/best-practices-for-handling-transient-conditions-in-sql-azure-client-applications/" target="_blank"&gt;Artikel&lt;/a&gt; vom
“Windows Azure Customer Advisory Team” hingewiesen, in dem folgendes zu lesen ist:
&lt;/p&gt;
&lt;blockquote&gt;The database connections may also be dropped due to the variety of reasons
related to network connectivity between the client and distant Microsoft data centers:
quality of network, intermittent network faults in the client’s LAN or WAN infrastructure
and other transient technical reasons.&lt;/blockquote&gt; 
&lt;p&gt;
Als Lösung wird der Einsatz des so genannten &lt;a href="http://code.msdn.microsoft.com/Transient-Fault-Handling-b209151f" target="_blank"&gt;Transient
Fault Handling Framework&lt;/a&gt; vorgeschlagen, das im wesentlichen nichts weiter macht,
als den Datenbankzugriff zu überwachen. Im Fehlerfall wird der Datenbankzugriff einfach
erneut versucht.&lt;br&gt;
&lt;br&gt;
Ich habe mich aus mehreren Gründen gegen den Einsatz dieses Frameworks entschieden:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
das Framework ist riesengroß und hat einige Abhängigkeiten 
&lt;li&gt;
es ist schlecht dokumentiert 
&lt;li&gt;
ich sehe nicht ein, Infrastruktur-Fehler im Code auszugleichen, wodurch die Ladegeschwindigkeit
der Webseite sinken würde 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Gerade zum letzten Punkt, der Performance, habe ich einige Versuche gemacht. 
&lt;br&gt;
30 bis 50 Versuche um Daten zu lesen waren im Fehlerfall keine Seltenheit und das,
obwohl Datenbank und IIS im selben Azure – Rechenzentrum (West-Europa) lagen. Die
Performance der Webseite würde mit dieser Strategie deutlich in die Knie gehen.&lt;br&gt;
&lt;br&gt;
Als nächstes habe ich versucht herauszufinden, ob man die Verbindungsprobleme nicht
anders in den Griff bekommen kann.&lt;br&gt;
Ich habe die Webseite wieder auf meinem eigenen Webserver gelegt, aber die Datenbank
bei Azure gelassen, schon waren die Fehler weg!
&lt;/p&gt;
&lt;p&gt;
Auch wenn die Webseite im Rechenzentrum Europa Nord liegt und die Datenbank in Europa
West, gibt es keine Probleme. In dieser Konstellation läuft die Webseite jetzt einen
Monat fehlerfrei.
&lt;/p&gt;
&lt;p&gt;
Bin ich mit meinen Erfahrungen ein Einzelfall (Ich habe ja öfter mal Pech mit Server-Hardware),
oder hat Microsoft hier noch massive Probleme?
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=f6ddc5ef-50f0-477e-add6-0a3fb56e91ba" /&gt;</description>
      <comments>http://blog.jan-welker.de/CommentView,guid,f6ddc5ef-50f0-477e-add6-0a3fb56e91ba.aspx</comments>
      <category>Cloud Computing</category>
    </item>
    <item>
      <trackback:ping>http://blog.jan-welker.de/Trackback.aspx?guid=5fbe4b6c-32ad-4571-a189-f641802f11d3</trackback:ping>
      <pingback:server>http://blog.jan-welker.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.jan-welker.de/PermaLink,guid,5fbe4b6c-32ad-4571-a189-f641802f11d3.aspx</pingback:target>
      <dc:creator>Jan Welker</dc:creator>
      <wfw:comment>http://blog.jan-welker.de/CommentView,guid,5fbe4b6c-32ad-4571-a189-f641802f11d3.aspx</wfw:comment>
      <wfw:commentRss>http://blog.jan-welker.de/SyndicationService.asmx/GetEntryCommentsRss?guid=5fbe4b6c-32ad-4571-a189-f641802f11d3</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Windows-Azur.Routing-404-vorprogrammiert_7C4/Unbenannt_2.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px;&#xA;                padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px;&#xA;                border-right: 0px; padding-top: 0px" title="Unbenannt" alt="Azure 404" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Windows-Azur.Routing-404-vorprogrammiert_7C4/Unbenannt_thumb.png" align="left" border="0" height="146" width="151" />
          </a>Vor
gut einer Woche habe ich mich dazu durchgerungen, meine ersten Gehversuche in der
Microsoft Wolke zu wagen.<br />
Es ging um die Portierung einer mittelgroßen ASP.NET 4.0 (Webforms) App zu Windows
Azure. Der erste Schritt was das Umziehen der Datenbank zu SqlAzure, was sehr unproblematisch
war. Die einzige Änderung, die ich an der Datenbank machen musste, war das Anlegen
von Clustered Indexes auf Zuordnungstabellen. Diese sind notwendig, weil die Datenbank
bei SqlAzure repliziert wird. Mehr dazu hier: <a href="http://blogs.msdn.com/b/sqlazure/archive/2010/05/12/10011257.aspx"> http://blogs.msdn.com/b/sqlazure/archive/2010/05/12/10011257.aspx</a></p>
        <p>
Die eigentliche Webseite hatte ich vorerst auf meinem eigenen Server gelassen und
die Datenbank lief in der Cloud. Von dieser Kombination hatte ich mir eine schlechte
Performance erwartet, da für jede Datenbankabfrage ein Round Trip von Berlin nach
Amsterdam notwendig war. Jedoch konnte ich keine zusätzliche Verzögerung messen. 
</p>
        <p>
Jetzt hatte ich genug Zeit, um auch die Webseite zu Windows Azure zu bringen. Die
brauchte ich auch. Der einfache Weg, den man in vielen Webcasts sehen kann, lief wie
geschmiert: 
</p>
        <ul>
          <li>
Hinzufügen eines Windows Azure Projects zur Solution</li>
          <li>
2, 3 Settings anpassen</li>
          <li>
Publish im Windows Azure Projects klicken</li>
          <li>
Kaffee holen weil Windows Azure die VM’s einrichtet und hochfährt, dies dauert ca.
10 Minuten</li>
        </ul>
        <p>
Schön, die Webseite war online und die Freude war groß. Leider währte dieses Erfolgserlebnis
nur kurz. Genauer gesagt, bis ich den ersten Link auf der Webseite klickte und ich
feststellen musste das das ASP.NET Routing nicht funktionierte.<br />
Jede geroutete URL lieferte ein „404 – File not found“ zurück.<br />
Die Fehlersuche begann im IIS, der auf der VM in Windows Azure lief. In meiner App
konnte kein Fehler sein, da sie schon ein paar Monate fehlerfrei auf meinem eigenen
Server lief. Die Einstellungen im IIS waren alle sauber. Das Rätselraten begann. 
</p>
        <p>
Wenn kann man an Wochenende um Rat fragen? 
</p>
        <p>
Leider ist die Azure - Community in Deutschland praktisch nicht vorhanden, nur ein
Blogger schlägt sich tapfer und veröffentlicht regelmäßig Artikel rund um Windows
Azure: <a href="http://www.sascha-dittmann.de/" target="_blank">Sascha Dittmann</a>.<br />
Bei einem Telefonat mit ihm erfuhr ich, dass die Azure VM’s per default nicht mit
Windows Server 2008 R2 laufen, sondern mit Windows Server 2008!<br />
Warum das so ist, kann ich nicht nachvollziehen. Bei der Datenbank setzt Microsoft
schon auf Denali und in der Azure Management App können sogar schon CTP Features des
nächsten SQL Servers genutzt werden. 
</p>
        <p>
Es ist möglich, vor der Instanziierung einer VM das OS zu bestimmen und den Windows
Server 2008 R2 auszuwählen: 
</p>
        <ul>
          <li>
ServiceConfiguration.Local.cscfg bzw. in der ServiceConfiguration.Cloud.cscfg öffnen</li>
          <li>
Im Tag ServiceConfiguration folgende Attribute ändern/hinzufügen: osFamily="2"</li>
        </ul>
        <p>
Gesagt – getan, schon lief mein Routing. 
</p>
        <p>
Tja, da fehlte wohl irgendein Patch in der Windows Azure - Windows Server 2008 Installation,
der in der R2 Version vorhanden ist. 
</p>
        <p>
Hier noch mal eine kurze Zusammenfassung: 
</p>
        <p>
Per default bekommt man in Windows Azure nur eine Windows Server 2008 Installation.
Mit dieser kann man das Routing in ASP.NET 4.0 Webforms nicht nutzen, es hagelt 404’er.<br />
Abhilfe schafft die Auswahl des Windows Servers R2.
</p>
        <img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=5fbe4b6c-32ad-4571-a189-f641802f11d3" />
      </body>
      <title>Windows Azure, ASP.NET Webforms 4.0 und System.Web.Routing, 404 vorprogrammiert</title>
      <guid isPermaLink="false">http://blog.jan-welker.de/PermaLink,guid,5fbe4b6c-32ad-4571-a189-f641802f11d3.aspx</guid>
      <link>http://blog.jan-welker.de/2011/12/18/WindowsAzureASPNETWebforms40UndSystemWebRouting404Vorprogrammiert.aspx</link>
      <pubDate>Sun, 18 Dec 2011 23:36:45 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Windows-Azur.Routing-404-vorprogrammiert_7C4/Unbenannt_2.png"&gt; &lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px;
                padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px;
                border-right: 0px; padding-top: 0px" title="Unbenannt" alt="Azure 404" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Windows-Azur.Routing-404-vorprogrammiert_7C4/Unbenannt_thumb.png" align="left" border="0" height="146" width="151"&gt;&lt;/a&gt;Vor
gut einer Woche habe ich mich dazu durchgerungen, meine ersten Gehversuche in der
Microsoft Wolke zu wagen.&lt;br&gt;
Es ging um die Portierung einer mittelgroßen ASP.NET 4.0 (Webforms) App zu Windows
Azure. Der erste Schritt was das Umziehen der Datenbank zu SqlAzure, was sehr unproblematisch
war. Die einzige Änderung, die ich an der Datenbank machen musste, war das Anlegen
von Clustered Indexes auf Zuordnungstabellen. Diese sind notwendig, weil die Datenbank
bei SqlAzure repliziert wird. Mehr dazu hier: &lt;a href="http://blogs.msdn.com/b/sqlazure/archive/2010/05/12/10011257.aspx"&gt; http://blogs.msdn.com/b/sqlazure/archive/2010/05/12/10011257.aspx&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Die eigentliche Webseite hatte ich vorerst auf meinem eigenen Server gelassen und
die Datenbank lief in der Cloud. Von dieser Kombination hatte ich mir eine schlechte
Performance erwartet, da für jede Datenbankabfrage ein Round Trip von Berlin nach
Amsterdam notwendig war. Jedoch konnte ich keine zusätzliche Verzögerung messen. 
&lt;/p&gt;
&lt;p&gt;
Jetzt hatte ich genug Zeit, um auch die Webseite zu Windows Azure zu bringen. Die
brauchte ich auch. Der einfache Weg, den man in vielen Webcasts sehen kann, lief wie
geschmiert: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Hinzufügen eines Windows Azure Projects zur Solution&lt;/li&gt;
&lt;li&gt;
2, 3 Settings anpassen&lt;/li&gt;
&lt;li&gt;
Publish im Windows Azure Projects klicken&lt;/li&gt;
&lt;li&gt;
Kaffee holen weil Windows Azure die VM’s einrichtet und hochfährt, dies dauert ca.
10 Minuten&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Schön, die Webseite war online und die Freude war groß. Leider währte dieses Erfolgserlebnis
nur kurz. Genauer gesagt, bis ich den ersten Link auf der Webseite klickte und ich
feststellen musste das das ASP.NET Routing nicht funktionierte.&lt;br&gt;
Jede geroutete URL lieferte ein „404 – File not found“ zurück.&lt;br&gt;
Die Fehlersuche begann im IIS, der auf der VM in Windows Azure lief. In meiner App
konnte kein Fehler sein, da sie schon ein paar Monate fehlerfrei auf meinem eigenen
Server lief. Die Einstellungen im IIS waren alle sauber. Das Rätselraten begann. 
&lt;/p&gt;
&lt;p&gt;
Wenn kann man an Wochenende um Rat fragen? 
&lt;/p&gt;
&lt;p&gt;
Leider ist die Azure - Community in Deutschland praktisch nicht vorhanden, nur ein
Blogger schlägt sich tapfer und veröffentlicht regelmäßig Artikel rund um Windows
Azure: &lt;a href="http://www.sascha-dittmann.de/" target="_blank"&gt;Sascha Dittmann&lt;/a&gt;.&lt;br&gt;
Bei einem Telefonat mit ihm erfuhr ich, dass die Azure VM’s per default nicht mit
Windows Server 2008 R2 laufen, sondern mit Windows Server 2008!&lt;br&gt;
Warum das so ist, kann ich nicht nachvollziehen. Bei der Datenbank setzt Microsoft
schon auf Denali und in der Azure Management App können sogar schon CTP Features des
nächsten SQL Servers genutzt werden. 
&lt;/p&gt;
&lt;p&gt;
Es ist möglich, vor der Instanziierung einer VM das OS zu bestimmen und den Windows
Server 2008 R2 auszuwählen: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
ServiceConfiguration.Local.cscfg bzw. in der ServiceConfiguration.Cloud.cscfg öffnen&lt;/li&gt;
&lt;li&gt;
Im Tag ServiceConfiguration folgende Attribute ändern/hinzufügen: osFamily="2"&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Gesagt – getan, schon lief mein Routing. 
&lt;/p&gt;
&lt;p&gt;
Tja, da fehlte wohl irgendein Patch in der Windows Azure - Windows Server 2008 Installation,
der in der R2 Version vorhanden ist. 
&lt;/p&gt;
&lt;p&gt;
Hier noch mal eine kurze Zusammenfassung: 
&lt;/p&gt;
&lt;p&gt;
Per default bekommt man in Windows Azure nur eine Windows Server 2008 Installation.
Mit dieser kann man das Routing in ASP.NET 4.0 Webforms nicht nutzen, es hagelt 404’er.&lt;br&gt;
Abhilfe schafft die Auswahl des Windows Servers R2.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=5fbe4b6c-32ad-4571-a189-f641802f11d3" /&gt;</description>
      <comments>http://blog.jan-welker.de/CommentView,guid,5fbe4b6c-32ad-4571-a189-f641802f11d3.aspx</comments>
      <category>Cloud Computing</category>
    </item>
    <item>
      <trackback:ping>http://blog.jan-welker.de/Trackback.aspx?guid=fa5128f3-2217-4aaa-91ad-c1e6c25ef0c7</trackback:ping>
      <pingback:server>http://blog.jan-welker.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.jan-welker.de/PermaLink,guid,fa5128f3-2217-4aaa-91ad-c1e6c25ef0c7.aspx</pingback:target>
      <dc:creator>Jan Welker</dc:creator>
      <wfw:comment>http://blog.jan-welker.de/CommentView,guid,fa5128f3-2217-4aaa-91ad-c1e6c25ef0c7.aspx</wfw:comment>
      <wfw:commentRss>http://blog.jan-welker.de/SyndicationService.asmx/GetEntryCommentsRss?guid=fa5128f3-2217-4aaa-91ad-c1e6c25ef0c7</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Der Gewinner wurde ausgelost, gewonnen hat Howard Schmäu!<br /><br />
Lieber Howard Schmäu bitte schicke deinen vollen Namen so wie deine E-Mail-Adresse
an info[ät]jan-welker.de<br />
Mit deinem Einverständnis gebe ich deine Daten an den Veranstalter der Konferenz (PPEDV)
weiter.
</p>
        <p>
Herzlichen Glückwunsch und viel Spaß auf der Konferenz!
</p>
        <h3>Du hast nicht gewonnen?
</h3>
        <p>
Mit dem Promocode „GUI_dotnet-forum2011” kannst du dich noch bis zum 30.11.2011 <a href="http://www.gui-design.ppedv.de/anmeldung.html">anmelden</a> und <strong>100€
sparen</strong>!
</p>
        <img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=fa5128f3-2217-4aaa-91ad-c1e6c25ef0c7" />
      </body>
      <title>Ticket für die GUI &amp; Design Konferenz: Der Gewinner wurde ermittelt!</title>
      <guid isPermaLink="false">http://blog.jan-welker.de/PermaLink,guid,fa5128f3-2217-4aaa-91ad-c1e6c25ef0c7.aspx</guid>
      <link>http://blog.jan-welker.de/2011/11/16/TicketF%c3%bcrDieGUIDesignKonferenzDerGewinnerWurdeErmittelt.aspx</link>
      <pubDate>Wed, 16 Nov 2011 16:40:56 GMT</pubDate>
      <description>&lt;p&gt;
Der Gewinner wurde ausgelost, gewonnen hat Howard Schmäu!&lt;br&gt;
&lt;br&gt;
Lieber Howard Schmäu bitte schicke deinen vollen Namen so wie deine E-Mail-Adresse
an info[ät]jan-welker.de&lt;br&gt;
Mit deinem Einverständnis gebe ich deine Daten an den Veranstalter der Konferenz (PPEDV)
weiter.
&lt;/p&gt;
&lt;p&gt;
Herzlichen Glückwunsch und viel Spaß auf der Konferenz!
&lt;/p&gt;
&lt;h3&gt;Du hast nicht gewonnen?
&lt;/h3&gt;
&lt;p&gt;
Mit dem Promocode „GUI_dotnet-forum2011” kannst du dich noch bis zum 30.11.2011 &lt;a href="http://www.gui-design.ppedv.de/anmeldung.html"&gt;anmelden&lt;/a&gt; und &lt;strong&gt;100€
sparen&lt;/strong&gt;!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=fa5128f3-2217-4aaa-91ad-c1e6c25ef0c7" /&gt;</description>
      <comments>http://blog.jan-welker.de/CommentView,guid,fa5128f3-2217-4aaa-91ad-c1e6c25ef0c7.aspx</comments>
      <category>Community</category>
      <category>Konferenzen</category>
    </item>
    <item>
      <trackback:ping>http://blog.jan-welker.de/Trackback.aspx?guid=3e00bab0-e632-4efd-b217-33802ffbad29</trackback:ping>
      <pingback:server>http://blog.jan-welker.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.jan-welker.de/PermaLink,guid,3e00bab0-e632-4efd-b217-33802ffbad29.aspx</pingback:target>
      <dc:creator>Jan Welker</dc:creator>
      <wfw:comment>http://blog.jan-welker.de/CommentView,guid,3e00bab0-e632-4efd-b217-33802ffbad29.aspx</wfw:comment>
      <wfw:commentRss>http://blog.jan-welker.de/SyndicationService.asmx/GetEntryCommentsRss?guid=3e00bab0-e632-4efd-b217-33802ffbad29</wfw:commentRss>
      <slash:comments>14</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Moderne Software wird immer komplexer. Gleichzeitig muss sie leicht erlernbar, effizient,
gut designt und manchmal sogar „sexy“ sein.
</p>
        <p>
Eine Gratwanderung für jeden Software-Entwickler und -Designer. 
<br />
Auf der <strong>GUI&amp;Design am 8. und 9. Dezember 2011 in Fürth/Nürnberg</strong> wird
dir geholfen!<br />
Denn hier präsentieren Branchenexperten DIE Trends rund um die Software der Zukunft
auf Basis von Microsoft-Technologien.
</p>
        <a href="http://www.gui-design.ppedv.de">
          <img style="display: inline" title="Gui-Banner468x60" alt="Gui-Banner468x60" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Ticket-fr-die_13817/Gui-Banner468x60_thumb.gif" />
        </a>
        <h3>Du möchtest dabei sein?
</h3>
        <p>
Mit dem Promocode „GUI_dotnet-forum2011” kannst du dich bis 30.11. anmelden und 100€
sparen (799 EUR statt 899 EUR)!
</p>
        <p>
Infos und Anmeldung unter <a href="http://www.gui-design.ppedv.de" target="_blank">http://www.gui-design.ppedv.de</a>.
</p>
        <h3>Gewinnspiel
</h3>
        <p>
Wer ein Ticket gewinnen möchte, hinterlässt einfach einen kleinen Kommentar zu diesem
Blogpost und schreibt warum er unbedingt dabei sein muss.<br />
Den Gewinner werde ich am Mittwoch (16.11.2011) auslosen und hier bekannt geben.<br />
Bitte beteiligt euch nur dann am Gewinnspiel, wenn ihr auch wirklich am 8. und 9.
Dezember nach Nürnberg bzw. nach Fürth kommen könnt.<br /><br />
Der Rechtsweg ist ausgeschlossen. 
</p>
        <img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=3e00bab0-e632-4efd-b217-33802ffbad29" />
      </body>
      <title>Ticket für die GUI&amp;Design am 8. und 9. Dezember 2011 in Fürth/Nürnberg zu gewinnen</title>
      <guid isPermaLink="false">http://blog.jan-welker.de/PermaLink,guid,3e00bab0-e632-4efd-b217-33802ffbad29.aspx</guid>
      <link>http://blog.jan-welker.de/2011/11/13/TicketF%c3%bcrDieGUIDesignAm8Und9Dezember2011InF%c3%bcrthN%c3%bcrnbergZuGewinnen.aspx</link>
      <pubDate>Sun, 13 Nov 2011 21:35:58 GMT</pubDate>
      <description>&lt;p&gt;
Moderne Software wird immer komplexer. Gleichzeitig muss sie leicht erlernbar, effizient,
gut designt und manchmal sogar „sexy“ sein.
&lt;/p&gt;
&lt;p&gt;
Eine Gratwanderung für jeden Software-Entwickler und -Designer. 
&lt;br&gt;
Auf der &lt;strong&gt;GUI&amp;amp;Design am 8. und 9. Dezember 2011 in Fürth/Nürnberg&lt;/strong&gt; wird
dir geholfen!&lt;br&gt;
Denn hier präsentieren Branchenexperten DIE Trends rund um die Software der Zukunft
auf Basis von Microsoft-Technologien.
&lt;/p&gt;
&lt;a href="http://www.gui-design.ppedv.de"&gt;&lt;img style="display: inline" title="Gui-Banner468x60" alt="Gui-Banner468x60" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Ticket-fr-die_13817/Gui-Banner468x60_thumb.gif"&gt;&lt;/a&gt; 
&lt;h3&gt;Du möchtest dabei sein?
&lt;/h3&gt;
&lt;p&gt;
Mit dem Promocode „GUI_dotnet-forum2011” kannst du dich bis 30.11. anmelden und 100€
sparen (799 EUR statt 899 EUR)!
&lt;/p&gt;
&lt;p&gt;
Infos und Anmeldung unter &lt;a href="http://www.gui-design.ppedv.de" target="_blank"&gt;http://www.gui-design.ppedv.de&lt;/a&gt;.
&lt;/p&gt;
&lt;h3&gt;Gewinnspiel
&lt;/h3&gt;
&lt;p&gt;
Wer ein Ticket gewinnen möchte, hinterlässt einfach einen kleinen Kommentar zu diesem
Blogpost und schreibt warum er unbedingt dabei sein muss.&lt;br&gt;
Den Gewinner werde ich am Mittwoch (16.11.2011) auslosen und hier bekannt geben.&lt;br&gt;
Bitte beteiligt euch nur dann am Gewinnspiel, wenn ihr auch wirklich am 8. und 9.
Dezember nach Nürnberg bzw. nach Fürth kommen könnt.&lt;br&gt;
&lt;br&gt;
Der Rechtsweg ist ausgeschlossen. 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=3e00bab0-e632-4efd-b217-33802ffbad29" /&gt;</description>
      <comments>http://blog.jan-welker.de/CommentView,guid,3e00bab0-e632-4efd-b217-33802ffbad29.aspx</comments>
      <category>Community</category>
      <category>Konferenzen</category>
    </item>
    <item>
      <trackback:ping>http://blog.jan-welker.de/Trackback.aspx?guid=edbfd4f7-ef17-4d01-94fe-0b48d309e0ca</trackback:ping>
      <pingback:server>http://blog.jan-welker.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.jan-welker.de/PermaLink,guid,edbfd4f7-ef17-4d01-94fe-0b48d309e0ca.aspx</pingback:target>
      <dc:creator>Jan Welker</dc:creator>
      <wfw:comment>http://blog.jan-welker.de/CommentView,guid,edbfd4f7-ef17-4d01-94fe-0b48d309e0ca.aspx</wfw:comment>
      <wfw:commentRss>http://blog.jan-welker.de/SyndicationService.asmx/GetEntryCommentsRss?guid=edbfd4f7-ef17-4d01-94fe-0b48d309e0ca</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
An einem Freitag dem 13. März 2009 <a href="http://blog.jan-welker.de/2009/03/13/dotnetkicksdeIstOnline.aspx" target="_blank">erblickte
die deutsche Version von dotnet-kicks.de das Licht der Welt</a>. Die erfolgreiche
Entwicklung dieser Community zeigt uns, dass dieses Geburtsdatum kein Unglück gebracht
hat.<br />
Ganz im Gegenteil: dotnet-kicks.de hat sich inzwischen fest in der .NET Community
etabliert. 
<br /><a href="http://dotnet-kicks.de/docs/button" target="_blank">Der dotnet-kicks.de –
Button</a> wurde von unzähligen Bloggern und Webmastern eingebunden, darunter befinden
sich auch einige prominente Seiten wie zum Beispiel die MSDN oder die Webseite der
dotnetpro.<br />
Es hat sich ein fester Besucherstamm gebildet, der täglich auf dotnet-kicks.de vorbei
schaut, wie im <a href="http://dotnet-kicks.de/spy" target="_blank">Spy</a> zu sehen
ist. 
<br /><a href="http://blog.klaus-b.net/default.aspx" target="_blank">Klaus</a> und <a href="http://gordon-breuer.de/" target="_blank">Gordon</a> haben
von Anfang an entscheidend bei  der Entwicklung und beim Aufbau der Community
beigetragen. Man denke nur an die mutige <a href="http://gordon-breuer.de/post/2009/03/19/Mea-culpa-mea-culpa-mea-maxima-culpa.aspx" target="_blank">Postkartenaktion
von Gordon</a>. 
<br />
Klaus hat ebenfalls viel Freizeit für die Entwicklung und die Behebung kleinerer Fehler
geopfert.<br />
Vielen Dank an euch beide! 
<br />
Bei unserer neuesten Aktion hat Gordon erneut gezeigt, dass er nicht nur hervorragend
coden kann, sondern, dass er nebenbei noch ein <a href="http://gordon-breuer.de/page/Mediengestalter-fur-Digital-und-Printmedien.aspx" target="_blank">ausgezeichneter
Mediengestalter</a> ist. Wie das folgende Video zeigt:
</p>
        <p>
          <iframe src="http://www.youtube.com/embed/2B_9f0MXxhQ" allowfullscreen="" width="450" frameborder="0" height="297">
          </iframe>
        </p>
        <p>
Nach dem Gordon schon die <a href="http://social.zune.net/redirect?type=phoneApp&amp;id=ae383e79-bf39-e011-854c-00237de2db9e" target="_blank">ein</a> oder <a href="http://social.zune.net/redirect?type=phoneApp&amp;id=e38d7563-2a95-e011-986b-78e7d1fa76f8&amp;source=WP7applist" target="_blank">andere</a> App
im Windows Phone Marketplace hat, hat er jetzt auch eine App für <a href="http://dotnet-kicks.de/" target="_blank">dotnet-kicks.de</a> geschrieben.<br />
Ich habe diese App von Anfang an mit getestet und kann nur sagen: Installationsbefehl! 
<br />
Für so eine App braucht es natürlich auch eine API, diese habe ich vor kurzem entwickelt
und möchte euch diese auch nicht vorenthalten. Wer die API ernsthaft nutzen möchte,
kann mich gern nach der URL und einem API Key fragen <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smiley" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/3de585b75c21_133FB/wlEmoticon-smile_2.png" /></p>
        <p>
Es gibt Gerüchte, die behaupten, dass Gordon demnächst eine Webcastserie veröffentlichen
wird, die zeigt, wie die größten Hürden bei der Entwicklung der App überwunden wurden.
Schaut doch einfach demnächst öfter auf <a href="http://gordon-breuer.de/" target="_blank">seinem
Blog</a> vorbei.<br /><br />
Das wichtigste habe ich mir für den Schluss aufgehoben, der Download-Link für die
kostenlose dotnet-kicks.de - App:<br /><a title="http://windowsphone.com/s?appid=ed4e37e8-b636-46e5-9fb8-deaa45e2e152" href="http://windowsphone.com/s?appid=ed4e37e8-b636-46e5-9fb8-deaa45e2e152"></a></p>
        <a target="_blank" href="http://windowsphone.com/s?appid=ed4e37e8-b636-46e5-9fb8-deaa45e2e152">
          <img src="http://blog.dotnet-kicks.de/image.axd?picture=Windows-Live-Writer/Darauf-hat-die-Welt-gewartet-vielleicht/535575AF/Download-GR-Med.png" alt="Download für Windows Phone" title="dotnet Kicks für Windows Phone" style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" width="165" border="0" height="54" />
        </a>
        <br />
        <br />
        <br />
        <img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=edbfd4f7-ef17-4d01-94fe-0b48d309e0ca" />
      </body>
      <title>Geiler Trailer, geile App, geile Community!</title>
      <guid isPermaLink="false">http://blog.jan-welker.de/PermaLink,guid,edbfd4f7-ef17-4d01-94fe-0b48d309e0ca.aspx</guid>
      <link>http://blog.jan-welker.de/2011/08/22/GeilerTrailerGeileAppGeileCommunity.aspx</link>
      <pubDate>Mon, 22 Aug 2011 20:29:16 GMT</pubDate>
      <description>&lt;p&gt;
An einem Freitag dem 13. März 2009 &lt;a href="http://blog.jan-welker.de/2009/03/13/dotnetkicksdeIstOnline.aspx" target="_blank"&gt;erblickte
die deutsche Version von dotnet-kicks.de das Licht der Welt&lt;/a&gt;. Die erfolgreiche
Entwicklung dieser Community zeigt uns, dass dieses Geburtsdatum kein Unglück gebracht
hat.&lt;br&gt;
Ganz im Gegenteil: dotnet-kicks.de hat sich inzwischen fest in der .NET Community
etabliert. 
&lt;br&gt;
&lt;a href="http://dotnet-kicks.de/docs/button" target="_blank"&gt;Der dotnet-kicks.de –
Button&lt;/a&gt; wurde von unzähligen Bloggern und Webmastern eingebunden, darunter befinden
sich auch einige prominente Seiten wie zum Beispiel die MSDN oder die Webseite der
dotnetpro.&lt;br&gt;
Es hat sich ein fester Besucherstamm gebildet, der täglich auf dotnet-kicks.de vorbei
schaut, wie im &lt;a href="http://dotnet-kicks.de/spy" target="_blank"&gt;Spy&lt;/a&gt; zu sehen
ist. 
&lt;br&gt;
&lt;a href="http://blog.klaus-b.net/default.aspx" target="_blank"&gt;Klaus&lt;/a&gt; und &lt;a href="http://gordon-breuer.de/" target="_blank"&gt;Gordon&lt;/a&gt; haben
von Anfang an entscheidend bei&amp;nbsp; der Entwicklung und beim Aufbau der Community
beigetragen. Man denke nur an die mutige &lt;a href="http://gordon-breuer.de/post/2009/03/19/Mea-culpa-mea-culpa-mea-maxima-culpa.aspx" target="_blank"&gt;Postkartenaktion
von Gordon&lt;/a&gt;. 
&lt;br&gt;
Klaus hat ebenfalls viel Freizeit für die Entwicklung und die Behebung kleinerer Fehler
geopfert.&lt;br&gt;
Vielen Dank an euch beide! 
&lt;br&gt;
Bei unserer neuesten Aktion hat Gordon erneut gezeigt, dass er nicht nur hervorragend
coden kann, sondern, dass er nebenbei noch ein &lt;a href="http://gordon-breuer.de/page/Mediengestalter-fur-Digital-und-Printmedien.aspx" target="_blank"&gt;ausgezeichneter
Mediengestalter&lt;/a&gt; ist. Wie das folgende Video zeigt:
&lt;/p&gt;
&lt;p&gt;
&lt;iframe src="http://www.youtube.com/embed/2B_9f0MXxhQ" allowfullscreen="" width="450" frameborder="0" height="297"&gt;
&lt;/iframe&gt;
&lt;/p&gt;
&lt;p&gt;
Nach dem Gordon schon die &lt;a href="http://social.zune.net/redirect?type=phoneApp&amp;amp;id=ae383e79-bf39-e011-854c-00237de2db9e" target="_blank"&gt;ein&lt;/a&gt; oder &lt;a href="http://social.zune.net/redirect?type=phoneApp&amp;amp;id=e38d7563-2a95-e011-986b-78e7d1fa76f8&amp;amp;source=WP7applist" target="_blank"&gt;andere&lt;/a&gt; App
im Windows Phone Marketplace hat, hat er jetzt auch eine App für &lt;a href="http://dotnet-kicks.de/" target="_blank"&gt;dotnet-kicks.de&lt;/a&gt; geschrieben.&lt;br&gt;
Ich habe diese App von Anfang an mit getestet und kann nur sagen: Installationsbefehl! 
&lt;br&gt;
Für so eine App braucht es natürlich auch eine API, diese habe ich vor kurzem entwickelt
und möchte euch diese auch nicht vorenthalten. Wer die API ernsthaft nutzen möchte,
kann mich gern nach der URL und einem API Key fragen &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smiley" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/3de585b75c21_133FB/wlEmoticon-smile_2.png"&gt;
&lt;/p&gt;
&lt;p&gt;
Es gibt Gerüchte, die behaupten, dass Gordon demnächst eine Webcastserie veröffentlichen
wird, die zeigt, wie die größten Hürden bei der Entwicklung der App überwunden wurden.
Schaut doch einfach demnächst öfter auf &lt;a href="http://gordon-breuer.de/" target="_blank"&gt;seinem
Blog&lt;/a&gt; vorbei.&lt;br&gt;
&lt;br&gt;
Das wichtigste habe ich mir für den Schluss aufgehoben, der Download-Link für die
kostenlose dotnet-kicks.de - App:&lt;br&gt;
&lt;a title="http://windowsphone.com/s?appid=ed4e37e8-b636-46e5-9fb8-deaa45e2e152" href="http://windowsphone.com/s?appid=ed4e37e8-b636-46e5-9fb8-deaa45e2e152"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;a target="_blank" href="http://windowsphone.com/s?appid=ed4e37e8-b636-46e5-9fb8-deaa45e2e152"&gt;&lt;img src="http://blog.dotnet-kicks.de/image.axd?picture=Windows-Live-Writer/Darauf-hat-die-Welt-gewartet-vielleicht/535575AF/Download-GR-Med.png" alt="Download für Windows Phone" title="dotnet Kicks für Windows Phone" style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" width="165" border="0" height="54"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=edbfd4f7-ef17-4d01-94fe-0b48d309e0ca" /&gt;</description>
      <comments>http://blog.jan-welker.de/CommentView,guid,edbfd4f7-ef17-4d01-94fe-0b48d309e0ca.aspx</comments>
      <category>.NET-Kicks.de</category>
      <category>Windows Phone 7</category>
    </item>
    <item>
      <trackback:ping>http://blog.jan-welker.de/Trackback.aspx?guid=7ed9a5b7-6667-4699-a77d-d8bb197656c7</trackback:ping>
      <pingback:server>http://blog.jan-welker.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.jan-welker.de/PermaLink,guid,7ed9a5b7-6667-4699-a77d-d8bb197656c7.aspx</pingback:target>
      <dc:creator>Jan Welker</dc:creator>
      <wfw:comment>http://blog.jan-welker.de/CommentView,guid,7ed9a5b7-6667-4699-a77d-d8bb197656c7.aspx</wfw:comment>
      <wfw:commentRss>http://blog.jan-welker.de/SyndicationService.asmx/GetEntryCommentsRss?guid=7ed9a5b7-6667-4699-a77d-d8bb197656c7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Das-war-die-.NET-DevCon-2011_13431/dotnet-devcon_2.png">
            <img style="background-image: none; border-right-width: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="dotnet-devcon" alt="dotnet-devcon" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Das-war-die-.NET-DevCon-2011_13431/dotnet-devcon_thumb.png" width="99" align="left" border="0" height="98" />
          </a>Die <a href="http://www.dotnet-devcon.de/" target="_blank">.NET
DevCon 2011</a> fand am 6. Und 7. Juni in Nürnberg statt. Der Veranstalter war die
Neue Mediengesellschaft Ulm mbH, die unter anderem Herausgeber der .NET Fachzeitschrift
dotnetpro ist. Von der Neuen Mediengesellschaft Ulm gab es bis jetzt nur die <a href="http://www.prioconference.de/" target="_blank">Prio
Konferenz</a>. Die Prio hat im Gegensatz zur DevCon einen Themenschwerpunt, wie zum
Beispiel verteilte Architektur oder Cross Plattform Development.<br />
Bei der DevCon waren die Themen bunt gemischt. Es gab zum Beispiel Vorträge aus dem
Bereich Architektur, Soft Skills, SharePoint, Codequalität, Visual Studio oder GUI.<br />
Was komplett fehlte, waren Themen aus den Bereichen Webentwicklung und Mobile Development.
Dafür gibt es zwei eigene Konferenzen, die <a href="http://www.web-devcon.de/" target="_blank">Web
DevCon</a>, welche im Oktober in Hamburg stattfinden wird und die <a href="http://www.web-devcon.de/" target="_blank">Mobile
DevCon</a>, die nur einen Tag dauert und in drei verschiedenen Städten stattfindet.
</p>
        <p>
Zurück zur DevCon 2011 und meinen Eindrücken von der Konferenz:
</p>
        <h2>Erster Tag
</h2>
        <p>
Die Konferenz begann für mich mit einem Vortrag von <a href="http://mentzel.name/" target="_blank">Thomas
Mentzel</a>, er sprach über Design Patterns.<br />
Jeder der hin und wieder seinen Blog liest, weiß, dass Patterns sein Steckenpferd
sind. Er zeigte anhand eines gemauerten Torbogens, dass es Patterns schon vor 2000
Jahren gab und dass diese sich bis heute weiterentwickelt haben. Die Kernaussage seines
Vortrages war, dass man nicht nur Patterns kennen und anwenden sollte, sondern dass
Patterns auch ständig weiterentwickelt werden müssen, in dem zum Beispiel neue Sprachfeatures
genutzt werden.
</p>
        <p>
          <a href="http://kostjaklein.wordpress.com/" target="_blank">Constantin Klein</a>,
besser bekannt unter dem Namen Kostja, brachte Licht ins Dunkle in Sachen SQL Server
Versionen. Er stelle alle Versionen vor und besprach die Unterschiede. Am meisten
waren Infos zur Compact Edition gefragt, die erst seit der .NET Version 4 in ASP.NET
Webseiten eingesetzt werden kann. Ein sehr gelungener Vortrag! Leider war er nicht
gut besucht.
</p>
        <p>
Am Abend des ersten Tages sprach <a href="http://www.goloroden.de/" target="_blank">Golo
Roden</a> über <a href="http://www.fogcreek.com/fogbugz/" target="_blank">FogBugs</a> &amp; <a href="http://www.fogcreek.com/kiln/" target="_blank">Kiln</a>,
eine verteilte Source-Code-Verwaltung mit einem schicken Webinterface. Die Source-Code-Verwaltung
basiert auf Mercurial.<br />
Golo war der Meinung, dass FogBugs &amp; Kiln eine gute Alternative zu einigen Features
aus dem TFS sind. Golo ließ in seinem Vortrag kein gutes Haar am TFS, die Kritikpunkte
waren unteranderem die Trägheit und die fehlende Offlinefähigkeit des TFS.<br />
Interessant fand ich, dass das anwesende Publikum ihm zustimmte und das keiner Partei
für den TFS ergriffen hat.<br /><br /><a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Das-war-die-.NET-DevCon-2011_13431/dotnet-open-night_2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="dotnet-open-night" alt="dotnet-open-night" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Das-war-die-.NET-DevCon-2011_13431/dotnet-open-night_thumb.png" width="244" border="0" height="104" /></a></p>
        <p>
Der erste Tag wurde mit einer Open Night beendet. Vor dem Essen referierte Faisal
Jilani (Project Manager bei Microsoft aus Redmond) über die MSDN und das Hilfe System
im Visual Studio. 
</p>
        <p>
Ab 21 Uhr gab es ein Coding Dojo vom Erfinder des Dojos: <a href="http://ilker.de/" target="_blank">Ilker
Cetinkaya</a>.<br />
21 Uhr fand ich etwas zu spät, so dass ich nicht teilgenommen habe.
</p>
        <h2>Zweiter Tag
</h2>
        <p>
Den zweiten Tag begann ich mit dem Vortrag „Von der Idee zum Modell“ von <a href="http://twitter.com/#%21/janekf" target="_blank">Jan
Fellien</a>. Nach etwas Theorie zum Thema Modellierung zeigte er sehr anschaulich,
dass viele Probleme im Softwareentwicklungsprozess vermieden werden können, wenn eine
Dokumentation in Form eines Modells erstellt wird. Er demonstrierte,  wie ein
solches Modell in kurzer Zeit und ohne großen Aufwand erstellt werden kann.
</p>
        <p>
Der nächste Vortrag, auf den ich eingehen möchte, ist der Vortrag von <a href="http://weblogs.asp.net/rweigelt/" target="_blank">Roland
Weigelt</a>. Ich wusste von Roland, dass er diesen Vortrag in den letzten Jahren schon
mehrfach gehalten hatte und dass er den Vortrag bei jedem Mal weiter verfeinert hatte.
Meine so geschürten hohen Erwartungen sollten nicht enttäuscht werden.<br />
Der Vortrag richtete sich an Entwickler, die in der Regel nicht designen können. Das
Ziel des Vortrages war es nicht, aus einem Bock einen Gärtner zu machen, sondern den
Entwicklern zu zeigen, dass es nur ein kleiner Schritt ist, um aus einer grauenvollen
GUI eine ansprechende und solide wirkende Benutzeroberfläche zu machen. Er nannte
einige Regeln und Kochrezepte die sicher jeder nachvollziehen konnte.<br />
Rolands Vortrag hatte mit über 300 Folien, meiner Meinung nach, die höchste Informationsdichte
an diesem Tag. Er musste seinen Vortrag direkt nach dem leckeren und reichhaltigen
Mittagessen halten. Bedingt durch das so genannte <a href="http://de.wiktionary.org/wiki/Suppenkoma" target="_blank">Suppenkoma</a> hatte
er leider nicht immer die volle Aufmerksamkeit aller Zuhörer.<br /></p>
        <p>
          <a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Das-war-die-.NET-DevCon-2011_13431/roberto-bez_2.png">
            <img style="background-image: none; border-right-width: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="roberto-bez" alt="roberto-bez" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Das-war-die-.NET-DevCon-2011_13431/roberto-bez_thumb.png" width="224" align="left" border="0" height="244" />
          </a>Im
Gegensatz zu Rolands Vortrag hatte <a href="http://www.aspnetzone.de/blogs/robertobez/" target="_blank">Roberto
Bez</a> nur sehr wenige Zuhörer, was ich nicht ganz nachvollziehen kann.<br />
Im Abstract wurde versprochen, dass er zeigt, wie die <a href="http://blog.jan-welker.de/ct.ashx?id=7ed9a5b7-6667-4699-a77d-d8bb197656c7&amp;url=http%3a%2f%2fweblogs.asp.net%2fscottgu%2farchive%2f2010%2f07%2f02%2fintroducing-razor.aspx">Razor
View Engine</a> aus ASP.NET MVC 3 auskoppelt und als leistungsfähige Template Engine
zur Erzeugung von HTML-Dateien oder Reports eingesetzt werden kann.<br /><br />
Genau dies hat Roberto Schritt für Schritt vorgeführt. Es war interessant zu beobachten,
wie er ein Konsolenprogramm entwickelt hat, das mit Hilfe von Razor Serienbriefe oder
HTML Emails generieren konnte. Im Gegensatz zu <a href="http://msdn.microsoft.com/de-de/library/bb126445.aspx" target="_blank">T4</a> konnte
dabei auf die hässlichen, spitzen, gelben Klammern verzichtet werden.
</p>
        <p>
Mein letzter Vortrag, war ein Vortrag in dem die Firma Centron eine Beta Version ihrer
Private-Cloud namens CCloud vorgestellt hat. Centron versteht im Moment unter einer
Private-Cloud einen virtuellen Server, bei dem man den RAM oder den Festplattenspeicherplatz
per Schieberegler einstellen kann und nur die tatsächlich verbrauchte Leistung zahlen
muss.
</p>
        <h2>Fazit
</h2>
        <p>
Dieses Mal möchte ich gern auf mein persönliches Fazit verzichten und einige Tweets
zitieren, die zum <a href="http://twitter.com/#%21/search?q=%23dndc11" target="_blank">Hashtag
der Konferenz</a> getwittert wurden:
</p>
        <ul>
          <li>
#dndc11 ist vorbei. Bin schon zuhause angekommen. Schön wars. (@minibrain81) 
</li>
          <li>
perfekte organisation, gute vorträge, gerne wieder #Dndc11 (@SKTime888) 
</li>
          <li>
#dndc11 is almost over now. Good talks, nice people, well organized. Thanks everybody!
Two sessions left, than heading back to #austria (@dtanzer) 
</li>
          <li>
Tschüss Nürnberg. Tschüss @dotnetdevcon. Bis zum nächsten Jahr! #Dndc11 (@MrMoratti) 
</li>
          <li>
Coole Veranstaltung - Hat sich gelohnt! #dndc11 (@chrinner) 
</li>
          <li>
zurück vom #dndc11 - war erkenntnisreich und spannend zugleich. danke an alle teilnehmer
und die organisatoren. jetzt erstmal verarbeiten (@ilkerde) 
</li>
          <li>
Back at home - war eine tolle veranstaltung - viele coole leute und super organisation.
Hope for another one! #dndc11 (@RobertoBez)</li>
        </ul>
        <p>
 
</p>
        <p>
          <font color="#a5a5a5">Fotos und Grafiken: Neue Mediengesellschaft Ulm mbH</font>
        </p>
        <img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=7ed9a5b7-6667-4699-a77d-d8bb197656c7" />
      </body>
      <title>Das war die .NET DevCon 2011</title>
      <guid isPermaLink="false">http://blog.jan-welker.de/PermaLink,guid,7ed9a5b7-6667-4699-a77d-d8bb197656c7.aspx</guid>
      <link>http://blog.jan-welker.de/2011/06/07/DasWarDieNETDevCon2011.aspx</link>
      <pubDate>Tue, 07 Jun 2011 20:49:16 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Das-war-die-.NET-DevCon-2011_13431/dotnet-devcon_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="dotnet-devcon" alt="dotnet-devcon" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Das-war-die-.NET-DevCon-2011_13431/dotnet-devcon_thumb.png" width="99" align="left" border="0" height="98"&gt;&lt;/a&gt;Die &lt;a href="http://www.dotnet-devcon.de/" target="_blank"&gt;.NET
DevCon 2011&lt;/a&gt; fand am 6. Und 7. Juni in Nürnberg statt. Der Veranstalter war die
Neue Mediengesellschaft Ulm mbH, die unter anderem Herausgeber der .NET Fachzeitschrift
dotnetpro ist. Von der Neuen Mediengesellschaft Ulm gab es bis jetzt nur die &lt;a href="http://www.prioconference.de/" target="_blank"&gt;Prio
Konferenz&lt;/a&gt;. Die Prio hat im Gegensatz zur DevCon einen Themenschwerpunt, wie zum
Beispiel verteilte Architektur oder Cross Plattform Development.&lt;br&gt;
Bei der DevCon waren die Themen bunt gemischt. Es gab zum Beispiel Vorträge aus dem
Bereich Architektur, Soft Skills, SharePoint, Codequalität, Visual Studio oder GUI.&lt;br&gt;
Was komplett fehlte, waren Themen aus den Bereichen Webentwicklung und Mobile Development.
Dafür gibt es zwei eigene Konferenzen, die &lt;a href="http://www.web-devcon.de/" target="_blank"&gt;Web
DevCon&lt;/a&gt;, welche im Oktober in Hamburg stattfinden wird und die &lt;a href="http://www.web-devcon.de/" target="_blank"&gt;Mobile
DevCon&lt;/a&gt;, die nur einen Tag dauert und in drei verschiedenen Städten stattfindet.
&lt;/p&gt;
&lt;p&gt;
Zurück zur DevCon 2011 und meinen Eindrücken von der Konferenz:
&lt;/p&gt;
&lt;h2&gt;Erster Tag
&lt;/h2&gt;
&lt;p&gt;
Die Konferenz begann für mich mit einem Vortrag von &lt;a href="http://mentzel.name/" target="_blank"&gt;Thomas
Mentzel&lt;/a&gt;, er sprach über Design Patterns.&lt;br&gt;
Jeder der hin und wieder seinen Blog liest, weiß, dass Patterns sein Steckenpferd
sind. Er zeigte anhand eines gemauerten Torbogens, dass es Patterns schon vor 2000
Jahren gab und dass diese sich bis heute weiterentwickelt haben. Die Kernaussage seines
Vortrages war, dass man nicht nur Patterns kennen und anwenden sollte, sondern dass
Patterns auch ständig weiterentwickelt werden müssen, in dem zum Beispiel neue Sprachfeatures
genutzt werden.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://kostjaklein.wordpress.com/" target="_blank"&gt;Constantin Klein&lt;/a&gt;,
besser bekannt unter dem Namen Kostja, brachte Licht ins Dunkle in Sachen SQL Server
Versionen. Er stelle alle Versionen vor und besprach die Unterschiede. Am meisten
waren Infos zur Compact Edition gefragt, die erst seit der .NET Version 4 in ASP.NET
Webseiten eingesetzt werden kann. Ein sehr gelungener Vortrag! Leider war er nicht
gut besucht.
&lt;/p&gt;
&lt;p&gt;
Am Abend des ersten Tages sprach &lt;a href="http://www.goloroden.de/" target="_blank"&gt;Golo
Roden&lt;/a&gt; über &lt;a href="http://www.fogcreek.com/fogbugz/" target="_blank"&gt;FogBugs&lt;/a&gt; &amp;amp; &lt;a href="http://www.fogcreek.com/kiln/" target="_blank"&gt;Kiln&lt;/a&gt;,
eine verteilte Source-Code-Verwaltung mit einem schicken Webinterface. Die Source-Code-Verwaltung
basiert auf Mercurial.&lt;br&gt;
Golo war der Meinung, dass FogBugs &amp;amp; Kiln eine gute Alternative zu einigen Features
aus dem TFS sind. Golo ließ in seinem Vortrag kein gutes Haar am TFS, die Kritikpunkte
waren unteranderem die Trägheit und die fehlende Offlinefähigkeit des TFS.&lt;br&gt;
Interessant fand ich, dass das anwesende Publikum ihm zustimmte und das keiner Partei
für den TFS ergriffen hat.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Das-war-die-.NET-DevCon-2011_13431/dotnet-open-night_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="dotnet-open-night" alt="dotnet-open-night" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Das-war-die-.NET-DevCon-2011_13431/dotnet-open-night_thumb.png" width="244" border="0" height="104"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Der erste Tag wurde mit einer Open Night beendet. Vor dem Essen referierte Faisal
Jilani (Project Manager bei Microsoft aus Redmond) über die MSDN und das Hilfe System
im Visual Studio. 
&lt;/p&gt;
&lt;p&gt;
Ab 21 Uhr gab es ein Coding Dojo vom Erfinder des Dojos: &lt;a href="http://ilker.de/" target="_blank"&gt;Ilker
Cetinkaya&lt;/a&gt;.&lt;br&gt;
21 Uhr fand ich etwas zu spät, so dass ich nicht teilgenommen habe.
&lt;/p&gt;
&lt;h2&gt;Zweiter Tag
&lt;/h2&gt;
&lt;p&gt;
Den zweiten Tag begann ich mit dem Vortrag „Von der Idee zum Modell“ von &lt;a href="http://twitter.com/#%21/janekf" target="_blank"&gt;Jan
Fellien&lt;/a&gt;. Nach etwas Theorie zum Thema Modellierung zeigte er sehr anschaulich,
dass viele Probleme im Softwareentwicklungsprozess vermieden werden können, wenn eine
Dokumentation in Form eines Modells erstellt wird. Er demonstrierte,&amp;nbsp; wie ein
solches Modell in kurzer Zeit und ohne großen Aufwand erstellt werden kann.
&lt;/p&gt;
&lt;p&gt;
Der nächste Vortrag, auf den ich eingehen möchte, ist der Vortrag von &lt;a href="http://weblogs.asp.net/rweigelt/" target="_blank"&gt;Roland
Weigelt&lt;/a&gt;. Ich wusste von Roland, dass er diesen Vortrag in den letzten Jahren schon
mehrfach gehalten hatte und dass er den Vortrag bei jedem Mal weiter verfeinert hatte.
Meine so geschürten hohen Erwartungen sollten nicht enttäuscht werden.&lt;br&gt;
Der Vortrag richtete sich an Entwickler, die in der Regel nicht designen können. Das
Ziel des Vortrages war es nicht, aus einem Bock einen Gärtner zu machen, sondern den
Entwicklern zu zeigen, dass es nur ein kleiner Schritt ist, um aus einer grauenvollen
GUI eine ansprechende und solide wirkende Benutzeroberfläche zu machen. Er nannte
einige Regeln und Kochrezepte die sicher jeder nachvollziehen konnte.&lt;br&gt;
Rolands Vortrag hatte mit über 300 Folien, meiner Meinung nach, die höchste Informationsdichte
an diesem Tag. Er musste seinen Vortrag direkt nach dem leckeren und reichhaltigen
Mittagessen halten. Bedingt durch das so genannte &lt;a href="http://de.wiktionary.org/wiki/Suppenkoma" target="_blank"&gt;Suppenkoma&lt;/a&gt; hatte
er leider nicht immer die volle Aufmerksamkeit aller Zuhörer.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Das-war-die-.NET-DevCon-2011_13431/roberto-bez_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="roberto-bez" alt="roberto-bez" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Das-war-die-.NET-DevCon-2011_13431/roberto-bez_thumb.png" width="224" align="left" border="0" height="244"&gt;&lt;/a&gt;Im
Gegensatz zu Rolands Vortrag hatte &lt;a href="http://www.aspnetzone.de/blogs/robertobez/" target="_blank"&gt;Roberto
Bez&lt;/a&gt; nur sehr wenige Zuhörer, was ich nicht ganz nachvollziehen kann.&lt;br&gt;
Im Abstract wurde versprochen, dass er zeigt, wie die &lt;a href="http://blog.jan-welker.de/ct.ashx?id=7ed9a5b7-6667-4699-a77d-d8bb197656c7&amp;amp;url=http%3a%2f%2fweblogs.asp.net%2fscottgu%2farchive%2f2010%2f07%2f02%2fintroducing-razor.aspx"&gt;Razor
View Engine&lt;/a&gt; aus ASP.NET MVC 3 auskoppelt und als leistungsfähige Template Engine
zur Erzeugung von HTML-Dateien oder Reports eingesetzt werden kann.&lt;br&gt;
&lt;br&gt;
Genau dies hat Roberto Schritt für Schritt vorgeführt. Es war interessant zu beobachten,
wie er ein Konsolenprogramm entwickelt hat, das mit Hilfe von Razor Serienbriefe oder
HTML Emails generieren konnte. Im Gegensatz zu &lt;a href="http://msdn.microsoft.com/de-de/library/bb126445.aspx" target="_blank"&gt;T4&lt;/a&gt; konnte
dabei auf die hässlichen, spitzen, gelben Klammern verzichtet werden.
&lt;/p&gt;
&lt;p&gt;
Mein letzter Vortrag, war ein Vortrag in dem die Firma Centron eine Beta Version ihrer
Private-Cloud namens CCloud vorgestellt hat. Centron versteht im Moment unter einer
Private-Cloud einen virtuellen Server, bei dem man den RAM oder den Festplattenspeicherplatz
per Schieberegler einstellen kann und nur die tatsächlich verbrauchte Leistung zahlen
muss.
&lt;/p&gt;
&lt;h2&gt;Fazit
&lt;/h2&gt;
&lt;p&gt;
Dieses Mal möchte ich gern auf mein persönliches Fazit verzichten und einige Tweets
zitieren, die zum &lt;a href="http://twitter.com/#%21/search?q=%23dndc11" target="_blank"&gt;Hashtag
der Konferenz&lt;/a&gt; getwittert wurden:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
#dndc11 ist vorbei. Bin schon zuhause angekommen. Schön wars. (@minibrain81) 
&lt;/li&gt;
&lt;li&gt;
perfekte organisation, gute vorträge, gerne wieder #Dndc11 (@SKTime888) 
&lt;/li&gt;
&lt;li&gt;
#dndc11 is almost over now. Good talks, nice people, well organized. Thanks everybody!
Two sessions left, than heading back to #austria (@dtanzer) 
&lt;/li&gt;
&lt;li&gt;
Tschüss Nürnberg. Tschüss @dotnetdevcon. Bis zum nächsten Jahr! #Dndc11 (@MrMoratti) 
&lt;/li&gt;
&lt;li&gt;
Coole Veranstaltung - Hat sich gelohnt! #dndc11 (@chrinner) 
&lt;/li&gt;
&lt;li&gt;
zurück vom #dndc11 - war erkenntnisreich und spannend zugleich. danke an alle teilnehmer
und die organisatoren. jetzt erstmal verarbeiten (@ilkerde) 
&lt;/li&gt;
&lt;li&gt;
Back at home - war eine tolle veranstaltung - viele coole leute und super organisation.
Hope for another one! #dndc11 (@RobertoBez)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;font color="#a5a5a5"&gt;Fotos und Grafiken: Neue Mediengesellschaft Ulm mbH&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=7ed9a5b7-6667-4699-a77d-d8bb197656c7" /&gt;</description>
      <comments>http://blog.jan-welker.de/CommentView,guid,7ed9a5b7-6667-4699-a77d-d8bb197656c7.aspx</comments>
      <category>Community</category>
      <category>Konferenzen</category>
    </item>
    <item>
      <trackback:ping>http://blog.jan-welker.de/Trackback.aspx?guid=fba65da9-dff1-4200-a763-18e4cbbb3880</trackback:ping>
      <pingback:server>http://blog.jan-welker.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.jan-welker.de/PermaLink,guid,fba65da9-dff1-4200-a763-18e4cbbb3880.aspx</pingback:target>
      <dc:creator>Jan Welker</dc:creator>
      <wfw:comment>http://blog.jan-welker.de/CommentView,guid,fba65da9-dff1-4200-a763-18e4cbbb3880.aspx</wfw:comment>
      <wfw:commentRss>http://blog.jan-welker.de/SyndicationService.asmx/GetEntryCommentsRss?guid=fba65da9-dff1-4200-a763-18e4cbbb3880</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Vor gut zwei Monaten habe ich hier im Blog über meine <a href="http://blog.jan-welker.de/2011/03/21/MeineErfahrungenMitHetznerRootServern.aspx" target="_blank">Erfahrungen
mit Windows Web Servern von Hetzner</a> berichtet. Auf Grund der schlechten Erfahrungen
hatte ich meine zwei Webserver bei Hetzner gekündigt und bin zu Strato gewechselt. 
</p>
        <p>
          <a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Erfahrungsbericht-Windows-V-Server-bei-S_14F6E/Strato-Logo_2.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Strato-Logo" alt="Strato-Logo" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Erfahrungsbericht-Windows-V-Server-bei-S_14F6E/Strato-Logo_thumb.png" width="244" border="0" height="64" />
          </a>
        </p>
        <h2>Das Angebot
</h2>
        <p>
Strato hat im Moment folgendes sehr attraktives Angebot:
</p>
        <ul>
          <li>
Windows 2008 R2 Hyper-V Web Server 
</li>
          <li>
4 GB Ram 
</li>
          <li>
200 GB HDD 
</li>
          <li>
4 Kern Prozessor 
</li>
        </ul>
In dieser Ausstattung kostet der virtuelle Server nur knapp 35€ pro Monat. Als ich
vor zwei Monaten die Preise verglichen habe, war das Angebot so günstig, das ich sofort
zugeschlagen habe. 
<h2>Bestellung
</h2><p>
Die Bestellung des Servers war im Handumdrehen geschehen, allerdings dauerte es 1,5
Tage, bis der Server bereitgestellt wurde. Hetzner war mit wenigen Stunden deutlich
schneller, obwohl es sich bei Hetzner um echte Hardware handelte und nicht um eine
virtuelle Maschine wie bei Strato.<br />
Als kleinen Nachteil sehe ich, dass pro Server nur eine IP Adresse bestellt werden
kann. 
</p><h2>Software 
</h2><p>
Auf dem Server war wie angegeben, Windows 2008 R2 Web Edition installiert, allerdings
in Deutsch. Gerade bei der Konfiguration des IIS ist die deutsche Übersetzung schon
sehr gewöhnungsbedürftig. Ich möchte meinen App-Pool gern recyceln und nicht wiederverwenden
:-)<br />
Auf dem Server war ebenfalls ein SQL Server 2008 R2 Express installiert, was natürlich
keine schlechte Idee ist. Sonst war keine störende Software wie zum Beispiel Plesk
installiert.<br />
Über die Strato-Weboberfläche ist es möglich, einen Neustart im Rescue-Mode zu veranlassen.
Dann startet der Server mit einer <a href="http://de.wikipedia.org/wiki/Microsoft_Windows_PE" target="_blank">Windows
PE</a> Installation. In dieser Umgebung hat man Zugriff auf seine Festplatten und
kann so ggf. Daten sichern oder wiederherstellen.<br /></p><h2>Leistung und Stabilität
</h2><p>
Die Performance des Servers würde ich als gut bezeichnen, wobei man deutlich merkt,
dass man auf einer virtuellen Maschine ist und nicht auf einer echten Hardware. Da
der Windows Server stark auf Hintergrunddienste optimiert ist, ist nur die Windowsoberfläche
etwas träge. Der IIS und der SQL Server laufen stets flüssig.<br />
Der Server hatte in den zwei Monaten keinen Ausfall, die Error Logs sind absolut sauber. 
</p><h2>Support
</h2><p>
Bei einem Webserver ist der Support fast noch wichtiger als die Leistung oder der
Preis.<br />
Leider kann Strato hier ganz und gar nicht überzeugen. Eine Antwort auf eine Emailanfrage
dauert in der Regel 1,5 Tage. Das darf einfach nicht sein. Mit etwas Geduld ist aber
telefonisch immer jemand zu erreichen, echte Hilfe bei Problemen ist aber auch per
Telefon nicht zu erwarten. Bei einem Problem mit der Windows Firewall sagte mir ein
Supportmitarbeiter nur: „Mit Linux wäre das sicher nicht passiert, da würde ich mich
auch auskennen. Sie müssen eben alles neu installieren.” - Da ist man erst mal sprachlos. 
</p><p><a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Erfahrungsbericht-Windows-V-Server-bei-S_14F6E/Strato-Support_2.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Strato-Support" alt="Strato-Support" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Erfahrungsbericht-Windows-V-Server-bei-S_14F6E/Strato-Support_thumb.png" width="354" border="0" height="218" /></a></p><p><strong>Mein Tipp:</strong> Wer sich einen V-Server bei Strato mieten möchte, sollte
sich doppelt und dreifach durch Backups und Alternativen zur Remote-Desktop-Verbindung
absichern. Im Ernstfall braucht man keine Hilfe erwarten. 
</p><h2>Backupmöglichkeit
</h2><p>
Gibt es nicht! Strato bietet zu den V-Servern keine Backupmöglichkeit an, obwohl sie
mit dem Produkt „HiDrive” einen ganz brauchbaren Online Speicher im Programm haben.<br />
Stratos Zielgruppe für das HiDrive scheinen im Moment nur Consumer zu sein. 
</p><h2>Fazit 
</h2><p>
Legt man Wert auf Support oder Flexibilität ist man mit Strato V-Servern schlecht
beraten, jedoch bekommt man für wenig Geld einen leistungsfähigen und gut ausgestatteten
virtuellen Server.
</p><p><font color="#a5a5a5">Logo und Fotos: Strato</font></p><img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=fba65da9-dff1-4200-a763-18e4cbbb3880" /></body>
      <title>Erfahrungsbericht Windows V-Server bei Strato</title>
      <guid isPermaLink="false">http://blog.jan-welker.de/PermaLink,guid,fba65da9-dff1-4200-a763-18e4cbbb3880.aspx</guid>
      <link>http://blog.jan-welker.de/2011/05/31/ErfahrungsberichtWindowsVServerBeiStrato.aspx</link>
      <pubDate>Tue, 31 May 2011 22:12:09 GMT</pubDate>
      <description>&lt;p&gt;
Vor gut zwei Monaten habe ich hier im Blog über meine &lt;a href="http://blog.jan-welker.de/2011/03/21/MeineErfahrungenMitHetznerRootServern.aspx" target="_blank"&gt;Erfahrungen
mit Windows Web Servern von Hetzner&lt;/a&gt; berichtet. Auf Grund der schlechten Erfahrungen
hatte ich meine zwei Webserver bei Hetzner gekündigt und bin zu Strato gewechselt. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Erfahrungsbericht-Windows-V-Server-bei-S_14F6E/Strato-Logo_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Strato-Logo" alt="Strato-Logo" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Erfahrungsbericht-Windows-V-Server-bei-S_14F6E/Strato-Logo_thumb.png" width="244" border="0" height="64"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h2&gt;Das Angebot
&lt;/h2&gt;
&lt;p&gt;
Strato hat im Moment folgendes sehr attraktives Angebot:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Windows 2008 R2 Hyper-V Web Server 
&lt;/li&gt;
&lt;li&gt;
4 GB Ram 
&lt;/li&gt;
&lt;li&gt;
200 GB HDD 
&lt;/li&gt;
&lt;li&gt;
4 Kern Prozessor 
&lt;/li&gt;
&lt;/ul&gt;
In dieser Ausstattung kostet der virtuelle Server nur knapp 35€ pro Monat. Als ich
vor zwei Monaten die Preise verglichen habe, war das Angebot so günstig, das ich sofort
zugeschlagen habe. 
&lt;h2&gt;Bestellung
&lt;/h2&gt;
&lt;p&gt;
Die Bestellung des Servers war im Handumdrehen geschehen, allerdings dauerte es 1,5
Tage, bis der Server bereitgestellt wurde. Hetzner war mit wenigen Stunden deutlich
schneller, obwohl es sich bei Hetzner um echte Hardware handelte und nicht um eine
virtuelle Maschine wie bei Strato.&lt;br&gt;
Als kleinen Nachteil sehe ich, dass pro Server nur eine IP Adresse bestellt werden
kann. 
&lt;/p&gt;
&lt;h2&gt;Software 
&lt;/h2&gt;
&lt;p&gt;
Auf dem Server war wie angegeben, Windows 2008 R2 Web Edition installiert, allerdings
in Deutsch. Gerade bei der Konfiguration des IIS ist die deutsche Übersetzung schon
sehr gewöhnungsbedürftig. Ich möchte meinen App-Pool gern recyceln und nicht wiederverwenden
:-)&lt;br&gt;
Auf dem Server war ebenfalls ein SQL Server 2008 R2 Express installiert, was natürlich
keine schlechte Idee ist. Sonst war keine störende Software wie zum Beispiel Plesk
installiert.&lt;br&gt;
Über die Strato-Weboberfläche ist es möglich, einen Neustart im Rescue-Mode zu veranlassen.
Dann startet der Server mit einer &lt;a href="http://de.wikipedia.org/wiki/Microsoft_Windows_PE" target="_blank"&gt;Windows
PE&lt;/a&gt; Installation. In dieser Umgebung hat man Zugriff auf seine Festplatten und
kann so ggf. Daten sichern oder wiederherstellen.&lt;br&gt;
&lt;/p&gt;
&lt;h2&gt;Leistung und Stabilität
&lt;/h2&gt;
&lt;p&gt;
Die Performance des Servers würde ich als gut bezeichnen, wobei man deutlich merkt,
dass man auf einer virtuellen Maschine ist und nicht auf einer echten Hardware. Da
der Windows Server stark auf Hintergrunddienste optimiert ist, ist nur die Windowsoberfläche
etwas träge. Der IIS und der SQL Server laufen stets flüssig.&lt;br&gt;
Der Server hatte in den zwei Monaten keinen Ausfall, die Error Logs sind absolut sauber. 
&lt;/p&gt;
&lt;h2&gt;Support
&lt;/h2&gt;
&lt;p&gt;
Bei einem Webserver ist der Support fast noch wichtiger als die Leistung oder der
Preis.&lt;br&gt;
Leider kann Strato hier ganz und gar nicht überzeugen. Eine Antwort auf eine Emailanfrage
dauert in der Regel 1,5 Tage. Das darf einfach nicht sein. Mit etwas Geduld ist aber
telefonisch immer jemand zu erreichen, echte Hilfe bei Problemen ist aber auch per
Telefon nicht zu erwarten. Bei einem Problem mit der Windows Firewall sagte mir ein
Supportmitarbeiter nur: „Mit Linux wäre das sicher nicht passiert, da würde ich mich
auch auskennen. Sie müssen eben alles neu installieren.” - Da ist man erst mal sprachlos. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Erfahrungsbericht-Windows-V-Server-bei-S_14F6E/Strato-Support_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Strato-Support" alt="Strato-Support" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/Erfahrungsbericht-Windows-V-Server-bei-S_14F6E/Strato-Support_thumb.png" width="354" border="0" height="218"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Mein Tipp:&lt;/strong&gt; Wer sich einen V-Server bei Strato mieten möchte, sollte
sich doppelt und dreifach durch Backups und Alternativen zur Remote-Desktop-Verbindung
absichern. Im Ernstfall braucht man keine Hilfe erwarten. 
&lt;/p&gt;
&lt;h2&gt;Backupmöglichkeit
&lt;/h2&gt;
&lt;p&gt;
Gibt es nicht! Strato bietet zu den V-Servern keine Backupmöglichkeit an, obwohl sie
mit dem Produkt „HiDrive” einen ganz brauchbaren Online Speicher im Programm haben.&lt;br&gt;
Stratos Zielgruppe für das HiDrive scheinen im Moment nur Consumer zu sein. 
&lt;/p&gt;
&lt;h2&gt;Fazit 
&lt;/h2&gt;
&lt;p&gt;
Legt man Wert auf Support oder Flexibilität ist man mit Strato V-Servern schlecht
beraten, jedoch bekommt man für wenig Geld einen leistungsfähigen und gut ausgestatteten
virtuellen Server.
&lt;/p&gt;
&lt;p&gt;
&lt;font color="#a5a5a5"&gt;Logo und Fotos: Strato&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=fba65da9-dff1-4200-a763-18e4cbbb3880" /&gt;</description>
      <comments>http://blog.jan-welker.de/CommentView,guid,fba65da9-dff1-4200-a763-18e4cbbb3880.aspx</comments>
      <category>allgemein</category>
    </item>
    <item>
      <trackback:ping>http://blog.jan-welker.de/Trackback.aspx?guid=264a1291-b085-429c-bf82-f53cd7e0c6de</trackback:ping>
      <pingback:server>http://blog.jan-welker.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.jan-welker.de/PermaLink,guid,264a1291-b085-429c-bf82-f53cd7e0c6de.aspx</pingback:target>
      <dc:creator>Jan Welker</dc:creator>
      <wfw:comment>http://blog.jan-welker.de/CommentView,guid,264a1291-b085-429c-bf82-f53cd7e0c6de.aspx</wfw:comment>
      <wfw:commentRss>http://blog.jan-welker.de/SyndicationService.asmx/GetEntryCommentsRss?guid=264a1291-b085-429c-bf82-f53cd7e0c6de</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div style="float: left; margin-right: 10px">
          <a href="http://dotnet-snippets.de/dns/5-Jahre.aspx">
            <img src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/5-Jahre-dotnet-snippets.de--Gewinnspiel_140BD/five_3.png" width="184" height="244" />
          </a>
          <br />
          <font color="#a5a5a5">Foto: Flickr/carldpatterson</font>
        </div>
        <div>
          <p>
Seit 5 Jahren ist die Entwicklerwebseite dotnet-snippets.de eine sehr bekannte Anlaufstelle
um Lösungen, in Form von Codesnippets, für alltägliche Programmieraufgaben zu finden. 
</p>
          <p>
Den 5. Geburtstag der Webseite möchten wir nutzen, um uns mit einem Gewinnspiel bei
der Community zu bedanken.
</p>
          <p>
Mach mit, gratuliere dotnet-snippets.de zum Geburtstag und gewinne tolle Preise:<br /><a href="http://dotnet-snippets.de/dns/5-Jahre.aspx">http://dotnet-snippets.de/dns/5-Jahre.aspx</a></p>
        </div>
        <br style="clear: both" />
        <img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=264a1291-b085-429c-bf82-f53cd7e0c6de" />
      </body>
      <title>5 Jahre dotnet-snippets.de – Gewinnspiel</title>
      <guid isPermaLink="false">http://blog.jan-welker.de/PermaLink,guid,264a1291-b085-429c-bf82-f53cd7e0c6de.aspx</guid>
      <link>http://blog.jan-welker.de/2011/04/19/5JahreDotnetsnippetsdeGewinnspiel.aspx</link>
      <pubDate>Tue, 19 Apr 2011 21:06:28 GMT</pubDate>
      <description> &lt;div style="float: left; margin-right: 10px"&gt;
&lt;a href="http://dotnet-snippets.de/dns/5-Jahre.aspx"&gt; &lt;img src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/5-Jahre-dotnet-snippets.de--Gewinnspiel_140BD/five_3.png" width="184" height="244"&gt;&lt;/a&gt;
&lt;br&gt;
&lt;font color="#a5a5a5"&gt;Foto: Flickr/carldpatterson&lt;/font&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;
Seit 5 Jahren ist die Entwicklerwebseite dotnet-snippets.de eine sehr bekannte Anlaufstelle
um Lösungen, in Form von Codesnippets, für alltägliche Programmieraufgaben zu finden. 
&lt;/p&gt;
&lt;p&gt;
Den 5. Geburtstag der Webseite möchten wir nutzen, um uns mit einem Gewinnspiel bei
der Community zu bedanken.
&lt;/p&gt;
&lt;p&gt;
Mach mit, gratuliere dotnet-snippets.de zum Geburtstag und gewinne tolle Preise:&lt;br&gt;
&lt;a href="http://dotnet-snippets.de/dns/5-Jahre.aspx"&gt;http://dotnet-snippets.de/dns/5-Jahre.aspx&lt;/a&gt; 
&lt;/p&gt;
&lt;/div&gt;
&lt;br style="clear: both"&gt;
&lt;img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=264a1291-b085-429c-bf82-f53cd7e0c6de" /&gt;</description>
      <comments>http://blog.jan-welker.de/CommentView,guid,264a1291-b085-429c-bf82-f53cd7e0c6de.aspx</comments>
      <category>.NET-Snippets.de</category>
    </item>
    <item>
      <trackback:ping>http://blog.jan-welker.de/Trackback.aspx?guid=7cb6f546-da85-4ee6-a3fc-9e56ac443a3c</trackback:ping>
      <pingback:server>http://blog.jan-welker.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.jan-welker.de/PermaLink,guid,7cb6f546-da85-4ee6-a3fc-9e56ac443a3c.aspx</pingback:target>
      <dc:creator>Jan Welker</dc:creator>
      <wfw:comment>http://blog.jan-welker.de/CommentView,guid,7cb6f546-da85-4ee6-a3fc-9e56ac443a3c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.jan-welker.de/SyndicationService.asmx/GetEntryCommentsRss?guid=7cb6f546-da85-4ee6-a3fc-9e56ac443a3c</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Wie schon letzte Woche, stellt Thomas Mentzel wieder <a href="http://mentzel.name/2011/04/04/fragen-der-woche-2/" target="_blank">einige
Fragen in seinem Blog</a>, die es zu beantworten gilt.<br />
Am heutigen SQL-Montag steht die Frage im Raum, was Datenbank-Indizes sind und welche
Arten es gibt.<br />
Da ich mir beim letzten Mal schon die SQL Frage geschnappt habe, werde ich heute wieder
versuchen diese Frage zu beantworten.
</p>
        <p>
Hinweis: Indizes können nicht komplett in einem kleinen Blogeintrag abgehandelt werden,
deshalb ist es ratsam, das Thema in der MSDN zu vertiefen. Hier ist ein guter <a href="http://msdn.microsoft.com/de-de/library/ms189271.aspx" target="_blank">Einstiegspunkt</a>.
</p>
        <h2>Was sind Indizes?
</h2>
        <p>
Ein Index (Singular von Indizes) wird in einer Datenbank genutzt, um Abfragen und
Sortiervorgänge zu beschleunigen. Mit Hilfe von Indizes kann die Menge an Daten reduziert
werden, die von der Festplatte gelesen werden müssen, um das Abfrageergebnis zu ermitteln.
Weiterhin können Indizes die Eindeutigkeit von Daten in einer Tabelle erzwingen.
</p>
        <p>
          <a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/83fe356d08e8_143D1/database-indizes_5.png">
            <img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="database-indizes" border="0" alt="database-indizes" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/83fe356d08e8_143D1/database-indizes_thumb_1.png" width="244" height="186" />
          </a>
        </p>
        <p>
Es wird im Wesentlichen zwischen <strong>Nonclustered Index</strong> und <strong>Clustered
Index</strong> unterschieden.
</p>
        <h2>Clustered Index (gruppierter Index)
</h2>
        <p>
Ein Clustered Index speichert die Zeilen der zugrunde liegenden Tabelle in sortierter
Reihenfolge des Clustered Index Schlüssels. Dieser Schlüssel ist die Spalte die zur
Indizierung ausgewählt wurde, wobei auch mehrere Spalten ausgewählt werden können.
Pro Tabelle kann nur ein gruppierter Index gesetzt werden, da die Datenzeilen nur
in einer Reihenfolge sortiert werden können.<br />
Ein Beispiel: Wir haben eine Tabelle Kunde mit den Spalten ID und Kundenname. Es wurde
ein Clustered Index auf die Spalte ID gesetzt.<br />
Fragen wir den Kunden mit der ID 77 ab, geht dies extrem schnell. Suchen wir jedoch
nach einem Kunden mit dem Namen ‚Meyer‘ dauert dies viel länger, da der SQL Server
jeden Eintrag im Clustered Index durchgehen muss.<br />
Wird in einer Tabelle eine Identity Spalte definiert, wird automatisch ein Clustered
Index für diese Spalte erstellt!
</p>
        <h2>Nonclustered Index (nicht gruppierter Index)
</h2>
        <p>
Ein Nonclustered Index enthält den <u>Wert</u> des indizierten Schlüssels <u>und den
Zeiger</u> auf den Speicherort der restlichen Daten. Der Nonclustered Index ist mit
dem Inhaltsverzeichnis eines Buches vergleichbar. Im Inhaltsverzeichnis steht der
Wert (z.B. das Schlagwort) nach dem gesucht wird und die Seitennummer (der Zeiger)
auf der die restlichen Informationen zu finden sind.<br />
Nonclustered Indizes sind aus diesem Grund sehr gut für Abfragen geeignet, die nach
genauen Übereinstimmungen suchen. Wenn in unserer Kundentabelle also ständig nach
Kundennamen gesucht wird, wird ein Nonclustered Index auf die Spalte Kundenname von
Vorteil sein.<br />
Nonclustered Indizes können auf Tabellen mit Clustered Index angewendet werden, sowie
auch auf Heap-Tabellen. Eine Heap-Tabelle ist eine Tabelle die nicht über einen Clustered
Index verfügt. Pro Tabelle können mehrere (bis zu 999) Nonclustered Index erstellt
werden.
</p>
        <h2>Unique
</h2>
        <p>
Sowohl Clustered Indizes als auch Nonclustered Indizes können Unique (eindeutig) sein.<br />
Ein Beispiel hierzu: Wir haben wieder unsere Kundentabelle mit der Spalte ID und der
Spalte Kundenname. Auf diese Tabelle wird ein Nonclustered Index gesetzt der für die
Spalte Name eindeutig sein soll. 
<br />
Wenn versucht wird, zwei gleiche Namen einzufügen, gibt es folgende Fehlermeldung:<br /><br />
Cannot insert duplicate key row in object 'dbo.Kunden with unique index 'Index1'<br /><br />
Mit dieser Möglichkeit kann die Datenintegrität der Tabellendaten sichergestellt werden.
</p>
        <h2>Weitere Indizes
</h2>
        <p>
Des Weiteren gibt es einige spezielle Indizes deren Bedeutung in der MSDN nachgelesen
werden kann:
</p>
        <p>
          <a href="http://msdn.microsoft.com/de-de/library/ms190806.aspx" target="_blank">Index
mit eingeschlossenen Spalten</a>
          <br />
          <a href="http://msdn.microsoft.com/de-de/library/ms142575.aspx" target="_blank">Volltext</a>
          <br />
          <a href="http://msdn.microsoft.com/de-de/library/bb964712.aspx" target="_blank">Räumlich
(für den Geography-Datentyp)</a>
          <br />
          <a href="http://msdn.microsoft.com/de-de/library/cc280372.aspx" target="_blank">Filtered
(für fest definierte Teilmengen)</a>
          <br />
          <a href="http://msdn.microsoft.com/de-de/library/ms191497.aspx" target="_blank">XML
(für den Datentyp XML)</a>
        </p>
        <img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=7cb6f546-da85-4ee6-a3fc-9e56ac443a3c" />
      </body>
      <title>SQL-Montag: Was sind Datenbank-Indizes und welche Arten gibt es?</title>
      <guid isPermaLink="false">http://blog.jan-welker.de/PermaLink,guid,7cb6f546-da85-4ee6-a3fc-9e56ac443a3c.aspx</guid>
      <link>http://blog.jan-welker.de/2011/04/04/SQLMontagWasSindDatenbankIndizesUndWelcheArtenGibtEs.aspx</link>
      <pubDate>Mon, 04 Apr 2011 22:11:09 GMT</pubDate>
      <description>&lt;p&gt;
Wie schon letzte Woche, stellt Thomas Mentzel wieder &lt;a href="http://mentzel.name/2011/04/04/fragen-der-woche-2/" target="_blank"&gt;einige
Fragen in seinem Blog&lt;/a&gt;, die es zu beantworten gilt.&lt;br&gt;
Am heutigen SQL-Montag steht die Frage im Raum, was Datenbank-Indizes sind und welche
Arten es gibt.&lt;br&gt;
Da ich mir beim letzten Mal schon die SQL Frage geschnappt habe, werde ich heute wieder
versuchen diese Frage zu beantworten.
&lt;/p&gt;
&lt;p&gt;
Hinweis: Indizes können nicht komplett in einem kleinen Blogeintrag abgehandelt werden,
deshalb ist es ratsam, das Thema in der MSDN zu vertiefen. Hier ist ein guter &lt;a href="http://msdn.microsoft.com/de-de/library/ms189271.aspx" target="_blank"&gt;Einstiegspunkt&lt;/a&gt;.
&lt;/p&gt;
&lt;h2&gt;Was sind Indizes?
&lt;/h2&gt;
&lt;p&gt;
Ein Index (Singular von Indizes) wird in einer Datenbank genutzt, um Abfragen und
Sortiervorgänge zu beschleunigen. Mit Hilfe von Indizes kann die Menge an Daten reduziert
werden, die von der Festplatte gelesen werden müssen, um das Abfrageergebnis zu ermitteln.
Weiterhin können Indizes die Eindeutigkeit von Daten in einer Tabelle erzwingen.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/83fe356d08e8_143D1/database-indizes_5.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="database-indizes" border="0" alt="database-indizes" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/83fe356d08e8_143D1/database-indizes_thumb_1.png" width="244" height="186"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Es wird im Wesentlichen zwischen &lt;strong&gt;Nonclustered Index&lt;/strong&gt; und &lt;strong&gt;Clustered
Index&lt;/strong&gt; unterschieden.
&lt;/p&gt;
&lt;h2&gt;Clustered Index (gruppierter Index)
&lt;/h2&gt;
&lt;p&gt;
Ein Clustered Index speichert die Zeilen der zugrunde liegenden Tabelle in sortierter
Reihenfolge des Clustered Index Schlüssels. Dieser Schlüssel ist die Spalte die zur
Indizierung ausgewählt wurde, wobei auch mehrere Spalten ausgewählt werden können.
Pro Tabelle kann nur ein gruppierter Index gesetzt werden, da die Datenzeilen nur
in einer Reihenfolge sortiert werden können.&lt;br&gt;
Ein Beispiel: Wir haben eine Tabelle Kunde mit den Spalten ID und Kundenname. Es wurde
ein Clustered Index auf die Spalte ID gesetzt.&lt;br&gt;
Fragen wir den Kunden mit der ID 77 ab, geht dies extrem schnell. Suchen wir jedoch
nach einem Kunden mit dem Namen ‚Meyer‘ dauert dies viel länger, da der SQL Server
jeden Eintrag im Clustered Index durchgehen muss.&lt;br&gt;
Wird in einer Tabelle eine Identity Spalte definiert, wird automatisch ein Clustered
Index für diese Spalte erstellt!
&lt;/p&gt;
&lt;h2&gt;Nonclustered Index (nicht gruppierter Index)
&lt;/h2&gt;
&lt;p&gt;
Ein Nonclustered Index enthält den &lt;u&gt;Wert&lt;/u&gt; des indizierten Schlüssels &lt;u&gt;und den
Zeiger&lt;/u&gt; auf den Speicherort der restlichen Daten. Der Nonclustered Index ist mit
dem Inhaltsverzeichnis eines Buches vergleichbar. Im Inhaltsverzeichnis steht der
Wert (z.B. das Schlagwort) nach dem gesucht wird und die Seitennummer (der Zeiger)
auf der die restlichen Informationen zu finden sind.&lt;br&gt;
Nonclustered Indizes sind aus diesem Grund sehr gut für Abfragen geeignet, die nach
genauen Übereinstimmungen suchen. Wenn in unserer Kundentabelle also ständig nach
Kundennamen gesucht wird, wird ein Nonclustered Index auf die Spalte Kundenname von
Vorteil sein.&lt;br&gt;
Nonclustered Indizes können auf Tabellen mit Clustered Index angewendet werden, sowie
auch auf Heap-Tabellen. Eine Heap-Tabelle ist eine Tabelle die nicht über einen Clustered
Index verfügt. Pro Tabelle können mehrere (bis zu 999) Nonclustered Index erstellt
werden.
&lt;/p&gt;
&lt;h2&gt;Unique
&lt;/h2&gt;
&lt;p&gt;
Sowohl Clustered Indizes als auch Nonclustered Indizes können Unique (eindeutig) sein.&lt;br&gt;
Ein Beispiel hierzu: Wir haben wieder unsere Kundentabelle mit der Spalte ID und der
Spalte Kundenname. Auf diese Tabelle wird ein Nonclustered Index gesetzt der für die
Spalte Name eindeutig sein soll. 
&lt;br&gt;
Wenn versucht wird, zwei gleiche Namen einzufügen, gibt es folgende Fehlermeldung:&lt;br&gt;
&lt;br&gt;
Cannot insert duplicate key row in object 'dbo.Kunden with unique index 'Index1'&lt;br&gt;
&lt;br&gt;
Mit dieser Möglichkeit kann die Datenintegrität der Tabellendaten sichergestellt werden.
&lt;/p&gt;
&lt;h2&gt;Weitere Indizes
&lt;/h2&gt;
&lt;p&gt;
Des Weiteren gibt es einige spezielle Indizes deren Bedeutung in der MSDN nachgelesen
werden kann:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/de-de/library/ms190806.aspx" target="_blank"&gt;Index
mit eingeschlossenen Spalten&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://msdn.microsoft.com/de-de/library/ms142575.aspx" target="_blank"&gt;Volltext&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://msdn.microsoft.com/de-de/library/bb964712.aspx" target="_blank"&gt;Räumlich
(für den Geography-Datentyp)&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://msdn.microsoft.com/de-de/library/cc280372.aspx" target="_blank"&gt;Filtered
(für fest definierte Teilmengen)&lt;/a&gt;
&lt;br&gt;
&lt;a href="http://msdn.microsoft.com/de-de/library/ms191497.aspx" target="_blank"&gt;XML
(für den Datentyp XML)&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=7cb6f546-da85-4ee6-a3fc-9e56ac443a3c" /&gt;</description>
      <comments>http://blog.jan-welker.de/CommentView,guid,7cb6f546-da85-4ee6-a3fc-9e56ac443a3c.aspx</comments>
      <category>Community</category>
      <category>Datenbank</category>
    </item>
    <item>
      <trackback:ping>http://blog.jan-welker.de/Trackback.aspx?guid=f3822ad1-fb22-41a5-8f96-bf6d35e0a6f0</trackback:ping>
      <pingback:server>http://blog.jan-welker.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.jan-welker.de/PermaLink,guid,f3822ad1-fb22-41a5-8f96-bf6d35e0a6f0.aspx</pingback:target>
      <dc:creator>Jan Welker</dc:creator>
      <wfw:comment>http://blog.jan-welker.de/CommentView,guid,f3822ad1-fb22-41a5-8f96-bf6d35e0a6f0.aspx</wfw:comment>
      <wfw:commentRss>http://blog.jan-welker.de/SyndicationService.asmx/GetEntryCommentsRss?guid=f3822ad1-fb22-41a5-8f96-bf6d35e0a6f0</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Thomas Mentzel hat in seinem Blog eine <a href="http://mentzel.name/2011/03/28/fragen-der-woche-1/" target="_blank">ziemlich
coole Aktion gestartet</a>, bei der er am Anfang der Woche fünf Fragen stellt.<br />
Jede Frage bezieht sich auf einen anderen Werktag der Woche und behandelt ein Thema
aus dem .NET-Programmierumfeld.
</p>
        <p>
Die erste Frage, die er zum heutigen “SQL-Montag” gestellt hat, ist: Was ist der Unterschied
zwischen <strong>Delete From</strong> und <strong>Truncate</strong>?
</p>
        <p>
Diese Frage möchte ich gern beantworten.<br /><br /><a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/SQL-Montag-Was-ist-der-Unterschied-zwisc_12D19/delete-truncate_2.png"><img style="background-image: none; border-right-width: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="delete-truncate" border="0" alt="delete-truncate" align="left" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/SQL-Montag-Was-ist-der-Unterschied-zwisc_12D19/delete-truncate_thumb.png" width="154" height="188" /></a>Delete
und Truncate sind T-SQL Befehle, mit denen Datensätze aus Tabellen einer MS-SQL Datenbank
gelöscht werden können.<br />
Das sind auch schon die Gemeinsamkeiten. Die Unterschiede liegen im Detail.
</p>
        <p>
Der Befehl Delete löscht die Datensätze physikalisch und speichert das Löschen jeder
einzelnen Zeile im Transaction-Log ab. Werden viele Zeilen gelöscht, wächst das Log
File entsprechend schnell.
</p>
        <p>
          <br />
Werden Datensätze mit Truncate gelöscht, werden die Datensätze nicht physikalisch
gelöscht, sondern werden nur zum überschreiben freigegeben. Das Freigeben der Daten
wird ebenfalls geloggt, nur auf eine andere Art und Weise.<br />
Dadurch ist Truncate zwar schneller, hat aber auch einige Nachteile: 
</p>
        <ul>
          <li>
Um ein Truncate Statement ausführen zu dürfen, muss man db_owner, ddl_admin oder Besitzer
der Tabelle sein. 
</li>
          <li>
Truncate funktioniert nicht bei Tabellen, die FOREIGN KEY Constraints haben. 
</li>
          <li>
Truncate kann keinen Trigger aktivieren. 
</li>
          <li>
Die Daten einer Tabelle können nicht mit Truncate gelöscht werden, wenn die Tabelle
Grundlage einer View ist. 
</li>
        </ul>
        <p>
Ein weiterer wesentlicher Unterschied ist, dass man bei Delete die zu löschenden Daten
mit Hilfe der Where Bedingung einschränken kann. Mit Truncate können nur ganze Tabellen
gelöscht werden.
</p>
        <p>
Löscht man Daten aus einer Tabelle, die eine IDENTITY-Spalte hat, kann man beim Truncate
Statement feststellen, dass der Wert der IDENTITY-Spalte auf den Ausgangswert (in
der Regel 0) zurück gesetzt wird.<br />
Löscht man die Daten hingegen mit dem Delete Statement, sieht man, dass der Zähler
der IDENTITY-Spalte erhalten bleibt.
</p>
        <p>
Hierzu noch ein Tipp: Möchte man mit Delete löschen, weil man beispielsweise eine
Where Bedingung braucht, kann man den Zähler der IDENTITY-Spalte nachträglich auf
den Ausgangswert mit Hilfe des folgenden Befehls auf 0 zurück setzen:
</p>
        <div id="codeSnippetWrapper">
          <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet">
            <span style="color: #0000ff">DBCC</span> CHECKIDENT
(Tabellenname, reseed, 0)</pre>
          <br />
        </div>
        <p>
Wer beantwortet morgen die Frage zum Thema LINQ? <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smiley" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/SQL-Montag-Was-ist-der-Unterschied-zwisc_12D19/wlEmoticon-smile_2.png" /></p>
        <img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=f3822ad1-fb22-41a5-8f96-bf6d35e0a6f0" />
      </body>
      <title>SQL-Montag: Was ist der Unterschied zwischen “Delete From” und “Truncate”?</title>
      <guid isPermaLink="false">http://blog.jan-welker.de/PermaLink,guid,f3822ad1-fb22-41a5-8f96-bf6d35e0a6f0.aspx</guid>
      <link>http://blog.jan-welker.de/2011/03/28/SQLMontagWasIstDerUnterschiedZwischenDeleteFromUndTruncate.aspx</link>
      <pubDate>Mon, 28 Mar 2011 20:42:28 GMT</pubDate>
      <description>&lt;p&gt;
Thomas Mentzel hat in seinem Blog eine &lt;a href="http://mentzel.name/2011/03/28/fragen-der-woche-1/" target="_blank"&gt;ziemlich
coole Aktion gestartet&lt;/a&gt;, bei der er am Anfang der Woche fünf Fragen stellt.&lt;br&gt;
Jede Frage bezieht sich auf einen anderen Werktag der Woche und behandelt ein Thema
aus dem .NET-Programmierumfeld.
&lt;/p&gt;
&lt;p&gt;
Die erste Frage, die er zum heutigen “SQL-Montag” gestellt hat, ist: Was ist der Unterschied
zwischen &lt;strong&gt;Delete From&lt;/strong&gt; und &lt;strong&gt;Truncate&lt;/strong&gt;?
&lt;/p&gt;
&lt;p&gt;
Diese Frage möchte ich gern beantworten.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/SQL-Montag-Was-ist-der-Unterschied-zwisc_12D19/delete-truncate_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="delete-truncate" border="0" alt="delete-truncate" align="left" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/SQL-Montag-Was-ist-der-Unterschied-zwisc_12D19/delete-truncate_thumb.png" width="154" height="188"&gt;&lt;/a&gt;Delete
und Truncate sind T-SQL Befehle, mit denen Datensätze aus Tabellen einer MS-SQL Datenbank
gelöscht werden können.&lt;br&gt;
Das sind auch schon die Gemeinsamkeiten. Die Unterschiede liegen im Detail.
&lt;/p&gt;
&lt;p&gt;
Der Befehl Delete löscht die Datensätze physikalisch und speichert das Löschen jeder
einzelnen Zeile im Transaction-Log ab. Werden viele Zeilen gelöscht, wächst das Log
File entsprechend schnell.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
Werden Datensätze mit Truncate gelöscht, werden die Datensätze nicht physikalisch
gelöscht, sondern werden nur zum überschreiben freigegeben. Das Freigeben der Daten
wird ebenfalls geloggt, nur auf eine andere Art und Weise.&lt;br&gt;
Dadurch ist Truncate zwar schneller, hat aber auch einige Nachteile: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Um ein Truncate Statement ausführen zu dürfen, muss man db_owner, ddl_admin oder Besitzer
der Tabelle sein. 
&lt;li&gt;
Truncate funktioniert nicht bei Tabellen, die FOREIGN KEY Constraints haben. 
&lt;li&gt;
Truncate kann keinen Trigger aktivieren. 
&lt;li&gt;
Die Daten einer Tabelle können nicht mit Truncate gelöscht werden, wenn die Tabelle
Grundlage einer View ist. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Ein weiterer wesentlicher Unterschied ist, dass man bei Delete die zu löschenden Daten
mit Hilfe der Where Bedingung einschränken kann. Mit Truncate können nur ganze Tabellen
gelöscht werden.
&lt;/p&gt;
&lt;p&gt;
Löscht man Daten aus einer Tabelle, die eine IDENTITY-Spalte hat, kann man beim Truncate
Statement feststellen, dass der Wert der IDENTITY-Spalte auf den Ausgangswert (in
der Regel 0) zurück gesetzt wird.&lt;br&gt;
Löscht man die Daten hingegen mit dem Delete Statement, sieht man, dass der Zähler
der IDENTITY-Spalte erhalten bleibt.
&lt;/p&gt;
&lt;p&gt;
Hierzu noch ein Tipp: Möchte man mit Delete löschen, weil man beispielsweise eine
Where Bedingung braucht, kann man den Zähler der IDENTITY-Spalte nachträglich auf
den Ausgangswert mit Hilfe des folgenden Befehls auf 0 zurück setzen:
&lt;/p&gt;
&lt;div id="codeSnippetWrapper"&gt;&lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: 'Courier New', courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;DBCC&lt;/span&gt; CHECKIDENT
(Tabellenname, reseed, 0)&lt;/pre&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;p&gt;
Wer beantwortet morgen die Frage zum Thema LINQ? &lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smiley" src="http://blog.jan-welker.de/content/binary/Windows-Live-Writer/SQL-Montag-Was-ist-der-Unterschied-zwisc_12D19/wlEmoticon-smile_2.png"&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.jan-welker.de/aggbug.ashx?id=f3822ad1-fb22-41a5-8f96-bf6d35e0a6f0" /&gt;</description>
      <comments>http://blog.jan-welker.de/CommentView,guid,f3822ad1-fb22-41a5-8f96-bf6d35e0a6f0.aspx</comments>
      <category>Community</category>
      <category>Datenbank</category>
    </item>
  </channel>
</rss>
