<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Andre's Blog!</title>
    <link>http://blog.codemurai.de/</link>
    <description>.NET, C#, Infragistics</description>
    <language>de-de</language>
    <copyright>Andre Kraemer</copyright>
    <lastBuildDate>Thu, 17 Sep 2009 07:29:23 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.2.8279.16125</generator>
    <managingEditor>andrek@codemurai.de</managingEditor>
    <webMaster>andrek@codemurai.de</webMaster>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/codemurai/qlrN" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <trackback:ping>http://blog.codemurai.de/Trackback.aspx?guid=ddd41245-e18a-4d20-81fc-0eb1b052e108</trackback:ping>
      <pingback:server>http://blog.codemurai.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.codemurai.de/PermaLink,guid,ddd41245-e18a-4d20-81fc-0eb1b052e108.aspx</pingback:target>
      <dc:creator>Admin</dc:creator>
      <wfw:comment>http://blog.codemurai.de/CommentView,guid,ddd41245-e18a-4d20-81fc-0eb1b052e108.aspx</wfw:comment>
      <wfw:commentRss>http://blog.codemurai.de/SyndicationService.asmx/GetEntryCommentsRss?guid=ddd41245-e18a-4d20-81fc-0eb1b052e108</wfw:commentRss>
      <slash:comments>1</slash:comments>
      
      <title>Prüfen, ob sich ein Webpart im Design Modus befindet</title>
      <guid isPermaLink="false">http://blog.codemurai.de/PermaLink,guid,ddd41245-e18a-4d20-81fc-0eb1b052e108.aspx</guid>
      <link>http://feedproxy.google.com/~r/codemurai/qlrN/~3/RZGaILwVpC4/Pr%c3%bcfenObSichEinWebpartImDesignModusBefindet.aspx</link>
      <pubDate>Thu, 17 Sep 2009 07:29:23 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;Während der Webpart Entwicklung kann es&#xD;
nützlich sein, zu wissen ob man sich gerade im Webpart Design Modus befindet. Folgender&#xD;
Codeausschnitt zeigt, wie man an diese Information kommt:&lt;br&gt;&lt;pre&gt;&lt;span style="color: Black; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;protected&lt;/span&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;bool&lt;/span&gt; IsDesignMode()&#xD;
{ &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;bool&lt;/span&gt; designMode &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;true&lt;/span&gt;; &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;if&lt;/span&gt; (&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;this&lt;/span&gt;.Page&#xD;
!&lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;null&lt;/span&gt;)&#xD;
{ WebPartManager wp &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; WebPartManager.GetCurrentWebPartManager(&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;this&lt;/span&gt;.Page); &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;if&lt;/span&gt; (wp&#xD;
!&lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt;&lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;null&lt;/span&gt;)&#xD;
{ designMode &lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; (wp.DisplayMode&#xD;
!&lt;span style="color: Red; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;=&lt;/span&gt; WebPartManager.BrowseDisplayMode);&#xD;
} } &lt;span style="color: Blue; background-color: Transparent; font-family: Courier New; font-size: 11px;"&gt;return&lt;/span&gt; designMode;&#xD;
}&lt;/span&gt;&lt;/pre&gt;Hilfreich ist dies zum Beispiel, um Validatoren während des Design Modus&#xD;
abzuschalten.&lt;br&gt;&lt;p&gt;&lt;/p&gt;&lt;img width="0" height="0" src="http://blog.codemurai.de/aggbug.ashx?id=ddd41245-e18a-4d20-81fc-0eb1b052e108"&gt;&lt;/img&gt;&lt;br&gt;&lt;hr&gt;&lt;/hr&gt;&lt;a href="http://blog.codemurai.de"&gt;blog.codemurai.de&lt;/a&gt; © André Krämer |&lt;a href="http://www.codemurai.de/pages/de/impress.aspx"&gt;Impressum &lt;/a&gt;| &lt;a href="http://feeds2.feedburner.com/codemurai/qlrN"&gt;Abonieren &lt;/a&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=RZGaILwVpC4:0hEc2j2bblE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=RZGaILwVpC4:0hEc2j2bblE:xZ3Pn_mapoI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=xZ3Pn_mapoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/codemurai/qlrN/~4/RZGaILwVpC4" height="1" width="1"/&gt;</description>
      <comments>http://blog.codemurai.de/CommentView,guid,ddd41245-e18a-4d20-81fc-0eb1b052e108.aspx</comments>
      <category>.NET</category>
      <category>DotNetGerman Bloggers</category>
      <category>Sharepoint</category>
      <category>Tips und Tricks</category>
    <feedburner:origLink>http://blog.codemurai.de/2009/09/17/Pr%c3%bcfenObSichEinWebpartImDesignModusBefindet.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.codemurai.de/Trackback.aspx?guid=a388c50c-7e98-4e84-b435-0381cb4056bc</trackback:ping>
      <pingback:server>http://blog.codemurai.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.codemurai.de/PermaLink,guid,a388c50c-7e98-4e84-b435-0381cb4056bc.aspx</pingback:target>
      <dc:creator>Andre</dc:creator>
      <wfw:comment>http://blog.codemurai.de/CommentView,guid,a388c50c-7e98-4e84-b435-0381cb4056bc.aspx</wfw:comment>
      <wfw:commentRss>http://blog.codemurai.de/SyndicationService.asmx/GetEntryCommentsRss?guid=a388c50c-7e98-4e84-b435-0381cb4056bc</wfw:commentRss>
      <slash:comments>8</slash:comments>
      
      <title>WinDbg Tutorial: Fehlerursachen finden (Teil 1 einer Serie???)</title>
      <guid isPermaLink="false">http://blog.codemurai.de/PermaLink,guid,a388c50c-7e98-4e84-b435-0381cb4056bc.aspx</guid>
      <link>http://feedproxy.google.com/~r/codemurai/qlrN/~3/tE8ip27d9nY/WinDbgTutorialFehlerursachenFindenTeil1EinerSerie.aspx</link>
      <pubDate>Fri, 04 Sep 2009 14:43:28 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
In meinem &lt;a title="Meine Top Drei Entwicklertools" href="http://blog.codemurai.de/2009/06/04/MeineDreiTopEntwicklertools.aspx" target="_blank"&gt;Beitrag&lt;/a&gt; zur &lt;a title="MSDN Blogparade" href="http://blogs.msdn.com/softwarehersteller/archive/2009/05/06/msdn-blog-parade-was-sind-ihre-lieblings-entwickler-tools-mitmachen-und-gewinnen.aspx" target="_blank"&gt;MSDN&#xD;
Blogparade&lt;/a&gt; zum Thema Entwicklungstools zählte ich &lt;a href="http://www.microsoft.com/whdc/DevTools/Debugging/default.mspx" target="_blank"&gt;WinDbg&lt;/a&gt; als&#xD;
einen meiner Favoriten auf. In einem Nebensatz erwähnte ich, dass ich bei Interesse&#xD;
gerne ein kleines Tutorial zu diesem Werkzeug schreiben könnte. Die Anzahl der Rückmeldungen&#xD;
auf diesen Beitrag führten zu zwei Schlussfolgerungen:&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
Mein Blog lesen mehr Leute als ich dachte, und nicht wie vorher vermutet nur meine&#xD;
Frau und meine Mutter. &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Das Interesse an einem Tutorial ist definitiv vorhanden. Also werde ich mein Versprechen&#xD;
einhalten und ein kleines Tutorial schreiben.&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;p&gt;&#xD;
Sicherlich stellt sich nun die Frage, warum überhaupt so lange gedauert hat, das Tutorial&#xD;
zu verfassen!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Nun, das liegt zum einen daran, dass ich zur Zeit nicht in Köln, sondern in Bonn arbeite.&#xD;
Somit verbringe ich viel weniger Zeit im Zug und habe somit auch viel weniger Zeit&#xD;
zum bloggen. Zum anderen liegt es daran, dass ich die knappe Zeit im Zug nicht zum&#xD;
schreiben, sondern zum Ansehen von &lt;a href="http://blog.wekeroad.com/mvc-storefront/" target="_blank"&gt;Rob&#xD;
Conneries StoreFront&lt;/a&gt; Webcasts genutzt habe. An dieser Stelle möchte ich mich als&#xD;
absoluter Fan der Serie bekennen. Wer sich die Webcasts noch nicht angesehen hat,&#xD;
sollte dies unbedingt nachholen! Dann kam auch noch der Urlaub hinzu, so dass dieser&#xD;
Eintrag einfach ein wenig warten musste.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Jetzt aber zurück zum eigentlichen Thema!&#xD;
&lt;/p&gt;&#xD;
        &lt;h3&gt;WinDbg - Was ist das überhaupt?&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
Wie in meinem vorherigen Blog Post geschrieben, ist WinDbg ein unmanaged (native)&#xD;
Debugger mit grafischer Benutzeroberfläche. Dank der SOS Erweiterung kann man ihn&#xD;
jedoch wunderbar dazu verwenden, auch managed Code zu debuggen. WinDbg benötigt &lt;em&gt;eigentlich&lt;/em&gt; keinerlei&#xD;
Installation auf dem zu debuggenden System und kann somit wunderbar als Geheimwaffe&#xD;
auf einem &lt;strike&gt;Schweizer Taschenmesser&lt;/strike&gt; USB Stick mitgeführt werden.&#xD;
&lt;/p&gt;&#xD;
        &lt;h3&gt;Wo bekommt man ihn her und was muss bei der Installation beachtet werden?&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
Herunterladen kann man WinDbg in Form eines MSI Paketes auf der &lt;a title="WinDBG Download Seite" href="http://www.microsoft.com/whdc/devtools/debugging/installx86.mspx" target="_blank"&gt;Download&#xD;
Seite&lt;/a&gt; der Microsoft Debugging Tools for Windows. Die Installation an sich verläuft&#xD;
recht geradlinig (Next -&amp;gt; Next -&amp;gt; I Agree -&amp;gt; Next -&amp;gt; Finish ;-)). Sind&#xD;
die Debugging Tools installiert, kann der komplette Inhalt des Verzeichnisses wie&#xD;
bereits erwähnt auf einen Stick kopiert werden und wäre auch von dort aus lauffähig.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Bevor WinDbg nun wirklich genutzt werden kann, ist jedoch noch eine kleine Vorarbeit&#xD;
- nämlich die Definition des Symbol-Pfads - notwendig. Andernfalls meldet WinDbg während&#xD;
der Debugging Aktivitäten stets, dass er keine Symbole (PDB-Dateien) findet, was die&#xD;
Übersichtlichkeit ein wenig leiden lässt.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Zur Angabe des Symbol Pfads legt man nun zunächst ein Verzeichnis auf seiner Festplatte/Stick&#xD;
an, zum Beispiel &lt;font face="Courier New"&gt;c:\symbols&lt;/font&gt;. Anschließend startet&#xD;
man WinDbg und wählt im Menü &lt;font face="Courier New"&gt;File&lt;/font&gt; den Eintrag &lt;font face="Courier New"&gt;Symbol&#xD;
File Path ...&lt;/font&gt; aus. Im sich anschließend öffnenden Dialog gibt man über folgenden&#xD;
Befehl an, dass man die Symbole gerne von Microsoft herunter laden und auf der Festplatte&#xD;
im Verzeichnis &lt;font face="Courier New"&gt;c:\symbols&lt;/font&gt;  speichern würde:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;font face="Courier New"&gt;SRV*c:\symbols*&lt;/font&gt;&#xD;
          &lt;a href="http://msdl.microsoft.com/download/symbols"&gt;&#xD;
            &lt;font face="Courier New"&gt;http://msdl.microsoft.com/download/symbols&lt;/font&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;h3&gt; &#xD;
&lt;/h3&gt;&#xD;
        &lt;h3&gt;Genug der Vorarbeit. Los gehts!&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
Jetzt, nachdem WinDbg korrekt installiert und konfiguriert ist, möchte ich anhand&#xD;
eines kleinen Beispiels die Funktionsweise zeigen. Source Code sowie die kompilierte&#xD;
Version gibt es übrigens bald auf meiner Hompage zum Download. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Die Applikation um die es sich handelt ist eine kleine Windows Anwendung, die nur&#xD;
aus einem Login Dialog besteht. Gibt der Anwender die korrekten Zugangsdaten ein,&#xD;
erhält er Bestätigungsmeldung: &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.codemurai.de/images/WinDbgTutorialFehlerursachenfindenTeil1e_EACB/windbg1.png"&gt;&#xD;
            &lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="182" alt="windbg1" src="http://blog.codemurai.de/images/WinDbgTutorialFehlerursachenfindenTeil1e_EACB/windbg1_thumb.png" width="244" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;   &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Sind die Benutzerdaten falsch, kommt eine Fehlermeldung: &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.codemurai.de/images/WinDbgTutorialFehlerursachenfindenTeil1e_EACB/windbg2.png"&gt;&#xD;
            &lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="189" alt="windbg2" src="http://blog.codemurai.de/images/WinDbgTutorialFehlerursachenfindenTeil1e_EACB/windbg2_thumb.png" width="244" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Das ganze läuft seit einer ganzen Weile recht gut beim Kunden im produktiven Einsatz.&#xD;
