<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Florian Mätschke   -    .NET Strikes Back - .NET</title>
    <link>http://blogs.dotnet-braunschweig.de/Florian/</link>
    <description>C#, XNA, .NET Development &amp; Entertainment</description>
    <language>de-de</language>
    <copyright>Florian Mätschke</copyright>
    <lastBuildDate>Tue, 12 Apr 2011 23:42:05 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>f.maetschke@dotnet-braunschweig.de</managingEditor>
    <webMaster>f.maetschke@dotnet-braunschweig.de</webMaster>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=b0ab3378-8766-4fc9-8a78-fb304fc6796b</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,b0ab3378-8766-4fc9-8a78-fb304fc6796b.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,b0ab3378-8766-4fc9-8a78-fb304fc6796b.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=b0ab3378-8766-4fc9-8a78-fb304fc6796b</wfw:commentRss>
      <slash:comments>11</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Kein Silverlight5, nur HTML5 und IE10 Quatsche. Das einzig Coole was ich gesehen habe
war Webmatrix mit dem Orchard CMS. Das kannte ich bisher noch nicht, doch sah es sehr
vielversprechend aus. Wird demnächst erstmal ausprobiert. Hanselman hat mal wieder
die Bühne gerockt. 
</p>
        <br />
Am Mittwoch den 13.04.2011 kommt die Silverlight 5 Beta wohl definitiv: 
<br /><img border="0" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/Silverlight5betatweet.PNG" /><img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=b0ab3378-8766-4fc9-8a78-fb304fc6796b" /></body>
      <title>Kurzes Feedback zur MIX 2011 - Silverlight 5 Beta erst Heute!</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,b0ab3378-8766-4fc9-8a78-fb304fc6796b.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,b0ab3378-8766-4fc9-8a78-fb304fc6796b.aspx</link>
      <pubDate>Tue, 12 Apr 2011 23:42:05 GMT</pubDate>
      <description>&lt;p&gt;
Kein Silverlight5, nur HTML5 und IE10 Quatsche. Das einzig Coole was ich gesehen habe
war Webmatrix mit dem Orchard CMS. Das kannte ich bisher noch nicht, doch sah es sehr
vielversprechend aus. Wird demnächst erstmal ausprobiert. Hanselman hat mal wieder
die Bühne gerockt. 
&lt;/p&gt;
&lt;br&gt;
Am Mittwoch den 13.04.2011 kommt die Silverlight 5 Beta wohl definitiv: 
&lt;br&gt;
&lt;img border="0" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/Silverlight5betatweet.PNG"&gt;&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=b0ab3378-8766-4fc9-8a78-fb304fc6796b" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,b0ab3378-8766-4fc9-8a78-fb304fc6796b.aspx</comments>
      <category>.NET</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=73e80eb9-ac0b-4667-9e69-4781782857f7</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,73e80eb9-ac0b-4667-9e69-4781782857f7.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,73e80eb9-ac0b-4667-9e69-4781782857f7.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=73e80eb9-ac0b-4667-9e69-4781782857f7</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Leider muss ich meinen ersten Beitrag korrigieren. Ich bin Alex Zeitler für den Hinweis
sehr dankbar. Es ist in der Tat nur sehr krampfhaft möglich ein 24bpp Image in .NET
zu einem 8bpp Image umzuwandeln. Man kann sich aber schnell und einfach Abhilfe schaffen,
mit einer weiteren Bibliothek, wie dem <a href="http://freeimage.sourceforge.net/">FreeImage
Project</a>. 
</p>
        <br />
        <p>
Für die native <a href="http://freeimage.sourceforge.net/">FreeImage Bibliothek</a> gibt
es einen .NET Wrapper, der sehr leicht zu bedienen ist. Um dies zu verdeutlichen habe
ich die vorherige ConvertTo(...)-Methode darauf abgeändert und auch getestet! :) 
</p>
        <br />
        <script src="http://pastebin.com/embed_js.php?i=jgqhrvXA">
        </script>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=73e80eb9-ac0b-4667-9e69-4781782857f7" />
      </body>
      <title>Images konvertieren in .NET/C# die 2.</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,73e80eb9-ac0b-4667-9e69-4781782857f7.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,73e80eb9-ac0b-4667-9e69-4781782857f7.aspx</link>
      <pubDate>Thu, 09 Dec 2010 14:16:21 GMT</pubDate>
      <description>&lt;p&gt;
Leider muss ich meinen ersten Beitrag korrigieren. Ich bin Alex Zeitler für den Hinweis
sehr dankbar. Es ist in der Tat nur sehr krampfhaft möglich ein 24bpp Image in .NET
zu einem 8bpp Image umzuwandeln. Man kann sich aber schnell und einfach Abhilfe schaffen,
mit einer weiteren Bibliothek, wie dem &lt;a href="http://freeimage.sourceforge.net/"&gt;FreeImage
Project&lt;/a&gt;. 
&lt;/p&gt;
&lt;br /&gt;
&lt;p&gt;
Für die native &lt;a href="http://freeimage.sourceforge.net/"&gt;FreeImage Bibliothek&lt;/a&gt; gibt
es einen .NET Wrapper, der sehr leicht zu bedienen ist. Um dies zu verdeutlichen habe
ich die vorherige ConvertTo(...)-Methode darauf abgeändert und auch getestet! :) 
&lt;/p&gt;
&lt;br /&gt;
&lt;script src="http://pastebin.com/embed_js.php?i=jgqhrvXA"&gt;&lt;/script&gt;&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=73e80eb9-ac0b-4667-9e69-4781782857f7" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,73e80eb9-ac0b-4667-9e69-4781782857f7.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=b2ed60e2-44a8-4810-ba07-bf42d46efddc</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,b2ed60e2-44a8-4810-ba07-bf42d46efddc.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,b2ed60e2-44a8-4810-ba07-bf42d46efddc.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=b2ed60e2-44a8-4810-ba07-bf42d46efddc</wfw:commentRss>
      <slash:comments>101</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Auf Grund eines Tweets, und eigenem Interesse habe ich mich mit dieser "Problematik"
mal beschäftigt.
</p>
        <p>
          <img src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/zrclip_001n6fe18c8b.png" height="77" width="513" />
        </p>
        <p>
          <strong>Diese kurze aber dennoch praktische Extension-Method kam dabei heraus:</strong>
        </p>
        <p>
          <script src="http://pastebin.com/embed_js.php?i=sFxR5mny" type="text/javascript">
          </script>
        </p>
        <b> UPDATE!!!! </b>
Der Code funktioniert leider nicht, da ich zu faul war um ihn zu testen! - <b> Sorry! </b>
Alex hat mich freundlicher Weise auf einen MSDN Artikel hingewiesen, bei dem die Problematik
in .NET genauer erläutert ist: 
<br /><br /><a href="http://msdn.microsoft.com/en-us/library/system.drawing.graphics.fromimage.aspx">http://msdn.microsoft.com/en-us/library/system.drawing.graphics.fromimage.aspx</a><br /><br /><br />
Ich habe diesbezüglich ein <a href="http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,73e80eb9-ac0b-4667-9e69-4781782857f7.aspx">neues
Beispiel</a> geschrieben. <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=b2ed60e2-44a8-4810-ba07-bf42d46efddc" /></body>
      <title>Images in andere Pixelformate konvertieren.</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,b2ed60e2-44a8-4810-ba07-bf42d46efddc.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,b2ed60e2-44a8-4810-ba07-bf42d46efddc.aspx</link>
      <pubDate>Wed, 08 Dec 2010 21:40:24 GMT</pubDate>
      <description>&lt;p&gt;
Auf Grund eines Tweets, und eigenem Interesse habe ich mich mit dieser "Problematik"
mal beschäftigt.
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/zrclip_001n6fe18c8b.png" height="77" width="513" /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Diese kurze aber dennoch praktische Extension-Method kam dabei heraus:&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;script src="http://pastebin.com/embed_js.php?i=sFxR5mny" type="text/javascript"&gt;
&lt;/script&gt;
&lt;/p&gt;
&lt;b&gt; UPDATE!!!! &lt;/b&gt;&gt;
Der Code funktioniert leider nicht, da ich zu faul war um ihn zu testen! - &lt;b&gt; Sorry! &lt;/b&gt;&gt;
Alex hat mich freundlicher Weise auf einen MSDN Artikel hingewiesen, bei dem die Problematik
in .NET genauer erläutert ist: 
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://msdn.microsoft.com/en-us/library/system.drawing.graphics.fromimage.aspx"&gt;http://msdn.microsoft.com/en-us/library/system.drawing.graphics.fromimage.aspx&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ich habe diesbezüglich ein &lt;a href="http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,73e80eb9-ac0b-4667-9e69-4781782857f7.aspx"&gt;neues
Beispiel&lt;/a&gt; geschrieben. &lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=b2ed60e2-44a8-4810-ba07-bf42d46efddc" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,b2ed60e2-44a8-4810-ba07-bf42d46efddc.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=0c6fff9b-ffd2-4d32-8269-0d00aeea8bfb</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,0c6fff9b-ffd2-4d32-8269-0d00aeea8bfb.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,0c6fff9b-ffd2-4d32-8269-0d00aeea8bfb.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=0c6fff9b-ffd2-4d32-8269-0d00aeea8bfb</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/VisualStudioLightSwitchEnglischeBet.2010_ECB0/image_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/VisualStudioLightSwitchEnglischeBet.2010_ECB0/image_thumb.png" width="564" height="113" />
          </a> Mit
Visual Studio LightSwitch bringt Microsoft eine vereinfachte uasgedünnte Version von
Visual Studio 2010 auf den Markt, die sich auch für “Nicht”-Entwickler von Geschäftsanwendungen
eignet. Damit ist wohl größtenteils die Zielgruppe von Microsoft Access Entwicklern
gemeint.
</p>
        <p>
Mit LightSwitch vereinfacht enorm die Arbeit mit Daten, z.B. um diese zu filtern,
anzulegen oder zu manipulieren. Dateneingaben können automatisch validiert aber auch
genau so gut leicht individuell validert werden.  Ebenso leicht ist das Verbinden
von Datensätzen in verschiedenen Datenquellen. LightSwitch unterscheidet dabei zwischen
lokalen Datenquellen und externen wie vom SQL Server, Sharepoint, oder den WCF RIA
Services. – Ich kann es kaum erwarten LightSwitch mit einem vorhandenen RIA Service
zu testen. 
<br />
Durch die Sharepoint-Datenquelle ist es  kinderleicht vorhandene Datenlisten
in LightSwitch einzubinden.
</p>
        <p>
Eine knappe Zusammenfassung der Funktionsweise von LightSwitch findet man hier: 
<br /><a title="LightSwitch Zusammenfassung" href="http://msnvidweb.wmod.msecnd.net/a10026/e1/ds/us/CMG_US/CMG_Microsoft/1cd30e59-ffdd-4f8b-a1ef-16442dae3aeb.wmv" target="_blank">VIDEO:
Visual Studio LightSwitch - Zusammenfassung</a></p>
        <p>
Zur Website von Visual Studio LightSwitch gehts hier:
</p>
        <p>
          <a title="Visual Studio LightSwitch" href="http://www.microsoft.com/visualstudio/en-us/lightswitch" target="_blank">Visual
Studio LightSwitch</a>
        </p>
        <p>
Dort findet man auch noch eine längere ausführliche Präsentation.
</p>
        <p>
 
</p>
        <p>
Ich bin gespannt auf LightSwitch und könnte mir vorstellen, dass damit das Verwalten
von Daten eigener serverseitiger (RIA) Services noch schneller von der Hand geht und
so auch noch angenehmer werden wird.
</p>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=0c6fff9b-ffd2-4d32-8269-0d00aeea8bfb" />
      </body>
      <title>Visual Studio LightSwitch &amp;ndash; Englische Beta ab 23.08.2010</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,0c6fff9b-ffd2-4d32-8269-0d00aeea8bfb.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,0c6fff9b-ffd2-4d32-8269-0d00aeea8bfb.aspx</link>
      <pubDate>Wed, 11 Aug 2010 14:50:51 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/VisualStudioLightSwitchEnglischeBet.2010_ECB0/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/VisualStudioLightSwitchEnglischeBet.2010_ECB0/image_thumb.png" width="564" height="113" /&gt;&lt;/a&gt; Mit
Visual Studio LightSwitch bringt Microsoft eine vereinfachte uasgedünnte Version von
Visual Studio 2010 auf den Markt, die sich auch für “Nicht”-Entwickler von Geschäftsanwendungen
eignet. Damit ist wohl größtenteils die Zielgruppe von Microsoft Access Entwicklern
gemeint.
&lt;/p&gt;
&lt;p&gt;
Mit LightSwitch vereinfacht enorm die Arbeit mit Daten, z.B. um diese zu filtern,
anzulegen oder zu manipulieren. Dateneingaben können automatisch validiert aber auch
genau so gut leicht individuell validert werden.&amp;#160; Ebenso leicht ist das Verbinden
von Datensätzen in verschiedenen Datenquellen. LightSwitch unterscheidet dabei zwischen
lokalen Datenquellen und externen wie vom SQL Server, Sharepoint, oder den WCF RIA
Services. – Ich kann es kaum erwarten LightSwitch mit einem vorhandenen RIA Service
zu testen. 
&lt;br /&gt;
Durch die Sharepoint-Datenquelle ist es&amp;#160; kinderleicht vorhandene Datenlisten
in LightSwitch einzubinden.
&lt;/p&gt;
&lt;p&gt;
Eine knappe Zusammenfassung der Funktionsweise von LightSwitch findet man hier: 
&lt;br /&gt;
&lt;a title="LightSwitch Zusammenfassung" href="http://msnvidweb.wmod.msecnd.net/a10026/e1/ds/us/CMG_US/CMG_Microsoft/1cd30e59-ffdd-4f8b-a1ef-16442dae3aeb.wmv" target="_blank"&gt;VIDEO:
Visual Studio LightSwitch - Zusammenfassung&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Zur Website von Visual Studio LightSwitch gehts hier:
&lt;/p&gt;
&lt;p&gt;
&lt;a title="Visual Studio LightSwitch" href="http://www.microsoft.com/visualstudio/en-us/lightswitch" target="_blank"&gt;Visual
Studio LightSwitch&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Dort findet man auch noch eine längere ausführliche Präsentation.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Ich bin gespannt auf LightSwitch und könnte mir vorstellen, dass damit das Verwalten
von Daten eigener serverseitiger (RIA) Services noch schneller von der Hand geht und
so auch noch angenehmer werden wird.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=0c6fff9b-ffd2-4d32-8269-0d00aeea8bfb" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,0c6fff9b-ffd2-4d32-8269-0d00aeea8bfb.aspx</comments>
      <category>.NET</category>
      <category>Visual Studio</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=04c6408b-1997-4fea-baff-a3e40a20fd84</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,04c6408b-1997-4fea-baff-a3e40a20fd84.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,04c6408b-1997-4fea-baff-a3e40a20fd84.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=04c6408b-1997-4fea-baff-a3e40a20fd84</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/VisualStudio2010HotfixKB2201993behebtCra_DCFD/vs_hotfix_2.png">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="vs_hotfix" border="0" alt="vs_hotfix" align="right" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/VisualStudio2010HotfixKB2201993behebtCra_DCFD/vs_hotfix_thumb.png" width="244" height="133" />
          </a> Seit
dem 04.08.2010 steht bei Microsoft Connect ein neuer Hotfix namens KB2201993 zum Download
bereit. Dieser soll nach Aussage von Anh Phan (Visual Web Developer Team) einen Crash
beheben, der beim Wechsel auf die Design-Ansicht (Web) ausgelöst werden könnte, wenn
auf der Seite viele Controls in einem Edit-Bereich enthalten sind, z.B. in einer View
oder einem Panel.
</p>
        <p>
Wer ähnliche Erfahrung im Web-Designer gemacht hat, so ist diesem der Hotfix dringend
zu empfehlen.
</p>
        <p>
Den Download des Visual Studio 2010 Hotfix: KB2201993 findet man unter folgender URL:
</p>
        <p>
          <a title="http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=30462" href="http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=30462" target="_blank">http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=30462</a>
        </p>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=04c6408b-1997-4fea-baff-a3e40a20fd84" />
      </body>
      <title>Visual Studio 2010: Hotfix KB2201993 behebt Crash beim Wechsel zur Design-Ansicht</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,04c6408b-1997-4fea-baff-a3e40a20fd84.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,04c6408b-1997-4fea-baff-a3e40a20fd84.aspx</link>
      <pubDate>Tue, 10 Aug 2010 13:44:41 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/VisualStudio2010HotfixKB2201993behebtCra_DCFD/vs_hotfix_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="vs_hotfix" border="0" alt="vs_hotfix" align="right" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/VisualStudio2010HotfixKB2201993behebtCra_DCFD/vs_hotfix_thumb.png" width="244" height="133" /&gt;&lt;/a&gt; Seit
dem 04.08.2010 steht bei Microsoft Connect ein neuer Hotfix namens KB2201993 zum Download
bereit. Dieser soll nach Aussage von Anh Phan (Visual Web Developer Team) einen Crash
beheben, der beim Wechsel auf die Design-Ansicht (Web) ausgelöst werden könnte, wenn
auf der Seite viele Controls in einem Edit-Bereich enthalten sind, z.B. in einer View
oder einem Panel.
&lt;/p&gt;
&lt;p&gt;
Wer ähnliche Erfahrung im Web-Designer gemacht hat, so ist diesem der Hotfix dringend
zu empfehlen.
&lt;/p&gt;
&lt;p&gt;
Den Download des Visual Studio 2010 Hotfix: KB2201993 findet man unter folgender URL:
&lt;/p&gt;
&lt;p&gt;
&lt;a title="http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=30462" href="http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=30462" target="_blank"&gt;http://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=30462&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=04c6408b-1997-4fea-baff-a3e40a20fd84" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,04c6408b-1997-4fea-baff-a3e40a20fd84.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
      <category>Visual Studio</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=c68547c5-6473-41a0-87b3-9dafb8ef3d5e</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,c68547c5-6473-41a0-87b3-9dafb8ef3d5e.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,c68547c5-6473-41a0-87b3-9dafb8ef3d5e.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=c68547c5-6473-41a0-87b3-9dafb8ef3d5e</wfw:commentRss>
      <slash:comments>7</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://silverlight.net" target="_blank">
            <img style="border-bottom: 0px; border-left: 0px; margin: 0px; display: inline; border-top: 0px; border-right: 0px" title="silverlight" border="0" alt="silverlight" align="right" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/Silverlight4ToolsforVS2010undWCFRIAServi_8FE2/silverlight_3.gif" width="196" height="234" />
          </a>Heute
gab <a href="http://weblogs.asp.net/scottgu/archive/2010/05/17/silverlight-4-tools-for-vs-2010-and-wcf-ria-services-released.aspx" target="_blank">Scott
Guthrie</a> bekannt, dass die Silverlight 4 Tools for Visual Studio 2010 und 
WCF RIA Services endlich zum Download bereit stehen. Im Gegensatz zu Silverlight 4
und dem Silverlight 4 SDK, welches kurz nach dem Release von Visual Studio 2010 herausgebracht
wurde, musste man sich bei den Silverlight 4 Tools noch etwas gedulden. Bislang gab
es nur eine RC2 Version der Tools.
</p>
        <p>
In der finalen Version der Tools is Folgendes enthalten:
</p>
        <ul>
          <li>
            <em>Silverlight 4 developer runtime  
<br /></em>
          </li>
          <li>
            <em>Silverlight 4 SDK (software development kit) 
<br /></em>
          </li>
          <li>
            <em>Update for Visual Studio 2010 and Visual Web Developer Express 2010 (KB982218) 
<br /></em>
          </li>
          <li>
            <em>Silverlight 4 Tools for Visual Studio 2010 
<br /></em>
          </li>
          <li>
            <em>
              <strong>WCF RIA Services V1.0 for Silverlight 4 
<br /></strong>
            </em>
          </li>
          <li>
            <em>F# Runtime for Silverlight 4</em>
          </li>
        </ul>
        <p>
Als wichtigen Punkt ist in dieser Liste sind die WCF RIA Services als finale Version
hervorzuheben. Diese waren bislang nur als RC Verfügbar.
</p>
        <p>
          <u>Vor der Installation</u> wird dazu geraten, <u>die RC Versionen der Pakete</u> zu <u>deinstallieren</u>.
</p>
        <p>
          <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=902a7539-c4b5-4e54-b4c9-1432daabe1e8&amp;displaylang=en" target="_blank">Download
der Silverlight 4 Tools for VS2010</a>
        </p>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=c68547c5-6473-41a0-87b3-9dafb8ef3d5e" />
      </body>
      <title>Silverlight 4 Tools for VS2010 und WCF RIA Services released</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,c68547c5-6473-41a0-87b3-9dafb8ef3d5e.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,c68547c5-6473-41a0-87b3-9dafb8ef3d5e.aspx</link>
      <pubDate>Tue, 18 May 2010 08:13:56 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://silverlight.net" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px; display: inline; border-top: 0px; border-right: 0px" title="silverlight" border="0" alt="silverlight" align="right" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/Silverlight4ToolsforVS2010undWCFRIAServi_8FE2/silverlight_3.gif" width="196" height="234" /&gt;&lt;/a&gt;Heute
gab &lt;a href="http://weblogs.asp.net/scottgu/archive/2010/05/17/silverlight-4-tools-for-vs-2010-and-wcf-ria-services-released.aspx" target="_blank"&gt;Scott
Guthrie&lt;/a&gt; bekannt, dass die Silverlight 4 Tools for Visual Studio 2010 und&amp;#160;
WCF RIA Services endlich zum Download bereit stehen. Im Gegensatz zu Silverlight 4
und dem Silverlight 4 SDK, welches kurz nach dem Release von Visual Studio 2010 herausgebracht
wurde, musste man sich bei den Silverlight 4 Tools noch etwas gedulden. Bislang gab
es nur eine RC2 Version der Tools.
&lt;/p&gt;
&lt;p&gt;
In der finalen Version der Tools is Folgendes enthalten:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Silverlight 4 developer runtime&amp;#160; 
&lt;br /&gt;
&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Silverlight 4 SDK (software development kit) 
&lt;br /&gt;
&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Update for Visual Studio 2010 and Visual Web Developer Express 2010 (KB982218) 
&lt;br /&gt;
&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Silverlight 4 Tools for Visual Studio 2010 
&lt;br /&gt;
&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;&lt;strong&gt;WCF RIA Services V1.0 for Silverlight 4 
&lt;br /&gt;
&lt;/strong&gt;&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;F# Runtime for Silverlight 4&lt;/em&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Als wichtigen Punkt ist in dieser Liste sind die WCF RIA Services als finale Version
hervorzuheben. Diese waren bislang nur als RC Verfügbar.
&lt;/p&gt;
&lt;p&gt;
&lt;u&gt;Vor der Installation&lt;/u&gt; wird dazu geraten, &lt;u&gt;die RC Versionen der Pakete&lt;/u&gt; zu &lt;u&gt;deinstallieren&lt;/u&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=902a7539-c4b5-4e54-b4c9-1432daabe1e8&amp;amp;displaylang=en" target="_blank"&gt;Download
der Silverlight 4 Tools for VS2010&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=c68547c5-6473-41a0-87b3-9dafb8ef3d5e" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,c68547c5-6473-41a0-87b3-9dafb8ef3d5e.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=78a5e1a2-57d7-4662-b97a-0104585fedb4</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,78a5e1a2-57d7-4662-b97a-0104585fedb4.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,78a5e1a2-57d7-4662-b97a-0104585fedb4.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=78a5e1a2-57d7-4662-b97a-0104585fedb4</wfw:commentRss>
      <slash:comments>7</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Der normale Weg für ein Datenbankdesign, zumindest der, den viele Entwickler gehen,
ist für eine Tabelle einen Primärschlüssel (PK) zu setzen. Dabei ist der Datentyp
der “Id” Spalte meistens ein Integer (int). Dieser wird dann, meistens automatisch
von der Datenbank, inkrementiert, damit er eindeutig bleibt. Doch im Zeitalter von
mobilen Anwendungen ist es sinnvoller einen Datentyp zu verwenden, der nicht nur lokal
bei einer Datenbank eindeutig ist, sondern auch über Datenbanken und Netze hinweg,
z.B. auf dem Mobiltelefon oder einer anderen Datenbank. Für diesen Fall ist beim Microsoft
SQL Server 2005/2008 der <em>uniqueidentifier</em> vorgesehen. Unter .NET kennt man
diesen Datentypen auch als <em><a href="http://en.wikipedia.org/wiki/Globally_Unique_Identifier">Guid</a></em>.
Dieser Datentyp hat den Vorteil, dass er immer eindeutig bleibt. 
</p>
        <p>
Dieser Weg blieb mit dem Entity Framework bislang verwehrt, wollte man die GUIDs vom
Server generieren lassen. Es ist jetzt jedoch sehr wohl möglich, seit Version 4 des
Entity Frameworks werden servergenerierte GUID-Typidentitätswerte unterstützt. Alle
anderen Aussagen in Blogs und Forenbeiträgen unserer Internationalen Entwicklerkollegen
diesbezüglich, die ich finden konnte, verweisen leider fälschlicher Weise auf eine
veraltete MSDN Seite für Version 1 des EF. 
</p>
        <p>
Auf der <a href="http://msdn.microsoft.com/de-de/library/dd283139%28VS.100%29.aspx" target="_blank">aktuellen
und handübersetzen MSDN Seite</a> wird es jedoch explizit benannt, trotzdem fehlt
es an einer genauen Beschreibung, wie man vorgehen muss.
</p>
        <p>
 
</p>
        <h5>Da ich selbst immer wieder auf Hindernisse gestoßen bin, dieses Konzept mit dem
Entity Framework zu benutzen, jetzt ein klare, direkte Anleitung, wie es <u>garantiert</u> funktioniert.
</h5>
        <p>
Durchgeführt mit dem Visual Studio 2010 RTM + Silverlight 4 Tools RC2, SQLServer 2008.
Funktionierenden Einsatz findet die Technik in einer Silverlight 4 Business Anwendung
mit RIA Services
</p>
        <h4>Am SQL-Server 2008:
</h4>
        <ol>
          <li>
Tabelle mit einer Spalte, z.B. “Id”, vom Datentyp <em><strong>uniqueidentifier</strong></em> erstellen.</li>
          <li>
            <strong>Defaultwert</strong> der Spalte auf <em><strong>newid()</strong></em> setzen.</li>
          <li>
“Id” Spalte als <strong>Primary Key</strong> setzen.</li>
        </ol>
        <h4>In Visual Studio 2010:
</h4>
        <ol>
          <li>
Datenbank-Model für EF erzeugen.</li>
          <li>
T4 Templates erstellen mit Rechtsklick ins Design “Add Codegeneration Item”.</li>
          <li>
Tabellen-Entity auswählen und <strong><em>StoreGeneratedPattern</em></strong> beim <strong>Id</strong>-Property
auf <strong><em>Identity</em></strong> stellen.</li>
          <li>
Speichern.</li>
        </ol>
        <p>
Unter besten Bedingungen sollte es jetzt klappen. Leider nicht bei mir, und bei vielen
anderen auch nicht. Den eigentlichen Fehler zu finden hat mich sehr viel Zeit gekostet.
Er liegt im Entity Framework Designer. Es handelt sich um einen Bug beim setzen der
Entityproperty-Eigenschaft <em>StoreGeneratedPattern</em>. Nähere Infos zum Bug sowie
ein netten Kommentar eines Linq-To-Sql Fans über EF sowie der Namensgabe der Eigenschaft
findet man <a href="https://connect.microsoft.com/VisualStudio/feedback/details/505249/improvements-to-storegeneratedpattern-property-handling-in-entity-framework?wa=wsignin1.0" target="_blank">hier</a>. 
<br />
Um den Bug zu fixen fehlt noch der wichtigste Schritt:
</p>
        <h4>
          <br />
Der wichtigste Schritt:
</h4>
        <ol>
          <li>
Den EF-Designer schließen und die edmx-Datei mit dem XML-Editor öffnen (Rechtsklick
auf die Datei –&gt; “Open with..”)</li>
          <li>
Im StorageModel kontrollieren und wahrscheinlich nachtragen: 
</li>
        </ol>
        <blockquote>
          <p>
            <span style="color: #0000ff">&lt;</span>
            <span style="color: #800000">EntityType</span>
            <span style="color: #ff0000">Name</span>=<span style="color: #0000ff">"TestTabelle"</span><span style="color: #0000ff">&gt;</span><br />
          <span style="color: #0000ff">&lt;</span><span style="color: #800000">Key</span><span style="color: #0000ff">&gt;</span><br />
            <span style="color: #0000ff">&lt;</span><span style="color: #800000">PropertyRef</span><span style="color: #ff0000">Name</span>=<span style="color: #0000ff">"Id"</span><span style="color: #0000ff">/&gt;</span><br />
          <span style="color: #0000ff">&lt;/</span><span style="color: #800000">Key</span><span style="color: #0000ff">&gt;</span><br />
          <span style="color: #0000ff">&lt;</span><span style="color: #800000">Property</span><span style="color: #ff0000">Name</span>=<span style="color: #0000ff">"Id"</span><span style="color: #ff0000">Type</span>=<span style="color: #0000ff">"uniqueidentifier"</span><span style="color: #ff0000">Nullable</span>=<span style="color: #0000ff">"false"</span><strong><u><span style="color: #ff0000">StoreGeneratedPattern</span>=<span style="color: #0000ff">"Identity"</span></u></strong><span style="color: #0000ff">/&gt;</span><br />
          <span style="color: #0000ff">&lt;</span><span style="color: #800000">Property</span><span style="color: #ff0000">Name</span>=<span style="color: #0000ff">"Test"</span><span style="color: #ff0000">Type</span>=<span style="color: #0000ff">"varchar"</span><span style="color: #ff0000">MaxLength</span>=<span style="color: #0000ff">"50"</span><span style="color: #0000ff">/&gt;</span><br /><span style="color: #0000ff">&lt;/</span><span style="color: #800000">EntityType</span><span style="color: #0000ff">&gt;</span><br /></p>
        </blockquote>
        <p>
Jetzt sollte alles bestens funktionieren. Das selbe Prinzip ist auch bei Spalten wie
z.B. “DateCreated” mit einem <em><strong>datetime</strong></em> Datentyp und einer
getdate() Methode anwendbar. Einfach <strong>StoreGeneratedPattern = Identity</strong> setzen
und im StorageModel, wenn nicht vorhanden, so wie oben nachtragen.
</p>
        <p>
Bitte beachten, das bei Updates vom Designer diese Werte überschrieben werden können.
</p>
        <p>
 
</p>
        <p>
Der Vollständigkeit halber, einige Fehlermeldungen, mit denen ich in diesem Zusammenhang
zutun hatte, damit Leute mit ähnlichen Problem diesen Beitrag schneller finden können:
</p>
        <blockquote>
          <p>