Seit kurzem ist jedoch kein Login mehr möglich. Der Kunde meldet, dass trotz 100%ig&#xD;
richtiger Zugangsdaten stets die Meldung "Ungültige Benutzername / Passwort Kombination"&#xD;
Meldung kommt. Eine Log Datei wird leider nicht erstellt, so dass die Ursache des&#xD;
Fehlers derzeit vollkommen offen ist. Ein Blick auf den Quellocde zeigt folgende Zeilen&#xD;
innerhalb des Login-Formulars &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;font face="Courier New" size="2"&gt;private void LoginButton_Click(object sender, EventArgs&#xD;
e)&lt;br&gt;&#xD;
{&lt;br&gt;&#xD;
    UserService service = new UserService();&lt;br&gt;&#xD;
    try &#xD;
&lt;br&gt;&#xD;
    {&lt;br&gt;&#xD;
        service.ValidateUser(UserNameTextBox.Text,&#xD;
PasswordTextBox.Text);&lt;br&gt;&#xD;
        MessageBox.Show("Login erfolgreich");&lt;br&gt;&#xD;
    }&lt;br&gt;&#xD;
    catch&lt;br&gt;&#xD;
    {&lt;br&gt;&#xD;
        MessageBox.Show("Ungültige Benutzername&#xD;
/ Passwort Kombination");&lt;br&gt;&#xD;
    }&lt;br&gt;&#xD;
}&lt;/font&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Wie man sieht, wird hier Logik über Exceptions gesteuert. Nicht schön, aber vorerst&#xD;
leider nicht zu ändern. Da der Code im Falle &lt;strong&gt;irgendeiner&lt;/strong&gt; Exception&#xD;
die Meldung "&lt;em&gt;Ungültige Benutzername / Passwort Kombination&lt;/em&gt;" bringt, liegt&#xD;
die Vermutung nahe, dass irgendein Fehler innerhalb der Methode ValidateUser auftritt,&#xD;
der zu einer Exception führt. Die Frage ist nur: Welche Exception und warum tritt&#xD;
diese überhaupt auf? &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Die Ursache des Problems wäre mit einer kleinen Quellcodeänderung schnell gefunden.&#xD;
Eine schnelle Lösung ist zwar genau das, was unser Kunde braucht, jedoch möchte er&#xD;
uns weder zum Debuggen in sein Netzwerk, noch auf Gut Glück neue Versionsstände mit&#xD;
erweiterten Log Nachrichten einspielen lassen. Allerdings willigt er ein, dass wir&#xD;
mit einem USB Stick bewaffnet an einen der betroffenen PCs dürfen. Voraussetzung jedoch&#xD;
ist, dass wir keine Software installieren. &#xD;
&lt;/p&gt;&#xD;
        &lt;h3&gt;Showtime&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
Die beschriebene Situation ist ein typisches Einsatzszenario für WinDbg.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Wir starten also WinDbg von unserem USB Stick und wählen das Menü &lt;em&gt;File&lt;/em&gt;-&amp;gt;&lt;em&gt;Attach&#xD;
to a process.&lt;/em&gt; Anschließend wählen wir unsere fehlerhafte Applikation aus der&#xD;
Prozessliste aus und drücken OK. WinDbg sollte nun ungefähr so aussehen:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blog.codemurai.de/images/WinDbgTutorialFehlerursachenfindenTeil1e_EACB/windbg3.png"&gt;&#xD;
            &lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="149" alt="windbg3" src="http://blog.codemurai.de/images/WinDbgTutorialFehlerursachenfindenTeil1e_EACB/windbg3_thumb.png" width="244" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Als nächstes geben wir folgende Kommandos in die Eingabezeile ein:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;font face="Courier New"&gt;sxe clr&lt;/font&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;font face="Courier New"&gt;.loadby sos mscorwks&lt;/font&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Falls nun keine Fehlermeldung kommt, haben wir alles richtig gemacht ;-)&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
sxe clr sagt dem Debugger, dass er bei jeder CLR Exception anhalten soll. Der Befehl&#xD;
".loadby sos mscorwks" dient dazu, die SOS Extension zu laden. Diese DLL ermöglicht&#xD;
die Untersuchung von Managed Code innerhalb von WinDbg, der ja eigentlich ein Debugger&#xD;
für unmanaged Code ist. Für jede Version der CLR gibt es eine eigene SOS.DLL. Um nun&#xD;
die zum Framework der fehlerhaften Anwendung passende SOS.DLL zu laden, kann man entweder&#xD;
den vollständigen Pfad angeben, oder man lädt die Extension einfach aus dem Pfad,&#xD;
aus dem auch die mscorwks geladen wurden. Die Datei mscorwks gehört zum .NET Framework.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Derzeit befindet sich das Programm immer noch im Haltemodus. Über die Eingabe von&#xD;
g (für Go) bzw. drücken von F5 können wir die Ausführung fortführen. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Als nächstes Klicken wir in unserer fehlerhaften Applikation erneut auf den Button&#xD;
Login, um den Fehler zu provozieren. Ein Wechsel zu WinDbg zeigt, dass die Ausführung&#xD;
aufgrund der Exception angehalten wurde. Außerdem werden folgende Zeilen ausgegeben:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;font face="Courier New"&gt;(1144.1380): CLR exception - code e0434f4d (first chance)&lt;br&gt;&#xD;
First chance exceptions are reported before any exception handling.&lt;br&gt;&#xD;
This exception may be expected and handled.&lt;br&gt;&#xD;
eax=0012ecf0 ebx=e0434f4d ecx=00000000 edx=00000028 esi=0012ed7c edi=0015b718&lt;br&gt;&#xD;
eip=7c812a6b esp=0012ecec ebp=0012ed40 iopl=0        &#xD;
nv up ei pl nz na po nc&lt;br&gt;&#xD;
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000            &#xD;
efl=00000202&lt;br&gt;&#xD;
*** ERROR: Symbol file could not be found.  Defaulted to export symbols for C:\WINDOWS\system32\KERNEL32.dll&#xD;
- &#xD;
&lt;br&gt;&#xD;
KERNEL32!RaiseException+0x52:&lt;br&gt;&#xD;
7c812a6b 5e             &#xD;
pop     esi&lt;/font&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Wir sehen also, dass eine CLR Exception aufgetreten ist. Leider sagt die aktuelle&#xD;
Ausgabe noch relativ wenig über die Ursache aus. Wie kommen wir also an die Details?&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Dazu gibt es prinzipiell zwei Möglichkeiten.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Variante 1 ist, über den Befehl&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;font face="courier "&gt;!DumpStackObjects&lt;/font&gt; (oder kurz &lt;font face="courier "&gt;!dso&lt;/font&gt;)&#xD;
eine Liste aller Objekte, die aktuell auf dem Stack verwiesen werden, abzurufen.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Das Ergebnis sieht in meinem Beispiel wie folgt aus:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;font face="Courier New"&gt;0:000&amp;gt; &lt;strong&gt;!dso&lt;br&gt;&lt;/strong&gt;*** ERROR: Symbol file could not be found.  Defaulted to export symbols&#xD;
for c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll - &#xD;
&lt;br&gt;&#xD;
PDB symbol for mscorwks.dll not loaded&lt;br&gt;&#xD;
OS Thread Id: 0x1380 (0)&lt;br&gt;&#xD;
ESP/REG  Object   Name&lt;br&gt;&#xD;
0012ed5c &lt;strong&gt;&lt;font color="#ff0000"&gt;014c8974 System.Data.SqlServerCe.SqlCeException&lt;br&gt;&lt;/font&gt;&lt;/strong&gt;0012eda8 014c8974 System.Data.SqlServerCe.SqlCeException&lt;br&gt;&#xD;
0012edec 014c8974 System.Data.SqlServerCe.SqlCeException&lt;br&gt;&#xD;
0012edf8 014c8974 System.Data.SqlServerCe.SqlCeException&lt;br&gt;&#xD;
0012ee20 014c04d8 System.Data.SqlServerCe.SqlCeConnection&lt;br&gt;&#xD;
0012ee24 014c04d8 System.Data.SqlServerCe.SqlCeConnection&lt;br&gt;&#xD;
0012ee50 014c8974 System.Data.SqlServerCe.SqlCeException&lt;br&gt;&#xD;
0012ee7c 014c04d8 System.Data.SqlServerCe.SqlCeConnection&lt;br&gt;&#xD;
0012ef00 014bf388 System.Windows.Forms.MouseEventArgs&lt;br&gt;&#xD;
0012ef04 014c0430 Codemurai.Tutorial.WinDbg.ExceptionHunting.UserService&lt;br&gt;&#xD;
0012ef08 014c04d8 System.Data.SqlServerCe.SqlCeConnection&lt;br&gt;&#xD;
0012ef14 014c04d8 System.Data.SqlServerCe.SqlCeConnection&lt;br&gt;&#xD;
0012ef18 014c04d8 System.Data.SqlServerCe.SqlCeConnection&lt;br&gt;&#xD;
0012ef2c 014b075c System.Object[]    (System.Object[])&lt;br&gt;&#xD;
0012ef30 014bf388 System.Windows.Forms.MouseEventArgs&lt;br&gt;&#xD;
0012ef34 014c0430 Codemurai.Tutorial.WinDbg.ExceptionHunting.UserService&lt;br&gt;&#xD;
0012ef50 014c048c System.Text.StringBuilder&lt;br&gt;&#xD;
0012ef5c 014c04a0 System.String    test&lt;br&gt;&#xD;
0012ef60 014a6e80 System.String    Data Source=CodemuraiDb2.sdf&lt;br&gt;&#xD;
0012ef64 014c04d8 System.Data.SqlServerCe.SqlCeConnection&lt;br&gt;&#xD;
0012ef68 014c04d8 System.Data.SqlServerCe.SqlCeConnection&lt;br&gt;&#xD;
0012ef6c 014a6b78 System.Configuration.ConnectionStringSettings&lt;br&gt;&#xD;
0012ef70 014a5f8c System.Configuration.ConnectionStringSettingsCollection&lt;br&gt;&#xD;
0012ef80 014c04d8 System.Data.SqlServerCe.SqlCeConnection&lt;br&gt;&#xD;
0012ef84 014a6b78 System.Configuration.ConnectionStringSettings&lt;br&gt;&#xD;
0012ef88 014a5f8c System.Configuration.ConnectionStringSettingsCollection&lt;br&gt;&#xD;
0012ef8c 014c045c System.String    wilhelm&lt;br&gt;&#xD;
0012ef98 014c0430 Codemurai.Tutorial.WinDbg.ExceptionHunting.UserService&lt;br&gt;&#xD;
0012efb0 014bf388 System.Windows.Forms.MouseEventArgs&lt;br&gt;&#xD;
0012efb4 013c8b28 System.EventHandler&lt;br&gt;&#xD;
0012efb8 013c6a04 System.Windows.Forms.Button&lt;br&gt;&#xD;
0012efc4 014c04a0 System.String    test&lt;br&gt;&#xD;
0012efc8 014c04a0 System.String    test&lt;br&gt;&#xD;
0012efcc 014c045c System.String    wilhelm&lt;br&gt;&#xD;
0012efd0 014c0430 Codemurai.Tutorial.WinDbg.ExceptionHunting.UserService&lt;br&gt;&#xD;
0012efd4 014c0430 Codemurai.Tutorial.WinDbg.ExceptionHunting.UserService&lt;br&gt;&#xD;
0012efd8 014c0430 Codemurai.Tutorial.WinDbg.ExceptionHunting.UserService&lt;/font&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;font face="Courier New"&gt;...&lt;/font&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Wir sehen, dass ganz oben auf dem Stack eine SqlCeException liegt. Diese ist unter&#xD;
der Adresse &lt;strong&gt;014c8974 &lt;/strong&gt;auf dem Heap abgelegt. Details eines Objekts&#xD;
kann man sich über &lt;font face="Courier New"&gt;!DumpObj&lt;/font&gt; bzw. &lt;font face="Courier New"&gt;!do&lt;/font&gt; ansehen. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;font face="Courier New"&gt;0:000&amp;gt; &lt;strong&gt;!do 014c8974&lt;/strong&gt;&lt;br&gt;&#xD;
Name: System.Data.SqlServerCe.SqlCeException&lt;br&gt;&#xD;
MethodTable: 07d8255c&lt;br&gt;&#xD;
EEClass: 07d04f14&lt;br&gt;&#xD;
Size: 76(0x4c) bytes&lt;br&gt;&#xD;
(C:\WINDOWS\assembly\GAC_MSIL\System.Data.SqlServerCe\3.5.1.0__89845dcd8080cc91\System.Data.SqlServerCe.dll)&lt;br&gt;&#xD;
Fields:&lt;br&gt;&#xD;
      MT    Field   Offset                &#xD;