[System.Data.SqlClient.SqlException] = {"The conversion of a datetime2 data type
to a datetime data type resulted in an out-of-range value.\r\nThe statement has been
terminated."}
</p>
        </blockquote>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=78a5e1a2-57d7-4662-b97a-0104585fedb4" />
      </body>
      <title>Entity Framework 4.0 &amp;ndash; Guid/uniqueidentifier als primary key mit newid() &amp;ndash; So wird&amp;rsquo;s gemacht!</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,78a5e1a2-57d7-4662-b97a-0104585fedb4.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,78a5e1a2-57d7-4662-b97a-0104585fedb4.aspx</link>
      <pubDate>Tue, 20 Apr 2010 13:36:30 GMT</pubDate>
      <description>&lt;p&gt;
Der normale Weg für ein Datenbankdesign, zumindest der, den viele Entwickler gehen,
ist für eine Tabelle einen Primärschlüssel (PK) zu setzen. Dabei ist der Datentyp
der “Id” Spalte meistens ein Integer (int). Dieser wird dann, meistens automatisch
von der Datenbank, inkrementiert, damit er eindeutig bleibt. Doch im Zeitalter von
mobilen Anwendungen ist es sinnvoller einen Datentyp zu verwenden, der nicht nur lokal
bei einer Datenbank eindeutig ist, sondern auch über Datenbanken und Netze hinweg,
z.B. auf dem Mobiltelefon oder einer anderen Datenbank. Für diesen Fall ist beim Microsoft
SQL Server 2005/2008 der &lt;em&gt;uniqueidentifier&lt;/em&gt; vorgesehen. Unter .NET kennt man
diesen Datentypen auch als &lt;em&gt;&lt;a href="http://en.wikipedia.org/wiki/Globally_Unique_Identifier"&gt;Guid&lt;/a&gt;&lt;/em&gt;.
Dieser Datentyp hat den Vorteil, dass er immer eindeutig bleibt. 
&lt;/p&gt;
&lt;p&gt;
Dieser Weg blieb mit dem Entity Framework bislang verwehrt, wollte man die GUIDs vom
Server generieren lassen. Es ist jetzt jedoch sehr wohl möglich, seit Version 4 des
Entity Frameworks werden servergenerierte GUID-Typidentitätswerte unterstützt. Alle
anderen Aussagen in Blogs und Forenbeiträgen unserer Internationalen Entwicklerkollegen
diesbezüglich, die ich finden konnte, verweisen leider fälschlicher Weise auf eine
veraltete MSDN Seite für Version 1 des EF. 
&lt;/p&gt;
&lt;p&gt;
Auf der &lt;a href="http://msdn.microsoft.com/de-de/library/dd283139%28VS.100%29.aspx" target="_blank"&gt;aktuellen
und handübersetzen MSDN Seite&lt;/a&gt; wird es jedoch explizit benannt, trotzdem fehlt
es an einer genauen Beschreibung, wie man vorgehen muss.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h5&gt;Da ich selbst immer wieder auf Hindernisse gestoßen bin, dieses Konzept mit dem
Entity Framework zu benutzen, jetzt ein klare, direkte Anleitung, wie es &lt;u&gt;garantiert&lt;/u&gt; funktioniert.
&lt;/h5&gt;
&lt;p&gt;
Durchgeführt mit dem Visual Studio 2010 RTM + Silverlight 4 Tools RC2, SQLServer 2008.
Funktionierenden Einsatz findet die Technik in einer Silverlight 4 Business Anwendung
mit RIA Services
&lt;/p&gt;
&lt;h4&gt;Am SQL-Server 2008:
&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
Tabelle mit einer Spalte, z.B. “Id”, vom Datentyp &lt;em&gt;&lt;strong&gt;uniqueidentifier&lt;/strong&gt;&lt;/em&gt; erstellen.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Defaultwert&lt;/strong&gt; der Spalte auf &lt;em&gt;&lt;strong&gt;newid()&lt;/strong&gt;&lt;/em&gt; setzen.&lt;/li&gt;
&lt;li&gt;
“Id” Spalte als &lt;strong&gt;Primary Key&lt;/strong&gt; setzen.&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;In Visual Studio 2010:
&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
Datenbank-Model für EF erzeugen.&lt;/li&gt;
&lt;li&gt;
T4 Templates erstellen mit Rechtsklick ins Design “Add Codegeneration Item”.&lt;/li&gt;
&lt;li&gt;
Tabellen-Entity auswählen und &lt;strong&gt;&lt;em&gt;StoreGeneratedPattern&lt;/em&gt;&lt;/strong&gt; beim &lt;strong&gt;Id&lt;/strong&gt;-Property
auf &lt;strong&gt;&lt;em&gt;Identity&lt;/em&gt;&lt;/strong&gt; stellen.&lt;/li&gt;
&lt;li&gt;
Speichern.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Unter besten Bedingungen sollte es jetzt klappen. Leider nicht bei mir, und bei vielen
anderen auch nicht. Den eigentlichen Fehler zu finden hat mich sehr viel Zeit gekostet.
Er liegt im Entity Framework Designer. Es handelt sich um einen Bug beim setzen der
Entityproperty-Eigenschaft &lt;em&gt;StoreGeneratedPattern&lt;/em&gt;. Nähere Infos zum Bug sowie
ein netten Kommentar eines Linq-To-Sql Fans über EF sowie der Namensgabe der Eigenschaft
findet man &lt;a href="https://connect.microsoft.com/VisualStudio/feedback/details/505249/improvements-to-storegeneratedpattern-property-handling-in-entity-framework?wa=wsignin1.0" target="_blank"&gt;hier&lt;/a&gt;. 
&lt;br /&gt;
Um den Bug zu fixen fehlt noch der wichtigste Schritt:
&lt;/p&gt;
&lt;h4&gt;
&lt;br /&gt;
Der wichtigste Schritt:
&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
Den EF-Designer schließen und die edmx-Datei mit dem XML-Editor öffnen (Rechtsklick
auf die Datei –&amp;gt; “Open with..”)&lt;/li&gt;
&lt;li&gt;
Im StorageModel kontrollieren und wahrscheinlich nachtragen: 
&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;EntityType&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;TestTabelle&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Key&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;PropertyRef&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Id&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt; 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Key&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Property&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Id&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Type&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;uniqueidentifier&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Nullable&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;false&amp;quot;&lt;/span&gt; &lt;strong&gt;&lt;u&gt;&lt;span style="color: #ff0000"&gt;StoreGeneratedPattern&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Identity&amp;quot;&lt;/span&gt;&lt;/u&gt;&lt;/strong&gt;&lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt; 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Property&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;Test&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Type&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;varchar&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;MaxLength&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;50&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt; 
&lt;br /&gt;
&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;EntityType&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; 
&lt;br /&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Jetzt sollte alles bestens funktionieren. Das selbe Prinzip ist auch bei Spalten wie
z.B. “DateCreated” mit einem &lt;em&gt;&lt;strong&gt;datetime&lt;/strong&gt;&lt;/em&gt; Datentyp und einer
getdate() Methode anwendbar. Einfach &lt;strong&gt;StoreGeneratedPattern = Identity&lt;/strong&gt; setzen
und im StorageModel, wenn nicht vorhanden, so wie oben nachtragen.
&lt;/p&gt;
&lt;p&gt;
Bitte beachten, das bei Updates vom Designer diese Werte überschrieben werden können.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Der Vollständigkeit halber, einige Fehlermeldungen, mit denen ich in diesem Zusammenhang
zutun hatte, damit Leute mit ähnlichen Problem diesen Beitrag schneller finden können:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
[System.Data.SqlClient.SqlException] = {&amp;quot;The conversion of a datetime2 data type
to a datetime data type resulted in an out-of-range value.\r\nThe statement has been
terminated.&amp;quot;}
&lt;/p&gt;
&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=78a5e1a2-57d7-4662-b97a-0104585fedb4" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,78a5e1a2-57d7-4662-b97a-0104585fedb4.aspx</comments>
      <category>.NET</category>
      <category>Entity Framework</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=e6474f6c-eaa3-4c22-b570-cc843acc1be2</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,e6474f6c-eaa3-4c22-b570-cc843acc1be2.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,e6474f6c-eaa3-4c22-b570-cc843acc1be2.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=e6474f6c-eaa3-4c22-b570-cc843acc1be2</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Gestern ging die Silverlight 4 Release Version, wie am Dienstag dem 13.04.2010 angekündigt,
live. Zudem wurde einen Tag vorher die Visual Studio 2010 RTM Version released.
</p>
        <p>
Laut Tim Heuer benötigen die Silverlight 4 Tools Entwickler, die die Werkzeuge in
Visual Studio zu Bearbeitung von Silverlight 4  Anwendungen entwickeln, erst
die Silverlight 4 Release Version, um selbst das Final Release fertigstellen zu können.
</p>
        <blockquote>
          <p>
“To be clear, Silverlight 4 has released.  This is RTW (release to web). 
It is the version 4 of Silverlight.  Shipped.  Done.  Finished.
</p>
          <p>
The tools (namely SL4 tools, RIA Services and Blend) are in their ‘release candidate’
mode.  I’ll spare you the gory details, but remember that these tools teams need
SL4 to be *done* before they can be done.  SL4 is a dependency for them. 
These tools are release quality though and I’d recommend using them.  Their final
versions will come soon enough and will be a minor update.”
</p>
        </blockquote>
        <p>
 
</p>
        <p>
Zuerst dachte ich: 
</p>
        <blockquote>
          <p>
            <em>“Na toll! Noch länger mit der Visual Studio 2010 RC Version ausharren.“</em>
          </p>
        </blockquote>
        <p>
Aber weit gefehlt: 
</p>
        <p>
Es wurden bereits die Silverlight 4 Tools RC<strong>2</strong> veröffentlicht.
</p>
        <p>
Laut der Downloadseite bei Microsoft wird folgendes Unterstützt.
</p>
        <blockquote>
          <p>
“This package is an add-on for Visual Studio 2010 to provide tooling for Microsoft
Silverlight 4 and RIA Services. It can be installed on top of either Visual Studio
2010 or Visual Web Developer 2010 Express. It extends existing Silverlight 3 features
and multitargeting capabilities in Visual Studio 2010 to also create applications
for Silverlight 4 using C# or Visual Basic. Note that this is a second Release Candidate
(RC2) for the tools; the final release will be announced in the coming weeks. 
<br />
Silverlight 4 Tools for Visual Studio 2010 includes several features: 
</p>
          <ul>
            <li>
Support for targeting Silverlight 4 in the Silverlight designer and project system 
</li>
            <li>
RIA Services application templates and libraries 
</li>
            <li>
Support for Silverlight 4 elevated trust and out-of-browser applications and other
new Silverlight 4 features 
</li>
          </ul>
          <br />
This download will install all components necessary for Silverlight 4 and RIA Services
development: 
<ul><li>
Silverlight 4 developer runtime (final release) 
</li><li>
Silverlight 4 SDK (software development kit, final release) 
</li><li>
Update for Visual Studio 2010 and Visual Web Developer Express 2010 (KB976272, pre-release) 
</li><li>
Silverlight 4 Tools for Visual Studio 2010 RC2 
</li><li>
WCF RIA Services for Silverlight 4 RC2 
</li></ul><br />
The final release of Silverlight 4 Tools will be made available in the near future.”</blockquote>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=e6474f6c-eaa3-4c22-b570-cc843acc1be2" />
      </body>
      <title>Silverlight 4 Tools RC2 mit Visual Studio 2010 RTM</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,e6474f6c-eaa3-4c22-b570-cc843acc1be2.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,e6474f6c-eaa3-4c22-b570-cc843acc1be2.aspx</link>
      <pubDate>Fri, 16 Apr 2010 05:35:00 GMT</pubDate>
      <description>&lt;p&gt;
Gestern ging die Silverlight 4 Release Version, wie am Dienstag dem 13.04.2010 angekündigt,
live. Zudem wurde einen Tag vorher die Visual Studio 2010 RTM Version released.
&lt;/p&gt;
&lt;p&gt;
Laut Tim Heuer benötigen die Silverlight 4 Tools Entwickler, die die Werkzeuge in
Visual Studio zu Bearbeitung von Silverlight 4&amp;#160; Anwendungen entwickeln, erst
die Silverlight 4 Release Version, um selbst das Final Release fertigstellen zu können.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
“To be clear, Silverlight 4 has released.&amp;#160; This is RTW (release to web).&amp;#160;
It is the version 4 of Silverlight.&amp;#160; Shipped.&amp;#160; Done.&amp;#160; Finished.
&lt;/p&gt;
&lt;p&gt;
The tools (namely SL4 tools, RIA Services and Blend) are in their ‘release candidate’
mode.&amp;#160; I’ll spare you the gory details, but remember that these tools teams need
SL4 to be *done* before they can be done.&amp;#160; SL4 is a dependency for them.&amp;#160;
These tools are release quality though and I’d recommend using them.&amp;#160; Their final
versions will come soon enough and will be a minor update.”
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Zuerst dachte ich: 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;“Na toll! Noch länger mit der Visual Studio 2010 RC Version ausharren.“&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Aber weit gefehlt: 
&lt;/p&gt;
&lt;p&gt;
Es wurden bereits die Silverlight 4 Tools RC&lt;strong&gt;2&lt;/strong&gt; veröffentlicht.
&lt;/p&gt;
&lt;p&gt;
Laut der Downloadseite bei Microsoft wird folgendes Unterstützt.
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
“This package is an add-on for Visual Studio 2010 to provide tooling for Microsoft
Silverlight 4 and RIA Services. It can be installed on top of either Visual Studio
2010 or Visual Web Developer 2010 Express. It extends existing Silverlight 3 features
and multitargeting capabilities in Visual Studio 2010 to also create applications
for Silverlight 4 using C# or Visual Basic. Note that this is a second Release Candidate
(RC2) for the tools; the final release will be announced in the coming weeks. 
&lt;br /&gt;
Silverlight 4 Tools for Visual Studio 2010 includes several features: 
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Support for targeting Silverlight 4 in the Silverlight designer and project system 
&lt;/li&gt;
&lt;li&gt;
RIA Services application templates and libraries 
&lt;/li&gt;
&lt;li&gt;
Support for Silverlight 4 elevated trust and out-of-browser applications and other
new Silverlight 4 features 
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
This download will install all components necessary for Silverlight 4 and RIA Services
development: 
&lt;ul&gt;
&lt;li&gt;
Silverlight 4 developer runtime (final release) 
&lt;/li&gt;
&lt;li&gt;
Silverlight 4 SDK (software development kit, final release) 
&lt;/li&gt;
&lt;li&gt;
Update for Visual Studio 2010 and Visual Web Developer Express 2010 (KB976272, pre-release) 
&lt;/li&gt;
&lt;li&gt;
Silverlight 4 Tools for Visual Studio 2010 RC2 
&lt;/li&gt;
&lt;li&gt;
WCF RIA Services for Silverlight 4 RC2 
&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
The final release of Silverlight 4 Tools will be made available in the near future.”&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=e6474f6c-eaa3-4c22-b570-cc843acc1be2" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,e6474f6c-eaa3-4c22-b570-cc843acc1be2.aspx</comments>
      <category>.NET</category>
      <category>Silverlight</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=035950c7-098e-4a3d-8b59-3fdd7b315cb0</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,035950c7-098e-4a3d-8b59-3fdd7b315cb0.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,035950c7-098e-4a3d-8b59-3fdd7b315cb0.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=035950c7-098e-4a3d-8b59-3fdd7b315cb0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Die Visual Studio 2010 Beta 2 steht nun zum Download zur Verfügung.
</p>
        <p>
          <a href="http://www.microsoft.com/germany/visualstudio/products/visual-studio/2010/default.aspx" target="_blank">http://www.microsoft.com/germany/visualstudio/products/visual-studio/2010/default.aspx</a>
        </p>
        <p>
          <a href="http://www.microsoft.com/germany/visualstudio/products/visual-studio/2010/default.aspx" target="_blank">
            <img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/VisualStudio2010Beta2zumDownloadverfgbar_D7E6/clip_image002_192c2b62-f935-42cb-add3-4ad5dfbcd115.jpg" width="230" height="375" />
          </a>
        </p>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=035950c7-098e-4a3d-8b59-3fdd7b315cb0" />
      </body>
      <title>Visual Studio 2010 Beta 2 zum Download verf&amp;uuml;gbar!</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,035950c7-098e-4a3d-8b59-3fdd7b315cb0.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,035950c7-098e-4a3d-8b59-3fdd7b315cb0.aspx</link>
      <pubDate>Wed, 21 Oct 2009 13:21:12 GMT</pubDate>
      <description>&lt;p&gt;
Die Visual Studio 2010 Beta 2 steht nun zum Download zur Verfügung.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/germany/visualstudio/products/visual-studio/2010/default.aspx" target="_blank"&gt;http://www.microsoft.com/germany/visualstudio/products/visual-studio/2010/default.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/germany/visualstudio/products/visual-studio/2010/default.aspx" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/VisualStudio2010Beta2zumDownloadverfgbar_D7E6/clip_image002_192c2b62-f935-42cb-add3-4ad5dfbcd115.jpg" width="230" height="375" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=035950c7-098e-4a3d-8b59-3fdd7b315cb0" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,035950c7-098e-4a3d-8b59-3fdd7b315cb0.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=18bc008d-7c8f-4fd6-accc-41e942b643fd</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,18bc008d-7c8f-4fd6-accc-41e942b643fd.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,18bc008d-7c8f-4fd6-accc-41e942b643fd.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=18bc008d-7c8f-4fd6-accc-41e942b643fd</wfw:commentRss>
      <slash:comments>7</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/PerformanceOptimierunginCMehrdimensional_121BC/no_pressure_no_speed_2.jpg">
            <img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="No Pressure, No Speed!" border="0" alt="No Pressure, No Speed!" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/PerformanceOptimierunginCMehrdimensional_121BC/no_pressure_no_speed_thumb.jpg" width="504" height="379" />
          </a>Die
Verwendung von mehrdimensionalen Arrays ist oftmals ein wesentlicher Bestandteil in
Programmen. Je nach Problemstellung und Größe der Arrays kann der Zugriff auf solche
die Laufzeit eines Programms negativ beeinflussen. 
</p>
        <p>
In C# gibt es grundsätzlich neben den eindimensionalen Arrays 2 Arten von mehrdimensionalen
Arrays. Diese unterscheiden sich nur in ihrer Notation:
</p>
        <ul>
          <li>
[,] – Multidimensionale Arrays 
</li>
          <li>
[][] – Jagged-Arrays 
</li>
        </ul>
        <p>
Bei multidimensionalen Arrays werden die Dimensionen durch ein Komma getrennt, bei
Jagged-Arrays durch die erneute Klammerung. Multidimensionale Arrays haben eine feste
Größe. Bei einem Jagged-Array kann die Größe variieren, da es ein Array von Arrays
ist. Das ist im Grunde genommen eigentlich schon alles was man darüber wissen sollte.
– Wie aber steht es jetzt mit den Geschwindigkeits-Unterschieden? Gibt es vielleicht
noch andere Möglichkeiten?
</p>
        <p>
Ja! Die gibt es definitiv. Bei einem Disput mit einem Kommilitonen über genau dieses
Thema hat dieser prompt einen Eintrag in seinem Blog dazu und dazugehörige Messergebnisse
veröffentlicht:
</p>
        <p>
 <a title="Manolo's HPC Blog" href="http://mshpc.spaces.live.com/blog/cns!25718992934D10D1!121.entry">Manolo's
HPC Blog</a></p>
        <p>
Er verwendet dort eine weitere, eher aus der Welt der C Programmierer bekannte Technik,
um mehrdimensionale Arrays zu realisieren. Es wird einfach ein eindimensionales Array
verwendet, das alle Elemente linear beinhaltet.
</p>
        <p>
Der Zugriff erfolgt über die Formel:
</p>
        <p>
          <em>position = Y * breite + X</em>
        </p>
        <p>
          <em>
          </em>
        </p>
        <p>
Als ich das Ergebnis das erste mal sah, konnte ich kaum glauben, dass dieses schneller
als ein Jagged-Array ist. Aber bei einer genaueren Untersuchung erklärt sich auch
warum. Darf man dem <a title="http://aspadvice.com/blogs/maniknet/archive/2008/04/18/C_2300_-und-ASP.Net-Performance-Optimierungen.aspx" href="http://aspadvice.com/blogs/maniknet/archive/2008/04/18/C_2300_-und-ASP.Net-Performance-Optimierungen.aspx" target="_blank">manik.net
– Blog</a> trauen:
</p>
        <blockquote>
          <p>
MSIL kann eindimensionale Arrays besser optimieren wie mehrdimensionale. 
<br />
Auf MSIL ebene sieht man den unterschied:
</p>
          <p>
int [,] secondarr = new int[1, 2]; 
<br />
secondarr[0, 0] = 40; 
<br /><br />
MSIL: 
<br />
IL_0029: ldc.i4.s 40 
<br />
IL_002b: call instance void int32[0...,0...]::Set(int32, int32,in32)
</p>
          <p>
Mit einem Jaggedarray sieht das ganze dann auf MSIL so aus: 
<br />
IL_001c: ldc.i4.s 40 
<br />
IL_001e: stelem.i4 
<br />
stelem = „store an element“
</p>
          <p>
Bei mehrdimensionalen Arrays wird der ganze „Generic Type“-Kram also betrieben was
einiges an Overhead erzeugt. 
</p>
        </blockquote>
        <p>
Daher ist es ratsam wann immer möglich ein lineares Array anstelle von einem Mehrdimensionalen
Array zu verwenden.
</p>
        <p>
Ich habe mir die ganze Sache aber in eigener Regie noch einmal angesehen. Als Ergebnis
habe ich es geschafft, eine noch schnellere Variante zu programmieren. Diese setzt
allerdings ein \unsafe bei den Compiler-Einstellungen voraus. 
</p>
        <p>
Anstelle auf die einzelnen Elemente des Arrays zuzugreifen, wird direkt auf einen
Pointer zugegriffen. – Eigentlich nichts besonderes, kann aber bei manch einer Berechnung
den ein oder anderen Performancegewinn bringen.
</p>
        <p>
Die Ergebnisse sehen dabei wie folgt aus:
</p>
        <blockquote>
          <p>
Result = 249500250000000 
<br />
1000times: Matrix A with [1000, 1000]  (matrix array): 11637ms 
<br />
Result = 249500250000000 
<br />
1000times: Matrix B with [1000][1000]  (jagged array): 6361ms 
<br />
Result = 249500250000000 
<br />
1000times: Matrix C with [1000* 1000]  (linear array): 5486ms 
<br />
Result = 249500250000000 
<br />
1000times: Matrix D with [1000* 1000]  (unsafe array): <strong>5175ms!!!</strong></p>
        </blockquote>
        <p>
Gegenüber dem [,] Array sind die beiden letzten Varianten ungefähr doppelt so schnell.
</p>
        <p>
          <strong>
            <font size="4">Also für die Zukunft merken:</font>
          </strong>
        </p>
        <ul>
          <ul>
          </ul>
          <li>
            <p>
              <strong>
                <font size="5">Keine [,]-Arrays verwenden!</font>
              </strong>
            </p>
          </li>
          <li>
            <p>
              <strong>
                <font size="5">[][]-Arrays können durch lineare Arrays ersetzt werden!</font>
              </strong>
            </p>
          </li>
        </ul>
        <p>
Den Quellcode zum verifizieren und selber Testen gibt es hier:
</p>
        <pre class="csharpcode">
          <span class="kwrd">using</span> System; <span class="kwrd">using</span> System.Collections.Generic; <span class="kwrd">using</span> System.Linq; <span class="kwrd">using</span> System.Text; <span class="kwrd">using</span> System.Diagnostics; <span class="kwrd">namespace</span> SpeedTest
{ <span class="kwrd">class</span> Program { <span class="kwrd">static</span><span class="kwrd">void</span> Main(<span class="kwrd">string</span>[]
args) { <span class="kwrd">int</span> n = 1000; Stopwatch swatch = <span class="kwrd">new</span> Stopwatch(); <span class="kwrd">double</span>[,]
A = <span class="kwrd">new</span><span class="kwrd">double</span>[n, n]; swatch.Start();
CalcMatrix(A,n); swatch.Stop(); Console.WriteLine(<span class="str">"{0}times:
Matrix A with [{0}, {0}] (matrix array): {1}ms"</span>, n, swatch.ElapsedMilliseconds);
swatch.Reset(); <span class="kwrd">double</span>[][] B = <span class="kwrd">new</span><span class="kwrd">double</span>[n][]; <span class="rem">//
init jagged arrays</span><span class="kwrd">for</span> (<span class="kwrd">int</span> i
= 0; i &lt; n; i++) { B[i] = <span class="kwrd">new</span><span class="kwrd">double</span>[n];
} swatch.Start(); CalcJagged(B, n); swatch.Stop(); Console.WriteLine(<span class="str">"{0}times:
Matrix B with [{0}][{0}] (jagged array): {1}ms"</span>, n, swatch.ElapsedMilliseconds);
swatch.Reset(); <span class="kwrd">double</span>[] C = <span class="kwrd">new</span><span class="kwrd">double</span>[n*
n]; swatch.Start(); CalcLinear(C, n); swatch.Stop(); Console.WriteLine(<span class="str">"{0}times:
Matrix C with [{0}* {0}] (linear array): {1}ms"</span>, n, swatch.ElapsedMilliseconds);
swatch.Reset(); <span class="kwrd">unsafe</span> { <span class="kwrd">double</span>[]
D = <span class="kwrd">new</span><span class="kwrd">double</span>[n * n]; swatch.Start(); <span class="kwrd">fixed</span>(<span class="kwrd">double</span>*
pD = D) CalcUnsafe(pD,n); swatch.Stop(); } Console.WriteLine(<span class="str">"{0}times:
Matrix D with [{0}* {0}] (unsafe array): {1}ms"</span>, n, swatch.ElapsedMilliseconds);
swatch.Reset(); Console.ReadKey(); } <span class="kwrd">private</span><span class="kwrd">static</span><span class="kwrd">void</span> CalcJagged(<span class="kwrd">double</span>[][]
B, <span class="kwrd">int</span> n) { <span class="kwrd">double</span> result = 0; <span class="kwrd">for</span> (<span class="kwrd">int</span> x
= 0; x &lt; n; x++) { <span class="kwrd">for</span> (<span class="kwrd">int</span> i
= 0; i &lt; n; i++) { <span class="kwrd">for</span> (<span class="kwrd">int</span> j
= 0; j &lt; n; j++) { B[i][j] = i * j; result += B[i][j]; } } } Console.WriteLine(<span class="str">"Result
= "</span> + result); } <span class="kwrd">private</span><span class="kwrd">static</span><span class="kwrd">void</span> CalcMatrix( <span class="kwrd">double</span>[,]
A, <span class="kwrd">int</span> n) { <span class="kwrd">double</span> result = 0; <span class="kwrd">for</span> (<span class="kwrd">int</span> x
= 0; x &lt; n; x++) { <span class="kwrd">for</span> (<span class="kwrd">int</span> i
= 0; i &lt; n; i++) { <span class="kwrd">for</span> (<span class="kwrd">int</span> j
= 0; j &lt; n; j++) { A[i, j] = i * j; result += A[i, j]; } } } Console.WriteLine(<span class="str">"Result
= "</span> + result); } <span class="kwrd">private</span><span class="kwrd">static</span><span class="kwrd">void</span> CalcLinear(<span class="kwrd">double</span>[]
C, <span class="kwrd">int</span> n) { <span class="kwrd">double</span> result = 0; <span class="kwrd">for</span> (<span class="kwrd">int</span> x
= 0; x &lt; n; x++) { <span class="kwrd">for</span> (<span class="kwrd">int</span> i
= 0; i &lt; n; i++) { <span class="kwrd">for</span> (<span class="kwrd">int</span> j
= 0; j &lt; n; j++) { C[i * n + j] = i * j; result += C[i * n + j]; } } } Console.WriteLine(<span class="str">"Result
= "</span> + result); } <span class="kwrd">unsafe</span><span class="kwrd">private</span><span class="kwrd">static</span><span class="kwrd">void</span> CalcUnsafe(<span class="kwrd">double</span>*
pD, <span class="kwrd">int</span> n) { <span class="kwrd">double</span> result = 0; <span class="kwrd">for</span> (<span class="kwrd">int</span> x
= 0; x &lt; n; x++) { <span class="kwrd">for</span> (<span class="kwrd">int</span> i
= 0; i &lt; n; i++) { <span class="kwrd">for</span> (<span class="kwrd">int</span> j
= 0; j &lt; n; j++) { *(pD + i * n + j) = i * j; result += *(pD + i * n + j); } }
} Console.WriteLine(<span class="str">"Result = "</span> + result); } }
}</pre>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=18bc008d-7c8f-4fd6-accc-41e942b643fd" />
      </body>
      <title>Performance Optimierung in C# &amp;ndash; Mehrdimensionale Arrays</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,18bc008d-7c8f-4fd6-accc-41e942b643fd.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,18bc008d-7c8f-4fd6-accc-41e942b643fd.aspx</link>
      <pubDate>Fri, 11 Sep 2009 19:05:33 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/PerformanceOptimierunginCMehrdimensional_121BC/no_pressure_no_speed_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="No Pressure, No Speed!" border="0" alt="No Pressure, No Speed!" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/PerformanceOptimierunginCMehrdimensional_121BC/no_pressure_no_speed_thumb.jpg" width="504" height="379" /&gt;&lt;/a&gt;Die
Verwendung von mehrdimensionalen Arrays ist oftmals ein wesentlicher Bestandteil in
Programmen. Je nach Problemstellung und Größe der Arrays kann der Zugriff auf solche
die Laufzeit eines Programms negativ beeinflussen. 
&lt;/p&gt;
&lt;p&gt;
In C# gibt es grundsätzlich neben den eindimensionalen Arrays 2 Arten von mehrdimensionalen
Arrays. Diese unterscheiden sich nur in ihrer Notation:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
[,] – Multidimensionale Arrays 
&lt;/li&gt;
&lt;li&gt;
[][] – Jagged-Arrays 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Bei multidimensionalen Arrays werden die Dimensionen durch ein Komma getrennt, bei
Jagged-Arrays durch die erneute Klammerung. Multidimensionale Arrays haben eine feste
Größe. Bei einem Jagged-Array kann die Größe variieren, da es ein Array von Arrays
ist. Das ist im Grunde genommen eigentlich schon alles was man darüber wissen sollte.
– Wie aber steht es jetzt mit den Geschwindigkeits-Unterschieden? Gibt es vielleicht
noch andere Möglichkeiten?
&lt;/p&gt;
&lt;p&gt;
Ja! Die gibt es definitiv. Bei einem Disput mit einem Kommilitonen über genau dieses
Thema hat dieser prompt einen Eintrag in seinem Blog dazu und dazugehörige Messergebnisse
veröffentlicht:
&lt;/p&gt;
&lt;p&gt;
&amp;#160;&lt;a title="Manolo&amp;#39;s HPC Blog" href="http://mshpc.spaces.live.com/blog/cns!25718992934D10D1!121.entry"&gt;Manolo's
HPC Blog&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Er verwendet dort eine weitere, eher aus der Welt der C Programmierer bekannte Technik,
um mehrdimensionale Arrays zu realisieren. Es wird einfach ein eindimensionales Array
verwendet, das alle Elemente linear beinhaltet.
&lt;/p&gt;
&lt;p&gt;
Der Zugriff erfolgt über die Formel:
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;position = Y * breite + X&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Als ich das Ergebnis das erste mal sah, konnte ich kaum glauben, dass dieses schneller
als ein Jagged-Array ist. Aber bei einer genaueren Untersuchung erklärt sich auch
warum. Darf man dem &lt;a title="http://aspadvice.com/blogs/maniknet/archive/2008/04/18/C_2300_-und-ASP.Net-Performance-Optimierungen.aspx" href="http://aspadvice.com/blogs/maniknet/archive/2008/04/18/C_2300_-und-ASP.Net-Performance-Optimierungen.aspx" target="_blank"&gt;manik.net
– Blog&lt;/a&gt; trauen:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
MSIL kann eindimensionale Arrays besser optimieren wie mehrdimensionale. 
&lt;br /&gt;
Auf MSIL ebene sieht man den unterschied:
&lt;/p&gt;
&lt;p&gt;
int [,] secondarr = new int[1, 2]; 
&lt;br /&gt;
secondarr[0, 0] = 40; 
&lt;br /&gt;
&lt;br /&gt;
MSIL: 
&lt;br /&gt;
IL_0029: ldc.i4.s 40 
&lt;br /&gt;
IL_002b: call instance void int32[0...,0...]::Set(int32, int32,in32)
&lt;/p&gt;
&lt;p&gt;
Mit einem Jaggedarray sieht das ganze dann auf MSIL so aus: 
&lt;br /&gt;
IL_001c: ldc.i4.s 40 
&lt;br /&gt;
IL_001e: stelem.i4 
&lt;br /&gt;
stelem = „store an element“
&lt;/p&gt;
&lt;p&gt;
Bei mehrdimensionalen Arrays wird der ganze „Generic Type“-Kram also betrieben was
einiges an Overhead erzeugt. 
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Daher ist es ratsam wann immer möglich ein lineares Array anstelle von einem Mehrdimensionalen
Array zu verwenden.
&lt;/p&gt;
&lt;p&gt;
Ich habe mir die ganze Sache aber in eigener Regie noch einmal angesehen. Als Ergebnis
habe ich es geschafft, eine noch schnellere Variante zu programmieren. Diese setzt
allerdings ein \unsafe bei den Compiler-Einstellungen voraus. 
&lt;/p&gt;
&lt;p&gt;
Anstelle auf die einzelnen Elemente des Arrays zuzugreifen, wird direkt auf einen
Pointer zugegriffen. – Eigentlich nichts besonderes, kann aber bei manch einer Berechnung
den ein oder anderen Performancegewinn bringen.
&lt;/p&gt;
&lt;p&gt;
Die Ergebnisse sehen dabei wie folgt aus:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
Result = 249500250000000 
&lt;br /&gt;
1000times: Matrix A with [1000, 1000]&amp;#160; (matrix array): 11637ms 
&lt;br /&gt;
Result = 249500250000000 
&lt;br /&gt;
1000times: Matrix B with [1000][1000]&amp;#160; (jagged array): 6361ms 
&lt;br /&gt;
Result = 249500250000000 
&lt;br /&gt;
1000times: Matrix C with [1000* 1000]&amp;#160; (linear array): 5486ms 
&lt;br /&gt;
Result = 249500250000000 
&lt;br /&gt;
1000times: Matrix D with [1000* 1000]&amp;#160; (unsafe array): &lt;strong&gt;5175ms!!!&lt;/strong&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Gegenüber dem [,] Array sind die beiden letzten Varianten ungefähr doppelt so schnell.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font size="4"&gt;Also für die Zukunft merken:&lt;/font&gt;&lt;/strong&gt; 
&lt;/p&gt;
&lt;ul&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;li&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font size="5"&gt;Keine [,]-Arrays verwenden!&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font size="5"&gt;[][]-Arrays können durch lineare Arrays ersetzt werden!&lt;/font&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Den Quellcode zum verifizieren und selber Testen gibt es hier:
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;using&lt;/span&gt; System; &lt;span class="kwrd"&gt;using&lt;/span&gt; System.Collections.Generic; &lt;span class="kwrd"&gt;using&lt;/span&gt; System.Linq; &lt;span class="kwrd"&gt;using&lt;/span&gt; System.Text; &lt;span class="kwrd"&gt;using&lt;/span&gt; System.Diagnostics; &lt;span class="kwrd"&gt;namespace&lt;/span&gt; SpeedTest
{ &lt;span class="kwrd"&gt;class&lt;/span&gt; Program { &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; Main(&lt;span class="kwrd"&gt;string&lt;/span&gt;[]
args) { &lt;span class="kwrd"&gt;int&lt;/span&gt; n = 1000; Stopwatch swatch = &lt;span class="kwrd"&gt;new&lt;/span&gt; Stopwatch(); &lt;span class="kwrd"&gt;double&lt;/span&gt;[,]
A = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;double&lt;/span&gt;[n, n]; swatch.Start();
CalcMatrix(A,n); swatch.Stop(); Console.WriteLine(&lt;span class="str"&gt;&amp;quot;{0}times:
Matrix A with [{0}, {0}] (matrix array): {1}ms&amp;quot;&lt;/span&gt;, n, swatch.ElapsedMilliseconds);
swatch.Reset(); &lt;span class="kwrd"&gt;double&lt;/span&gt;[][] B = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;double&lt;/span&gt;[n][]; &lt;span class="rem"&gt;//
init jagged arrays&lt;/span&gt; &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i
= 0; i &amp;lt; n; i++) { B[i] = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;double&lt;/span&gt;[n];
} swatch.Start(); CalcJagged(B, n); swatch.Stop(); Console.WriteLine(&lt;span class="str"&gt;&amp;quot;{0}times:
Matrix B with [{0}][{0}] (jagged array): {1}ms&amp;quot;&lt;/span&gt;, n, swatch.ElapsedMilliseconds);
swatch.Reset(); &lt;span class="kwrd"&gt;double&lt;/span&gt;[] C = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;double&lt;/span&gt;[n*
n]; swatch.Start(); CalcLinear(C, n); swatch.Stop(); Console.WriteLine(&lt;span class="str"&gt;&amp;quot;{0}times:
Matrix C with [{0}* {0}] (linear array): {1}ms&amp;quot;&lt;/span&gt;, n, swatch.ElapsedMilliseconds);
swatch.Reset(); &lt;span class="kwrd"&gt;unsafe&lt;/span&gt; { &lt;span class="kwrd"&gt;double&lt;/span&gt;[]
D = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;double&lt;/span&gt;[n * n]; swatch.Start(); &lt;span class="kwrd"&gt;fixed&lt;/span&gt;(&lt;span class="kwrd"&gt;double&lt;/span&gt;*
pD = D) CalcUnsafe(pD,n); swatch.Stop(); } Console.WriteLine(&lt;span class="str"&gt;&amp;quot;{0}times:
Matrix D with [{0}* {0}] (unsafe array): {1}ms&amp;quot;&lt;/span&gt;, n, swatch.ElapsedMilliseconds);
swatch.Reset(); Console.ReadKey(); } &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CalcJagged(&lt;span class="kwrd"&gt;double&lt;/span&gt;[][]
B, &lt;span class="kwrd"&gt;int&lt;/span&gt; n) { &lt;span class="kwrd"&gt;double&lt;/span&gt; result = 0; &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; x
= 0; x &amp;lt; n; x++) { &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i
= 0; i &amp;lt; n; i++) { &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; j
= 0; j &amp;lt; n; j++) { B[i][j] = i * j; result += B[i][j]; } } } Console.WriteLine(&lt;span class="str"&gt;&amp;quot;Result
= &amp;quot;&lt;/span&gt; + result); } &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CalcMatrix( &lt;span class="kwrd"&gt;double&lt;/span&gt;[,]
A, &lt;span class="kwrd"&gt;int&lt;/span&gt; n) { &lt;span class="kwrd"&gt;double&lt;/span&gt; result = 0; &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; x
= 0; x &amp;lt; n; x++) { &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i
= 0; i &amp;lt; n; i++) { &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; j
= 0; j &amp;lt; n; j++) { A[i, j] = i * j; result += A[i, j]; } } } Console.WriteLine(&lt;span class="str"&gt;&amp;quot;Result
= &amp;quot;&lt;/span&gt; + result); } &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CalcLinear(&lt;span class="kwrd"&gt;double&lt;/span&gt;[]
C, &lt;span class="kwrd"&gt;int&lt;/span&gt; n) { &lt;span class="kwrd"&gt;double&lt;/span&gt; result = 0; &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; x
= 0; x &amp;lt; n; x++) { &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i
= 0; i &amp;lt; n; i++) { &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; j
= 0; j &amp;lt; n; j++) { C[i * n + j] = i * j; result += C[i * n + j]; } } } Console.WriteLine(&lt;span class="str"&gt;&amp;quot;Result
= &amp;quot;&lt;/span&gt; + result); } &lt;span class="kwrd"&gt;unsafe&lt;/span&gt; &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; CalcUnsafe(&lt;span class="kwrd"&gt;double&lt;/span&gt;*
pD, &lt;span class="kwrd"&gt;int&lt;/span&gt; n) { &lt;span class="kwrd"&gt;double&lt;/span&gt; result = 0; &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; x
= 0; x &amp;lt; n; x++) { &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; i
= 0; i &amp;lt; n; i++) { &lt;span class="kwrd"&gt;for&lt;/span&gt; (&lt;span class="kwrd"&gt;int&lt;/span&gt; j
= 0; j &amp;lt; n; j++) { *(pD + i * n + j) = i * j; result += *(pD + i * n + j); } }
} Console.WriteLine(&lt;span class="str"&gt;&amp;quot;Result = &amp;quot;&lt;/span&gt; + result); } }
}&lt;/pre&gt;
&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=18bc008d-7c8f-4fd6-accc-41e942b643fd" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,18bc008d-7c8f-4fd6-accc-41e942b643fd.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
      <category>HPC</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=eb078c8a-3144-44d5-922b-5e57e39848be</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,eb078c8a-3144-44d5-922b-5e57e39848be.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,eb078c8a-3144-44d5-922b-5e57e39848be.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=eb078c8a-3144-44d5-922b-5e57e39848be</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/mod.0ProblemInputstringwasnotinthecorrec_F521/image_2.png">
            <img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="105" alt="image" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/mod.0ProblemInputstringwasnotinthecorrec_F521/image_thumb.png" width="644" border="0" />
          </a>
        </p>
        <p>
Wer sich mit diesem Fehler rumärgern sollte kann diesen relativ leicht beheben. Es
fehlt wahrscheinlich nur eine Bibliothek.
</p>
        <p>
Ein simples<strong> apt-get install libgdiplus</strong> genügte, und der Fehler war
Geschichte.
</p>
        <p>
Darauf kommen muss man jedoch erst mal…
</p>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=eb078c8a-3144-44d5-922b-5e57e39848be" />
      </body>
      <title>mod_mono: XSP ASP.NET 2.0 Problem: Input string was not in the correct format</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,eb078c8a-3144-44d5-922b-5e57e39848be.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,eb078c8a-3144-44d5-922b-5e57e39848be.aspx</link>
      <pubDate>Wed, 14 Jan 2009 16:25:56 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/mod.0ProblemInputstringwasnotinthecorrec_F521/image_2.png"&gt;&lt;img title="image" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="105" alt="image" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/mod.0ProblemInputstringwasnotinthecorrec_F521/image_thumb.png" width="644" border="0" /&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Wer sich mit diesem Fehler rumärgern sollte kann diesen relativ leicht beheben. Es
fehlt wahrscheinlich nur eine Bibliothek.
&lt;/p&gt;
&lt;p&gt;
Ein simples&lt;strong&gt; apt-get install libgdiplus&lt;/strong&gt; genügte, und der Fehler war
Geschichte.
&lt;/p&gt;
&lt;p&gt;
Darauf kommen muss man jedoch erst mal…
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=eb078c8a-3144-44d5-922b-5e57e39848be" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,eb078c8a-3144-44d5-922b-5e57e39848be.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
      <category>Mono</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=d418802b-1c08-4d27-a0c9-ca54640a4136</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,d418802b-1c08-4d27-a0c9-ca54640a4136.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,d418802b-1c08-4d27-a0c9-ca54640a4136.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=d418802b-1c08-4d27-a0c9-ca54640a4136</wfw:commentRss>
      <slash:comments>7</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/NervigesOutlook2007Passwordwird.DieLsung_12D38/image_2.png">
            <img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="207" alt="image" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/NervigesOutlook2007Passwordwird.DieLsung_12D38/image_thumb.png" width="240" border="0" />
          </a> Wie
ich dieses Ding nur hasse! ;) 
<br /><br />
Ich habe heute endgültig einen Anfall bekommen und mir dieses lästige Problem aus
dem Weg geschafft, mit dem ich mich herum plage. Aber zunächst erst mal das Problem
erläutert.
</p>
        <p>
Als Microsoft Student Partner haben wir das Vergnügen schon heute nicht etwa mit Exchange
2007 zu arbeiten, sondern mit dem Nachfolger, Exchange 14. Dabei hat, wenn ich es
richtig verstanden habe, jeder User 5GB Speicherplatz bei Microsoft ( Exchangelabs.com
). Es sind bereits 1.5 Millionen Mailboxen im Einsatz, was mal locker <em>7,5 petabytes</em> an
Speicher wären. Nicht schlecht @ Microsoft, vor allem als eine Exchange Server Installation.
</p>
        <p>
Das nervige dabei ist jedoch, dass man sich bei jedem Outlook-Start an diesem System
neu anmelden muss. – Und ja, es gibt kein Häkchen, um das Passwort zu speichern. Weil
ich persönlich jemand bin, der Outlook nur dann aufmacht, wenn er es nutzen will,
nervt das schon manchmal tierisch, vor allem wenn man sich bei den langen kryptischen
Passwörtern mal vertippt.
</p>
        <p>
 
</p>
        <p>
Der eine oder andere würde jetzt fragen: <em>“Schon mal den Credentials Manager in
der Benutzerkontensteuerung (Systemsteuerungen) ausprobiert?”</em></p>
        <p>
Die Antwort ist: <strong>Ja</strong>, alle möglichen Kombinationen, mehrere Leute
(andere Student Partner), <strong>ohne Erfolg.</strong></p>
        <p>
          <strong>
          </strong>
        </p>
        <p>
          <strong>
          </strong>
        </p>
        <p>
Danach habe ich noch folgendes beim Exchange Labs FAQ gefunden:
</p>
        <p>
          <a href="http://technet.microsoft.com/en-us/exchangelabshelp/bb896612.aspx#Cannotremember " target="_blank">
            <u>Frequently
Asked Questions for End Users - Exchange Labs</u>
          </a>:
</p>
        <blockquote>
          <p>
            <em>Every time I open Outlook 2007, it asks for my password. I don't see a "Remember
this password" option. How can I configure Outlook to remember my password? </em>
          </p>
          <p>
            <a>
              <em>
              </em>
            </a>
          </p>
          <p>
            <em>Outlook 2007 requires that you specify your password every time you open Exchange
Labs. This is because of the kind of security built into Outlook 2007.</em>
          </p>
        </blockquote>
        <p>
 
</p>
        <p>
 
</p>
        <h3>
          <strong>ENGLISH:</strong> I have written an Outlook 2007 Loader to autofill your
credentials for use with Exchange Labs Mailservice Exchange 14. Download it below…
</h3>
        <p>
 
</p>
        <p>
 
</p>
        <p>
Danach war ich echt abgenervt. Mit dem Iphone klappt das ohne Probleme, warum sollte
das Outlook nicht können. – Es scheint eine Policy vom Exchange 14 zu sein.
</p>
        <p>
Naja nicht der Rede wert.
</p>
        <p>
          <a href="http://www.pixelplastic.de/" target="_blank">Marcel Hoyer</a> hat mich mit
dem Programm <a href="http://keepass.info/" target="_blank">KeePass</a> auf eine nette
Idee gebracht.
</p>
        <p>
Kurzum habe ich mir einen Loader geschrieben, der Outlook 2007 startet, und automatisch
den Login übernimmt. Jetzt hab ich endlich ein sorgenfreies Leben.
</p>
        <h4>Das Programm inklusive Quelltext gibt es bei mir zum Download:
</h4>
        <p>
        </p>
        <div class="wlWriterEditableSmartContent" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:e02a8672-7111-493b-9e6f-63ea9e978998" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
          <p>
Download ZIP Archive: <a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/NervigesOutlook2007Passwordwird.DieLsung_12D38/NervigesOutlook2007.zip" target="_blank">Outlook
2007 Loader</a></p>
        </div>
        <p>
        </p>
        <p>
 
</p>
        <p>
Die Lizenz hab ich vergessen, “macht damit was ihr  wollt”. Für Schäden haftet
ihr selbst. Andernfalls sei der Download nicht gestattet. ;)
</p>
        <p>
          <strong>PS:</strong> Der Quelltext ist vielleicht auch ganz interessant, um den standard
Windows Login Dialog, welcher ja überall mal wieder auftaucht, anzusteuern. 
</p>
        <h4>WICHTIGER NACHTRAG:
</h4>
        <p>
Bitte bedenkt, dass mit dieser Lösung euer <strong>Username und passwort im Klartext</strong> an
den Loader als Parameter übergeben wird. Das ist nicht ganz optimal. Der Quelltext
liegt bei. Aber wer mag, kann seine Daten fest zu einer Binary kompilieren, oder wer
die Zeit hat, kann Verschlüsselung einbauen.
</p>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=d418802b-1c08-4d27-a0c9-ca54640a4136" />
      </body>
      <title>Nerviges Outlook 2007 &amp;ndash; Passwort wird nicht gespeichert, kein Haken, Credential Manager funktioniert nicht. - Die L&amp;ouml;sung!</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,d418802b-1c08-4d27-a0c9-ca54640a4136.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,d418802b-1c08-4d27-a0c9-ca54640a4136.aspx</link>
      <pubDate>Wed, 07 Jan 2009 20:39:08 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/NervigesOutlook2007Passwordwird.DieLsung_12D38/image_2.png"&gt;&lt;img title="image" style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="207" alt="image" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/NervigesOutlook2007Passwordwird.DieLsung_12D38/image_thumb.png" width="240" border="0" /&gt;&lt;/a&gt; Wie
ich dieses Ding nur hasse! ;) 
&lt;br /&gt;
&lt;br /&gt;
Ich habe heute endgültig einen Anfall bekommen und mir dieses lästige Problem aus
dem Weg geschafft, mit dem ich mich herum plage. Aber zunächst erst mal das Problem
erläutert.
&lt;/p&gt;
&lt;p&gt;
Als Microsoft Student Partner haben wir das Vergnügen schon heute nicht etwa mit Exchange
2007 zu arbeiten, sondern mit dem Nachfolger, Exchange 14. Dabei hat, wenn ich es
richtig verstanden habe, jeder User 5GB Speicherplatz bei Microsoft ( Exchangelabs.com
). Es sind bereits 1.5 Millionen Mailboxen im Einsatz, was mal locker &lt;em&gt;7,5 petabytes&lt;/em&gt; an
Speicher wären. Nicht schlecht @ Microsoft, vor allem als eine Exchange Server Installation.
&lt;/p&gt;
&lt;p&gt;
Das nervige dabei ist jedoch, dass man sich bei jedem Outlook-Start an diesem System
neu anmelden muss. – Und ja, es gibt kein Häkchen, um das Passwort zu speichern. Weil
ich persönlich jemand bin, der Outlook nur dann aufmacht, wenn er es nutzen will,
nervt das schon manchmal tierisch, vor allem wenn man sich bei den langen kryptischen
Passwörtern mal vertippt.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Der eine oder andere würde jetzt fragen: &lt;em&gt;“Schon mal den Credentials Manager in
der Benutzerkontensteuerung (Systemsteuerungen) ausprobiert?”&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Die Antwort ist: &lt;strong&gt;Ja&lt;/strong&gt;, alle möglichen Kombinationen, mehrere Leute
(andere Student Partner), &lt;strong&gt;ohne Erfolg.&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Danach habe ich noch folgendes beim Exchange Labs FAQ gefunden:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://technet.microsoft.com/en-us/exchangelabshelp/bb896612.aspx#Cannotremember " target="_blank"&gt;&lt;u&gt;Frequently
Asked Questions for End Users - Exchange Labs&lt;/u&gt;&lt;/a&gt;:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;em&gt;Every time I open Outlook 2007, it asks for my password. I don't see a &amp;quot;Remember
this password&amp;quot; option. How can I configure Outlook to remember my password? &lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;a&gt;&lt;em&gt;&lt;/em&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Outlook 2007 requires that you specify your password every time you open Exchange
Labs. This is because of the kind of security built into Outlook 2007.&lt;/em&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;ENGLISH:&lt;/strong&gt; I have written an Outlook 2007 Loader to autofill your
credentials for use with Exchange Labs Mailservice Exchange 14. Download it below…
&lt;/h3&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Danach war ich echt abgenervt. Mit dem Iphone klappt das ohne Probleme, warum sollte
das Outlook nicht können. – Es scheint eine Policy vom Exchange 14 zu sein.
&lt;/p&gt;
&lt;p&gt;
Naja nicht der Rede wert.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.pixelplastic.de/" target="_blank"&gt;Marcel Hoyer&lt;/a&gt; hat mich mit
dem Programm &lt;a href="http://keepass.info/" target="_blank"&gt;KeePass&lt;/a&gt; auf eine nette
Idee gebracht.
&lt;/p&gt;
&lt;p&gt;
Kurzum habe ich mir einen Loader geschrieben, der Outlook 2007 startet, und automatisch
den Login übernimmt. Jetzt hab ich endlich ein sorgenfreies Leben.
&lt;/p&gt;
&lt;h4&gt;Das Programm inklusive Quelltext gibt es bei mir zum Download:
&lt;/h4&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:e02a8672-7111-493b-9e6f-63ea9e978998" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;
&lt;p&gt;
Download ZIP Archive: &lt;a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/NervigesOutlook2007Passwordwird.DieLsung_12D38/NervigesOutlook2007.zip" target="_blank"&gt;Outlook
2007 Loader&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Die Lizenz hab ich vergessen, “macht damit was ihr&amp;#160; wollt”. Für Schäden haftet
ihr selbst. Andernfalls sei der Download nicht gestattet. ;)
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;PS:&lt;/strong&gt; Der Quelltext ist vielleicht auch ganz interessant, um den standard
Windows Login Dialog, welcher ja überall mal wieder auftaucht, anzusteuern. 
&lt;/p&gt;
&lt;h4&gt;WICHTIGER NACHTRAG:
&lt;/h4&gt;
&lt;p&gt;
Bitte bedenkt, dass mit dieser Lösung euer &lt;strong&gt;Username und passwort im Klartext&lt;/strong&gt; an
den Loader als Parameter übergeben wird. Das ist nicht ganz optimal. Der Quelltext
liegt bei. Aber wer mag, kann seine Daten fest zu einer Binary kompilieren, oder wer
die Zeit hat, kann Verschlüsselung einbauen.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=d418802b-1c08-4d27-a0c9-ca54640a4136" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,d418802b-1c08-4d27-a0c9-ca54640a4136.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
      <category>Dies und Das</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=cf85c154-bf2b-4235-8372-f5243d22e9c3</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,cf85c154-bf2b-4235-8372-f5243d22e9c3.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,cf85c154-bf2b-4235-8372-f5243d22e9c3.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=cf85c154-bf2b-4235-8372-f5243d22e9c3</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
 <a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/Neues.NETLogo_C419/image_2.png"><img style="border-right: 0px; border-top: 0px; margin: 0px 25px 0px 0px; border-left: 0px; border-bottom: 0px" height="253" alt="image" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/Neues.NETLogo_C419/image_thumb.png" width="520" align="left" border="0" /></a><a href="http://www.hanselman.com/blog/" target="_blank">Scott
Hanselmann</a> gab auf seinem <a href="http://www.hanselman.com/blog/PDC2008NewNETLogo.aspx" target="_blank">Blog</a> bekannt,
dass es ein neues .NET Logo gibt.
</p>
        <p>
Das Logo ähnelt dabei einer Welle, was wohl für die Eigenschaften von .NET stehen
soll.
</p>
        <p>
Für den ein oder anderen wird es sicher eine ungewohnt sein, mir gefällt es allerdings
sehr gut.  
</p>
        <p>
Das neue reiht sich perfekt in die Silverlight und co. Design-Ära ein. Und wenn wir
mal ehrlich sind, ist das alte .NET Logo doch schon ein bisschen in die Jahre gekommen.
</p>
        <p>
          <a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/Neues.NETLogo_C419/image_4.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/Neues.NETLogo_C419/image_thumb_1.png" width="244" border="0" />
          </a>
          <a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/Neues.NETLogo_C419/image_6.png">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="126" alt="image" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/Neues.NETLogo_C419/image_thumb_2.png" width="244" border="0" />
          </a>
        </p>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=cf85c154-bf2b-4235-8372-f5243d22e9c3" />
      </body>
      <title>Neues .NET Logo!</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,cf85c154-bf2b-4235-8372-f5243d22e9c3.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,cf85c154-bf2b-4235-8372-f5243d22e9c3.aspx</link>
      <pubDate>Sat, 25 Oct 2008 07:55:45 GMT</pubDate>
      <description>&lt;p&gt;
&amp;nbsp;&lt;a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/Neues.NETLogo_C419/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 0px 25px 0px 0px; border-left: 0px; border-bottom: 0px" height="253" alt="image" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/Neues.NETLogo_C419/image_thumb.png" width="520" align="left" border="0"&gt;&lt;/a&gt; &lt;a href="http://www.hanselman.com/blog/" target="_blank"&gt;Scott
Hanselmann&lt;/a&gt; gab auf seinem &lt;a href="http://www.hanselman.com/blog/PDC2008NewNETLogo.aspx" target="_blank"&gt;Blog&lt;/a&gt; bekannt,
dass es ein neues .NET Logo gibt.
&lt;/p&gt;
&lt;p&gt;
Das Logo ähnelt dabei einer Welle, was wohl für die Eigenschaften von .NET stehen
soll.
&lt;/p&gt;
&lt;p&gt;
Für den ein oder anderen wird es sicher eine ungewohnt sein, mir gefällt es allerdings
sehr gut.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
Das neue reiht sich perfekt in die Silverlight und co. Design-Ära ein. Und wenn wir
mal ehrlich sind, ist das alte .NET Logo doch schon ein bisschen in die Jahre gekommen.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/Neues.NETLogo_C419/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/Neues.NETLogo_C419/image_thumb_1.png" width="244" border="0"&gt;&lt;/a&gt;&lt;a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/Neues.NETLogo_C419/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="126" alt="image" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/Neues.NETLogo_C419/image_thumb_2.png" width="244" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=cf85c154-bf2b-4235-8372-f5243d22e9c3" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,cf85c154-bf2b-4235-8372-f5243d22e9c3.aspx</comments>
      <category>.NET</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=3fd651e6-70e3-4795-aebb-ab7dd3a82a39</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,3fd651e6-70e3-4795-aebb-ab7dd3a82a39.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,3fd651e6-70e3-4795-aebb-ab7dd3a82a39.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=3fd651e6-70e3-4795-aebb-ab7dd3a82a39</wfw:commentRss>
      <slash:comments>7</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Im Rahmen meines Besuchs auf der <a href="http://it-republik.de/konferenzen/rueckblick/basta08/index.html">„BASTA!“
vom 22. – 26. September 2008</a> habe ich es mir nicht nehmen lassen die Speaker in
der Speaker-Lounge um ein kurzes Interview zu bemühen. Dazu habe ich jeden den ich
angetroffen habe, 3 einfache Fragen gestellt, die optional per Email beantwortet werden
konnten: 
</p>
        <p>
          <b>1. Welche Technologie fasziniert Dich am meisten? </b>
        </p>
        <p>
          <b>2. Was genau ist das?</b>
        </p>
        <p>
          <b>3. Warum ?</b>
        </p>
        <p>
Ob Software oder Hardware war bei dieser Umfrage egal. 
</p>
        <p>
Leider haben es jedoch nicht alle rechtzeitig geschafft auf die Mail von mir zu antworten,
sei es wegen Zeitgründen, Stress auf der Arbeit, etc. , was ich natürlich niemanden
verübeln kann. Damit diese Umfrage jedoch noch halbwegs aktuell bleibt, habe ich mich
entschieden diese heute zu veröffentlichen. 
</p>
        <p>
Ich habe das ganze thematisiert aufbereitet. Zu jeder Person steht ein kurzer „Abstract“,
den ich von der „BASTA!“ übernommen habe, danach folgen die beiden Antworten zu den
Fragen 2 und 3. 
</p>
        <p>
Dabei habe ich mir ebenfalls das Recht genommen, bei der ein oder anderen Antwort
ein paar Tippfehler zu korrigieren. 
</p>
        <p>
Als Gewinner, wenn man das überhaupt so sagen kann, ist ganz klar Silverlight, passend
zum morgigen <a href="http://www.golem.de/0810/62908.html">Silverlight 2 Release von
Microsoft</a>, davongegangen. Dicht gefolgt von Funktionaler-Programmierung mit F#
oder LINQ in C#. 
</p>
        <p>
Was ich persönlich am interessantesten fand, war das doch teilweise sehr identische
Ergebnis der Umfrage. 
</p>
        <p>
Ich wünsche viel Spaß beim lesen. 
</p>
        <p>
  
</p>
        <p>
  
</p>
        <p>
          <b>
          </b>
        </p>
        <h3>4x Silverlight
</h3>
        <h4>
          <strong>Patrick Theobald, </strong>
          <a href="http://www.theobald-software.com/">
            <strong>Theobald
Software GmbH</strong>
          </a>
          <strong>:</strong>
        </h4>
        <p>
          <em>Patrick Theobald ist Fachbuchautor und Geschäftsführer der Theobald Software GmbH,
Stuttgart. Sein Hauptaufgabengebiet sind die Entwicklung und das Design von Schnittstellen
zwischen SAP und Microsoft-Produkten. Ein besonderes Augenmerk liegt dabei auf Transparenz,
Stabilität und vor allem Kostenersparnis. Sie erreichen Ihn unter Patrick.Theobald
(at) theobald-software.com oder www.theobald-software.com.</em>
        </p>
        <blockquote>
          <p>
„Silverlight ist das Microsoft-.NET-Pendant zu Flash bzw. zu Java-Applets.“ 
</p>
          <p>
„Weil mit Silverlight die Möglichkeit geschaffen wird, eine Anwendung frei von schwierigen
Installationen und ggfs. Updates auf den Rechner des Anwenders zu bringen. Im Gegensatz
zu Web/Ajax-Anwendungen sind einige Nachteile ausgemerzt, die klassische Webanwendungen
mit sich bringen.“ 
</p>
          <h4>
          </h4>
        </blockquote>
        <h4>
          <strong>Robert Panther, </strong>
          <a href="http://www.logica.com/">
            <strong>Logica
Deutschland GmbH &amp; Co. KG</strong>
          </a>
          <strong>:</strong>
        </h4>
        <p>
          <em>Der Diplom-Informatiker (FH) Robert Panther ist als Senior Consultant für die
Logica Deutschland GmbH &amp; Co. KG tätig. Daneben schreibt er Fachartikel und Bücher
zu seinen Spezialgebieten SQL Server, Web-Programmierung und Anwendungsentwicklung
für mobile Geräte.</em>
        </p>
        <blockquote>
          <p>
„Technologie zur Entwicklung von "Rich Internet Applications"“ 
</p>
          <p>
„Weil damit nicht mehr alle Web-Anwendungen gleich aussehen und einen ähnlichen Bedienkomfort
erreichen können wie Desktop-Anwendungen.“
</p>
        </blockquote>
        <h4>
          <strong>Tobias Richling, rquadrat GmbH &amp; Co. KG:</strong>
        </h4>
        <p>
          <em>Tobias ist Richling ist 27 Jahre alt, und wohnt in einer kleinen Stadt im Münsterland.