Type VT     Attr    Value Name&lt;br&gt;&#xD;
79330a00  40000b5        4       &#xD;
System.String  0 instance 00000000 _className&lt;br&gt;&#xD;
7932fe74  40000b6        8 ...ection.MethodBase &#xD;
0 instance 00000000 _exceptionMethod&lt;br&gt;&#xD;
79330a00  40000b7        c       &#xD;
System.String  0 instance 00000000 _exceptionMethodString&lt;br&gt;&#xD;
79330a00  40000b8       10       &#xD;
System.String  0 &lt;strong&gt;&lt;font color="#ff0000"&gt;instance 014c8e0c _message&lt;/font&gt;&lt;/strong&gt;&lt;br&gt;&#xD;
7932a35c  40000b9       14 ...tions.IDictionary &#xD;
0 instance 00000000 _data&lt;br&gt;&#xD;
79330b94  40000ba       18    &#xD;
System.Exception  0 instance 00000000 _innerException&lt;br&gt;&#xD;
79330a00  40000bb       1c       &#xD;
System.String  0 instance 00000000 _helpURL&lt;br&gt;&#xD;
7933061c  40000bc       20       &#xD;
System.Object  0 instance 00000000 _stackTrace&lt;br&gt;&#xD;
79330a00  40000bd       24       &#xD;
System.String  0 instance 00000000 _stackTraceString&lt;br&gt;&#xD;
79330a00  40000be       28       &#xD;
System.String  0 instance 00000000 _remoteStackTraceString&lt;br&gt;&#xD;
79332c4c  40000bf       34        &#xD;
System.Int32  1 instance        0 _remoteStackIndex&lt;br&gt;&#xD;
7933061c  40000c0       2c       &#xD;
System.Object  0 instance 00000000 _dynamicMethods&lt;br&gt;&#xD;
79332c4c  40000c1       38        &#xD;
System.Int32  1 instance -2146233087 _HResult&lt;br&gt;&#xD;
79330a00  40000c2       30       &#xD;
System.String  0 instance 00000000 _source&lt;br&gt;&#xD;
793332c8  40000c3       3c       &#xD;
System.IntPtr  1 instance        0 _xptrs&lt;br&gt;&#xD;
79332c4c  40000c4       40        &#xD;
System.Int32  1 instance -532459699 _xcode&lt;br&gt;&#xD;
07d82660  400032a       44 ...CeErrorCollection &#xD;
0 instance 014c8784 errors&lt;/font&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In den Informationen über unser Exception Objekt sehen wir nun, dass es ein Feld _message&#xD;
gibt, dessen Inhalt sich an der Adresse 014c8e0c befindet. An die Details des Felds&#xD;
_message kommen wir wieder über den Befehl &lt;font face="Courier New"&gt;!do&lt;/font&gt;. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;font face="Courier New"&gt;0:000&amp;gt; &lt;strong&gt;!do 014c8e0c&lt;/strong&gt;&lt;br&gt;&#xD;
Name: System.String&lt;br&gt;&#xD;
MethodTable: 79330a00&lt;br&gt;&#xD;
EEClass: 790ed64c&lt;br&gt;&#xD;
Size: 282(0x11a) bytes&lt;br&gt;&#xD;
(C:\WINDOWS\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll)&lt;br&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;String: The database file cannot be found. Check the&#xD;
path to the database. [ Data Source = CodemuraiDb2.sdf ]&lt;br&gt;&lt;/font&gt;&lt;/strong&gt;Fields:&lt;br&gt;&#xD;
      MT    Field   Offset                &#xD;
Type VT     Attr    Value Name&lt;br&gt;&#xD;
79332c4c  4000096        4        &#xD;
System.Int32  1 instance      133 m_arrayLength&lt;br&gt;&#xD;
79332c4c  4000097        8        &#xD;
System.Int32  1 instance      101 m_stringLength&lt;br&gt;&#xD;
793316e0  4000098        c         &#xD;
System.Char  1 instance       54 m_firstChar&lt;br&gt;&#xD;
79330a00  4000099       10       &#xD;
System.String  0   shared   static Empty&lt;br&gt;&#xD;
    &amp;gt;&amp;gt; Domain:Value  00163700:013a1198 &amp;lt;&amp;lt;&lt;br&gt;&#xD;
79331630  400009a       14       &#xD;
System.Char[]  0   shared   static WhitespaceChars&lt;br&gt;&#xD;
    &amp;gt;&amp;gt; Domain:Value  00163700:013a18ec &amp;lt;&amp;lt;&lt;/font&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;font face="trech"&gt;Prima, diese Aussage hat doch gleich eine ganz andere Qualität.&#xD;
Benutzername/Passwort waren wirklich nicht falsch. Einzig die geschluckte Exception&#xD;
sorgte für den Eindruck. Statt dessen konnte die DB nicht gefunden werden. Ein kurzer&#xD;
Blick die App.Config zeigt folgenden Eintrag:&lt;/font&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
&amp;lt;connectionStrings&amp;gt;&lt;br&gt;&#xD;
    &amp;lt;add name="CodemuraiDb" connectionString="Data Source=&lt;strong&gt;CodemuraiDb2.sdf&lt;/strong&gt;"&lt;br&gt;&#xD;
        providerName="Microsoft.SqlServerCe.Client.3.5"&#xD;
/&amp;gt; &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Die DB selbst heißt im Dateisystem jedoch: CodemuraiDb.sdf.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Einen kurzen Eintrag in der Datei Codemurai.Tutorial.WinDbg.ExceptionHunting.exe.config&#xD;
später läuft das Programm wieder wie gewünscht.&#xD;
&lt;/p&gt;&#xD;
        &lt;h3&gt;&#xD;
          &lt;font face="trech"&gt;Geht das auch schneller?&lt;/font&gt;&#xD;
        &lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;font face="trech"&gt;Selbstverständlich. Sobald unser Code wegen einer Exception steht&#xD;
hätten wir statt !dso und mindestens Zwei mal !do auch einfach !&lt;strong&gt;PrintException&lt;/strong&gt;,&#xD;
oder kurz &lt;strong&gt;!pe&lt;/strong&gt; eingeben können.&lt;/font&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;font face="Courier New"&gt;0:000&amp;gt; &lt;strong&gt;!pe&lt;/strong&gt;&lt;br&gt;&lt;strong&gt;Exception object: 014c8974&lt;/strong&gt;&lt;br&gt;&#xD;
Exception type: System.Data.SqlServerCe.SqlCeException&lt;br&gt;&#xD;
Message: The database file cannot be found. Check the path to the database. [ Data&#xD;
Source = CodemuraiDb2.sdf ]&lt;br&gt;&#xD;
InnerException: &amp;lt;none&amp;gt;&lt;br&gt;&#xD;
StackTrace (generated):&lt;br&gt;&#xD;
&amp;lt;none&amp;gt;&lt;br&gt;&#xD;
StackTraceString: &amp;lt;none&amp;gt;&lt;br&gt;&#xD;
HResult: 80131501&lt;/font&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Aber das kann ja jeder ;-) Außerdem haben wir über den anderen Weg direkt noch ein&#xD;
paar Debugging Tipps gelernt.&#xD;
&lt;/p&gt;&#xD;
        &lt;h3&gt;Zusammenfassung&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
In diesem Eintrag wurden folgende Befehle besprochen.&#xD;
&lt;/p&gt;&#xD;
        &lt;table cellspacing="0" cellpadding="2" width="90%" border="1"&gt;&#xD;
          &lt;thead&gt;&#xD;
            &lt;tr&gt;&#xD;
              &lt;th&gt;&#xD;
Befehl&lt;/th&gt;&#xD;
              &lt;th&gt;&#xD;
Bedeutung&lt;/th&gt;&#xD;
            &lt;/tr&gt;&#xD;
            &lt;thead&gt;&#xD;
              &lt;tbody&gt;&#xD;
                &lt;tr&gt;&#xD;
                  &lt;td valign="top" width="200"&gt;&#xD;
sxe clr&lt;/td&gt;&#xD;
                  &lt;td valign="top"&gt;&#xD;
Bei jeder CLR Exception anhalten&lt;/td&gt;&#xD;
                &lt;/tr&gt;&#xD;
                &lt;tr&gt;&#xD;
                  &lt;td valign="top" width="200"&gt;&#xD;
                    &lt;font face="Courier New"&gt;.loadby sos mscorwks&lt;/font&gt;&#xD;
                  &lt;/td&gt;&#xD;
                  &lt;td valign="top"&gt;&#xD;
SOS Extension passend zur .NET Framework Version laden&lt;/td&gt;&#xD;
                &lt;/tr&gt;&#xD;
                &lt;tr&gt;&#xD;
                  &lt;td valign="top" width="200"&gt;&#xD;
g&lt;/td&gt;&#xD;
                  &lt;td valign="top"&gt;&#xD;
Ausführung fortführen&lt;/td&gt;&#xD;
                &lt;/tr&gt;&#xD;
                &lt;tr&gt;&#xD;
                  &lt;td valign="top" width="200"&gt;&#xD;
                    &lt;font face="courier "&gt;!DumpStackObjects&lt;/font&gt; / !dso&lt;/td&gt;&#xD;
                  &lt;td valign="top"&gt;&#xD;
Auflistung aller Objekte, die auf dem Stack verwiesen werden&lt;/td&gt;&#xD;
                &lt;/tr&gt;&#xD;
                &lt;tr&gt;&#xD;
                  &lt;td valign="top" width="200"&gt;&#xD;
                    &lt;font face="Courier New"&gt;!DumpObj&lt;/font&gt; /&lt;font face="Courier New"&gt;!do &amp;lt;Adresse&amp;gt;&lt;/font&gt; &lt;/td&gt;&#xD;
                  &lt;td valign="top"&gt;&#xD;
Details zu einem Objekt ansehen&lt;/td&gt;&#xD;
                &lt;/tr&gt;&#xD;
                &lt;tr&gt;&#xD;
                  &lt;td valign="top" width="200"&gt;&#xD;
                    &lt;font face="Courier New"&gt;!PrintException / !pe&lt;/font&gt; &lt;/td&gt;&#xD;
                  &lt;td valign="top"&gt;&#xD;
Details zur aktuellen Exception ansehen&lt;/td&gt;&#xD;
                &lt;/tr&gt;&#xD;
              &lt;/tbody&gt;&#xD;
            &lt;/thead&gt;&#xD;
          &lt;/thead&gt;&#xD;
        &lt;/table&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;h3&gt;Wie gehts weiter?&#xD;
&lt;/h3&gt;&#xD;
        &lt;p&gt;&#xD;
Ziel dieses kleinen Beispiels war es, den Einstieg in WinDbg zu erleichtern. Natürlich&#xD;
gibt es noch weitaus mehr, was mit WinDbg angestellt werden kann. So ist der Debugger&#xD;
sehr hilfreich, um Speicherlecks, oder (vermeintliche) Deadlocks zu finden. Auch die&#xD;
Option, einen zuvor durch den Kunden generierten MemoryDump zu analysieren ist sehr&#xD;
interessant.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Sollte also Interesse an einer Fortsetzung bestehen, reicht es einen kurzen Kommentar&#xD;
zu diesem Beitrag zu hinterlassen. Kommen genug Kommentare zusammen, schreibe ich&#xD;
gerne weitere Teile - dieses Mal auch mit weniger Wartezeit ;-)&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.codemurai.de/aggbug.ashx?id=a388c50c-7e98-4e84-b435-0381cb4056bc"&gt;&lt;/img&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;hr&gt;&lt;/hr&gt;&#xD;
        &lt;a href="http://blog.codemurai.de"&gt;blog.codemurai.de&lt;/a&gt; © André Krämer |&lt;a href="http://www.codemurai.de/pages/de/impress.aspx"&gt;Impressum &lt;/a&gt;| &lt;a href="http://feeds2.feedburner.com/codemurai/qlrN"&gt;Abonieren &lt;/a&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=tE8ip27d9nY:Zw5CzPthz4Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=tE8ip27d9nY:Zw5CzPthz4Y:xZ3Pn_mapoI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=xZ3Pn_mapoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/codemurai/qlrN/~4/tE8ip27d9nY" height="1" width="1"/&gt;</description>
      <comments>http://blog.codemurai.de/CommentView,guid,a388c50c-7e98-4e84-b435-0381cb4056bc.aspx</comments>
      <category>.NET</category>
      <category>DotNetGerman Bloggers</category>
      <category>Tutorials</category>
      <category>WinDbg</category>
    <feedburner:origLink>http://blog.codemurai.de/2009/09/04/WinDbgTutorialFehlerursachenFindenTeil1EinerSerie.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.codemurai.de/Trackback.aspx?guid=5ee6186e-1736-4d56-a2b5-508de11eaef3</trackback:ping>
      <pingback:server>http://blog.codemurai.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.codemurai.de/PermaLink,guid,5ee6186e-1736-4d56-a2b5-508de11eaef3.aspx</pingback:target>
      <dc:creator>Andre</dc:creator>
      <wfw:comment>http://blog.codemurai.de/CommentView,guid,5ee6186e-1736-4d56-a2b5-508de11eaef3.aspx</wfw:comment>
      <wfw:commentRss>http://blog.codemurai.de/SyndicationService.asmx/GetEntryCommentsRss?guid=5ee6186e-1736-4d56-a2b5-508de11eaef3</wfw:commentRss>
      
      <title>TortoiseSVN meldet Can't open file: [subversion dir]\tempfile.tmp Access is Denied</title>
      <guid isPermaLink="false">http://blog.codemurai.de/PermaLink,guid,5ee6186e-1736-4d56-a2b5-508de11eaef3.aspx</guid>
      <link>http://feedproxy.google.com/~r/codemurai/qlrN/~3/nacc1pDROPI/TortoiseSVNMeldetCantOpenFileSubversionDirtempfiletmpAccessIsDenied.aspx</link>
      <pubDate>Fri, 03 Jul 2009 10:32:42 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Vorgestern verpasste ich abends den Zug. Der Grund war relativ einfach: ich bin zu&#xD;
spät los gegangen. Die Ursache hierfür lag darin, dass ich mehrfach versuchen musste&#xD;
meine geänderten Quellcode in unser Subversion Repository zu commiten. Leider erhielt&#xD;
ich während des Commits jedes Mal die Fehlermeldung:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
"Can't open file: [subversion dir]\tempfile.tmp Access is Denied"&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Zum Glück kannte Google die &lt;a href="http://www.svnforum.org/2017/viewtopic.php?t=3392" target="_blank"&gt;Antwort&lt;/a&gt;.&#xD;
Kurz zusammengefasst:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Die Fehlermeldung wurde durch den Virenscanner (in meinem Fall McAfee) verursacht.&#xD;
Dieser meinte nämlich Zugriffe auf die temporäre Subversion Datei blockieren zu müssen.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Nach der Deaktivierung konnte ich meine Quellcodes sofort einchecken. Schade nur,&#xD;
dass der Zug schon weg war ...&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.codemurai.de/aggbug.ashx?id=5ee6186e-1736-4d56-a2b5-508de11eaef3"&gt;&lt;/img&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;hr&gt;&lt;/hr&gt;&#xD;
        &lt;a href="http://blog.codemurai.de"&gt;blog.codemurai.de&lt;/a&gt; © André Krämer |&lt;a href="http://www.codemurai.de/pages/de/impress.aspx"&gt;Impressum &lt;/a&gt;| &lt;a href="http://feeds2.feedburner.com/codemurai/qlrN"&gt;Abonieren &lt;/a&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=nacc1pDROPI:zllXfqEnAxU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=nacc1pDROPI:zllXfqEnAxU:xZ3Pn_mapoI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=xZ3Pn_mapoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/codemurai/qlrN/~4/nacc1pDROPI" height="1" width="1"/&gt;</description>
      <comments>http://blog.codemurai.de/CommentView,guid,5ee6186e-1736-4d56-a2b5-508de11eaef3.aspx</comments>
    <feedburner:origLink>http://blog.codemurai.de/2009/07/03/TortoiseSVNMeldetCantOpenFileSubversionDirtempfiletmpAccessIsDenied.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.codemurai.de/Trackback.aspx?guid=845df5b3-488b-431c-a44c-64eb2df389e9</trackback:ping>
      <pingback:server>http://blog.codemurai.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.codemurai.de/PermaLink,guid,845df5b3-488b-431c-a44c-64eb2df389e9.aspx</pingback:target>
      <dc:creator>Andre</dc:creator>
      <wfw:comment>http://blog.codemurai.de/CommentView,guid,845df5b3-488b-431c-a44c-64eb2df389e9.aspx</wfw:comment>
      <wfw:commentRss>http://blog.codemurai.de/SyndicationService.asmx/GetEntryCommentsRss?guid=845df5b3-488b-431c-a44c-64eb2df389e9</wfw:commentRss>
      
      <title>Tabellenlose Dateneingabeformulare im Web</title>
      <guid isPermaLink="false">http://blog.codemurai.de/PermaLink,guid,845df5b3-488b-431c-a44c-64eb2df389e9.aspx</guid>
      <link>http://feedproxy.google.com/~r/codemurai/qlrN/~3/xqNhRIbDiYk/TabellenloseDateneingabeformulareImWeb.aspx</link>
      <pubDate>Fri, 19 Jun 2009 12:19:36 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Wer in den letzten Jahren auch nur am Rande etwas mit der Entwicklung von Webapplikationen&#xD;
zu tun hatte, sollte wissen, dass der Einsatz von Tabellen zur Gestaltung des Layouts&#xD;
nicht mehr wirklich State-Of-The-Art sind. Schön und gut, aber wie sieht es mit Dateneingabefomularen&#xD;
aus? Diese sind häufig zweispaltig und mehrzeilig aufgebaut, so dass der Einsatz von&#xD;
Tabellen nicht komplett abwegig wäre und zumindest noch halbwegs sinnvoll erscheint.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Doch leider weit gefehlt. Jeder, der sich ein solches Eingabeformular von einem Screenreader&#xD;
vorlesen lässt, merkt schnell, dass auch hier Tabellen nicht das Mittel der Wahl sein&#xD;
sollten. Wie sieht nun aber die Alternative aus? In der Praxis stolpert man häufig&#xD;
über wüst zusammen geschusterte DIV Tags mit fixen Positionierungen, deren einziger&#xD;
Zweck in der Emulation von Tabellenzellen besteht. Dies mag zwar bereits ein Schritt&#xD;
in die richtige Richtung sein, aber wenn man ehrlich ist, wurde das Problem nur verlagert.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Weitaus interessanter finde ich &lt;a href="http://www.themaninblue.com" target="_blank"&gt;Cameron&#xD;
Adams&lt;/a&gt;&lt;a href="http://www.themaninblue.com/experiment/InForm/margin.htm" target="_blank"&gt;Ansatz&lt;/a&gt;,&#xD;
den ich seit einiger Zeit auch erfolgreich in einigen Projekten zum Einsatz gebracht&#xD;
habe. Wer also Eingabeformulare fürs Web erstellen muss, und keine Lust auf Tabellen&#xD;
hat, sollte sich auf jeden Fall diesen &lt;a href="http://www.themaninblue.com/writing/perspective/2004/03/24/" target="_blank"&gt;Link&lt;/a&gt; inklusive&#xD;
der verschiedenen &lt;a href="http://www.themaninblue.com/experiment/InForm/columnar.htm" target="_blank"&gt;Beispiele&lt;/a&gt; und&#xD;
der Quellcodes ansehen.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.codemurai.de/aggbug.ashx?id=845df5b3-488b-431c-a44c-64eb2df389e9"&gt;&lt;/img&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;hr&gt;&lt;/hr&gt;&#xD;
        &lt;a href="http://blog.codemurai.de"&gt;blog.codemurai.de&lt;/a&gt; © André Krämer |&lt;a href="http://www.codemurai.de/pages/de/impress.aspx"&gt;Impressum &lt;/a&gt;| &lt;a href="http://feeds2.feedburner.com/codemurai/qlrN"&gt;Abonieren &lt;/a&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=xqNhRIbDiYk:Wl92AN9Q6Q0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=xqNhRIbDiYk:Wl92AN9Q6Q0:xZ3Pn_mapoI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=xZ3Pn_mapoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/codemurai/qlrN/~4/xqNhRIbDiYk" height="1" width="1"/&gt;</description>
      <comments>http://blog.codemurai.de/CommentView,guid,845df5b3-488b-431c-a44c-64eb2df389e9.aspx</comments>
      <category>.NET</category>
      <category>ASP.NET</category>
      <category>DotNetGerman Bloggers</category>
    <feedburner:origLink>http://blog.codemurai.de/2009/06/19/TabellenloseDateneingabeformulareImWeb.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.codemurai.de/Trackback.aspx?guid=f0264df7-1665-48ba-9e80-440d8e6a6a7b</trackback:ping>
      <pingback:server>http://blog.codemurai.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.codemurai.de/PermaLink,guid,f0264df7-1665-48ba-9e80-440d8e6a6a7b.aspx</pingback:target>
      <dc:creator>Andre</dc:creator>
      <wfw:comment>http://blog.codemurai.de/CommentView,guid,f0264df7-1665-48ba-9e80-440d8e6a6a7b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.codemurai.de/SyndicationService.asmx/GetEntryCommentsRss?guid=f0264df7-1665-48ba-9e80-440d8e6a6a7b</wfw:commentRss>
      <slash:comments>1</slash:comments>
      
      <title>.NET User Group Koblenz zu Gast an der Uni Koblenz</title>
      <guid isPermaLink="false">http://blog.codemurai.de/PermaLink,guid,f0264df7-1665-48ba-9e80-440d8e6a6a7b.aspx</guid>
      <link>http://feedproxy.google.com/~r/codemurai/qlrN/~3/_HXU2IK1w_I/NETUserGroupKoblenzZuGastAnDerUniKoblenz.aspx</link>
      <pubDate>Fri, 19 Jun 2009 11:45:16 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Von heute an veranstaltet die Universität Koblenz sieben Tage lang eine „Sommer-Uni“&#xD;
mit Themen, die etwas außerhalb des &lt;strong&gt;normalen Lehrplans&lt;/strong&gt; angesiedelt&#xD;
sind. Mit dabei ist die &lt;a href="http://www.dnug-koblenz.de/"&gt;.NET User Group Koblenz&lt;/a&gt;,&#xD;
die am 24. Juni zwei Vorträge aus dem .NET-Umfeld beisteuert: „&lt;a href="http://www.uni-koblenz.de/~sommeruni/2009/index.php?page=wsdetails&amp;amp;col=bilder_blau&amp;amp;id=59"&gt;Moderne&#xD;
Anwendungsarchitekturen mit .NET&lt;/a&gt; “ und „&lt;a href="http://www.uni-koblenz.de/~sommeruni/2009/index.php?page=wsdetails&amp;amp;col=bilder_blau&amp;amp;id=60"&gt;User&#xD;
Interface Design mit der WPF&lt;/a&gt;“. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Was ich mich dabei nur frage: Wieso liegt .NET außerhalb des normalen Lehrplans ;-)&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.codemurai.de/aggbug.ashx?id=f0264df7-1665-48ba-9e80-440d8e6a6a7b"&gt;&lt;/img&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;hr&gt;&lt;/hr&gt;&#xD;
        &lt;a href="http://blog.codemurai.de"&gt;blog.codemurai.de&lt;/a&gt; © André Krämer |&lt;a href="http://www.codemurai.de/pages/de/impress.aspx"&gt;Impressum &lt;/a&gt;| &lt;a href="http://feeds2.feedburner.com/codemurai/qlrN"&gt;Abonieren &lt;/a&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=_HXU2IK1w_I:WfaukIxc7l8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=_HXU2IK1w_I:WfaukIxc7l8:xZ3Pn_mapoI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=xZ3Pn_mapoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/codemurai/qlrN/~4/_HXU2IK1w_I" height="1" width="1"/&gt;</description>
      <comments>http://blog.codemurai.de/CommentView,guid,f0264df7-1665-48ba-9e80-440d8e6a6a7b.aspx</comments>
      <category>.NET</category>
      <category>Community</category>
      <category>DNUG Koblenz</category>
      <category>DotNetGerman Bloggers</category>
    <feedburner:origLink>http://blog.codemurai.de/2009/06/19/NETUserGroupKoblenzZuGastAnDerUniKoblenz.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.codemurai.de/Trackback.aspx?guid=382783fd-0514-436e-b104-47fc54018d59</trackback:ping>
      <pingback:server>http://blog.codemurai.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.codemurai.de/PermaLink,guid,382783fd-0514-436e-b104-47fc54018d59.aspx</pingback:target>
      <dc:creator>Andre</dc:creator>
      <wfw:comment>http://blog.codemurai.de/CommentView,guid,382783fd-0514-436e-b104-47fc54018d59.aspx</wfw:comment>
      <wfw:commentRss>http://blog.codemurai.de/SyndicationService.asmx/GetEntryCommentsRss?guid=382783fd-0514-436e-b104-47fc54018d59</wfw:commentRss>
      <slash:comments>1</slash:comments>
      
      <title>Interessante Zertifizierung</title>
      <guid isPermaLink="false">http://blog.codemurai.de/PermaLink,guid,382783fd-0514-436e-b104-47fc54018d59.aspx</guid>
      <link>http://feedproxy.google.com/~r/codemurai/qlrN/~3/Ls3Wvzb6Q20/InteressanteZertifizierung.aspx</link>
      <pubDate>Thu, 04 Jun 2009 20:11:14 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Wer kennt solche Unterhaltungen nicht:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Ich: &lt;em&gt;Der Build-Vorgang schlägt fehl. Wer hat als letztes eingecheckt?&lt;/em&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Er: &lt;em&gt;Ich wars&lt;/em&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Ich: &lt;em&gt;Herzlichen Glückwunsch! Du hast den Build kaputt gemacht.&lt;/em&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Er:&lt;em&gt; Bei mir läufts!&lt;/em&gt;&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Was ist die Moral der Geschichte? Ob es auf dem eigenen Rechner kompiliert ist egal.&#xD;
Der Build Server (und nur der) ist wirklich wichtig!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
 &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Daher möchte ich aus gegebenem Anlass an dieser Stelle an folgende Zertifizierung&#xD;
erinnern:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://jcooney.net/archive/2007/02/01/42999.aspx"&gt;&#xD;
            &lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="64" alt="worksonmymachine_logo_small" src="http://blog.codemurai.de/images/InteressanteZertifizierung_13806/worksonmymachine_logo_small.png" width="140" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;  &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Alternativ kann das Ganze übrigens auch in Form eines Awards vergeben werden:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://www.codinghorror.com/blog/archives/000818.html"&gt;&#xD;
            &lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="193" alt="works-on-my-machine-starburst" src="http://blog.codemurai.de/images/InteressanteZertifizierung_13806/worksonmymachinestarburst.png" width="200" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Happy coding ;-)&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.codemurai.de/aggbug.ashx?id=382783fd-0514-436e-b104-47fc54018d59"&gt;&lt;/img&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;hr&gt;&lt;/hr&gt;&#xD;
        &lt;a href="http://blog.codemurai.de"&gt;blog.codemurai.de&lt;/a&gt; © André Krämer |&lt;a href="http://www.codemurai.de/pages/de/impress.aspx"&gt;Impressum &lt;/a&gt;| &lt;a href="http://feeds2.feedburner.com/codemurai/qlrN"&gt;Abonieren &lt;/a&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=Ls3Wvzb6Q20:ILIzrlkXoCU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=Ls3Wvzb6Q20:ILIzrlkXoCU:xZ3Pn_mapoI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=xZ3Pn_mapoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/codemurai/qlrN/~4/Ls3Wvzb6Q20" height="1" width="1"/&gt;</description>
      <comments>http://blog.codemurai.de/CommentView,guid,382783fd-0514-436e-b104-47fc54018d59.aspx</comments>
      <category>.NET</category>
      <category>DotNetGerman Bloggers</category>
      <category>Fun</category>
    <feedburner:origLink>http://blog.codemurai.de/2009/06/04/InteressanteZertifizierung.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.codemurai.de/Trackback.aspx?guid=84e2a56f-8935-475a-ae8b-002852500beb</trackback:ping>
      <pingback:server>http://blog.codemurai.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.codemurai.de/PermaLink,guid,84e2a56f-8935-475a-ae8b-002852500beb.aspx</pingback:target>
      <dc:creator>Andre</dc:creator>
      <wfw:comment>http://blog.codemurai.de/CommentView,guid,84e2a56f-8935-475a-ae8b-002852500beb.aspx</wfw:comment>
      <wfw:commentRss>http://blog.codemurai.de/SyndicationService.asmx/GetEntryCommentsRss?guid=84e2a56f-8935-475a-ae8b-002852500beb</wfw:commentRss>
      <slash:comments>7</slash:comments>
      
      <title>Meine drei Top Entwicklertools</title>
      <guid isPermaLink="false">http://blog.codemurai.de/PermaLink,guid,84e2a56f-8935-475a-ae8b-002852500beb.aspx</guid>
      <link>http://feedproxy.google.com/~r/codemurai/qlrN/~3/KU-CawPXbmI/MeineDreiTopEntwicklertools.aspx</link>
      <pubDate>Thu, 04 Jun 2009 19:51:15 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Ich weiß, ich bin spät, aber zum Glück noch nicht zu spät. &lt;a href="http://blogs.msdn.com/softwarehersteller/archive/2009/05/06/msdn-blog-parade-was-sind-ihre-lieblings-entwickler-tools-mitmachen-und-gewinnen.aspx" target="_blank"&gt;MSDN&#xD;