Er hat in Münster Wirtschaftsinformatik studiert. Seit 2001 ist er als selbständiger
Trainer und Softwareentwickler tätig. Seine Zuneigung zu Basic-Dialekten und zu Microsoft
Produkten ist historisch gewachsen: angefangen mit Amiga Basic hin zum PC mit QuickBasic,
VB 6 zu VB.NET. Diese Affinität konnte auch von einen studienbedingten Delphi oder
Java Intermezzo nicht durchbrochen werden. Diese Vorlieben haben dann auch im beruflichen
Alltag Wirkung gezeigt, Trainingsinhalte lagen hauptsächlich im Softwareentwicklungsbereich
im Microsoft Umfeld. Vorwiegend mit .NET (auch C# war mitunter dabei) und dem SQL
Server, aber auch im Bereich ASP.NET. Auch in Softwareentwicklungsprojekten konnten
diese Fähigkeiten gut eingesetzt werden. Aktuelle Schwerpunkte liegen auf den neuen
.NET Technologien, insbesondere im Bereich der Webtechnologien Silverlight &amp; Co.</em>
        </p>
        <blockquote>
          <p>
„Eine Browser-Plugin basierte Technologie zur Erstellung von Rich Internet Applications.
Microsofts Konkurrenz zu Flash. Basiert wie WPF auch auf XAML, was die Lernkurve flach
hält.“ 
</p>
          <p>
„Weil man von vorhandenem XAML / WPF Wissen profitiert. Weil man schöne Webseiten
damit bauen kann.“ 
</p>
          <p>
            <b>
            </b>
          </p>
          <p>
            <b>
            </b>
          </p>
        </blockquote>
        <h4>
          <a href="http://pixelplastic.de/">
            <strong>Marcel Hoyer</strong>
          </a>
          <strong>:</strong>
        </h4>
        <p>
          <em>Marcel Hoyer studiert an der Universität Leipzig im Masterstudium für Informatik.
Er ist seit Jahren .NET begeistert und aktiv an der Gestaltung der .NET User Group
Leipzig beteiligt. Seit November 2006 steht er Studenten zusätzlich als Ansprechpartner
im Rahmen des Microsoft Student Programs zur Verfügung.</em>
        </p>
        <blockquote>
          <p>
„Ein neues Konzept von Microsoft zur Modellierung von Benutzeroberflächen. Dabei kommt
XAML als deklarative Sprache zum Einsatz. WPF ermöglicht größere gestalterische Freiräume
als bisherige Technologien wie WinForms, GDI usw. Mit Silverlight gibt es das Pendant
für den Webbrowser mit ähnlichem Ansatz.“ 
</p>
          <p>
„Usability, Layout und Design sind mir wichtig, wenn ich mit Anwendungen arbeite oder
Webseiten anschaue. Diese Punkte auch selbst in eigenen Projekten umzusetzen ist mein
Ziel. Mit WPF und Silverlight liefert Microsoft eine Technologie, die dieses ermöglicht
und zugleich die Schwierigkeiten von früheren Technologien ausmerzt.“
</p>
          <p>
 
</p>
        </blockquote>
        <h3>
        </h3>
        <h3>2x Funktionale Programmierung: F#
</h3>
        <h4>
          <a href="http://therightstuff.de/">
            <strong>Alexander Groß</strong>
          </a>
          <strong>, </strong>
          <a href="http://synexus.de/">
            <strong>Synexus
GmbH</strong>
          </a>
          <strong>:</strong>
        </h4>
        <blockquote>
          <p>
„Funktionale Programmierung ist eine Alternative zur imperativen Programmierung wie
man sie z. B. von C# kennt. Alle Variablen sind inhärent nicht veränderbar, was zu
einer Reihe von interessanten Nebeneffekten führt. Z. B. sind Typen automatisch „Thread
Safe“ und Algorithmen lassen sich einfach parallelisieren. F# ist eine typsichere
und objektorientierte Sprache, angereichert mit Konzepten aus anderen funktionalen
Sprachen wie LISP: Closures, Pattern Matching, Currying und Partial Application.“ 
</p>
          <p>
„In Zeiten in denen sich Moore’s Law sich nicht mehr automatisch auf die Taktgeschwindingkeit
auswirkt und Prozessoren mit 32 oder mehr Cores in nicht allzu weiter Ferne liegen,
ist Parallelisierung ein wichtiges Thema. Anwender erwarten schnelle Applikationen,
doch diese sind nur mithilfe von Multi Threading umsetzbar. Multi-Threaded-Programmierung
ist schwierig und die korrekte Synchronisierung nebenläufiger Tasks eine anspruchsvolle
Aufgabe für den Entwickler. Funktionale Programmierung in Kombination mit Libraries
wie Microsofts ParallelFX sind eine Möglichkeit, die Parallelisierung einzelner Aspekte
einer Anwendung zu vereinfachen.“
</p>
        </blockquote>
        <h4>
        </h4>
        <h4>
          <a href="http://www.navision-blog.de/">
            <strong>Steffen Forkmann</strong>
          </a>
          <strong>, </strong>
          <a href="http://www.msu-solutions.de/">
            <strong>msu
solutions GmbH</strong>
          </a>
          <strong>:</strong>
        </h4>
        <p>
          <em>Steffen Forkmann, geboren 1982, lebt in Halle und studiert dort BioInformatik.
Nebenbei arbeitet er als Software-Entwickler für die msu solutions GmbH (http://www.msu-solutions.de),
einem Microsoft Gold Certified Partner. Seinen Einstieg in die Software-Entwicklung
fand er mit Pascal und Delphi - heute programmiert er hauptsächlich in Microsoft Dynamics
Nav oder mit C#. Seine Lieblingsthemen sind Algorithmik und Optimierung.</em>
        </p>
        <blockquote>
          <p>
            <b>„</b>F# ist eine funktionale aber objektorientierte Programmiersprache für das
.NET Framework und wird von Microsoft momentan stark gepusht. In der nächsten Version
von Visual Studio wird F# neben C# und VB.NET die dritte Standardsprache sein.“ 
</p>
          <p>
„F# gibt mir die Möglichkeit meine Funktionen und Algorithmen wesentlich kürzer zu
schreiben. Ich setze die Sprache bereits bei einem Tourenoptimierungsprojekt für meine
Diplomarbeit ein und erhoffe mir neben dem Performancegewinn durch parallele Verarbeitung
auch einen Vorteil beim Abdrucken von kürzeren Codebeispielen in der schriftlichen
Arbeit.“
</p>
          <p>
 
</p>
        </blockquote>
        <p>
          <b>
          </b>
        </p>
        <p>
          <b>
          </b>
        </p>
        <h3>1x Funktionale Programmierung: C# - LINQ
</h3>
        <h4>
          <strong>Rainer Stropek, software architects:</strong>
        </h4>
        <p>
          <em>Rainer Stropek ist Mitbegründer und Geschäftsführer von cubido business solutions
GmbH, einem Microsoft Gold Certified Partner. Er arbeitet bei cubido als Senior-System-Architekt
und spricht regelmäßig bei Microsoft-Konferenzen zu Themen rund um .NET, SQL Server
und BizTalk.</em>
        </p>
        <blockquote>
          <p>
„Besser als der Erfinder von LINQ, Anders Hejlsberg, kann ich das nicht erklären: <a href="http://wm.microsoft.com/ms/msdn/visualcsharp/anders_2007_01/Anders_0001.wmv">http://wm.microsoft.com/ms/msdn/visualcsharp/anders_2007_01/Anders_0001.wmv</a>“
</p>
        </blockquote>
        <p>
          <b>
          </b>
        </p>
        <h3>
          <br />
1x XNA
</h3>
        <h4>
          <strong>Martin Wahnschaffe, </strong>
          <a href="http://www.imagineearth.info/">
            <strong>Baam!!
Studios</strong>
          </a>
          <strong>:</strong>
        </h4>
        <p>
          <em>Martin Wahnschaffe studiert im 6. Semester Informatik an der TU Braunschweig und
schreibt zur Zeit seine Bachelorarbeit. Mehrere Jahre Erfahrung in der Entwicklung
von Computerspielen und C#-Programmierung trafen im letzten Jahr auf das Microsoft
XNA Framework. Mit dessen Hilfe arbeitet er derzeit, zusammen mit Jochen Isensee und
Florian Mätschke, am Projekt ImagineEarth - einem XBOX360 und Windows PC Spiel. Neben
diesen Tätigkeiten arbeitet er seit 4 Jahren als freiberuflicher.NET-Entwickler.</em>
        </p>
        <blockquote>
          <p>
„Ein Framework zur Windows &amp; XBOX360 Spiele-Entwicklung“ 
</p>
          <p>
„Es macht Spaß damit zu arbeiten, obwohl es eigentlich gerade erst dabei ist richtig
zu entstehen (3.0 Release). Außerdem wird man gefordert und gefördert (Imagine Cup,
Dream Build Play, Community, ...). Wer hätte gedacht, dass jeder(!) so komfortabel
für die XBox entwickeln kann?!“ 
</p>
          <p>
  
</p>
          <p>
            <b>
            </b>
          </p>
        </blockquote>
        <h3>1x VSTO (Visual Studio Tools for Office)
</h3>
        <h4>
          <strong>Lars Keller, </strong>
          <a href="http://www.netcreate.de/">
            <strong>netcreate
OHG</strong>
          </a>
          <strong>:</strong>
        </h4>
        <p>
          <em>Lars Keller ist Mitbegründer und Geschäftsführer EDV/Entwicklung der netcreate
OHG (www.netcreate.de) in Braunschweig. Er beschäftigt sich seit Jahren mit der.NET-Entwicklung
und berät Firmen bei verteilten Anwendungen. Seine langjährige Berufserfahrung im
Web reicht zurück von ASP (classic) bis ASP.NET 3.5. Weitere Tätigkeitsschwerpunkte
sind Beratung beim Aufbau von Wissensmanagement, Office Entwicklungen (VSTO) und Integration
von Visual Studio Team System. Des Weiteren ist er Leiter der INETA .NET Developer
Group Braunschweig sowie Co-Lead von INETA Deutschland. Sie finden sein Blog unter
Lars Keller …inspired by .NET</em>
        </p>
        <blockquote>
          <p>
„.NET Wrapperklassen für die Entwicklung von MS Office Add-Ins. Durch die VSTO Runtime
können .NET Entwickler einfacher auf die COM-Schnittstellen von MS Office zugreifen.“ 
</p>
          <p>
„Durch VSTO wachsen zwei Welten zusammen! Die Möglichkeiten verschiedene Add-Ins mit
.NET Power im Hintergrund zu entwickeln, ist eine reizvolle Aufgabe. Die Vernetzung
der verschiedenen Office Applikationen untereinander oder auch mit  anderen Business
Applikation, stellt ein faszinierendes Gebiet dar.  Z.B. durch die Automatisierung
von Prozessen in Outlook, Excel oder Word bekommen die Nutzer die Chance die Produktivität
ihrer Arbeitsumgebung zu steigern. VSTO bietet dazu eine gute Grundlage und stellt 
nützliche Erweiterungen zur Verfügung.“
</p>
        </blockquote>
        <p>
  
</p>
        <h3>1x Cloud Computing
</h3>
        <h4>
          <strong>Frank Mantek, </strong>
          <a href="http://www.google.de/">
            <strong>Google
Deutschland</strong>
          </a>
          <strong>:</strong>
        </h4>
        <p>
          <em>A former long time Microsoft employee, Frank Mantek joined Google in 2005 to work
on the Google Data API. His past work include SQLXML, Internet Explorer, and other
Microsoft technologies. When he is not working on new data technologies, he enjoyes
playing the Djembe really loud.</em>
        </p>
        <blockquote>
          <p>
„Ein sehr verschwommener Begriff, der im Moment gerne für alles genommen wird, das
sich mit Daten oder Computerresourcen beschäftigt, die nicht mehr nur Lokal existieren.
Beispiele sind Amazon EC2 oder Google AppEngine Service Angebote. Im generellen zählen
auch Angebote wie Google Apps, oder Flickr im weiteren Sinne zu Cloud Computing, zumindestens
nach der letzten Wikipedia definition.“ 
</p>
          <p>
„ Meiner Meinung nach befindet sich das Internet in einer Umbruchsphase. Mit dem PC
erfuhren Entwickler und Benutzer zum ersten Mal eine gewisse Freiheit im Umgang mit
Computer Diensten, indem Rechenleistung persöhnlich verfügbar gemacht wurde. Jetzt
werden massiv Daten und Anwendungen vom PC losgelöst und für mehr wie nur PCs verfügbar
gemacht. Dadurch das Daten und Rechenleistung in der Cloud allen möglichen Devicen
zur Verfügung stehen, ermöglichen sich völlig neue Anwendungen und Anwendungskombinationen.
Wenn in der Zukunft, mein Kühlschrank feststellt das mein Sohn gerade die letzte Coke
getrunken hat, und mein Telefon mir das mitteilt weil ich gerade im Supermarkt bin
und daher dieses Problem beheben kann, dann liegt das an dem Versprechen des Cloud
Computing.“ 
</p>
          <p>
 
</p>
        </blockquote>
        <h3>1x Windows Home Server
</h3>
        <h4>
          <a href="http://www.fkollmann.de/">
            <strong>Felix Kollmann</strong>
          </a>
          <strong>,
init AG:</strong>
        </h4>
        <p>
          <em>Felix Kollmann arbeitet seit 2005 im Bereich Informations- und Kommunikationsmanagement
bei der init AG in Berlin. Zu seinen Schwerpunkten gehören Programmierung mit C#/C++,
Portalentwicklung in .NET sowie WSE 3.0 und WCF.</em>
        </p>
        <blockquote>
          <p>
„Das ist ein Server speziell auf die Bedürfnisse der Heimanwender zugeschnitten: Backup,
zentrale Dateiablage mit Spiegelung und Web Access.“ 
</p>
          <p>
„Weil sich hieran die Open Source Gemeine schon sehr lange versucht hat, und der Windows
Home Server einfach alles je dagewesene in den Schatten stellt.“ 
</p>
          <p>
 
</p>
        </blockquote>
        <h3>1x Objekt-Relationales Mapping (ORM) in Verbindung mit LINQ
</h3>
        <h4>
          <strong>Dr. </strong>
          <a href="http://www.dotnet-doktor.de/">
            <strong>Holger Schwichtenberg</strong>
          </a>
          <strong>, </strong>
          <a href="http://www.it-visions.de/">
            <strong>IT-Visions.de</strong>
          </a>
          <strong>:</strong>
        </h4>
        <p>
          <em>Dr. Holger Schwichtenberg ist Inhaber des auf .NET spezialisierten Beratungs-
und Schulungsunternehmen IT-Visions.de. Seine persönlichen Schwerpunkte sind ASP.NET,
verteilte Systeme, Active-Directory-Programmierung und PowerShell sowie die Migration
von Altanwendungen auf .NET. Von Microsoft ist er für sein Fachwissen ausgezeichnet
als Microsoft Most Valuable Professional (MVP) und .NET Code Wise Member. Er gibt
sein Wissen in Schulungen, Vorträgen auf nationalen und internationalen Fachkonferenzen
(u.a. TechEd, IT Forum, OOP) weiter. In seiner mehr als 10-jährigen Laufbahn als Softwareentwickler
und Softwarearchitekt hat er 22 Fachbücher und über 400 Fachartikel veröffentlicht.
In seinem Weblog www.dotnet-doktor.de berichtet er regelmäßig über aktuelle Entwicklungen
im .NET-Markt.</em>
        </p>
        <blockquote>
          <p>
„ORM bedeutet, auf objektorientierte Weise auf relationale Datenbanken zuzugreifen.“ 
</p>
          <p>
„Beim ORM wird von den Eigenarten des relationalen Modells einschließlich der Sprache
SQL abstrahiert. Microsoft bietet hier mit LINQ eine sehr elegante Möglichkeit, leider
aber direkt zwei Alternativen (LINQ-to-SQL und LINQ-to-Entities), was die Anwender
verwirrt.“ 
</p>
          <p>
 
</p>
        </blockquote>
        <h3>1x .NET Compact Framework
</h3>
        <h4>
          <strong>Simon Hackfort, </strong>
          <a href="http://www.it-visions.de/">
          </a>
          <a href="http://www.extreme-players.de/">
            <strong>eXp
– eXtreme-Players</strong>
          </a>
          <strong>:</strong>
        </h4>
        <p>
          <em>Simon Hackfort ist SCJP und seit 2002 bei T-Systems Enterprise Services GmbH tätig.
Nebenberuflich ist er Fachjournalist und arbeitet als Senior-Redakteur beim Online-Spiele-Portal
eXp. Privat beschäftigt er sich derweil mit dem .NET Compact Framework und der Spiele-Entwickelung
für die Xbox360-Plattform mit Hilfe des XNA Frameworks.</em>
        </p>
        <blockquote>
          <p>
„Das .NET Compact Framework ist ein spezielles Framework für die Windows Mobile Plattform.
Es ist ein eigenes Derivat und hat dennoch viele Gemeinsamkeiten des großen Bruders.“ 
</p>
          <p>
„Das Compact Framework ist von der Dateigröße her enorm kleiner als der große Bruder
und bietet dafür sehr viele Leistungsmerkmale, wie Oberflächen, DB-Anbindungen, Telefonfunktionen
usw. Zudem ist es ein Teil des Windows Mobile OS geworden und somit weit verbreitet.“ 
</p>
          <p>
 
</p>
        </blockquote>
        <h3>1x Flash-Speicher
</h3>
        <h4>
          <strong>Peter Pohmann, </strong>
          <a href="http://www.dataweb.de/">
            <strong>dataweb
GmbH</strong>
          </a>
        </h4>
        <p>
          <em>Peter Pohmann arbeitet seit 15 Jahren als Softwareentwickler, Projektleiter, Architekt
und Coach sowohl in der eigenen Firma dataWeb GmbH als auch für Kundenprojekte. Sein
besonderes Interesse gilt dem Entwurf stabiler und verständlicher Softwarearchitekturen,
hauptsächlich im Bereich technischer Software. Seine bevorzugte Entwicklungsumgebung
ist seit vielen Jahren Delphi, in der letzten Zeit kam C# hinzu. Als großes und wichtiges
Versprechen für die Zukunft der Softwareentwicklung sieht Peter die ALM-Strategie
von Borland, also die Integration des gesamten Entwicklungsprozesses von Definition
über Entwurf und Implementierung bis hin zu Test und Auslieferung in einem einzigen
Werkzeug.</em>
        </p>
        <blockquote>
          <p>
„Digitale Speicherchips, die Informationen ohne permanente Spannungsversorgung halten
können. Sind schneller als Festplatten und auch kleiner. Werden für USB-Sticks, Digitalkameras
und Solid State Disks benutzt.
</p>
          <p>
            <br />
„Wirklich Spannend wird die Sache dann, wenn Flash Speicher mal so schnell werden
wie RAM. Dann verschwindet der Unterschied zwischen Hauptspeicher und Platte, langsamem
und schnellem Speichermedium. Rechner werden nicht mehr gebootet; Datenbanken und
Dateisysteme werden überflüssig.“
</p>
        </blockquote>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=3fd651e6-70e3-4795-aebb-ab7dd3a82a39" />
      </body>
      <title>Technologie Highlights von Heute und Morgen!</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,3fd651e6-70e3-4795-aebb-ab7dd3a82a39.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,3fd651e6-70e3-4795-aebb-ab7dd3a82a39.aspx</link>
      <pubDate>Mon, 13 Oct 2008 17:21:18 GMT</pubDate>
      <description>&lt;p&gt;
Im Rahmen meines Besuchs auf der &lt;a href="http://it-republik.de/konferenzen/rueckblick/basta08/index.html"&gt;„BASTA!“
vom 22. – 26. September 2008&lt;/a&gt; habe ich es mir nicht nehmen lassen die Speaker in
der Speaker-Lounge um ein kurzes Interview zu bemühen. Dazu habe ich jeden den ich
angetroffen habe, 3 einfache Fragen gestellt, die optional per Email beantwortet werden
konnten: 
&lt;p&gt;
&lt;b&gt;1. Welche Technologie fasziniert Dich am meisten? &lt;/b&gt; 
&lt;p&gt;
&lt;b&gt;2. Was genau ist das?&lt;/b&gt; 
&lt;p&gt;
&lt;b&gt;3. Warum ?&lt;/b&gt; 
&lt;p&gt;
Ob Software oder Hardware war bei dieser Umfrage egal. 
&lt;p&gt;
Leider haben es jedoch nicht alle rechtzeitig geschafft auf die Mail von mir zu antworten,
sei es wegen Zeitgründen, Stress auf der Arbeit, etc. , was ich natürlich niemanden
verübeln kann. Damit diese Umfrage jedoch noch halbwegs aktuell bleibt, habe ich mich
entschieden diese heute zu veröffentlichen. 
&lt;p&gt;
Ich habe das ganze thematisiert aufbereitet. Zu jeder Person steht ein kurzer „Abstract“,
den ich von der „BASTA!“ übernommen habe, danach folgen die beiden Antworten zu den
Fragen 2 und 3. 
&lt;p&gt;
Dabei habe ich mir ebenfalls das Recht genommen, bei der ein oder anderen Antwort
ein paar Tippfehler zu korrigieren. 
&lt;p&gt;
Als Gewinner, wenn man das überhaupt so sagen kann, ist ganz klar Silverlight, passend
zum morgigen &lt;a href="http://www.golem.de/0810/62908.html"&gt;Silverlight 2 Release von
Microsoft&lt;/a&gt;, davongegangen. Dicht gefolgt von Funktionaler-Programmierung mit F#
oder LINQ in C#. 
&lt;p&gt;
Was ich persönlich am interessantesten fand, war das doch teilweise sehr identische
Ergebnis der Umfrage. 
&lt;p&gt;
Ich wünsche viel Spaß beim lesen. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;b&gt;&lt;/b&gt; 
&lt;h3&gt;4x Silverlight
&lt;/h3&gt;
&lt;h4&gt;&lt;strong&gt;Patrick Theobald, &lt;/strong&gt;&lt;a href="http://www.theobald-software.com/"&gt;&lt;strong&gt;Theobald
Software GmbH&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&lt;em&gt;Patrick Theobald ist Fachbuchautor und Geschäftsführer der Theobald Software GmbH,
Stuttgart. Sein Hauptaufgabengebiet sind die Entwicklung und das Design von Schnittstellen
zwischen SAP und Microsoft-Produkten. Ein besonderes Augenmerk liegt dabei auf Transparenz,
Stabilität und vor allem Kostenersparnis. Sie erreichen Ihn unter Patrick.Theobald
(at) theobald-software.com oder www.theobald-software.com.&lt;/em&gt; &lt;blockquote&gt; 
&lt;p&gt;
„Silverlight ist das Microsoft-.NET-Pendant zu Flash bzw. zu Java-Applets.“ 
&lt;p&gt;
„Weil mit Silverlight die Möglichkeit geschaffen wird, eine Anwendung frei von schwierigen
Installationen und ggfs. Updates auf den Rechner des Anwenders zu bringen. Im Gegensatz
zu Web/Ajax-Anwendungen sind einige Nachteile ausgemerzt, die klassische Webanwendungen
mit sich bringen.“ 
&lt;h4&gt;
&lt;/h4&gt;
&lt;/blockquote&gt; 
&lt;h4&gt;&lt;strong&gt;Robert Panther, &lt;/strong&gt;&lt;a href="http://www.logica.com/"&gt;&lt;strong&gt;Logica
Deutschland GmbH &amp;amp; Co. KG&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&lt;em&gt;Der Diplom-Informatiker (FH) Robert Panther ist als Senior Consultant für die
Logica Deutschland GmbH &amp;amp; Co. KG tätig. Daneben schreibt er Fachartikel und Bücher
zu seinen Spezialgebieten SQL Server, Web-Programmierung und Anwendungsentwicklung
für mobile Geräte.&lt;/em&gt; &lt;blockquote&gt; 
&lt;p&gt;
„Technologie zur Entwicklung von "Rich Internet Applications"“ 
&lt;p&gt;
„Weil damit nicht mehr alle Web-Anwendungen gleich aussehen und einen ähnlichen Bedienkomfort
erreichen können wie Desktop-Anwendungen.“
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;h4&gt;&lt;strong&gt;Tobias Richling, rquadrat GmbH &amp;amp; Co. KG:&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&lt;em&gt;Tobias ist Richling ist 27 Jahre alt, und wohnt in einer kleinen Stadt im Münsterland.
Er hat in Münster Wirtschaftsinformatik studiert. Seit 2001 ist er als selbständiger
Trainer und Softwareentwickler tätig. Seine Zuneigung zu Basic-Dialekten und zu Microsoft
Produkten ist historisch gewachsen: angefangen mit Amiga Basic hin zum PC mit QuickBasic,
VB 6 zu VB.NET. Diese Affinität konnte auch von einen studienbedingten Delphi oder
Java Intermezzo nicht durchbrochen werden. Diese Vorlieben haben dann auch im beruflichen
Alltag Wirkung gezeigt, Trainingsinhalte lagen hauptsächlich im Softwareentwicklungsbereich
im Microsoft Umfeld. Vorwiegend mit .NET (auch C# war mitunter dabei) und dem SQL
Server, aber auch im Bereich ASP.NET. Auch in Softwareentwicklungsprojekten konnten
diese Fähigkeiten gut eingesetzt werden. Aktuelle Schwerpunkte liegen auf den neuen
.NET Technologien, insbesondere im Bereich der Webtechnologien Silverlight &amp;amp; Co.&lt;/em&gt; &lt;blockquote&gt; 
&lt;p&gt;
„Eine Browser-Plugin basierte Technologie zur Erstellung von Rich Internet Applications.
Microsofts Konkurrenz zu Flash. Basiert wie WPF auch auf XAML, was die Lernkurve flach
hält.“ 
&lt;p&gt;
„Weil man von vorhandenem XAML / WPF Wissen profitiert. Weil man schöne Webseiten
damit bauen kann.“ 
&lt;p&gt;
&lt;b&gt;&lt;/b&gt; 
&lt;p&gt;
&lt;b&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;h4&gt;&lt;a href="http://pixelplastic.de/"&gt;&lt;strong&gt;Marcel Hoyer&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&lt;em&gt;Marcel Hoyer studiert an der Universität Leipzig im Masterstudium für Informatik.
Er ist seit Jahren .NET begeistert und aktiv an der Gestaltung der .NET User Group
Leipzig beteiligt. Seit November 2006 steht er Studenten zusätzlich als Ansprechpartner
im Rahmen des Microsoft Student Programs zur Verfügung.&lt;/em&gt; &lt;blockquote&gt; 
&lt;p&gt;
„Ein neues Konzept von Microsoft zur Modellierung von Benutzeroberflächen. Dabei kommt
XAML als deklarative Sprache zum Einsatz. WPF ermöglicht größere gestalterische Freiräume
als bisherige Technologien wie WinForms, GDI usw. Mit Silverlight gibt es das Pendant
für den Webbrowser mit ähnlichem Ansatz.“ 
&lt;p&gt;
„Usability, Layout und Design sind mir wichtig, wenn ich mit Anwendungen arbeite oder
Webseiten anschaue. Diese Punkte auch selbst in eigenen Projekten umzusetzen ist mein
Ziel. Mit WPF und Silverlight liefert Microsoft eine Technologie, die dieses ermöglicht
und zugleich die Schwierigkeiten von früheren Technologien ausmerzt.“
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;h3&gt;
&lt;/h3&gt;
&lt;h3&gt;2x Funktionale Programmierung: F#
&lt;/h3&gt;
&lt;h4&gt;&lt;a href="http://therightstuff.de/"&gt;&lt;strong&gt;Alexander Groß&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;, &lt;/strong&gt;&lt;a href="http://synexus.de/"&gt;&lt;strong&gt;Synexus
GmbH&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;
&lt;/h4&gt;
&lt;blockquote&gt; 
&lt;p&gt;
„Funktionale Programmierung ist eine Alternative zur imperativen Programmierung wie
man sie z. B. von C# kennt. Alle Variablen sind inhärent nicht veränderbar, was zu
einer Reihe von interessanten Nebeneffekten führt. Z. B. sind Typen automatisch „Thread
Safe“ und Algorithmen lassen sich einfach parallelisieren. F# ist eine typsichere
und objektorientierte Sprache, angereichert mit Konzepten aus anderen funktionalen
Sprachen wie LISP: Closures, Pattern Matching, Currying und Partial Application.“ 
&lt;p&gt;
„In Zeiten in denen sich Moore’s Law sich nicht mehr automatisch auf die Taktgeschwindingkeit
auswirkt und Prozessoren mit 32 oder mehr Cores in nicht allzu weiter Ferne liegen,
ist Parallelisierung ein wichtiges Thema. Anwender erwarten schnelle Applikationen,
doch diese sind nur mithilfe von Multi Threading umsetzbar. Multi-Threaded-Programmierung
ist schwierig und die korrekte Synchronisierung nebenläufiger Tasks eine anspruchsvolle
Aufgabe für den Entwickler. Funktionale Programmierung in Kombination mit Libraries
wie Microsofts ParallelFX sind eine Möglichkeit, die Parallelisierung einzelner Aspekte
einer Anwendung zu vereinfachen.“
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;h4&gt;
&lt;/h4&gt;
&lt;h4&gt;&lt;a href="http://www.navision-blog.de/"&gt;&lt;strong&gt;Steffen Forkmann&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;, &lt;/strong&gt;&lt;a href="http://www.msu-solutions.de/"&gt;&lt;strong&gt;msu
solutions GmbH&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&lt;em&gt;Steffen Forkmann, geboren 1982, lebt in Halle und studiert dort BioInformatik.
Nebenbei arbeitet er als Software-Entwickler für die msu solutions GmbH (http://www.msu-solutions.de),
einem Microsoft Gold Certified Partner. Seinen Einstieg in die Software-Entwicklung
fand er mit Pascal und Delphi - heute programmiert er hauptsächlich in Microsoft Dynamics
Nav oder mit C#. Seine Lieblingsthemen sind Algorithmik und Optimierung.&lt;/em&gt; &lt;blockquote&gt; 
&lt;p&gt;
&lt;b&gt;„&lt;/b&gt;F# ist eine funktionale aber objektorientierte Programmiersprache für das
.NET Framework und wird von Microsoft momentan stark gepusht. In der nächsten Version
von Visual Studio wird F# neben C# und VB.NET die dritte Standardsprache sein.“ 
&lt;p&gt;
„F# gibt mir die Möglichkeit meine Funktionen und Algorithmen wesentlich kürzer zu
schreiben. Ich setze die Sprache bereits bei einem Tourenoptimierungsprojekt für meine
Diplomarbeit ein und erhoffe mir neben dem Performancegewinn durch parallele Verarbeitung
auch einen Vorteil beim Abdrucken von kürzeren Codebeispielen in der schriftlichen
Arbeit.“
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;b&gt;&lt;/b&gt; 
&lt;p&gt;
&lt;b&gt;&lt;/b&gt; 
&lt;h3&gt;1x Funktionale Programmierung: C# - LINQ
&lt;/h3&gt;
&lt;h4&gt;&lt;strong&gt;Rainer Stropek, software architects:&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&lt;em&gt;Rainer Stropek ist Mitbegründer und Geschäftsführer von cubido business solutions
GmbH, einem Microsoft Gold Certified Partner. Er arbeitet bei cubido als Senior-System-Architekt
und spricht regelmäßig bei Microsoft-Konferenzen zu Themen rund um .NET, SQL Server
und BizTalk.&lt;/em&gt; &lt;blockquote&gt; 
&lt;p&gt;
„Besser als der Erfinder von LINQ, Anders Hejlsberg, kann ich das nicht erklären: &lt;a href="http://wm.microsoft.com/ms/msdn/visualcsharp/anders_2007_01/Anders_0001.wmv"&gt;http://wm.microsoft.com/ms/msdn/visualcsharp/anders_2007_01/Anders_0001.wmv&lt;/a&gt;“
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&lt;b&gt;&lt;/b&gt; 
&lt;h3&gt;
&lt;br&gt;
1x XNA
&lt;/h3&gt;
&lt;h4&gt;&lt;strong&gt;Martin Wahnschaffe, &lt;/strong&gt;&lt;a href="http://www.imagineearth.info/"&gt;&lt;strong&gt;Baam!!
Studios&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&lt;em&gt;Martin Wahnschaffe studiert im 6. Semester Informatik an der TU Braunschweig und
schreibt zur Zeit seine Bachelorarbeit. Mehrere Jahre Erfahrung in der Entwicklung
von Computerspielen und C#-Programmierung trafen im letzten Jahr auf das Microsoft
XNA Framework. Mit dessen Hilfe arbeitet er derzeit, zusammen mit Jochen Isensee und
Florian Mätschke, am Projekt ImagineEarth - einem XBOX360 und Windows PC Spiel. Neben
diesen Tätigkeiten arbeitet er seit 4 Jahren als freiberuflicher.NET-Entwickler.&lt;/em&gt; &lt;blockquote&gt; 
&lt;p&gt;
„Ein Framework zur Windows &amp;amp; XBOX360 Spiele-Entwicklung“ 
&lt;p&gt;
„Es macht Spaß damit zu arbeiten, obwohl es eigentlich gerade erst dabei ist richtig
zu entstehen (3.0 Release). Außerdem wird man gefordert und gefördert (Imagine Cup,
Dream Build Play, Community, ...). Wer hätte gedacht, dass jeder(!) so komfortabel
für die XBox entwickeln kann?!“ 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;b&gt;&lt;/b&gt;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;h3&gt;1x VSTO (Visual Studio Tools for Office)
&lt;/h3&gt;
&lt;h4&gt;&lt;strong&gt;Lars Keller, &lt;/strong&gt;&lt;a href="http://www.netcreate.de/"&gt;&lt;strong&gt;netcreate
OHG&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&lt;em&gt;Lars Keller ist Mitbegründer und Geschäftsführer EDV/Entwicklung der netcreate
OHG (www.netcreate.de) in Braunschweig. Er beschäftigt sich seit Jahren mit der.NET-Entwicklung
und berät Firmen bei verteilten Anwendungen. Seine langjährige Berufserfahrung im
Web reicht zurück von ASP (classic) bis ASP.NET 3.5. Weitere Tätigkeitsschwerpunkte
sind Beratung beim Aufbau von Wissensmanagement, Office Entwicklungen (VSTO) und Integration
von Visual Studio Team System. Des Weiteren ist er Leiter der INETA .NET Developer
Group Braunschweig sowie Co-Lead von INETA Deutschland. Sie finden sein Blog unter
Lars Keller …inspired by .NET&lt;/em&gt; &lt;blockquote&gt; 
&lt;p&gt;
„.NET Wrapperklassen für die Entwicklung von MS Office Add-Ins. Durch die VSTO Runtime
können .NET Entwickler einfacher auf die COM-Schnittstellen von MS Office zugreifen.“ 
&lt;p&gt;
„Durch VSTO wachsen zwei Welten zusammen! Die Möglichkeiten verschiedene Add-Ins mit
.NET Power im Hintergrund zu entwickeln, ist eine reizvolle Aufgabe. Die Vernetzung
der verschiedenen Office Applikationen untereinander oder auch mit&amp;nbsp; anderen Business
Applikation, stellt ein faszinierendes Gebiet dar.&amp;nbsp; Z.B. durch die Automatisierung
von Prozessen in Outlook, Excel oder Word bekommen die Nutzer die Chance die Produktivität
ihrer Arbeitsumgebung zu steigern. VSTO bietet dazu eine gute Grundlage und stellt&amp;nbsp;
nützliche Erweiterungen zur Verfügung.“
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
&amp;nbsp; 
&lt;h3&gt;1x Cloud Computing
&lt;/h3&gt;
&lt;h4&gt;&lt;strong&gt;Frank Mantek, &lt;/strong&gt;&lt;a href="http://www.google.de/"&gt;&lt;strong&gt;Google
Deutschland&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&lt;em&gt;A former long time Microsoft employee, Frank Mantek joined Google in 2005 to work
on the Google Data API. His past work include SQLXML, Internet Explorer, and other
Microsoft technologies. When he is not working on new data technologies, he enjoyes
playing the Djembe really loud.&lt;/em&gt; &lt;blockquote&gt; 
&lt;p&gt;
„Ein sehr verschwommener Begriff, der im Moment gerne für alles genommen wird, das
sich mit Daten oder Computerresourcen beschäftigt, die nicht mehr nur Lokal existieren.
Beispiele sind Amazon EC2 oder Google AppEngine Service Angebote. Im generellen zählen
auch Angebote wie Google Apps, oder Flickr im weiteren Sinne zu Cloud Computing, zumindestens
nach der letzten Wikipedia definition.“ 
&lt;p&gt;
„ Meiner Meinung nach befindet sich das Internet in einer Umbruchsphase. Mit dem PC
erfuhren Entwickler und Benutzer zum ersten Mal eine gewisse Freiheit im Umgang mit
Computer Diensten, indem Rechenleistung persöhnlich verfügbar gemacht wurde. Jetzt
werden massiv Daten und Anwendungen vom PC losgelöst und für mehr wie nur PCs verfügbar
gemacht. Dadurch das Daten und Rechenleistung in der Cloud allen möglichen Devicen
zur Verfügung stehen, ermöglichen sich völlig neue Anwendungen und Anwendungskombinationen.
Wenn in der Zukunft, mein Kühlschrank feststellt das mein Sohn gerade die letzte Coke
getrunken hat, und mein Telefon mir das mitteilt weil ich gerade im Supermarkt bin
und daher dieses Problem beheben kann, dann liegt das an dem Versprechen des Cloud
Computing.“ 
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;h3&gt;1x Windows Home Server
&lt;/h3&gt;
&lt;h4&gt;&lt;a href="http://www.fkollmann.de/"&gt;&lt;strong&gt;Felix Kollmann&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;,
init AG:&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&lt;em&gt;Felix Kollmann arbeitet seit 2005 im Bereich Informations- und Kommunikationsmanagement
bei der init AG in Berlin. Zu seinen Schwerpunkten gehören Programmierung mit C#/C++,
Portalentwicklung in .NET sowie WSE 3.0 und WCF.&lt;/em&gt; &lt;blockquote&gt; 
&lt;p&gt;
„Das ist ein Server speziell auf die Bedürfnisse der Heimanwender zugeschnitten: Backup,
zentrale Dateiablage mit Spiegelung und Web Access.“ 
&lt;p&gt;
„Weil sich hieran die Open Source Gemeine schon sehr lange versucht hat, und der Windows
Home Server einfach alles je dagewesene in den Schatten stellt.“ 
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;h3&gt;1x Objekt-Relationales Mapping (ORM) in Verbindung mit LINQ
&lt;/h3&gt;
&lt;h4&gt;&lt;strong&gt;Dr. &lt;/strong&gt;&lt;a href="http://www.dotnet-doktor.de/"&gt;&lt;strong&gt;Holger Schwichtenberg&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;, &lt;/strong&gt;&lt;a href="http://www.it-visions.de/"&gt;&lt;strong&gt;IT-Visions.de&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&lt;em&gt;Dr. Holger Schwichtenberg ist Inhaber des auf .NET spezialisierten Beratungs-
und Schulungsunternehmen IT-Visions.de. Seine persönlichen Schwerpunkte sind ASP.NET,
verteilte Systeme, Active-Directory-Programmierung und PowerShell sowie die Migration
von Altanwendungen auf .NET. Von Microsoft ist er für sein Fachwissen ausgezeichnet
als Microsoft Most Valuable Professional (MVP) und .NET Code Wise Member. Er gibt
sein Wissen in Schulungen, Vorträgen auf nationalen und internationalen Fachkonferenzen
(u.a. TechEd, IT Forum, OOP) weiter. In seiner mehr als 10-jährigen Laufbahn als Softwareentwickler
und Softwarearchitekt hat er 22 Fachbücher und über 400 Fachartikel veröffentlicht.
In seinem Weblog www.dotnet-doktor.de berichtet er regelmäßig über aktuelle Entwicklungen
im .NET-Markt.&lt;/em&gt; &lt;blockquote&gt; 
&lt;p&gt;
„ORM bedeutet, auf objektorientierte Weise auf relationale Datenbanken zuzugreifen.“ 
&lt;p&gt;
„Beim ORM wird von den Eigenarten des relationalen Modells einschließlich der Sprache
SQL abstrahiert. Microsoft bietet hier mit LINQ eine sehr elegante Möglichkeit, leider
aber direkt zwei Alternativen (LINQ-to-SQL und LINQ-to-Entities), was die Anwender
verwirrt.“ 
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;h3&gt;1x .NET Compact Framework
&lt;/h3&gt;
&lt;h4&gt;&lt;strong&gt;Simon Hackfort, &lt;/strong&gt;&lt;a href="http://www.it-visions.de/"&gt;&lt;/a&gt;&lt;a href="http://www.extreme-players.de/"&gt;&lt;strong&gt;eXp
– eXtreme-Players&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;
&lt;/h4&gt;
&lt;p&gt;
&lt;em&gt;Simon Hackfort ist SCJP und seit 2002 bei T-Systems Enterprise Services GmbH tätig.
Nebenberuflich ist er Fachjournalist und arbeitet als Senior-Redakteur beim Online-Spiele-Portal
eXp. Privat beschäftigt er sich derweil mit dem .NET Compact Framework und der Spiele-Entwickelung
für die Xbox360-Plattform mit Hilfe des XNA Frameworks.&lt;/em&gt; &lt;blockquote&gt; 
&lt;p&gt;
„Das .NET Compact Framework ist ein spezielles Framework für die Windows Mobile Plattform.
Es ist ein eigenes Derivat und hat dennoch viele Gemeinsamkeiten des großen Bruders.“ 
&lt;p&gt;
„Das Compact Framework ist von der Dateigröße her enorm kleiner als der große Bruder
und bietet dafür sehr viele Leistungsmerkmale, wie Oberflächen, DB-Anbindungen, Telefonfunktionen
usw. Zudem ist es ein Teil des Windows Mobile OS geworden und somit weit verbreitet.“ 
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;h3&gt;1x Flash-Speicher
&lt;/h3&gt;
&lt;h4&gt;&lt;strong&gt;Peter Pohmann, &lt;/strong&gt;&lt;a href="http://www.dataweb.de/"&gt;&lt;strong&gt;dataweb
GmbH&lt;/strong&gt;&lt;/a&gt;
&lt;/h4&gt;
&lt;p&gt;
&lt;em&gt;Peter Pohmann arbeitet seit 15 Jahren als Softwareentwickler, Projektleiter, Architekt
und Coach sowohl in der eigenen Firma dataWeb GmbH als auch für Kundenprojekte. Sein
besonderes Interesse gilt dem Entwurf stabiler und verständlicher Softwarearchitekturen,
hauptsächlich im Bereich technischer Software. Seine bevorzugte Entwicklungsumgebung
ist seit vielen Jahren Delphi, in der letzten Zeit kam C# hinzu. Als großes und wichtiges
Versprechen für die Zukunft der Softwareentwicklung sieht Peter die ALM-Strategie
von Borland, also die Integration des gesamten Entwicklungsprozesses von Definition
über Entwurf und Implementierung bis hin zu Test und Auslieferung in einem einzigen
Werkzeug.&lt;/em&gt; &lt;blockquote&gt; 
&lt;p&gt;
„Digitale Speicherchips, die Informationen ohne permanente Spannungsversorgung halten
können. Sind schneller als Festplatten und auch kleiner. Werden für USB-Sticks, Digitalkameras
und Solid State Disks benutzt.
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
„Wirklich Spannend wird die Sache dann, wenn Flash Speicher mal so schnell werden
wie RAM. Dann verschwindet der Unterschied zwischen Hauptspeicher und Platte, langsamem
und schnellem Speichermedium. Rechner werden nicht mehr gebootet; Datenbanken und
Dateisysteme werden überflüssig.“
&lt;/p&gt;
&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=3fd651e6-70e3-4795-aebb-ab7dd3a82a39" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,3fd651e6-70e3-4795-aebb-ab7dd3a82a39.aspx</comments>
      <category>.NET</category>
      <category>Dies und Das</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=d3402edb-d4dd-4ac5-9a75-aaabe79c26fa</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,d3402edb-d4dd-4ac5-9a75-aaabe79c26fa.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,d3402edb-d4dd-4ac5-9a75-aaabe79c26fa.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=d3402edb-d4dd-4ac5-9a75-aaabe79c26fa</wfw:commentRss>
      <slash:comments>8</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Es ist schon ein paar Tage her seitdem Release der 2.0 Version, aber die Neuerungen
sind vielleicht doch noch einmal sehr interessant.
</p>
        <p>
Laut <a href="http://tirania.org/blog/" target="_blank">Miguel de Icaza</a>, einer
der Gründer vom Gnome und Schirmherr von Mono, ist eine der größten
Neuerung für Mono, dass es jetzt endlich einen Debugger für Mono gibt. 
<br />
    - Bisher gab es nämlich keinen, und die Entwickler musst auf <em>WriteLine()</em> und
ähnliche Methoden setzen.
</p>
        <p>
Er selbst schreibt auf seinem <a href="http://tirania.org/blog/" target="_blank">Blog</a>,
dass Mono so sehr gewachsen ist,dass es zu komplex für einen Blogeintrag wäre,
alle Features im Detail zu beschreiben.
</p>
        <p>
Der selben Ansicht bin ich auch, daher möchte ich gerne hier auf eine sehr übersichtliche
Tabelle der Features in 2.0 von Miguel verweisen:
</p>
        <table border="1">
          <thead>
            <tr>
              <td align="center" width="33%">
                <strong>Compiler Support</strong>
              </td>
              <td align="center" width="33%">
                <strong>.NET APIs</strong>
              </td>
              <td align="center" width="33%">
                <strong>Mono APIs</strong>
              </td>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td valign="top">
                <u>Mono's Open Source Compilers:</u>
                <ul>
                  <li>
                    <a href="http://www.mono-project.com/CSharp_Compiler">C# 3.0 compiler</a>. 
<ul><li>
LINQ to Objects. 
</li><li>
LINQ to XML. 
</li></ul></li>
                  <li>
                    <a href="http://www.mono-project.com/VisualBasic.NET_support">Visual Basic 8 compiler</a>. 
</li>
                </ul>
                <u>Open Source Compilers:</u>
                <ul>
                  <li>
                    <a href="http://boo.codehaus.org/">Boo</a>. 
</li>
                  <li>
                    <a href="http://cobra-language.com/">Cobra</a>. 
</li>
                  <li>
GNU's <a href="http://gcc.gnu.org/projects/cli.html">GCC with the CIL backend</a>. 
</li>
                  <li>
Microsoft's <a href="http://www.codeplex.com/IronPython">IronPython</a>. 
</li>
                  <li>
Jeroen's <a href="http://www.ikvm.net/">IKVM</a> (Java on .NET). 
</li>
                  <li>
Microsoft's <a href="http://ironruby.com/">IronRuby</a>. 
</li>
                  <li>
                    <a href="http://www.codeplex.com/Phalanger">Phalanger</a> (PHP on CLI). 
</li>
                </ul>
                <u>Commercial Compilers:</u>
                <ul>
                  <li>
ISE's <a href="http://www.eiffel.com/">Eiffel</a>. 
</li>
                  <li>
Microsoft's C#. 
</li>
                  <li>
Microsoft's <a href="http://research.microsoft.com/fsharp/fsharp.aspx">F#</a>. 
</li>
                  <li>
Microsoft's VB.NET. 
</li>
                  <li>
RemObject's <a href="http://www.remobjects.com/oxygene">Oxygene</a> (Object Pascal). 
</li>
                </ul>
And <a href="http://www.mono-project.com/Languages">many more</a>. 
</td>
              <td valign="top">
                <u>Core API:</u>
                <ul>
                  <li>
2.0 core APIs. 
</li>
                  <li>
System, System.Xml. 
</li>
                  <li>
3.5 System.Core. 
</li>
                  <li>
System.Drawing. 
</li>
                  <li>
System.DirectoryServices. 
</li>
                  <li>
System.Web.Services. 
</li>
                </ul>
                <u>Windows.Forms 2.0:</u>
                <ul>
                  <li>
Win32 driver. 
</li>
                  <li>
Quartz/OSX driver. 
</li>
                  <li>
Cairo/X11 Unix driver. 
</li>
                </ul>
                <u>ASP.NET 2.0:</u>
                <ul>
                  <li>
Core ASP.NET. 
</li>
                  <li>
ASP.NET AJAX. 
</li>
                  <li>
Apache and FastCGI integration. 
</li>
                </ul>
                <u>ADO.NET 2.0 plus providers for:</u>
                <ul>
                  <li>
Managed drivers: Postgresql, MS SQL Server, Sybase. 
</li>
                  <li>
Semi-managed drivers: Firebird, IBM DB2, Oracle, Sqlite. 
</li>
                  <li>
MySQL provides their own drivers. 
</li>
                </ul>
              </td>
              <td valign="top">
                <u>GUI APIs:</u>
                <ul>
                  <li>
                    <a href="http://www.mono-project.com/GtkSharp">Gtk#</a> (Unix, Windows, MacOS X). 
</li>
                  <li>
                    <a href="http://www.mono-project.com/CocoaSharp">Cocoa#</a> (MacOS X). 
</li>
                </ul>
                <u>Mono Core:</u>
                <ul>
                  <li>
                    <a href="http://www.mono-project.com/Mono.Addins">Mono.Addins</a> - Extensibility
Framework. 
</li>
                  <li>
                    <a href="http://go-mono.com/docs/monodoc.ashx?tlink=0@N%3aCairo">Mono.Cairo</a> -
Cairo Graphics Binding. 
</li>
                  <li>
                    <a href="http://www.mono-project.com/Cecil">Mono.Cecil</a> - ECMA CIL Manipulation. 
</li>
                  <li>
Xml.Relaxng. 
</li>
                  <li>
Novell.Directory.Ldap 
</li>
                  <li>
                    <a href="http://www.itu.dk/research/c5/">C5</a> - Generics Library. 
</li>
                </ul>
                <u>Linux Specific:</u>
                <ul>
                  <li>
                    <a href="http://www.go-mono.com/docs/index.aspx?tlink=0@N%3AMono.Posix">Mono.Posix/Mono.Unix</a>. 
</li>
                  <li>
                    <a href="http://www.ndesk.org/DBusSharp">NDesk.DBus</a>
                  </li>
                </ul>
Other Ecosystem Libraries: 
<ul><li><a href="http://www.mono-project.com/Bitsharp">Bit#</a> - Bittorrent client/server
library. 
</li><li><a href="http://www.jprl.com/Projects/mono-fuse.html">Mono.Fuse</a> - User-space file
systems. 
</li><li><a href="http://www.mono-project.com/Mono.Zeroconf">Mono.ZeroConf</a> - Bonjour stack. 
</li><li>
Mono.Nat - Network Address Translation. 
</li><li>
Mono.Upnp - Universal Plug and Play. 
</li><li><a href="http://www.taoframework.com/">Tao Framework</a> - OpenGL, OpenAL, SDL and
Cg bindings. 
</li></ul></td>
              <td>
              </td>
            </tr>
          </tbody>
        </table>
        <p>
 
</p>
        <p>
Was man dabei erkennen kann ist auf jeden Fall, dass Mono längst aus den Kinderschuhen
ist, und als ernstzunehmendes Produkt angesehen werden kann.
</p>
        <p>
Heute findet Mono Anwendung in portablen MP3 Playern, wirkt hinter der  Unity3D
Engine auf dem Apple iPhone, der Nintendo Wii, MacOS X und Windows. Mal ganz davon
abgesehen, dass es auf großen Serverclustern von SecondLife ebenfalls verwendet
wird.
</p>
        <p>
 
</p>
        <p>
Ich bin gespannt was die Zukunft bringt.
</p>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=d3402edb-d4dd-4ac5-9a75-aaabe79c26fa" />
      </body>
      <title>Was kann man mit Mono 2.0 denn jetzt alles machen?</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,d3402edb-d4dd-4ac5-9a75-aaabe79c26fa.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,d3402edb-d4dd-4ac5-9a75-aaabe79c26fa.aspx</link>
      <pubDate>Wed, 08 Oct 2008 14:20:18 GMT</pubDate>
      <description>&lt;p&gt;
Es ist schon ein paar Tage her seitdem Release der 2.0 Version, aber die Neuerungen
sind vielleicht doch noch einmal sehr interessant.
&lt;/p&gt;
&lt;p&gt;
Laut &lt;a href="http://tirania.org/blog/" target="_blank"&gt;Miguel de Icaza&lt;/a&gt;, einer
der Gr&amp;#252;nder vom Gnome und Schirmherr von Mono, ist eine der gr&amp;#246;&amp;#223;ten
Neuerung f&amp;#252;r Mono, dass es jetzt endlich einen Debugger f&amp;#252;r Mono gibt. 
&lt;br /&gt;
&amp;#160;&amp;#160;&amp;#160; - Bisher gab es n&amp;#228;mlich keinen, und die Entwickler musst auf &lt;em&gt;WriteLine()&lt;/em&gt; und
&amp;#228;hnliche Methoden setzen.
&lt;/p&gt;
&lt;p&gt;
Er selbst schreibt auf seinem &lt;a href="http://tirania.org/blog/" target="_blank"&gt;Blog&lt;/a&gt;,
dass Mono so sehr gewachsen ist,dass es zu komplex f&amp;#252;r einen Blogeintrag w&amp;#228;re,
alle Features im Detail zu beschreiben.
&lt;/p&gt;
&lt;p&gt;
Der selben Ansicht bin ich auch, daher m&amp;#246;chte ich gerne hier auf eine sehr &amp;#252;bersichtliche
Tabelle der Features in 2.0 von Miguel verweisen:
&lt;/p&gt;
&lt;table border="1"&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;td align="center" width="33%"&gt;
&lt;strong&gt;Compiler Support&lt;/strong&gt; 
&lt;/td&gt;
&lt;td align="center" width="33%"&gt;
&lt;strong&gt;.NET APIs&lt;/strong&gt; 
&lt;/td&gt;
&lt;td align="center" width="33%"&gt;
&lt;strong&gt;Mono APIs&lt;/strong&gt; 
&lt;/td&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td valign="top"&gt;
&lt;u&gt;Mono's Open Source Compilers:&lt;/u&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.mono-project.com/CSharp_Compiler"&gt;C# 3.0 compiler&lt;/a&gt;. 
&lt;ul&gt;
&lt;li&gt;
LINQ to Objects. 
&lt;/li&gt;
&lt;li&gt;
LINQ to XML. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.mono-project.com/VisualBasic.NET_support"&gt;Visual Basic 8 compiler&lt;/a&gt;. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;u&gt;Open Source Compilers:&lt;/u&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://boo.codehaus.org/"&gt;Boo&lt;/a&gt;. 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://cobra-language.com/"&gt;Cobra&lt;/a&gt;. 
&lt;/li&gt;
&lt;li&gt;
GNU's &lt;a href="http://gcc.gnu.org/projects/cli.html"&gt;GCC with the CIL backend&lt;/a&gt;. 
&lt;/li&gt;
&lt;li&gt;
Microsoft's &lt;a href="http://www.codeplex.com/IronPython"&gt;IronPython&lt;/a&gt;. 
&lt;/li&gt;
&lt;li&gt;
Jeroen's &lt;a href="http://www.ikvm.net/"&gt;IKVM&lt;/a&gt; (Java on .NET). 
&lt;/li&gt;
&lt;li&gt;
Microsoft's &lt;a href="http://ironruby.com/"&gt;IronRuby&lt;/a&gt;. 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.codeplex.com/Phalanger"&gt;Phalanger&lt;/a&gt; (PHP on CLI). 
&lt;/li&gt;
&lt;/ul&gt;
&lt;u&gt;Commercial Compilers:&lt;/u&gt; 
&lt;ul&gt;
&lt;li&gt;
ISE's &lt;a href="http://www.eiffel.com/"&gt;Eiffel&lt;/a&gt;. 
&lt;/li&gt;
&lt;li&gt;
Microsoft's C#. 
&lt;/li&gt;
&lt;li&gt;
Microsoft's &lt;a href="http://research.microsoft.com/fsharp/fsharp.aspx"&gt;F#&lt;/a&gt;. 
&lt;/li&gt;
&lt;li&gt;
Microsoft's VB.NET. 
&lt;/li&gt;
&lt;li&gt;
RemObject's &lt;a href="http://www.remobjects.com/oxygene"&gt;Oxygene&lt;/a&gt; (Object Pascal). 
&lt;/li&gt;
&lt;/ul&gt;
And &lt;a href="http://www.mono-project.com/Languages"&gt;many more&lt;/a&gt;. 
&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;u&gt;Core API:&lt;/u&gt; 
&lt;ul&gt;
&lt;li&gt;
2.0 core APIs. 
&lt;/li&gt;
&lt;li&gt;
System, System.Xml. 
&lt;/li&gt;
&lt;li&gt;
3.5 System.Core. 
&lt;/li&gt;
&lt;li&gt;
System.Drawing. 
&lt;/li&gt;
&lt;li&gt;
System.DirectoryServices. 
&lt;/li&gt;
&lt;li&gt;
System.Web.Services. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;u&gt;Windows.Forms 2.0:&lt;/u&gt; 
&lt;ul&gt;
&lt;li&gt;
Win32 driver. 
&lt;/li&gt;
&lt;li&gt;
Quartz/OSX driver. 
&lt;/li&gt;
&lt;li&gt;
Cairo/X11 Unix driver. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;u&gt;ASP.NET 2.0:&lt;/u&gt; 
&lt;ul&gt;
&lt;li&gt;
Core ASP.NET. 
&lt;/li&gt;
&lt;li&gt;
ASP.NET AJAX. 
&lt;/li&gt;
&lt;li&gt;
Apache and FastCGI integration. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;u&gt;ADO.NET 2.0 plus providers for:&lt;/u&gt; 
&lt;ul&gt;
&lt;li&gt;
Managed drivers: Postgresql, MS SQL Server, Sybase. 
&lt;/li&gt;
&lt;li&gt;
Semi-managed drivers: Firebird, IBM DB2, Oracle, Sqlite. 
&lt;/li&gt;
&lt;li&gt;
MySQL provides their own drivers. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td valign="top"&gt;
&lt;u&gt;GUI APIs:&lt;/u&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.mono-project.com/GtkSharp"&gt;Gtk#&lt;/a&gt; (Unix, Windows, MacOS X). 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.mono-project.com/CocoaSharp"&gt;Cocoa#&lt;/a&gt; (MacOS X). 
&lt;/li&gt;
&lt;/ul&gt;
&lt;u&gt;Mono Core:&lt;/u&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.mono-project.com/Mono.Addins"&gt;Mono.Addins&lt;/a&gt; - Extensibility
Framework. 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://go-mono.com/docs/monodoc.ashx?tlink=0@N%3aCairo"&gt;Mono.Cairo&lt;/a&gt; -
Cairo Graphics Binding. 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.mono-project.com/Cecil"&gt;Mono.Cecil&lt;/a&gt; - ECMA CIL Manipulation. 
&lt;/li&gt;
&lt;li&gt;
Xml.Relaxng. 
&lt;/li&gt;
&lt;li&gt;
Novell.Directory.Ldap 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.itu.dk/research/c5/"&gt;C5&lt;/a&gt; - Generics Library. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;u&gt;Linux Specific:&lt;/u&gt; 
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.go-mono.com/docs/index.aspx?tlink=0@N%3AMono.Posix"&gt;Mono.Posix/Mono.Unix&lt;/a&gt;. 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.ndesk.org/DBusSharp"&gt;NDesk.DBus&lt;/a&gt; 
&lt;/li&gt;
&lt;/ul&gt;
Other Ecosystem Libraries: 
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.mono-project.com/Bitsharp"&gt;Bit#&lt;/a&gt; - Bittorrent client/server
library. 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.jprl.com/Projects/mono-fuse.html"&gt;Mono.Fuse&lt;/a&gt; - User-space file
systems. 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.mono-project.com/Mono.Zeroconf"&gt;Mono.ZeroConf&lt;/a&gt; - Bonjour stack. 
&lt;/li&gt;
&lt;li&gt;
Mono.Nat - Network Address Translation. 
&lt;/li&gt;
&lt;li&gt;
Mono.Upnp - Universal Plug and Play. 
&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://www.taoframework.com/"&gt;Tao Framework&lt;/a&gt; - OpenGL, OpenAL, SDL and
Cg bindings. 
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Was man dabei erkennen kann ist auf jeden Fall, dass Mono l&amp;#228;ngst aus den Kinderschuhen
ist, und als ernstzunehmendes Produkt angesehen werden kann.
&lt;/p&gt;
&lt;p&gt;
Heute findet Mono Anwendung in portablen MP3 Playern, wirkt hinter der&amp;#160; Unity3D
Engine auf dem Apple iPhone, der Nintendo Wii, MacOS X und Windows. Mal ganz davon
abgesehen, dass es auf gro&amp;#223;en Serverclustern von SecondLife ebenfalls verwendet
wird.
&lt;/p&gt;
&lt;p&gt;
&amp;#160;
&lt;/p&gt;
&lt;p&gt;
Ich bin gespannt was die Zukunft bringt.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=d3402edb-d4dd-4ac5-9a75-aaabe79c26fa" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,d3402edb-d4dd-4ac5-9a75-aaabe79c26fa.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=a172bba3-4217-464b-a184-77d84de7deae</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,a172bba3-4217-464b-a184-77d84de7deae.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,a172bba3-4217-464b-a184-77d84de7deae.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=a172bba3-4217-464b-a184-77d84de7deae</wfw:commentRss>
      <slash:comments>8</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Da sitzt man grade und entwickelt an der Next-Gen Game-Engine, bastelt sich ein Tool
zur automatische Verwaltung und Code-Generierung von Netzwerkpaketen, und wird dann
wieder von so Kleinigkeiten ausgebremst, ala ListBox. ...
</p>
        <p>
Man stelle sich vor, man hat ein eigene Klasse mit überschriebener ToString()-Methode,
die man als Items zu einer ListBox hinzufügen möchte. - Die ToString()-Methode ist
also überschrieben um den Namen, der später in der ListBox für das jeweilige Item
auftaucht, zu ändern.
</p>
        <p>
So in etwa wie die Klasse TestObjekt:
</p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">class</span> TestObjekt</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">string</span> Name;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">string</span> Vorname;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">override</span>
              <span style="color: #0000ff">string</span> ToString()</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span>
              <span style="color: #0000ff">return</span> Vorname
+ <span style="color: #006080">" "</span> + Nachname;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span> }</pre>
          </div>
        </div>
        <p>
Sollte man später jetzt aber ein <u>Item der Liste ändern</u> wollen, wie z.B. den
Vornamen, <u>dann wird der Text des Items in der Listbox nicht aktualisiert</u>.
</p>
        <p>
Refresh() hilft leider (zum Glück) nicht.
</p>
        <p>
Zeit mal etwas aus der neuen C# 3.0 Trick-Kiste auszuprobieren:
</p>
        <h3>C#3.0 Extension Methods
</h3>
        <p>
Man erstellt sich einfach eine statische, nicht generische Klasse, und baut eine <em>Extension
Method</em>, die das gewünschte leistet:
</p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">static</span>
              <span style="color: #0000ff">class</span> ListBoxExtension</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 3:</span>
              <span style="color: #0000ff">public</span>
              <span style="color: #0000ff">static</span>
              <span style="color: #0000ff">void</span> RefreshItem(<span style="color: #0000ff">this</span> ListBox
listbox, <span style="color: #0000ff">int</span> index)</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 4:</span> {</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 5:</span>
              <span style="color: #0000ff">if</span> (listbox.Items.Count
&lt;= index) <span style="color: #0000ff">return</span>;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 6:</span>
              <span style="color: #0000ff">if</span> (listbox.Items[index]
== <span style="color: #0000ff">null</span>) <span style="color: #0000ff">return</span>;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 7:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 8:</span>
              <span style="color: #008000">//
Selektion der Listbox merken:</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 9:</span>
              <span style="color: #0000ff">int</span> selection
= listbox.SelectedIndex;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 10:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 11:</span>
              <span style="color: #008000">//
Item einfach erneut einfügen und danach das alte löschen.</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 12:</span>
              <span style="color: #008000">//
Beim Einfügen ruft die ListBox nämlich ToString() auf.</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 13:</span> listbox.Items.Insert(index,
listbox.Items[index]);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 14:</span> listbox.Items.RemoveAt(index
+ 1);</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 15:</span>  </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 16:</span>
              <span style="color: #008000">//
Verlorengegangene Selektion wiederherstellen:</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 17:</span> listbox.SelectedIndex
= selection;</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 18:</span> }</pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 19:</span> }</pre>
          </div>
        </div>
        <p>
Danach kann man die neue Methode in jeder ListBox wie folgt nutzen:
</p>
        <div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4">
          <div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #008000">//
Selektiertes Item aktualisieren:</span>
            </pre>
            <pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 2:</span> myList.RefreshItem(myList.SelectedIndex);</pre>
          </div>
        </div>
        <p>
          <strong>Falls Probleme auftreten, oder jemand eine bessere Lösung hat lasst es mich
wissen! ;)</strong>
        </p>
        <p>
Btw: Extension Methods haben den Vorteil, wenn man mal einen Fehler in der Programmierung
gemacht hat, kann man diesen später an einer zentralen Stelle ganz leicht ausbügeln.
Ging mir hierbei jedenfalls so ;)
</p>
        <p>
 