Deutschland&lt;/a&gt; hat zur Blog-Parade aufgerufen und fragt nach den drei Lieblings-Entwickler-Tools.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://blogs.msdn.com/softwarehersteller/archive/2009/05/06/msdn-blog-parade-was-sind-ihre-lieblings-entwickler-tools-mitmachen-und-gewinnen.aspx" target="_blank"&gt;&#xD;
            &lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="32" alt="150x32_BlogParade_anim_thumb" src="http://blog.codemurai.de/images/MeinedreiTopEntwicklertools_EEAD/150x32_BlogParade_anim_thumb.gif" width="150" border="0"&gt;&lt;/img&gt;&#xD;
          &lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Nachdem &lt;a href="http://coding.roecher.de/2009/05/26/meine-top-3-entwicklertools/" target="_blank"&gt;Mario&lt;/a&gt;, &lt;a href="http://www.vb-magazin.de/forums/blogs/alexbierhaus/archive/2009/05/15/top-3-entwicklertools.aspx" target="_blank"&gt;Alex&lt;/a&gt;, &lt;a href="http://blog.jan-welker.de/2009/05/16/MeineTop3EntwicklerTools.aspx" target="_blank"&gt;Jan&lt;/a&gt; und&#xD;
viele andere auch schon mit gemacht haben, möchte ich meinen Senf selbstverständlich&#xD;
auch zum Besten geben.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Das Visual Studio zur Grundausstattung eines Entwicklers gehört setze ich mal voraus&#xD;
und lasse es daher außen vor. Nun aber zu meinen Top 3.&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;h1&gt;&#xD;
              &lt;a href="http://microsoft.com/whdc/devtools/debugging/" target="_blank"&gt;Microsoft&#xD;
WinDbg&lt;/a&gt;&#xD;
            &lt;/h1&gt;&#xD;
            &lt;a href="http://blog.codemurai.de/images/MeinedreiTopEntwicklertools_EEAD/windbg.png"&gt;&#xD;
              &lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="157" alt="windbg" src="http://blog.codemurai.de/images/MeinedreiTopEntwicklertools_EEAD/windbg_thumb.png" width="244" border="0"&gt;&lt;/img&gt;&#xD;
            &lt;/a&gt;&#xD;
            &lt;br&gt;&#xD;
            &lt;br&gt;&#xD;
Ich kann gar nicht aufzählen, wie oft mir dieses Tool schon in unangenehmen Situationen&#xD;
geholfen hat. &#xD;
&lt;br&gt;&#xD;
Wer kennt die Situation nicht: &#xD;
&lt;br&gt;&lt;ul&gt;&lt;li&gt;&#xD;
Man entwickelt eine Applikation &#xD;
&lt;/li&gt;&lt;li&gt;&#xD;
Auf dem Entwicklungs- und Testsystemen läuft Sie großartig &#xD;
&lt;/li&gt;&lt;li&gt;&#xD;
Beim Kunden stürzt sie ab &#xD;
&lt;/li&gt;&lt;li&gt;&#xD;
Man hat weder eine vernünftige Fehlermeldung, noch einen aussagekräftigen Eintrag&#xD;
in der Log-Datei &#xD;
&lt;/li&gt;&lt;li&gt;&#xD;
Der Fehler ist bei uns nicht nachvollziehbar &#xD;
&lt;/li&gt;&lt;li&gt;&#xD;
Wir dürfen mit unserem PC nicht ins Kundennetz und Visual Studio oder CoreDbg dürfen&#xD;
wir dort auch nicht installieren &#xD;
&lt;/li&gt;&lt;li&gt;&#xD;
„Pech gehabt, lieber Kunde“ oder wirres Code-Ändern ist keine valide Option ;-) &#xD;
&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&#xD;
Wenn es so weit ist, hilft nur noch ein ganz tiefer Griff in die Werkzeugkiste, nämlich&#xD;
der zu &lt;a href="http://microsoft.com/whdc/devtools/debugging/" target="_blank"&gt;WinDbg&lt;/a&gt;.&#xD;
Für diejenigen, die ihn nicht kennen: WinDbg ist ein unmanaged (native) Debugger mit&#xD;
grafischer Benutzeroberfläche. Dank der SOS Erweiterung kann man ihn jedoch wunderbar&#xD;
dazu verwenden, auch managed Code zu debuggen. Zugegeben, der Komfort liegt etwas&#xD;
hinter dem des in Visual Studio integrierten Debuggers, aber in der Not nimmt man&#xD;
schließlich, was man bekommen kann. Das tolle an diesem Debugger ist nämlich, dass&#xD;
er nicht installiert werden muss, sondern direkt vom Stick gestartet werden kann.&#xD;
Außerdem "sieht" er etwas mehr als der in VS integrierte Debugger, denn schließlich&#xD;
ist er ja eigentlich ein unmanaged Debugger. Bei Interesse könnte ich mich übrigens&#xD;
dazu verleiten lassen, mal ein WinDbg Einsteiger Tutorial zu schreiben, oder zumindest&#xD;
mein "Cheat-Sheet" hier aufs Blog zu packen. Also einfach die &lt;strong&gt;Kommentarfunktion&lt;/strong&gt; dieses&#xD;
Eintrags nutzen!&#xD;
&lt;/p&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;h1&gt;&#xD;
              &lt;a href="http://www.infragistics.com" target="_blank"&gt;Infragistics NetAdvantage&lt;/a&gt;&#xD;
            &lt;/h1&gt;&#xD;
            &lt;a href="http://blog.codemurai.de/images/MeinedreiTopEntwicklertools_EEAD/infragistics.png"&gt;&#xD;
              &lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="149" alt="infragistics" src="http://blog.codemurai.de/images/MeinedreiTopEntwicklertools_EEAD/infragistics_thumb.png" width="244" border="0"&gt;&lt;/img&gt;&#xD;
            &lt;/a&gt; &lt;br&gt;&lt;br&gt;&#xD;
»Für den ersten Eindruck gibt es keine zweite Chance« lautet ein geflügeltes Wort.&#xD;
Dass Menschen einander innerhalb weniger Augenblicke beurteilen, ist allgemein bekannt.&#xD;
Da diese Beurteilung vor allem anhand optischer Gesichtspunkte statt findet, achten&#xD;
viele Menschen heutzutage in besonderem Maße auf ihr Äußeres. Nur so lassen sich wichtige&#xD;
erste Begegnungen, wie zum Beispiel ein Vorstellungsgespräch, erfolgreich meistern. &#xD;
&lt;p&gt;&#xD;
Ähnlich wie das menschliche Äußere bei einem Vorstellungsgespräch, kann auch das Äußere&#xD;
einer Softwareapplikation – also die Benutzeroberfläche – im Zweifelsfall über Sieg&#xD;
oder Niederlage (kaufen oder nicht kaufen!) entscheiden. Der Grund dafür ist, dass&#xD;
viele Benutzer, vor allem solche, die technisch nicht sonderlich versiert sind, &lt;strong&gt;vom&#xD;
Eindruck der Benutzeroberfläche auf die Gesamtqualität der Software schließen&lt;/strong&gt;.&#xD;
Komplexe, überladene Bildschirmmasken, deren Design an ein typisches Look and Feel&#xD;
von vor zehn Jahren erinnern, mindern potentiell also den kommerziellen Erfolg einer&#xD;
Anwendung. Dies gilt besonders dann, wenn die Konkurrenz ihre Hausaufgaben gemacht&#xD;
hat! &#xD;
&lt;/p&gt;&lt;p&gt;&#xD;
Reichte es vor 15 Jahren noch vollkommen aus, einfach nur die Bedienung der Applikation&#xD;
mit der Maus zu unterstützen, erwarten Anwender heute doch einiges mehr. Angeregt&#xD;
von innovativen Oberflächenelementen in Applikationen großer Hersteller, wie zum Beispiel&#xD;
Apples Coverflow, das Ribbon in Microsoft Office 2007 oder interaktiv gruppierbarer&#xD;
Tabellen wie in Microsoft Outlook, erwarten Endanwender solche Features auch in anderen,&#xD;
also &lt;strong&gt;unseren&lt;/strong&gt; Applikationen. &#xD;
&lt;/p&gt;&lt;p&gt;&#xD;
Leider kommt man mit den Bordmitteln, die Microsoft Visual Studio bis zur Version&#xD;
2008 an dieser Stelle liefert nicht immer ans Ziel. So sind zum Beispiel weder Ribbons,&#xD;
noch interaktiv gruppierbare Tabellen oder Excel ähnliche Diagramme „out-of-the-box“&#xD;
möglich. &#xD;
&lt;/p&gt;&lt;p&gt;&#xD;
Möchte man die Anforderungen an eine konkurrenzfähige Oberfläche also erfüllen, kommt&#xD;
man (wirtschaftlich gesehen) kaum um den Einsatz einer 3rd Party UI Komponentensuite&#xD;
herum. &#xD;
&lt;/p&gt;&lt;p&gt;&#xD;
Die Suite meiner Wahl ist &lt;a href="http://www.infragistics.com" target="_blank"&gt;Infragistics&#xD;
NetAdvantage&lt;/a&gt;. Die Komponenten sehen nicht nur top aus, sondern bieten auch alle&#xD;
Features, die das Entwicklerherz begehrt. &#xD;
&lt;/p&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;h1&gt;&#xD;
              &lt;a href="http://code.msdn.microsoft.com/sourceanalysis" target="_blank"&gt;StyleCop&lt;/a&gt;&#xD;
            &lt;/h1&gt;&#xD;
Konsistente Quellcode Formatierungen in einem Projekt mit mehreren Entwicklern. müssen&#xD;
dank &lt;a href="http://code.msdn.microsoft.com/sourceanalysis" target="_blank"&gt;StyleCop&lt;/a&gt; kein&#xD;
Wunschtraum mehr bleiben. Jedem, der im Team entwickelt kann ich dieses Tool nur wärmstens&#xD;
ans Herz legen!&lt;br&gt;&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.codemurai.de/aggbug.ashx?id=84e2a56f-8935-475a-ae8b-002852500beb"&gt;&lt;/img&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;hr&gt;&lt;/hr&gt;&#xD;
        &lt;a href="http://blog.codemurai.de"&gt;blog.codemurai.de&lt;/a&gt; © André Krämer |&lt;a href="http://www.codemurai.de/pages/de/impress.aspx"&gt;Impressum &lt;/a&gt;| &lt;a href="http://feeds2.feedburner.com/codemurai/qlrN"&gt;Abonieren &lt;/a&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=KU-CawPXbmI:NHC1rNj4oOw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=KU-CawPXbmI:NHC1rNj4oOw:xZ3Pn_mapoI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=xZ3Pn_mapoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/codemurai/qlrN/~4/KU-CawPXbmI" height="1" width="1"/&gt;</description>
      <comments>http://blog.codemurai.de/CommentView,guid,84e2a56f-8935-475a-ae8b-002852500beb.aspx</comments>
      <category>.NET</category>
      <category>DotNetGerman Bloggers</category>
      <category>Infragistics</category>
      <category>Tips und Tricks</category>
    <feedburner:origLink>http://blog.codemurai.de/2009/06/04/MeineDreiTopEntwicklertools.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.codemurai.de/Trackback.aspx?guid=4faeaf14-b764-4e11-9849-f4761aabf5fe</trackback:ping>
      <pingback:server>http://blog.codemurai.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.codemurai.de/PermaLink,guid,4faeaf14-b764-4e11-9849-f4761aabf5fe.aspx</pingback:target>
      <dc:creator>Andre</dc:creator>
      <wfw:comment>http://blog.codemurai.de/CommentView,guid,4faeaf14-b764-4e11-9849-f4761aabf5fe.aspx</wfw:comment>
      <wfw:commentRss>http://blog.codemurai.de/SyndicationService.asmx/GetEntryCommentsRss?guid=4faeaf14-b764-4e11-9849-f4761aabf5fe</wfw:commentRss>
      
      <title>HTTP Error 500 nach Restore eines Sharepoint Backups</title>
      <guid isPermaLink="false">http://blog.codemurai.de/PermaLink,guid,4faeaf14-b764-4e11-9849-f4761aabf5fe.aspx</guid>
      <link>http://feedproxy.google.com/~r/codemurai/qlrN/~3/yHADIZTkpBk/HTTPError500NachRestoreEinesSharepointBackups.aspx</link>
      <pubDate>Mon, 18 May 2009 20:44:53 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Kürzlich versuchte ich via &lt;em&gt;stsadm -o restore&lt;/em&gt; das Sharepoint Backup eines&#xD;
Kundens auf meinem Entwicklungsrechner einzuspielen. Obwohl die Wiederherstellung&#xD;
problemlos lief, kam beim anschließenden Aufrufen der Seite stets nur die statische&#xD;
Meldung: HTTP 500, interner Serverfehler. Sowohl das Eventlog, als auch die Sharepoint-Log&#xD;
Dateien gaben keinen Aufschluss zur Ursache des Fehlers. Auch Google und Co waren&#xD;
wenig hilfreich.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Nach stundenlangem Probieren konnte ich die Ursache glücklicherweise doch finden:&#xD;
Sowohl der Kunde, als auch ich hatten einen englischen MOSS auf einem englischen Windows&#xD;
2003 Server installiert. Im Gegensatz zu mir hatte der Kunde jedoch zusätzlich die&#xD;
deutschen Sprachpakete für MOSS &lt;strong&gt;und&lt;/strong&gt; WSS 3.0 inkl. aktuellem Servicepack&#xD;
installiert.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Mein Fazit der Geschichte:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
In Zukunft werde ich beim Aufsetzen einer Sharepoint Entwicklungsmaschine sofort die&#xD;
Language Packs installieren.&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.codemurai.de/aggbug.ashx?id=4faeaf14-b764-4e11-9849-f4761aabf5fe"&gt;&lt;/img&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;hr&gt;&lt;/hr&gt;&#xD;
        &lt;a href="http://blog.codemurai.de"&gt;blog.codemurai.de&lt;/a&gt; © André Krämer |&lt;a href="http://www.codemurai.de/pages/de/impress.aspx"&gt;Impressum &lt;/a&gt;| &lt;a href="http://feeds2.feedburner.com/codemurai/qlrN"&gt;Abonieren &lt;/a&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=yHADIZTkpBk:hvfj3s55H3w:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=yHADIZTkpBk:hvfj3s55H3w:xZ3Pn_mapoI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=xZ3Pn_mapoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/codemurai/qlrN/~4/yHADIZTkpBk" height="1" width="1"/&gt;</description>
      <comments>http://blog.codemurai.de/CommentView,guid,4faeaf14-b764-4e11-9849-f4761aabf5fe.aspx</comments>
      <category>DotNetGerman Bloggers</category>
      <category>Sharepoint</category>
      <category>Tips und Tricks</category>
    <feedburner:origLink>http://blog.codemurai.de/2009/05/18/HTTPError500NachRestoreEinesSharepointBackups.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.codemurai.de/Trackback.aspx?guid=0a6665cc-4300-432b-9193-55183ddf4aaa</trackback:ping>
      <pingback:server>http://blog.codemurai.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.codemurai.de/PermaLink,guid,0a6665cc-4300-432b-9193-55183ddf4aaa.aspx</pingback:target>
      <dc:creator>Andre</dc:creator>
      <wfw:comment>http://blog.codemurai.de/CommentView,guid,0a6665cc-4300-432b-9193-55183ddf4aaa.aspx</wfw:comment>
      <wfw:commentRss>http://blog.codemurai.de/SyndicationService.asmx/GetEntryCommentsRss?guid=0a6665cc-4300-432b-9193-55183ddf4aaa</wfw:commentRss>
      
      <title>Dotnet-kicks.de Link in Feedburner RSS Footer einbinden</title>
      <guid isPermaLink="false">http://blog.codemurai.de/PermaLink,guid,0a6665cc-4300-432b-9193-55183ddf4aaa.aspx</guid>
      <link>http://feedproxy.google.com/~r/codemurai/qlrN/~3/o7V-H52YpJg/DotnetkicksdeLinkInFeedburnerRSSFooterEinbinden.aspx</link>
      <pubDate>Mon, 18 May 2009 20:25:55 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Wer den RSS Feed seines Blogs via Feedburner publiziert, kann mit Hilfe eines &lt;a href="http://www.google.com/support/feedburner/bin/answer.py?hl=en&amp;amp;answer=78966" target="_blank"&gt;FeedFlares&lt;/a&gt; sehr&#xD;
einfach einen dynamischen Dotnet-kicks.de Link unter jeden Eintrag setzen.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Dazu ist wie folgt vorzugehen:&#xD;
&lt;/p&gt;&#xD;
        &lt;ol&gt;&#xD;
          &lt;li&gt;&#xD;
Einloggen bei &lt;a href="http://feedburner.google.com" target="_blank"&gt;feedburner&lt;/a&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Feed zur Verwaltung auswählen&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://blog.codemurai.de/images/Dot.deLinkinFeedburnerRSSFootereinbinden_1397A/image.png"&gt;&#xD;
              &lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="141" alt="image" src="http://blog.codemurai.de/images/Dot.deLinkinFeedburnerRSSFootereinbinden_1397A/image_thumb.png" width="244" border="0"&gt;&lt;/img&gt;&#xD;
            &lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Registrierkarte Optimize anklicken.&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Links im Menü den Punkt FeedFlare wählen&lt;br&gt;&lt;a href="http://blog.codemurai.de/images/Dot.deLinkinFeedburnerRSSFootereinbinden_1397A/image_3.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="244" alt="image" src="http://blog.codemurai.de/images/Dot.deLinkinFeedburnerRSSFootereinbinden_1397A/image_thumb_3.png" width="147" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Neuen Flare hinzufügen&lt;br&gt;&lt;a href="http://blog.codemurai.de/images/Dot.deLinkinFeedburnerRSSFootereinbinden_1397A/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="182" alt="image" src="http://blog.codemurai.de/images/Dot.deLinkinFeedburnerRSSFootereinbinden_1397A/image_thumb_4.png" width="244" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br&gt;&#xD;
Eine passende Flare Datei, die von jedem Benutzt werden darf, befindet sich auf meiner&#xD;
Homepage unter &lt;a title="http://www.codemurai.de/downloads/kick_it-deflare.xml" href="http://www.codemurai.de/downloads/kick_it-deflare.xml"&gt;http://www.codemurai.de/downloads/kick_it-deflare.xml&lt;/a&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Speichern und Aktivieren&lt;br&gt;&lt;a href="http://blog.codemurai.de/images/Dot.deLinkinFeedburnerRSSFootereinbinden_1397A/image_5.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="150" alt="image" src="http://blog.codemurai.de/images/Dot.deLinkinFeedburnerRSSFootereinbinden_1397A/image_thumb_5.png" width="244" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Das Ergebnis genießen ;-)&lt;br&gt;&lt;a href="http://blog.codemurai.de/images/Dot.deLinkinFeedburnerRSSFootereinbinden_1397A/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="66" alt="image" src="http://blog.codemurai.de/images/Dot.deLinkinFeedburnerRSSFootereinbinden_1397A/image_thumb_6.png" width="244" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/li&gt;&#xD;
        &lt;/ol&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.codemurai.de/aggbug.ashx?id=0a6665cc-4300-432b-9193-55183ddf4aaa"&gt;&lt;/img&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;hr&gt;&lt;/hr&gt;&#xD;
        &lt;a href="http://blog.codemurai.de"&gt;blog.codemurai.de&lt;/a&gt; © André Krämer |&lt;a href="http://www.codemurai.de/pages/de/impress.aspx"&gt;Impressum &lt;/a&gt;| &lt;a href="http://feeds2.feedburner.com/codemurai/qlrN"&gt;Abonieren &lt;/a&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=o7V-H52YpJg:T6g7vNmb004:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=o7V-H52YpJg:T6g7vNmb004:xZ3Pn_mapoI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=xZ3Pn_mapoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/codemurai/qlrN/~4/o7V-H52YpJg" height="1" width="1"/&gt;</description>
      <comments>http://blog.codemurai.de/CommentView,guid,0a6665cc-4300-432b-9193-55183ddf4aaa.aspx</comments>
      <category>.NET</category>
      <category>Community</category>
      <category>DotNetGerman Bloggers</category>
      <category>Tips und Tricks</category>
    <feedburner:origLink>http://blog.codemurai.de/2009/05/18/DotnetkicksdeLinkInFeedburnerRSSFooterEinbinden.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.codemurai.de/Trackback.aspx?guid=8d24e265-d69a-4532-8ddb-956854ecff1e</trackback:ping>
      <pingback:server>http://blog.codemurai.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.codemurai.de/PermaLink,guid,8d24e265-d69a-4532-8ddb-956854ecff1e.aspx</pingback:target>
      <dc:creator>Andre</dc:creator>
      <wfw:comment>http://blog.codemurai.de/CommentView,guid,8d24e265-d69a-4532-8ddb-956854ecff1e.aspx</wfw:comment>
      <wfw:commentRss>http://blog.codemurai.de/SyndicationService.asmx/GetEntryCommentsRss?guid=8d24e265-d69a-4532-8ddb-956854ecff1e</wfw:commentRss>
      
      <title>Office 2007 Bedienung für 2003 Profis</title>
      <guid isPermaLink="false">http://blog.codemurai.de/PermaLink,guid,8d24e265-d69a-4532-8ddb-956854ecff1e.aspx</guid>
      <link>http://feedproxy.google.com/~r/codemurai/qlrN/~3/W16O5fsIlaU/Office2007BedienungF%c3%bcr2003Profis.aspx</link>
      <pubDate>Thu, 30 Apr 2009 07:47:16 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Da immer mehr und mehr meiner Freunde, Kunden und Kollegen auf Office 2007 umsteigen&#xD;
werde ich in letzter Zeit häufiger gefragt, wo sich ein unter 2003 bekannter Menüpunkt&#xD;
innerhalb des Office 2007 Ribbons versteckt.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Die Frage lässt sich relativ leicht durch die folgenden drei interaktiven "Handbücher"&#xD;
beantworten:&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://office.microsoft.com/de-de/excel/HA101491511031.aspx" target="_blank"&gt;Interaktives&#xD;
Referenzhandbuch: Befehle in Excel 2003 und Excel 2007 im Vergleich&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://office.microsoft.com/de-de/word/HA100744321031.aspx" target="_blank"&gt;Interaktives&#xD;
Referenzhandbuch: Befehle in Word 2003 und Word 2007 im Vergleich&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://office.microsoft.com/de-de/powerpoint/HA101490761031.aspx" target="_blank"&gt;Interaktives&#xD;
Referenzhandbuch: Befehle in PowerPoint 2003 und PowerPoint 2007 im Vergleich&lt;/a&gt;&#xD;
          &lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
Wer es noch nicht kennt:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Dem Anwender wir die gewohnte Office 2003 Oberfläche präsentiert. Nach Auswahl eines&#xD;
Menüpunktes wird per Animation der neuer Ort angezeigt. Schick, oder?&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.codemurai.de/aggbug.ashx?id=8d24e265-d69a-4532-8ddb-956854ecff1e"&gt;&lt;/img&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;hr&gt;&lt;/hr&gt;&#xD;
        &lt;a href="http://blog.codemurai.de"&gt;blog.codemurai.de&lt;/a&gt; © André Krämer |&lt;a href="http://www.codemurai.de/pages/de/impress.aspx"&gt;Impressum &lt;/a&gt;| &lt;a href="http://feeds2.feedburner.com/codemurai/qlrN"&gt;Abonieren &lt;/a&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=W16O5fsIlaU:MCo2qk0F93k:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=W16O5fsIlaU:MCo2qk0F93k:xZ3Pn_mapoI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=xZ3Pn_mapoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/codemurai/qlrN/~4/W16O5fsIlaU" height="1" width="1"/&gt;</description>
      <comments>http://blog.codemurai.de/CommentView,guid,8d24e265-d69a-4532-8ddb-956854ecff1e.aspx</comments>
      <category>Office</category>
      <category>Tips und Tricks</category>
    <feedburner:origLink>http://blog.codemurai.de/2009/04/30/Office2007BedienungF%c3%bcr2003Profis.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.codemurai.de/Trackback.aspx?guid=33a43d8c-76fc-4ded-a1b0-2a9ebe55b1ba</trackback:ping>
      <pingback:server>http://blog.codemurai.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.codemurai.de/PermaLink,guid,33a43d8c-76fc-4ded-a1b0-2a9ebe55b1ba.aspx</pingback:target>
      <dc:creator>Andre</dc:creator>
      <wfw:comment>http://blog.codemurai.de/CommentView,guid,33a43d8c-76fc-4ded-a1b0-2a9ebe55b1ba.aspx</wfw:comment>
      <wfw:commentRss>http://blog.codemurai.de/SyndicationService.asmx/GetEntryCommentsRss?guid=33a43d8c-76fc-4ded-a1b0-2a9ebe55b1ba</wfw:commentRss>
      
      <title>Übersehenes Feature in ASP.NET 2.0</title>
      <guid isPermaLink="false">http://blog.codemurai.de/PermaLink,guid,33a43d8c-76fc-4ded-a1b0-2a9ebe55b1ba.aspx</guid>
      <link>http://feedproxy.google.com/~r/codemurai/qlrN/~3/x9pIqJkOfPY/%c3%9cbersehenesFeatureInASPNET20.aspx</link>
      <pubDate>Thu, 30 Apr 2009 06:58:43 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Seit über drei Jahren ist ASP.NET 2.0 nun schon in der Final Version auf dem Markt&#xD;