</p>
        <p>
Grüße,
</p>
        <p>
Euer Resharper Padawan
</p>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=a172bba3-4217-464b-a184-77d84de7deae" />
      </body>
      <title>ListBox Items aktualisieren nicht selbst&amp;auml;ndig! ???</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,a172bba3-4217-464b-a184-77d84de7deae.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,a172bba3-4217-464b-a184-77d84de7deae.aspx</link>
      <pubDate>Mon, 14 Jul 2008 01:14:20 GMT</pubDate>
      <description>&lt;p&gt;
Da sitzt man grade und entwickelt an der Next-Gen Game-Engine, bastelt sich ein Tool
zur automatische Verwaltung und Code-Generierung von Netzwerkpaketen, und wird dann
wieder von so Kleinigkeiten ausgebremst, ala ListBox. ...
&lt;/p&gt;
&lt;p&gt;
Man stelle sich vor, man hat ein eigene Klasse mit überschriebener ToString()-Methode,
die man als Items zu einer ListBox hinzufügen möchte. - Die ToString()-Methode ist
also überschrieben um den Namen, der später in der ListBox für das jeweilige Item
auftaucht, zu ändern.
&lt;/p&gt;
&lt;p&gt;
So in etwa wie die Klasse TestObjekt:
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; TestObjekt&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; Name;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; Vorname;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; ToString()&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; Vorname
+ &lt;span style="color: #006080"&gt;" "&lt;/span&gt; + Nachname;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; }&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 10:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Sollte man später jetzt aber ein &lt;u&gt;Item der Liste ändern&lt;/u&gt; wollen, wie z.B. den
Vornamen, &lt;u&gt;dann wird der Text des Items in der Listbox nicht aktualisiert&lt;/u&gt;.
&lt;/p&gt;
&lt;p&gt;
Refresh() hilft leider (zum Glück) nicht.
&lt;/p&gt;
&lt;p&gt;
Zeit mal etwas aus der neuen C# 3.0 Trick-Kiste auszuprobieren:
&lt;/p&gt;
&lt;h3&gt;C#3.0 Extension Methods
&lt;/h3&gt;
&lt;p&gt;
Man erstellt sich einfach eine statische, nicht generische Klasse, und baut eine &lt;em&gt;Extension
Method&lt;/em&gt;, die das gewünschte leistet:
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; ListBoxExtension&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;static&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; RefreshItem(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt; ListBox
listbox, &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; index)&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 4:&lt;/span&gt; {&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (listbox.Items.Count
&amp;lt;= index) &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 6:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (listbox.Items[index]
== &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;) &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 7:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 8:&lt;/span&gt; &lt;span style="color: #008000"&gt;//
Selektion der Listbox merken:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 9:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; selection
= listbox.SelectedIndex;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 10:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 11:&lt;/span&gt; &lt;span style="color: #008000"&gt;//
Item einfach erneut einfügen und danach das alte löschen.&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 12:&lt;/span&gt; &lt;span style="color: #008000"&gt;//
Beim Einfügen ruft die ListBox nämlich ToString() auf.&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 13:&lt;/span&gt; listbox.Items.Insert(index,
listbox.Items[index]);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 14:&lt;/span&gt; listbox.Items.RemoveAt(index
+ 1);&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 15:&lt;/span&gt;&amp;nbsp; &lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 16:&lt;/span&gt; &lt;span style="color: #008000"&gt;//
Verlorengegangene Selektion wiederherstellen:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 17:&lt;/span&gt; listbox.SelectedIndex
= selection;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 18:&lt;/span&gt; }&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 19:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
Danach kann man die neue Methode in jeder ListBox wie folgt nutzen:
&lt;/p&gt;
&lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 97.5%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; background-color: #f4f4f4"&gt;
&lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #008000"&gt;//
Selektiertes Item aktualisieren:&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 2:&lt;/span&gt; myList.RefreshItem(myList.SelectedIndex);&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;Falls Probleme auftreten, oder jemand eine bessere Lösung hat lasst es mich
wissen! ;)&lt;/strong&gt;
&lt;/p&gt;
&lt;p&gt;
Btw: Extension Methods haben den Vorteil, wenn man mal einen Fehler in der Programmierung
gemacht hat, kann man diesen später an einer zentralen Stelle ganz leicht ausbügeln.
Ging mir hierbei jedenfalls so ;)
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Grüße,
&lt;/p&gt;
&lt;p&gt;
Euer Resharper Padawan
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=a172bba3-4217-464b-a184-77d84de7deae" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,a172bba3-4217-464b-a184-77d84de7deae.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=ee666c16-c2b0-4bf8-810a-b463a07d8f4f</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,ee666c16-c2b0-4bf8-810a-b463a07d8f4f.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,ee666c16-c2b0-4bf8-810a-b463a07d8f4f.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=ee666c16-c2b0-4bf8-810a-b463a07d8f4f</wfw:commentRss>
      <slash:comments>10</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Wie Scott Guthrie auf seinem <a href="http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx" target="_blank">Blog</a> berichtet,
steht nun endlich der source code des .NET Frameworks zur Verfügung.
</p>
        <p>
Bisher beinhaltet er folgende Teile des .NET Frameworks:
</p>
        <ul>
          <li>
.NET Base Class Libraries (including System, System.CodeDom, System.Collections, System.ComponentModel,
System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection,
System.Runtime, System.Security, System.Text, System.Threading, etc). 
</li>
        </ul>
        <ul>
          <li>
ASP.NET (System.Web, System.Web.Extensions) 
</li>
        </ul>
        <ul>
          <li>
Windows Forms (System.Windows.Forms) 
</li>
        </ul>
        <ul>
          <li>
Windows Presentation Foundation (System.Windows) 
</li>
        </ul>
        <ul>
          <li>
ADO.NET and XML (System.Data and System.Xml) 
</li>
        </ul>
        <p>
 
</p>
        <p>
Es wird außerdem bereits an der Veröffentlichung weiterer Teile, wie zum Beispiel
WCF, WF oder LINQ gearbeitet.
</p>
        <p>
Wie man den source code zum Debuggen in Visual Studio 2008 einbindet findet man ebenfalls
auf <a href="http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx" target="_blank">Guthrie's
Blog</a>.
</p>
        <p>
Der source code unterliegt dabei folgender Lizenz:
</p>
        <h5>Reference License
</h5>
        <blockquote>
          <p>
"The .NET Framework source is being released under a read-only reference license.
When we announced that we were releasing the source back in October, some people had
concerns about the potential impact of their viewing the source. To help clarify and
address these concerns, we made a small change to the license to specifically call
out that the license does not apply to users developing software for a non-Windows
platform that has “the same or substantially the same features or functionality” as
the .NET Framework. If the software you are developing is for Windows platforms, you
can look at the code, even if that software has "the same or substantially the same
features or functionality" as the .NET Framework."
</p>
        </blockquote>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=ee666c16-c2b0-4bf8-810a-b463a07d8f4f" />
      </body>
      <title>.NET Framework Source Code ab jetzt verf&amp;uuml;gbar!</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,ee666c16-c2b0-4bf8-810a-b463a07d8f4f.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,ee666c16-c2b0-4bf8-810a-b463a07d8f4f.aspx</link>
      <pubDate>Thu, 17 Jan 2008 11:49:58 GMT</pubDate>
      <description>&lt;p&gt;
Wie Scott Guthrie auf seinem &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx" target="_blank"&gt;Blog&lt;/a&gt; berichtet,
steht nun endlich der source code des .NET Frameworks zur Verfügung.
&lt;/p&gt;
&lt;p&gt;
Bisher beinhaltet er folgende Teile des .NET Frameworks:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
.NET Base Class Libraries (including System, System.CodeDom, System.Collections, System.ComponentModel,
System.Diagnostics, System.Drawing, System.Globalization, System.IO, System.Net, System.Reflection,
System.Runtime, System.Security, System.Text, System.Threading, etc). 
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
ASP.NET (System.Web, System.Web.Extensions) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
Windows Forms (System.Windows.Forms) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
Windows Presentation Foundation (System.Windows) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;
ADO.NET and XML (System.Data and System.Xml) 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Es wird außerdem bereits an der Veröffentlichung weiterer Teile, wie zum Beispiel
WCF, WF oder LINQ gearbeitet.
&lt;/p&gt;
&lt;p&gt;
Wie man den source code zum Debuggen in Visual Studio 2008 einbindet findet man ebenfalls
auf &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx" target="_blank"&gt;Guthrie's
Blog&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Der source code unterliegt dabei folgender Lizenz:
&lt;/p&gt;
&lt;h5&gt;Reference License
&lt;/h5&gt;
&lt;blockquote&gt; 
&lt;p&gt;
"The .NET Framework source is being released under a read-only reference license.
When we announced that we were releasing the source back in October, some people had
concerns about the potential impact of their viewing the source. To help clarify and
address these concerns, we made a small change to the license to specifically call
out that the license does not apply to users developing software for a non-Windows
platform that has “the same or substantially the same features or functionality” as
the .NET Framework. If the software you are developing is for Windows platforms, you
can look at the code, even if that software has "the same or substantially the same
features or functionality" as the .NET Framework."
&lt;/p&gt;
&lt;/blockquote&gt;&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=ee666c16-c2b0-4bf8-810a-b463a07d8f4f" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,ee666c16-c2b0-4bf8-810a-b463a07d8f4f.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=479fe7c8-b168-465d-b23d-f14725047dfd</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,479fe7c8-b168-465d-b23d-f14725047dfd.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,479fe7c8-b168-465d-b23d-f14725047dfd.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=479fe7c8-b168-465d-b23d-f14725047dfd</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ja wir alle kennen es noch aus der Schule oder aus der Kindheit. Das beliebte Weihnachtsspiel:
Das Wichteln.
</p>
        <p>
Wer schon immer mal wissen wollte, wie viele verschiedene Möglichkeiten es gibt sich
untereinander zu beschenken, sollte sich mal folgenden Code-Snippet anschauen:
</p>
        <div class="wlWriterSmartContent" id="scid:F2210F5F-69EB-4d4c-AFF7-B8A050E9CC72:72a01cf7-42d7-4621-8516-e73992899957" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; width: 654px; padding-top: 0px">Wichteln
mit .NET<pre style="width:100%;;"><div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--><span style="color: #000000;"></span><span style="color: #0000FF;">public</span><span style="color: #000000;"></span><span style="color: #0000FF;">static</span><span style="color: #000000;"></span><span style="color: #0000FF;">int</span><span style="color: #000000;"> Wichteln(</span><span style="color: #0000FF;">int</span><span style="color: #000000;"> anzahlTeilnehmer)
{ </span><span style="color: #0000FF;">if</span><span style="color: #000000;">(anzahlTeilnehmer </span><span style="color: #000000;">&gt;=</span><span style="color: #800080;">2</span><span style="color: #000000;">) </span><span style="color: #0000FF;">return</span><span style="color: #000000;"> Convert.ToInt32(anzahlTeilnehmer </span><span style="color: #000000;">*</span><span style="color: #000000;"> Wichteln(anzahlTeilnehmer </span><span style="color: #000000;">-</span><span style="color: #000000;"></span><span style="color: #800080;">1</span><span style="color: #000000;">) </span><span style="color: #000000;">+</span><span style="color: #000000;"> Math.Pow(</span><span style="color: #000000;">-</span><span style="color: #800080;">1</span><span style="color: #000000;">,Convert.ToDouble(anzahlTeilnehmer))); </span><span style="color: #0000FF;">return</span><span style="color: #000000;"></span><span style="color: #800080;">0</span><span style="color: #000000;">;
}</span></div></pre></div>
        <p>
Das Code-Snippet basiert auf der rekursiven Formel für die Rencontre-Zahlen.
</p>
        <p>
Viel Spaß damit!
</p>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=479fe7c8-b168-465d-b23d-f14725047dfd" />
      </body>
      <title>Wichteln mit dem .NET Framework</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,479fe7c8-b168-465d-b23d-f14725047dfd.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,479fe7c8-b168-465d-b23d-f14725047dfd.aspx</link>
      <pubDate>Mon, 17 Dec 2007 15:08:44 GMT</pubDate>
      <description>&lt;p&gt;
Ja wir alle kennen es noch aus der Schule oder aus der Kindheit. Das beliebte Weihnachtsspiel:
Das Wichteln.
&lt;/p&gt;
&lt;p&gt;
Wer schon immer mal wissen wollte, wie viele verschiedene Möglichkeiten es gibt sich
untereinander zu beschenken, sollte sich mal folgenden Code-Snippet anschauen:
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:F2210F5F-69EB-4d4c-AFF7-B8A050E9CC72:72a01cf7-42d7-4621-8516-e73992899957" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; width: 654px; padding-top: 0px"&gt;Wichteln
mit .NET&lt;pre style="width:100%;;"&gt;
&lt;div&gt;
&lt;!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