und bis Mitte letzter Woche habe ich sie übersehen: Die Eigenschaft &lt;strong&gt;AssociatedControlID&lt;/strong&gt; des&#xD;
ASP.NET Label Controls. Bisher habe ich auf den Einsatz dieses Controls möglichst&#xD;
verzichtet, da es in meinen Augen "nur" einen unnötigen Span-Tag um meinen Text setzt.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Habe ich in meiner aspx Seite also folgenden Code:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
&amp;lt;asp:Label ID="Label1" runat="server" Text="Ich bin ein Label"&amp;gt;&amp;lt;/asp:Label&amp;gt;&lt;br&gt;&#xD;
&amp;lt;asp:TextBox ID="TextBox1" runat="server"&amp;gt;Ich bin eine Textbox&amp;lt;/asp:TextBox&amp;gt;&amp;lt;br&#xD;
/&amp;gt; &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
wird dies zu folgendem Markup: &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;strong&gt;&amp;lt;span id="Label1"&amp;gt;&lt;/strong&gt;Ich bin ein Label&lt;strong&gt;&amp;lt;/span&amp;gt;&lt;br&gt;&lt;/strong&gt;&amp;lt;input name="TextBox1" type="text" value="Ich bin eine Textbox" id="TextBox1"&#xD;
/&amp;gt;&amp;lt;br /&amp;gt; &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Alles in allem ist dies wenig spektakulär. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Erweitere ich meinen Code nun jedoch um die Eigenschaft AssociatedControlID &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
&amp;lt;asp:Label ID="Label2" runat="server" &lt;strong&gt;AssociatedControlID="TextBox2"&lt;/strong&gt; Text="Ich&#xD;
bin auch ein Label"&amp;gt;&amp;lt;/asp:Label&amp;gt;&lt;br&gt;&#xD;
&amp;lt;asp:TextBox ID="TextBox2" runat="server"&amp;gt;Ich bin auch eine Textbox&amp;lt;/asp:TextBox&amp;gt;&amp;lt;/div&amp;gt; &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
wird das ASP.NET Label nicht mehr als Span-Tag, sondern als HTML Label-Tag gerendert: &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
&amp;lt;&lt;strong&gt;label for="TextBox2" id="Label2"&amp;gt;&lt;/strong&gt;Ich bin auch ein Label&lt;strong&gt;&amp;lt;/label&amp;gt;&lt;br&gt;&lt;/strong&gt;&amp;lt;input name="&lt;strong&gt;TextBox2&lt;/strong&gt;" type="text" value="Ich bin auch&#xD;
eine Textbox" id="TextBox2" /&amp;gt; &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Schön und gut, aber wo liegt der Vorteil? &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Zum einen schafft der HTML Code durch den Zusatz "for=&amp;lt;anderes Control&amp;gt;" eine&#xD;
logische Verknüpfung zwischen Eingabefeld und Beschriftung. Dies kann von Screenreadern&#xD;
ausgelesen werden und verbessert somit die Barrierefreiheit. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Dies ist jedoch nicht alles. Für den Standardbenutzer ergibt sich der Vorteil, dass&#xD;
er nun innerhalb des Browsers mit der Maus einfach auf das Label klicken kann und&#xD;
anschließend automatisch das assozierte Steuerlement den Fokus erhält. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Mein Fazit: ein tolles Feature, was sowohl Usability, als auch Barrierefreiheit mit&#xD;
sehr wenig Aufwand erhöht. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Näheres findet sich übrigens auch bei &lt;a href="http://de.selfhtml.org/html/formulare/strukturieren.htm#label" target="_blank"&gt;selfhtml&lt;/a&gt;. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Die Frage ist nur: Warum habe ich es so lange übersehen? Vielleicht liegt es daran,&#xD;
dass es unter ASP.NET 1.0 noch nicht existierte und die anderen Neuerungen einfach&#xD;
so viel aufregender waren?&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.codemurai.de/aggbug.ashx?id=33a43d8c-76fc-4ded-a1b0-2a9ebe55b1ba"&gt;&lt;/img&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;hr&gt;&lt;/hr&gt;&#xD;
        &lt;a href="http://blog.codemurai.de"&gt;blog.codemurai.de&lt;/a&gt; © André Krämer |&lt;a href="http://www.codemurai.de/pages/de/impress.aspx"&gt;Impressum &lt;/a&gt;| &lt;a href="http://feeds2.feedburner.com/codemurai/qlrN"&gt;Abonieren &lt;/a&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=x9pIqJkOfPY:rTVox4POCXA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=x9pIqJkOfPY:rTVox4POCXA:xZ3Pn_mapoI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=xZ3Pn_mapoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/codemurai/qlrN/~4/x9pIqJkOfPY" height="1" width="1"/&gt;</description>
      <comments>http://blog.codemurai.de/CommentView,guid,33a43d8c-76fc-4ded-a1b0-2a9ebe55b1ba.aspx</comments>
      <category>.NET</category>
      <category>ASP.NET</category>
      <category>DotNetGerman Bloggers</category>
    <feedburner:origLink>http://blog.codemurai.de/2009/04/30/%c3%9cbersehenesFeatureInASPNET20.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.codemurai.de/Trackback.aspx?guid=c0ed1938-3fa2-4ea4-bb2c-797d21dbdb0c</trackback:ping>
      <pingback:server>http://blog.codemurai.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.codemurai.de/PermaLink,guid,c0ed1938-3fa2-4ea4-bb2c-797d21dbdb0c.aspx</pingback:target>
      <dc:creator>Andre</dc:creator>
      <wfw:comment>http://blog.codemurai.de/CommentView,guid,c0ed1938-3fa2-4ea4-bb2c-797d21dbdb0c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.codemurai.de/SyndicationService.asmx/GetEntryCommentsRss?guid=c0ed1938-3fa2-4ea4-bb2c-797d21dbdb0c</wfw:commentRss>
      <slash:comments>1</slash:comments>
      
      <title>Congratulations, You have received the Infragistics MVP Award</title>
      <guid isPermaLink="false">http://blog.codemurai.de/PermaLink,guid,c0ed1938-3fa2-4ea4-bb2c-797d21dbdb0c.aspx</guid>
      <link>http://feedproxy.google.com/~r/codemurai/qlrN/~3/HGDYWkvtRqQ/CongratulationsYouHaveReceivedTheInfragisticsMVPAward.aspx</link>
      <pubDate>Fri, 03 Apr 2009 13:03:34 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Dienstag Abend fand ich folgende E-Mail in meinem Postfach: &#xD;
&lt;/p&gt;&#xD;
        &lt;blockquote&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;em&gt;Dear Andre,&lt;br&gt;&#xD;
Congratulations! We are pleased to present you with the 2008 Infragistics MVP Award!&#xD;
Your actions in the community have not only promoted the spirit of community but have&#xD;
also helped other professionals in the industry to be more successful each and every&#xD;
day. This award is our way of thanking you for your contributions.&lt;/em&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;em&gt;[...]&lt;/em&gt;&#xD;
          &lt;/p&gt;&#xD;
          &lt;p&gt;&#xD;
            &lt;em&gt;Thank you again,&lt;br&gt;&#xD;
Tony Lombardo&lt;br&gt;&#xD;
Anthony Lombardo&lt;br&gt;&#xD;
Lead Technical Evangelist&lt;br&gt;&#xD;
Infragistics, Inc. &#xD;
&lt;br&gt;&#xD;
Worldwide Evangelism Group&lt;/em&gt;&#xD;
          &lt;/p&gt;&#xD;
        &lt;/blockquote&gt;&#xD;
        &lt;p&gt;&#xD;
Bis zu diesem Augenblick wusste ich noch nicht einmal, dass Infragistics MVPs auszeichnet.&#xD;
Des Rätsels Lösung: Die Auszeichnung gibt es - laut &lt;a href="http://blogs.infragistics.com/blogs/tony_lombardo/archive/2009/03/31/announcing-the-infragistics-mvp-program.aspx" target="_blank"&gt;Tonys&#xD;
Blog&lt;/a&gt; - erst seit letztem Dienstag. Demnach bin ich einer der ersten Infragistics&#xD;
MVPs.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Die Auszeichnung kam sehr überraschen für mich und selbstverständlich habe ich mich&#xD;
sehr gefreut und bin extrem stolz. Sie ist in meinen Augen ein toller Weg, um Community&#xD;
Engagement zu wertschätzen. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Mein Dank gilt neben dem Infragistics Team vor allem Nic Goetz!&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="266" alt="IgMvpLogoRotatedReflected_43836EBF" src="http://blog.codemurai.de/images/CongratulationsYouhavereceivedtheInfragi_E9D1/IgMvpLogoRotatedReflected_43836EBF.png" width="173" border="0"&gt;&lt;/img&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.codemurai.de/aggbug.ashx?id=c0ed1938-3fa2-4ea4-bb2c-797d21dbdb0c"&gt;&lt;/img&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;hr&gt;&lt;/hr&gt;&#xD;
        &lt;a href="http://blog.codemurai.de"&gt;blog.codemurai.de&lt;/a&gt; © André Krämer |&lt;a href="http://www.codemurai.de/pages/de/impress.aspx"&gt;Impressum &lt;/a&gt;| &lt;a href="http://feeds2.feedburner.com/codemurai/qlrN"&gt;Abonieren &lt;/a&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=HGDYWkvtRqQ:vRxnU09yC1I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=HGDYWkvtRqQ:vRxnU09yC1I:xZ3Pn_mapoI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=xZ3Pn_mapoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/codemurai/qlrN/~4/HGDYWkvtRqQ" height="1" width="1"/&gt;</description>
      <comments>http://blog.codemurai.de/CommentView,guid,c0ed1938-3fa2-4ea4-bb2c-797d21dbdb0c.aspx</comments>
      <category>.NET</category>
      <category>Community</category>
      <category>DotNetGerman Bloggers</category>
      <category>Infragistics</category>
    <feedburner:origLink>http://blog.codemurai.de/2009/04/03/CongratulationsYouHaveReceivedTheInfragisticsMVPAward.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.codemurai.de/Trackback.aspx?guid=d1ac1773-8e66-4651-b49c-965f1323c979</trackback:ping>
      <pingback:server>http://blog.codemurai.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.codemurai.de/PermaLink,guid,d1ac1773-8e66-4651-b49c-965f1323c979.aspx</pingback:target>
      <dc:creator>Andre</dc:creator>
      <wfw:comment>http://blog.codemurai.de/CommentView,guid,d1ac1773-8e66-4651-b49c-965f1323c979.aspx</wfw:comment>
      <wfw:commentRss>http://blog.codemurai.de/SyndicationService.asmx/GetEntryCommentsRss?guid=d1ac1773-8e66-4651-b49c-965f1323c979</wfw:commentRss>
      <slash:comments>8</slash:comments>
      
      <title>Wer nutzt die neuen Features des .NET Framworks 3.0 bzw. 3.5 oder 3.5 SP1 bereits PRODUKTIV?</title>
      <guid isPermaLink="false">http://blog.codemurai.de/PermaLink,guid,d1ac1773-8e66-4651-b49c-965f1323c979.aspx</guid>
      <link>http://feedproxy.google.com/~r/codemurai/qlrN/~3/EXLB53_rtk0/WerNutztDieNeuenFeaturesDesNETFramworks30Bzw35Oder35SP1BereitsPRODUKTIV.aspx</link>
      <pubDate>Wed, 18 Mar 2009 22:27:43 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Während der Keynote der Basta! Spring 2009 kam die Frage auf, welche der Teilnehmer&#xD;
die Erneuerungen des .NET Frameworks 3.0 bzw. 3.5 oder 3.5 SP 1 bereits &lt;strong&gt;produktiv&lt;/strong&gt; nutzen.&#xD;
Die Anzahl der Meldungen konnte man an einer Hand abzählen. Sie lag demnach deutlich&#xD;
im einstelligen Prozentbereich! Interessanterweise spiegelt dies auch die Beobachtungen&#xD;
wieder, die ich im Rahmen meiner Tätigkeit als Consultant bei meinen Kunden sammeln&#xD;
konnte. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Häufig scheint man einfach also so tief in der Entwicklung / Pflege eines Langläuferprojekts&#xD;
zu stecken, dass der Einsatz der neuen Versionen/Features schlichtweg nicht möglich&#xD;
ist. Schließlich würde dieser nur Sinn machen, falls für das aktuelle Projekt ein &lt;strong&gt;kommerzieller&lt;/strong&gt; Nutzen&#xD;
durch eine Umstellung erkennbar wäre.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Sehr interessieren würde mich natürlich die Meinung der Leser dieses Blogs. Wer nutzt&#xD;
also das .NET Framework &amp;gt;= 3.0 bereits &lt;strong&gt;produktiv&lt;/strong&gt; beziehungsweise&#xD;
wer kann aufgrund gegebener Rahmenbedingungen noch nicht umsteigen? Über zahlreiche&#xD;
Kommentare würde ich mich freuen.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Sollte das Ergebnis ähnlich wie bei besagter Abstimmung während der Basta! Spring&#xD;
ausfallen, würde sich mir die Frage aufdrängen, ob Microsofts Releasezyklen im Bereich&#xD;
der Entwicklerprodukte vielleicht zu kurz, die "alten" Versionen zu gut, oder die&#xD;
Innovationen der neuen Versionen zu gering sind?&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.codemurai.de/aggbug.ashx?id=d1ac1773-8e66-4651-b49c-965f1323c979"&gt;&lt;/img&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;hr&gt;&lt;/hr&gt;&#xD;
        &lt;a href="http://blog.codemurai.de"&gt;blog.codemurai.de&lt;/a&gt; © André Krämer |&lt;a href="http://www.codemurai.de/pages/de/impress.aspx"&gt;Impressum &lt;/a&gt;| &lt;a href="http://feeds2.feedburner.com/codemurai/qlrN"&gt;Abonieren &lt;/a&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=EXLB53_rtk0:G217g8Io7W8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=EXLB53_rtk0:G217g8Io7W8:xZ3Pn_mapoI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=xZ3Pn_mapoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/codemurai/qlrN/~4/EXLB53_rtk0" height="1" width="1"/&gt;</description>
      <comments>http://blog.codemurai.de/CommentView,guid,d1ac1773-8e66-4651-b49c-965f1323c979.aspx</comments>
    <feedburner:origLink>http://blog.codemurai.de/2009/03/18/WerNutztDieNeuenFeaturesDesNETFramworks30Bzw35Oder35SP1BereitsPRODUKTIV.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.codemurai.de/Trackback.aspx?guid=5322fedd-3010-40de-a316-cc380aab6648</trackback:ping>
      <pingback:server>http://blog.codemurai.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.codemurai.de/PermaLink,guid,5322fedd-3010-40de-a316-cc380aab6648.aspx</pingback:target>
      <dc:creator>Andre</dc:creator>
      <wfw:comment>http://blog.codemurai.de/CommentView,guid,5322fedd-3010-40de-a316-cc380aab6648.aspx</wfw:comment>
      <wfw:commentRss>http://blog.codemurai.de/SyndicationService.asmx/GetEntryCommentsRss?guid=5322fedd-3010-40de-a316-cc380aab6648</wfw:commentRss>
      <slash:comments>1</slash:comments>
      
      <title>Happy Birthday DNUG Koblenz</title>
      <guid isPermaLink="false">http://blog.codemurai.de/PermaLink,guid,5322fedd-3010-40de-a316-cc380aab6648.aspx</guid>
      <link>http://feedproxy.google.com/~r/codemurai/qlrN/~3/q0IDJLw_oes/HappyBirthdayDNUGKoblenz.aspx</link>
      <pubDate>Wed, 18 Mar 2009 22:25:01 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Genau ein Jahr und einen Monat ist es nun her, dass Eric Berres, Markus Renning, Thomas&#xD;