--&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; Wichteln(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;int&lt;/span&gt;&lt;span style="color: #000000;"&gt; anzahlTeilnehmer)
{ &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt;(anzahlTeilnehmer &lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;=&lt;/span&gt;&lt;span style="color: #800080;"&gt;2&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; Convert.ToInt32(anzahlTeilnehmer &lt;/span&gt;&lt;span style="color: #000000;"&gt;*&lt;/span&gt;&lt;span style="color: #000000;"&gt; Wichteln(anzahlTeilnehmer &lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #000000;"&gt;+&lt;/span&gt;&lt;span style="color: #000000;"&gt; Math.Pow(&lt;/span&gt;&lt;span style="color: #000000;"&gt;-&lt;/span&gt;&lt;span style="color: #800080;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;,Convert.ToDouble(anzahlTeilnehmer))); &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #800080;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;;
}&lt;/span&gt;
&lt;/div&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
Das Code-Snippet basiert auf der rekursiven Formel für die Rencontre-Zahlen.
&lt;/p&gt;
&lt;p&gt;
Viel Spaß damit!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=479fe7c8-b168-465d-b23d-f14725047dfd" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,479fe7c8-b168-465d-b23d-f14725047dfd.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=4b7ba017-654e-4f49-a02d-74e4a5c087b2</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,4b7ba017-654e-4f49-a02d-74e4a5c087b2.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,4b7ba017-654e-4f49-a02d-74e4a5c087b2.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=4b7ba017-654e-4f49-a02d-74e4a5c087b2</wfw:commentRss>
      <slash:comments>270</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <img border="0" align="left" style="margin:10px;border:0px" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/vs2008download.PNG" />Seit
heute Morgen, dem 19.11.2007, steht Visual Studio 2008 als finale Version bei Microsoft
MSDN als Download zur Verfügung. Das lange Warten hat endlich ein Ende. 
<br />
Das erstaunliche bei diesem Visual Studio Release war jedoch, dass es keinen RC0 für
die Öffentlichkeit gegeben hat, sondern nur eine Beta (Beta2). Dafür kommt man nun
relativ früh in den Genuss der Final-Version. 
<br /><br />
Visual Studio 2008 beinhaltet viele neue Features, die das Entwickeln wiedermal sehr
vereinfachen werden. Mit dem .NET Framework 3.5 gibt es neue Sprachfeatures für C#
und VB.NET. Features wie LINQ und integrierte Office VSTO-Entwicklung gehören zu Visual
Studio 2008 ebenso dazu wie der für Webentwickler integrierte JavaScript-Debugger.
Dieser sollte für Webentwickler mit am interessantesten sein. <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=4b7ba017-654e-4f49-a02d-74e4a5c087b2" /></body>
      <title>Microsoft Visual Studio 2008 Final zum Download verfügbar!</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,4b7ba017-654e-4f49-a02d-74e4a5c087b2.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,4b7ba017-654e-4f49-a02d-74e4a5c087b2.aspx</link>
      <pubDate>Mon, 19 Nov 2007 09:44:41 GMT</pubDate>
      <description>&lt;img border="0" align="left" style="margin:10px;border:0px" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/vs2008download.PNG"&gt;Seit
heute Morgen, dem 19.11.2007, steht Visual Studio 2008 als finale Version bei Microsoft
MSDN als Download zur Verfügung. Das lange Warten hat endlich ein Ende. 
&lt;br&gt;
Das erstaunliche bei diesem Visual Studio Release war jedoch, dass es keinen RC0 für
die Öffentlichkeit gegeben hat, sondern nur eine Beta (Beta2). Dafür kommt man nun
relativ früh in den Genuss der Final-Version. 
&lt;br&gt;
&lt;br&gt;
Visual Studio 2008 beinhaltet viele neue Features, die das Entwickeln wiedermal sehr
vereinfachen werden. Mit dem .NET Framework 3.5 gibt es neue Sprachfeatures für C#
und VB.NET. Features wie LINQ und integrierte Office VSTO-Entwicklung gehören zu Visual
Studio 2008 ebenso dazu wie der für Webentwickler integrierte JavaScript-Debugger.
Dieser sollte für Webentwickler mit am interessantesten sein. &lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=4b7ba017-654e-4f49-a02d-74e4a5c087b2" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,4b7ba017-654e-4f49-a02d-74e4a5c087b2.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=74b130c6-0b0f-4d2e-bddc-492c2a2d9829</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,74b130c6-0b0f-4d2e-bddc-492c2a2d9829.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,74b130c6-0b0f-4d2e-bddc-492c2a2d9829.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=74b130c6-0b0f-4d2e-bddc-492c2a2d9829</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Über <a href="http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx">das
Blog von Scott Guthrie</a> wurde es angekündigt, große Teile des Quellcodes der .NET
Klassenbibliotheken zu veröffentlichen: 
</p>
        <blockquote>
          <p>
"One of the things my team has been working to enable has been the ability for
.NET developers to download and browse the source code of the .NET Framework libraries,
and to easily enable debugging support in them."
</p>
        </blockquote>
        <p>
Dazu zählt der Quellcode der Base Class Library (System Namespace, IO, Text,
Collections, CodeDom, Regular Expressions, usw.), ASP.NET, Windows Forms und WPF.
Zusätzlich sollen später weitere Teile veröffentlicht werden (z.B. WCF, WF und LINQ). 
</p>
        <p>
Der Quellcode wird über 2 Wege verfügbar sein: 
</p>
        <ol>
          <li>
Als Downloadpaket mit dem gesamten Quellcode</li>
          <li>
Über eine Integration in Visual Studio 2008 
</li>
        </ol>
        <p>
Microsoft verwendet für die Veröffentlichung dazu die <a title="Microsoft Reference License" href="http://www.microsoft.com/resources/sharedsource/licensingbasics/referencelicense.mspx">Microsoft
Reference License</a>, welche nur das Betrachten, nicht jedoch aber das Verarbeiten, Verändern und
Weitergeben erlaubt. 
</p>
        <p>
  
</p>
        <p>
          <img src="http://www.scottgu.com/blogposts/source/step6.jpg" />
        </p>
        <p>
          <u>Daraus profitiert man also in erster Linie beim Debuggen</u> und kann auch direkt
in die .NET Libs mit hineinschauen. 
</p>
        <p>
Was diese Veröffentlichung für das Quelloffene portable Mono-Projekt zur Folge hat,
bleibt abzuwarten. Ich könnte mir vorstellen, dass Microsoft damit die Arbeit zu einem
erleichtert, aber zum anderen auch erschweren könnte. 
</p>
        <p>
Danke an <a href="http://www.outofcoffeeexception.de/">Mathias Raacke</a> für die
Info!
</p>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=74b130c6-0b0f-4d2e-bddc-492c2a2d9829" />
      </body>
      <title>.NET Sourcecode wird ver&amp;ouml;ffentlicht!</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,74b130c6-0b0f-4d2e-bddc-492c2a2d9829.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,74b130c6-0b0f-4d2e-bddc-492c2a2d9829.aspx</link>
      <pubDate>Wed, 03 Oct 2007 20:38:27 GMT</pubDate>
      <description>&lt;p&gt;
Über &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx"&gt;das
Blog von Scott Guthrie&lt;/a&gt; wurde es angekündigt, große Teile des Quellcodes der .NET
Klassenbibliotheken zu veröffentlichen: &lt;blockquote&gt; 
&lt;p&gt;
"One of the things my team has been&amp;nbsp;working to enable has been the ability for
.NET developers to download and browse the source code of the .NET Framework libraries,
and to easily enable debugging support in them."
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Dazu zählt&amp;nbsp;der Quellcode der Base Class Library (System Namespace, IO, Text,
Collections, CodeDom, Regular Expressions, usw.), ASP.NET, Windows Forms und WPF.
Zusätzlich sollen später weitere Teile veröffentlicht werden (z.B. WCF, WF und LINQ). 
&lt;p&gt;
Der Quellcode wird über 2 Wege verfügbar sein: 
&lt;ol&gt;
&lt;li&gt;
Als Downloadpaket mit dem gesamten Quellcode&lt;/li&gt;
&lt;li&gt;
Über eine Integration in Visual Studio 2008 
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Microsoft verwendet für die Veröffentlichung dazu die &lt;a title="Microsoft Reference License" href="http://www.microsoft.com/resources/sharedsource/licensingbasics/referencelicense.mspx"&gt;Microsoft
Reference License&lt;/a&gt;, welche nur das Betrachten, nicht jedoch aber das Verarbeiten,&amp;nbsp;Verändern&amp;nbsp;und
Weitergeben erlaubt. 
&lt;p&gt;
&amp;nbsp; 
&lt;p&gt;
&lt;img src="http://www.scottgu.com/blogposts/source/step6.jpg"&gt; 
&lt;p&gt;
&lt;u&gt;Daraus profitiert man also in erster Linie beim Debuggen&lt;/u&gt; und kann auch direkt
in die .NET Libs mit hineinschauen. 
&lt;p&gt;
Was diese Veröffentlichung für das Quelloffene portable Mono-Projekt zur Folge hat,
bleibt abzuwarten. Ich könnte mir vorstellen, dass Microsoft damit die Arbeit zu einem
erleichtert, aber zum anderen auch erschweren könnte. 
&lt;p&gt;
Danke an &lt;a href="http://www.outofcoffeeexception.de/"&gt;Mathias Raacke&lt;/a&gt; für die
Info!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=74b130c6-0b0f-4d2e-bddc-492c2a2d9829" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,74b130c6-0b0f-4d2e-bddc-492c2a2d9829.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
    </item>
    <item>
      <trackback:ping>http://blogs.dotnet-braunschweig.de/Florian/Trackback.aspx?guid=c59e7eb5-86e3-4fe8-a2dd-d36a7245bf2e</trackback:ping>
      <pingback:server>http://blogs.dotnet-braunschweig.de/Florian/pingback.aspx</pingback:server>
      <pingback:target>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,c59e7eb5-86e3-4fe8-a2dd-d36a7245bf2e.aspx</pingback:target>
      <dc:creator>Florian Mätschke</dc:creator>
      <wfw:comment>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,c59e7eb5-86e3-4fe8-a2dd-d36a7245bf2e.aspx</wfw:comment>
      <wfw:commentRss>http://blogs.dotnet-braunschweig.de/Florian/SyndicationService.asmx/GetEntryCommentsRss?guid=c59e7eb5-86e3-4fe8-a2dd-d36a7245bf2e</wfw:commentRss>
      <slash:comments>5</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Es ist soweit. Ich setze meinen Plan in die Tat um, und werde mein Enzo Projekt verwirklichen.
Worum geht es dabei? 
</p>
        <p>
 
</p>
        <p>
          <a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/MeinEnzoTeil1_121B4/EnzoFerrari.png" atomicselection="true">
            <img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="182" alt="EnzoFerrari" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/MeinEnzoTeil1_121B4/EnzoFerrari_thumb.png" width="363" align="right" border="0" />
          </a>Es
handelt sich um ein Modell Auto, genauer um einen Lego Enzo Ferrari (ca 23cm x 45cm
groß, rechts auf dem Bild), der mit einem Elektromotor, Akku, PC, Webcam und WLAN
ausgestattet werden soll. Das beigestellte Teelicht auf dem Foto soll dabei nur eine
Größenordnung vermitteln.
</p>
        <p>
Der Clou an der Sache ist, dass es ein Client/Server-System werden soll. D.h. die
eigentliche KI kann auch auf einem anderen PC laufen, z.B. auf einem Laptop z.B. in
.NET ( Juhuu! :) ), oder über das Internet auf einem noch weiter entfernten Rechner,
z.B. in einem Rechenzentrum. (Was die Latenz angeht, bleibt da jedoch noch fraglich.
- Probieren geht über studieren.) 
</p>
        <p>
Die Software dabei wird einmal unter Windows und unter Linux, sowie auf dem ATMEL
Chip laufen. Ein wichtiger Punkt ist dabei die reibungslose Funktionalität der einzelnen
Komponenten untereinander. Ich habe mich daher schon im Vorfeld informiert, welche
Hardware, mit was zusammenspielt. Und die [EmbeddedPC mit Linux/Webcam/WLAN]-Kombi
eigenet sich nahezu hervorragend, da alles Quelloffen ist, bereits funktioniert, und
ein Viewer des Live-Streams der Webcam in Linux als auch in Windows mit Source-Code
verfügbar ist. 
</p>
        <p>
 
</p>
        <h4>Folgende Hardware soll für das Projekt verwendet werden:
</h4>
        <ul>
          <li>
            <strong>
              <font color="#00ff00">Lego Enzo Ferrari:</font>
              <br />
              <br />
LEGO 8653 RACERS Enzo Ferrari 1:10<br /><br /><a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/MeinEnzoTeil1_121B4/PICT0198.jpg" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="394" alt="PICT0198" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/MeinEnzoTeil1_121B4/PICT0198_thumb.jpg" width="526" border="0" /></a></strong>
          </li>
        </ul>
        <p>
 
</p>
        <ul>
          <li>
            <strong>
              <font color="#00ff00">Antriebsmotor, Servos, und weitere Elektronik:</font>
            </strong>
          </li>
          <li>
            <font color="#00ff00">
              <strong>Microcontroller ATMEL Evaluation Board:<br /><br /><a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/MeinEnzoTeil1_121B4/MicrocontrollerEvaluationBoard%20+%20Antriebsmotor%20+%20Servo.png" atomicselection="true"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="392" alt="MicrocontrollerEvaluationBoard   Antriebsmotor   Servo" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/MeinEnzoTeil1_121B4/MicrocontrollerEvaluationBoard%20+%20Antriebsmotor%20+%20Servo_thumb.png" width="527" border="0" /></a></strong>
            </font>
          </li>
        </ul>
        <p>
          <font color="#00ff00">
          </font> 
</p>
        <ul>
          <li>
            <strong>
              <font color="#ff0000">Embedded-PC: FOX Board LX 8+32:<br /></font>
            </strong>
            <strong>
              <font color="#ff0000">
                <br />
              </font>
            </strong>
            <img height="250" src="http://www.acmesystems.it/articles/00060/FOXLX816.jpg" width="381" />
            <br />
          </li>
          <p>
Software Features 
</p>
          <p>
Kernel<br />
Full Linux ver 2.4.31 (default) or 2.6.15 
</p>
          <p>
Server<br />
HTTP (WEB), FTP, SSH, TELNET 
</p>
          <p>
Driver<br />
USB Pen driver, FTDI and PROLIFIC USB to Serial Converter 
</p>
          <p>
SDK<br />
Open source SDK for Linux Systems<br />
(<a href="http://www.acmesystems.it/?id=701">Read more...</a>) 
</p>
          <p>
Language<br />
C, C++, PHP, PYTHON, etc 
</p>
          <p>
Tools<br />
Easy to use GNU C compiler service available on ACME web<br />
(<a href="http://www.acmesystems.it/?id=51">Read more...</a>) 
</p>
          <p>
Hardware Features 
</p>
          <p>
Size<br />
66 x 72 mm (2.6 x 2.8 inches) 
</p>
          <p>
Cpu<br />
Axis ETRAX 100LX<br />
32 bit, RISC, 100MHz (100MIPS) 
</p>
          <p>
Memory<br />
FOXLX816: 8MB FLASH 16MB RAM<br />
FOXLX832: 8MB FLASH 32MB RAM 
</p>
          <p>
Power<br />
Single power supply<br />
5 Volt 280mA (1 watt) 
</p>
          <p>
Ports<br />
1 Ethernet (10/100 Mb/s)<br />
2 USB 1.1<br />
1 serial console port 
</p>
          <p>
Extension<br />
2 extension sockets with IDE, SCSI, serial lines, parallel ports, I/O lines, I2C bus
interface 
</p>
          <p>
Weight<br />
37 gr 
</p>
          <p>
Temperature range<br />
0-70 °C
</p>
        </ul>
        <p>
 
</p>
        <ul>
          <li>
            <font color="#ff0000">
              <strong>Kompatible Webcam (wird zerlegt):<br /><br /></strong>
            </font>
            <font color="#000000">USB camera with built-in microphone, 
<br /></font>
            <font color="#000000">640x480, Frame rate up to 30fps,<br />
fully compatible with FOX Board.</font>
            <font color="#ff0000">
              <br />
              <br />
              <strong>
                <img src="http://www.acmesystems.it/articles/00060/LABTEC.jpg" />
              </strong>
            </font>
          </li>
        </ul>
        <p>
          <font color="#ff0000">
            <strong> </strong>
          </font>
        </p>
        <ul>
          <li>
            <font color="#ff0000">
              <strong>USB-Wlan Adapter:</strong>
            </font>
          </li>
          <p>
DWLG122<br />
Wireless USB Adapter (802.11g) 
</p>
          <p>
            <img src="http://www.acmesystems.it/articles/00060/DWLG122.jpg" />
          </p>
          <p>
  
</p>
          <li>
            <strong>
              <font color="#ff0000">Akku? (Noch nicht entschieden)</font>
            </strong>
          </li>
          <li>
            <strong>
              <font color="#ff0000">Alles andere was ich noch vergessen habe.</font>
            </strong>
          </li>
        </ul>
        <p>
          <strong>
            <font color="#ff0000">
            </font>
          </strong> 
</p>
        <h4>Das Projekt soll in mehrere Phasen aufgeteil werden
</h4>
        <ol>
          <li>
Microcontroller-Ansteuerung (ATMEL) für die Servos (Lenkung) und den Antriebsmotor
funktionsfähig<br /></li>
          <li>
Microcontroller, Antriebsmotor, Servos, Embedded-PC, Webcam und Akku eingebaut.<br /></li>
          <li>
Steuerung des Autos über Laptop möglich, Bild der Webcam auf dem Bildschirm.<br /></li>
          <li>
Beginn der KI-Programmierung in .NET!<br /></li>
          <li>
Teilnahme am Wettbewerb der TU-Braunschweig</li>
        </ol>
        <p>
 
</p>
        <h4>Sponsoring
</h4>
        <p>
Wie ihr leider sehen könnt, fehlen mir noch ein paar Bauteile:
</p>
        <ul>
          <li>
Fox-Board (ca. 120€)</li>
          <li>
USB-Webcam ( ca. 30€)</li>
          <li>
USB-Stick (ca. 30€)</li>
        </ul>
        <p>
Für Sponsoring oder Spenden jeder Form würde ich mich freuen. Wenn z.B. jemand diese
Webcam hat und eh nicht mehr benutzt, dann her damit! :)
</p>
        <h3>Für alle Sponsoren würde ich Werbe-Aufkleber am Auto selbst Befestigen. Der Werbe-Effekt
auf diesem Auto auf einer Veranstaltung, wo nur Technik-Begeisterte Roboter/Modellbauer
anwesend sind, ist sicherlich großartig.
</h3>
        <h3>
        </h3>
        <p>
          <strong>
          </strong> 
</p>
        <h4>Hilfe und Support ?
</h4>
        <p>
Na, habe ich da ein Bastler-Herz zum Leben erweckt oder aus dem Exil befreit? - Nein
im Ernst, wenn ihr Lust habt mitzubauen, dann meldet euch bei mir, <a href="mailto:f.maetschke@tu-bs.de" target="_blank">Florian
Mätschke</a>.
</p>
        <p>
Es wäre z.B. auch denkbar dieses Auto innerhalb der DotNET-Braunschweig User
Group zu realisieren.
</p>
        <p>
 
</p>
        <p>
Weitere News zum Projekt folgen, <strong>versprochen! ;)</strong></p>
        <img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=c59e7eb5-86e3-4fe8-a2dd-d36a7245bf2e" />
      </body>
      <title>Mein Enzo - Teil 1</title>
      <guid isPermaLink="false">http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,c59e7eb5-86e3-4fe8-a2dd-d36a7245bf2e.aspx</guid>
      <link>http://blogs.dotnet-braunschweig.de/Florian/PermaLink,guid,c59e7eb5-86e3-4fe8-a2dd-d36a7245bf2e.aspx</link>
      <pubDate>Mon, 10 Sep 2007 18:47:24 GMT</pubDate>
      <description>&lt;p&gt;
Es ist soweit. Ich setze meinen Plan in die Tat um, und werde mein Enzo Projekt verwirklichen.
Worum geht es dabei? 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/MeinEnzoTeil1_121B4/EnzoFerrari.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="182" alt="EnzoFerrari" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/MeinEnzoTeil1_121B4/EnzoFerrari_thumb.png" width="363" align="right" border="0"&gt;&lt;/a&gt;Es
handelt sich um ein Modell Auto, genauer um einen Lego Enzo Ferrari (ca 23cm x 45cm
groß, rechts auf dem Bild), der mit einem Elektromotor, Akku, PC, Webcam und WLAN
ausgestattet werden soll. Das beigestellte Teelicht auf dem Foto soll dabei nur eine
Größenordnung vermitteln.
&lt;/p&gt;
&lt;p&gt;
Der Clou an der Sache ist, dass es ein Client/Server-System werden soll. D.h. die
eigentliche KI kann auch auf einem anderen PC laufen, z.B. auf einem Laptop z.B. in
.NET ( Juhuu! :) ), oder&amp;nbsp;über das Internet auf einem noch weiter entfernten Rechner,
z.B. in einem Rechenzentrum. (Was die Latenz angeht, bleibt da jedoch noch fraglich.
- Probieren geht über studieren.) 
&lt;/p&gt;
&lt;p&gt;
Die Software dabei wird einmal unter Windows und unter Linux, sowie auf dem ATMEL
Chip laufen. Ein wichtiger Punkt ist dabei die reibungslose Funktionalität der einzelnen
Komponenten untereinander. Ich habe mich daher schon im Vorfeld informiert, welche
Hardware, mit was zusammenspielt. Und die [EmbeddedPC mit Linux/Webcam/WLAN]-Kombi
eigenet sich nahezu hervorragend, da alles Quelloffen ist, bereits funktioniert, und
ein Viewer des Live-Streams der&amp;nbsp;Webcam in Linux als auch in Windows mit Source-Code
verfügbar ist. 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h4&gt;Folgende Hardware soll&amp;nbsp;für das Projekt&amp;nbsp;verwendet werden:
&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;font color="#00ff00"&gt;Lego Enzo Ferrari:&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
LEGO 8653 RACERS Enzo Ferrari 1:10&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/MeinEnzoTeil1_121B4/PICT0198.jpg" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="394" alt="PICT0198" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/MeinEnzoTeil1_121B4/PICT0198_thumb.jpg" width="526" border="0"&gt;&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;font color="#00ff00"&gt;Antriebsmotor, Servos, und weitere Elektronik:&lt;/font&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;font color="#00ff00"&gt;&lt;strong&gt;Microcontroller ATMEL&amp;nbsp;Evaluation Board:&lt;br&gt;
&lt;br&gt;
&lt;a href="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/MeinEnzoTeil1_121B4/MicrocontrollerEvaluationBoard%20+%20Antriebsmotor%20+%20Servo.png" atomicselection="true"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="392" alt="MicrocontrollerEvaluationBoard   Antriebsmotor   Servo" src="http://blogs.dotnet-braunschweig.de/Florian/content/binary/WindowsLiveWriter/MeinEnzoTeil1_121B4/MicrocontrollerEvaluationBoard%20+%20Antriebsmotor%20+%20Servo_thumb.png" width="527" border="0"&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color="#00ff00"&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;font color="#ff0000"&gt;Embedded-PC: FOX Board LX 8+32:&lt;br&gt;
&lt;/font&gt;&lt;/strong&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;
&lt;br&gt;
&lt;/font&gt;&lt;/strong&gt;&lt;img height="250" src="http://www.acmesystems.it/articles/00060/FOXLX816.jpg" width="381"&gt; 
&lt;br&gt;
&lt;/li&gt;
&lt;p&gt;
Software Features 
&lt;p&gt;
Kernel&lt;br&gt;
Full Linux ver 2.4.31 (default) or 2.6.15 
&lt;p&gt;
Server&lt;br&gt;
HTTP (WEB), FTP, SSH, TELNET 
&lt;p&gt;
Driver&lt;br&gt;
USB Pen driver, FTDI and PROLIFIC USB to Serial Converter 
&lt;p&gt;
SDK&lt;br&gt;
Open source SDK for Linux Systems&lt;br&gt;
(&lt;a href="http://www.acmesystems.it/?id=701"&gt;Read more...&lt;/a&gt;) 
&lt;p&gt;
Language&lt;br&gt;
C, C++, PHP, PYTHON, etc 
&lt;p&gt;
Tools&lt;br&gt;
Easy to use GNU C compiler service available on ACME web&lt;br&gt;
(&lt;a href="http://www.acmesystems.it/?id=51"&gt;Read more...&lt;/a&gt;) 
&lt;p&gt;
Hardware Features 
&lt;p&gt;
Size&lt;br&gt;
66 x 72 mm (2.6 x 2.8 inches) 
&lt;p&gt;
Cpu&lt;br&gt;
Axis ETRAX 100LX&lt;br&gt;
32 bit, RISC, 100MHz (100MIPS) 
&lt;p&gt;
Memory&lt;br&gt;
FOXLX816: 8MB FLASH 16MB RAM&lt;br&gt;
FOXLX832: 8MB FLASH 32MB RAM 
&lt;p&gt;
Power&lt;br&gt;
Single power supply&lt;br&gt;
5 Volt 280mA (1 watt) 
&lt;p&gt;
Ports&lt;br&gt;
1 Ethernet (10/100 Mb/s)&lt;br&gt;
2 USB 1.1&lt;br&gt;
1 serial console port 
&lt;p&gt;
Extension&lt;br&gt;
2 extension sockets with IDE, SCSI, serial lines, parallel ports, I/O lines, I2C bus
interface 
&lt;p&gt;
Weight&lt;br&gt;
37 gr 
&lt;p&gt;
Temperature range&lt;br&gt;
0-70 °C
&lt;/p&gt;
&lt;/ul&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color="#ff0000"&gt;&lt;strong&gt;Kompatible Webcam (wird zerlegt):&lt;br&gt;
&lt;br&gt;
&lt;/strong&gt;&lt;/font&gt;&lt;font color="#000000"&gt;USB camera with built-in microphone, 
&lt;br&gt;
&lt;/font&gt;&lt;font color="#000000"&gt;640x480, Frame rate up to 30fps,&lt;br&gt;
fully compatible with FOX Board.&lt;/font&gt;&lt;font color="#ff0000"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;strong&gt;&lt;img src="http://www.acmesystems.it/articles/00060/LABTEC.jpg"&gt;&lt;/strong&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;font color="#ff0000"&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;font color="#ff0000"&gt;&lt;strong&gt;USB-Wlan Adapter:&lt;/strong&gt;&lt;/font&gt;
&lt;/li&gt;
&lt;p&gt;
DWLG122&lt;br&gt;
Wireless USB Adapter (802.11g) 
&lt;p&gt;
&lt;img src="http://www.acmesystems.it/articles/00060/DWLG122.jpg"&gt; 
&lt;p&gt;
&amp;nbsp; 
&lt;li&gt;
&lt;strong&gt;&lt;font color="#ff0000"&gt;Akku? (Noch nicht entschieden)&lt;/font&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;font color="#ff0000"&gt;Alles andere was ich noch vergessen habe.&lt;/font&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;&lt;font color="#ff0000"&gt;&lt;/font&gt;&lt;/strong&gt;&amp;nbsp;
&lt;/p&gt;
&lt;h4&gt;Das Projekt soll in mehrere Phasen aufgeteil werden
&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;
Microcontroller-Ansteuerung (ATMEL) für die Servos (Lenkung) und den Antriebsmotor
funktionsfähig&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Microcontroller, Antriebsmotor, Servos, Embedded-PC, Webcam und Akku eingebaut.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Steuerung des Autos über Laptop möglich, Bild der Webcam auf dem Bildschirm.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Beginn der KI-Programmierung in .NET!&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
Teilnahme am Wettbewerb der TU-Braunschweig&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h4&gt;Sponsoring
&lt;/h4&gt;
&lt;p&gt;
Wie ihr leider sehen könnt, fehlen mir noch ein paar Bauteile:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
Fox-Board (ca. 120€)&lt;/li&gt;
&lt;li&gt;
USB-Webcam ( ca. 30€)&lt;/li&gt;
&lt;li&gt;
USB-Stick (ca. 30€)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Für Sponsoring oder Spenden jeder Form würde ich mich freuen. Wenn z.B. jemand diese
Webcam hat und eh nicht mehr benutzt, dann her damit! :)
&lt;/p&gt;
&lt;h3&gt;Für alle Sponsoren würde ich Werbe-Aufkleber am Auto selbst Befestigen. Der Werbe-Effekt
auf diesem Auto&amp;nbsp;auf einer Veranstaltung, wo nur Technik-Begeisterte Roboter/Modellbauer
anwesend sind, ist sicherlich großartig.
&lt;/h3&gt;
&lt;h3&gt;
&lt;/h3&gt;
&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;&amp;nbsp;
&lt;/p&gt;
&lt;h4&gt;Hilfe und Support ?
&lt;/h4&gt;
&lt;p&gt;
Na, habe ich da ein Bastler-Herz zum Leben erweckt oder aus dem Exil befreit? - Nein
im Ernst, wenn ihr Lust habt mitzubauen, dann meldet euch bei mir, &lt;a href="mailto:f.maetschke@tu-bs.de" target="_blank"&gt;Florian
Mätschke&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
Es wäre z.B. auch denkbar dieses Auto&amp;nbsp;innerhalb der DotNET-Braunschweig User
Group zu realisieren.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Weitere News zum Projekt folgen, &lt;strong&gt;versprochen! ;)&lt;/strong&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blogs.dotnet-braunschweig.de/Florian/aggbug.ashx?id=c59e7eb5-86e3-4fe8-a2dd-d36a7245bf2e" /&gt;</description>
      <comments>http://blogs.dotnet-braunschweig.de/Florian/CommentView,guid,c59e7eb5-86e3-4fe8-a2dd-d36a7245bf2e.aspx</comments>
      <category>.NET</category>
      <category>C#</category>
      <category>Enzo Ferrari</category>
    </item>
  </channel>
</rss>