Naunheim und ich die &lt;a href="http://www.dnug-koblenz.de" target="_blank"&gt;.NET User&#xD;
Group Koblenz&lt;/a&gt; ins Leben riefen. Ein Jahr und &lt;strong&gt;einen Monat&lt;/strong&gt;? Ist&#xD;
das nicht ein wenig &lt;strong&gt;spät&lt;/strong&gt; für eine Gratulation? Normalerweise schon,&#xD;
aber aufgrund meiner anderen Aktivitäten (Familie, Job, Hausbau, Basta Vortrag, ...)&#xD;
lag mein Blog in den letzten Wochen ein wenig brach, so dass ich erst jetzt dazu komme,&#xD;
der &lt;a href="http://www.dnug-koblenz.de" target="_blank"&gt;DNUG Koblenz&lt;/a&gt; zu gratulieren.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Im Januar 2008, als Eric, Markus, Thomas und ich zum ersten Mal (außerhalb eines Fast-Food-Restaurants&#xD;
;-)) zur Vorbesprechung zusammen saßen, waren wir uns sehr unsicher, ob das ganze&#xD;
überhaupt funktionieren würde. Wir waren uns vollkommen im unklaren darüber, wie viele&#xD;
Teilnehmer wohl zu den treffen kommen würden. Unsere schlimmste Befürchtung war, dass&#xD;
wir nur zu viert sein könnten und sich alles relativ schnell wieder im Sande verlieren&#xD;
würde. Auch waren wir unsicher, ob wir die Organisation überhaupt geregelt bekommen,&#xD;
da niemand von uns zuvor auf einem Treffen einer anderen DNUG waren. So richtig wusste&#xD;
also keiner von uns, was wir auf unseren Treffen also wirklich machen müssen. Auch&#xD;
hatten wir keine Idee, wie wir an andere Sprecher, intern oder extern, abgesehen von&#xD;
uns selbst, heran kommen könnten.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Glücklicherweise waren unsere Bedenken weitestgehend unnötig. Im Schnitt haben wir&#xD;
ca. 20 Teilnehmer pro Treffen. Sicherlich sind es auch mal &lt;em&gt;nur&lt;/em&gt; 10, oder auch&#xD;
mal über 30, normalerweise sollten es jedoch um die 20 sein.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Auch die Sprecher gingen uns nie aus. So konnten wir neben einigen Referenten aus&#xD;
den eigenen Reihen auch - INETA Germany und einiger Community Kontakte sei dank -&#xD;
bekannte Sprecher aus der Community für einen Vortrag bei uns gewinnen. Eines der&#xD;
absoluten Highlights in diesem Zusammenhang war sicherlich der Vortrag von &lt;a href="http://blogs.infragistics.com/tonyl" target="_blank"&gt;Tony&#xD;
Lombardo&lt;/a&gt;,  ASP.NET MVP und Worldwide Lead Evangelist der Firma Infragistics,&#xD;
der während seines Europa Aufenthalts zur TechEd Europe einen Zwischenstopp in Koblenz&#xD;
machte, um uns etwas zum Thema Silverlight zu erzählen.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
An dieser Stelle möchte jedoch nicht nur Tony hervorheben, sondern mich auch bei allen&#xD;
anderen Sprechern für ihre tollen Vorträge bedanken.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Im einzelnen wären da zu nennen:&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
Eric Berres: Einführung in DNN, Einführung in die WCF &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Jan Meinecken: Einführung in die Windows Sharepoint Services &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://blog.lars-keller.net/" target="_blank"&gt;Lars Keller&lt;/a&gt;: VSTO &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Markus Kissling: Oracle &amp;amp; .NET   &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
David Kortmann: Eigener Membershipprovider in 12 1/2 Minuten &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://blog.codemurai.de" target="_blank"&gt;André Krämer&lt;/a&gt;: Jetzt lerne ich&#xD;
C#3.0 in 12 1/2 Minuten, SOS nicht nur für Schiffbrüchige, Schätzen statt raten, Design&#xD;
By Contract  &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Thomas Naunheim: TFS 2008 &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Frank Pommering: Reflection &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Markus Rennings: Neuerungen in Visual Studio 2008 für ASP.NET, Einführung in das ADO.NET&#xD;
Entity Framework, .NET Framework Debugging, Custom Images für VS Commands  &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Alexander Rippert: Unit Testing &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
Mario Röcher: Das Decorator Pattern &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://blogs.msdn.com/jenss" target="_blank"&gt;Jens K. Süßmeyer&lt;/a&gt;: Einführung&#xD;
in den SQL Server 2008 &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://www.torstenweber.de" target="_blank"&gt;Torsten Weber&lt;/a&gt;: Einführung&#xD;
in das Mobile Computing, Keine Zeit für Herzrasen &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://www.bonn-to-code.net" target="_blank"&gt;Roland Weigelt&lt;/a&gt;: GUI Design&#xD;
für nicht Designer &#xD;
&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
Außerdem gilt natürlich unseren Sponsoren ein herzlicher Dank!&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://www.artiso.de" target="_blank"&gt;Artiso&lt;/a&gt;: Softwarelizenzen &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://www.devexpress.com" target="_blank"&gt;DevExpress&lt;/a&gt;: Softwarelizenzen &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://www.dotnetpro.de" target="_blank"&gt;dotnetpro&lt;/a&gt;: Einige freie Exemplare&#xD;
der dotnetpro &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://www.entwickler-press.de" target="_blank"&gt;entwickler.press&lt;/a&gt;: Bücher &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://www.ineta.org" target="_blank"&gt;INETA Germany&lt;/a&gt;: Sprecher &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://www.infragistics.com" target="_blank"&gt;Infragistics&lt;/a&gt;: Sprecher und&#xD;
Softwarelizenzen &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://www.jetbrains.com" target="_blank"&gt;Jetbrains&lt;/a&gt;: Sofwarelizenzen &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://www.konzeptum.de" target="_blank"&gt;Konzeptum GmbH&lt;/a&gt;: Raum, Technik,&#xD;
Getränke &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
MS Press: Buchgutscheine &#xD;
&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
Außerdem vielen Dank an:&#xD;
&lt;/p&gt;&#xD;
        &lt;ul&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://www.bonn-to-code.net" target="_blank"&gt;Roland Weigelt&lt;/a&gt;: Für die&#xD;
tolle "Anleitung" zur Gründung einer User Group &#xD;
&lt;/li&gt;&#xD;
          &lt;li&gt;&#xD;
            &lt;a href="http://www.torstenweber.de" target="_blank"&gt;Torsten Weber&lt;/a&gt;: Für die hilfreichen&#xD;
Tips zur Gründung einer User Group&lt;/li&gt;&#xD;
        &lt;/ul&gt;&#xD;
        &lt;p&gt;&#xD;
Wow, die vielen Danksagungen erinnern schon fast an die Oscar Verleihung. Den haben&#xD;
wir zwar (noch :-)) nicht erhalten, dafür hat Microsoft uns jedoch ein tolles Geschenk&#xD;
gemacht. Am Abend des Geburtstagstreffens erhielten wir nämlich die Nachricht, dass&#xD;
wir ins Microsoft CLIP Programm aufgenommen wurden! Vielen Dank (:-))&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.codemurai.de/aggbug.ashx?id=5322fedd-3010-40de-a316-cc380aab6648"&gt;&lt;/img&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;hr&gt;&lt;/hr&gt;&#xD;
        &lt;a href="http://blog.codemurai.de"&gt;blog.codemurai.de&lt;/a&gt; © André Krämer |&lt;a href="http://www.codemurai.de/pages/de/impress.aspx"&gt;Impressum &lt;/a&gt;| &lt;a href="http://feeds2.feedburner.com/codemurai/qlrN"&gt;Abonieren &lt;/a&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=q0IDJLw_oes:mm7LxG2_XdI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=q0IDJLw_oes:mm7LxG2_XdI:xZ3Pn_mapoI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=xZ3Pn_mapoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/codemurai/qlrN/~4/q0IDJLw_oes" height="1" width="1"/&gt;</description>
      <comments>http://blog.codemurai.de/CommentView,guid,5322fedd-3010-40de-a316-cc380aab6648.aspx</comments>
      <category>.NET</category>
      <category>DNUG Koblenz</category>
      <category>DotNetGerman Bloggers</category>
    <feedburner:origLink>http://blog.codemurai.de/2009/03/18/HappyBirthdayDNUGKoblenz.aspx</feedburner:origLink></item>
    <item>
      <trackback:ping>http://blog.codemurai.de/Trackback.aspx?guid=4a79858e-edbf-4ef6-b08e-b061636e047b</trackback:ping>
      <pingback:server>http://blog.codemurai.de/pingback.aspx</pingback:server>
      <pingback:target>http://blog.codemurai.de/PermaLink,guid,4a79858e-edbf-4ef6-b08e-b061636e047b.aspx</pingback:target>
      <dc:creator>Andre</dc:creator>
      <wfw:comment>http://blog.codemurai.de/CommentView,guid,4a79858e-edbf-4ef6-b08e-b061636e047b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.codemurai.de/SyndicationService.asmx/GetEntryCommentsRss?guid=4a79858e-edbf-4ef6-b08e-b061636e047b</wfw:commentRss>
      
      <title>Visual Studio 2008 stürzt beim Kompilieren eines Outlook 2007 Add-Ins ab.</title>
      <guid isPermaLink="false">http://blog.codemurai.de/PermaLink,guid,4a79858e-edbf-4ef6-b08e-b061636e047b.aspx</guid>
      <link>http://feedproxy.google.com/~r/codemurai/qlrN/~3/Ddf8FvIzYgw/VisualStudio2008St%c3%bcrztBeimKompilierenEinesOutlook2007AddInsAb.aspx</link>
      <pubDate>Thu, 29 Jan 2009 21:04:57 GMT</pubDate>
      <description>&lt;body xmlns="http://www.w3.org/1999/xhtml"&gt;&#xD;
        &lt;p&gt;&#xD;
Heute versuchte ich mein erstes Outlook 2007 Add-In unter Visual Studio 2008 zu entwickeln.&#xD;
Nachdem ich bereits einiges an Code geschrieben hatte, wagte ich den ersten Kompiliervorgang.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Das Ergebnis war allerdings wenig erfreulich, denn anstatt mir ein das Ergebnis meines&#xD;
Kompiliervorgangs anzuzeigen, ging Visual Studio einfach kommentarlos zu.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Um auszuschließen, dass es an meinem Code lag, stellte ich dasselbe zusätzlich noch&#xD;
mit einem leeren Outlook 2007 Add-In nach. (Glücklicherweise) war das Resultat gleich&#xD;
:-)&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Nach ein wenig googeln wurde ich darauf aufmerksam, dass die Visual Studio PowerCommands&#xD;
die Ursache sein sollten. Diese habe ich jedoch gar nicht installiert. Also ging die&#xD;
Suche weiter.&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Die Lösung fand ich schließlich in folgendem Eintrag:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
          &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/99e124d0-c5d7-49c0-b1dd-71328f9a6571/" target="_blank"&gt;MSDN&#xD;
Forum - VS 2008 closes at build, Outlook 2007 Add-In&lt;/a&gt;&#xD;
        &lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Kurz zusammengefasst: Es ist ein Fehler innerhalb der CLR, der auftritt, wenn Assemblies&#xD;
in einer bestimmten Reihenfolge geladen werden. &#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Als Workarround kann man das VSTO Native Image (nicht VSTO selbst ;-)) löschen. Dazu&#xD;
tippt man in einem Visual Studio Command Promt einfach folgende Zeile ein:&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
ngen /delete Microsoft.VisualStudio.Tools.Office.Runtime.v9.0.dll&#xD;
&lt;/p&gt;&#xD;
        &lt;p&gt;&#xD;
Viel Erfolg ;-)&#xD;
&lt;/p&gt;&#xD;
        &lt;img width="0" height="0" src="http://blog.codemurai.de/aggbug.ashx?id=4a79858e-edbf-4ef6-b08e-b061636e047b"&gt;&lt;/img&gt;&#xD;
        &lt;br&gt;&#xD;
        &lt;hr&gt;&lt;/hr&gt;&#xD;
        &lt;a href="http://blog.codemurai.de"&gt;blog.codemurai.de&lt;/a&gt; © André Krämer |&lt;a href="http://www.codemurai.de/pages/de/impress.aspx"&gt;Impressum &lt;/a&gt;| &lt;a href="http://feeds2.feedburner.com/codemurai/qlrN"&gt;Abonieren &lt;/a&gt;&lt;/body&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=Ddf8FvIzYgw:6nmOSM8htyo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/codemurai/qlrN?a=Ddf8FvIzYgw:6nmOSM8htyo:xZ3Pn_mapoI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/codemurai/qlrN?d=xZ3Pn_mapoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/codemurai/qlrN/~4/Ddf8FvIzYgw" height="1" width="1"/&gt;</description>
      <comments>http://blog.codemurai.de/CommentView,guid,4a79858e-edbf-4ef6-b08e-b061636e047b.aspx</comments>
      <category>DotNetGerman Bloggers</category>
      <category>Tips und Tricks</category>
    <feedburner:origLink>http://blog.codemurai.de/2009/01/29/VisualStudio2008St%c3%bcrztBeimKompilierenEinesOutlook2007AddInsAb.aspx</feedburner:origLink></item>
  </channel>
</rss>
