<?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>artiso Blog - Know-How</title>
    <link>http://www.artiso.com/ProBlog/</link>
    <description>Neues rund um's Thema .Net</description>
    <language>de-de</language>
    <copyright>Thomas</copyright>
    <lastBuildDate>Fri, 13 Feb 2009 11:13:52 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>tschissler@artiso.com</managingEditor>
    <webMaster>tschissler@artiso.com</webMaster>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=c452a3fe-3660-44ca-b998-c392d0c6944b</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,c452a3fe-3660-44ca-b998-c392d0c6944b.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,c452a3fe-3660-44ca-b998-c392d0c6944b.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=c452a3fe-3660-44ca-b998-c392d0c6944b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DaruiszParysbeider.NetDeveloperGroupUlm_ABBC/clip_image001_2.gif">
            <img title="clip_image001" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="108" alt="clip_image001" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DaruiszParysbeider.NetDeveloperGroupUlm_ABBC/clip_image001_thumb.gif" width="783" border="0" />
          </a>
        </p>
        <p>
Beim nächsten Treffen der .Net Developer-Group Ulm dürfen wir diesesmal Dariusz Parys
begrüßen, der zum Thema “Architektur der Datenanbindungsschicht, insbesondere ADO.NET
Data Services und Entity Framework” spricht. Der Abstract verspricht schon mal einen
sehr spannenden Abend:
</p>
        <blockquote>
          <p>
LINQ to SQL, ADO.NET, Entity Framework, Entity Data Model, REST mit ADO.NET Data Services
oder Serialisierung mit WCF ? – neben einem Überblick über die Alternativen und detailliertere
Darstellung des Entity Frameworks wird darauf eingegangen, welche Kriterien beim O/R-Mapping
zur Bewertung zur Verfügung stehen und diskutiert, welcher Nutzen darin liegt, die
Datenanbindung von einer technischen Ebene auf eine logische zu heben.
</p>
        </blockquote>
        <p>
Ích glaube das dürfte ein Themengebiet sein mit dem im Moment jeder Entwickler in
irgendeiner Weise käpft und so dürfte sich Dariusz schon mal auf eine ganze Reihe
von Fragen einstellen (Mir selbst fallen da schon eine ganze Reihe ein). 
</p>
        <p>
Wer also Interesse an dem Thema hat, ist herzlich eingeladen am Dienstag 17.02.2008
um 18:00 zu uns zu kommen.
</p>
        <p>
Weitere Infos unter:
</p>
        <p>
          <a href="http://www.dotnet-ulm.de">http://www.dotnet-ulm.de</a>
        </p>
        <p>
 
</p>
        <p>
          <font face="Times New Roman" size="3"> </font>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=c452a3fe-3660-44ca-b998-c392d0c6944b" />
      </body>
      <title>Daruisz Parys bei der .Net Developer-Group Ulm</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,c452a3fe-3660-44ca-b998-c392d0c6944b.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,c452a3fe-3660-44ca-b998-c392d0c6944b.aspx</link>
      <pubDate>Fri, 13 Feb 2009 11:13:52 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DaruiszParysbeider.NetDeveloperGroupUlm_ABBC/clip_image001_2.gif"&gt;&lt;img title="clip_image001" style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" height="108" alt="clip_image001" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/DaruiszParysbeider.NetDeveloperGroupUlm_ABBC/clip_image001_thumb.gif" width="783" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Beim nächsten Treffen der .Net Developer-Group Ulm dürfen wir diesesmal Dariusz Parys
begrüßen, der zum Thema “Architektur der Datenanbindungsschicht, insbesondere ADO.NET
Data Services und Entity Framework” spricht. Der Abstract verspricht schon mal einen
sehr spannenden Abend:
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
LINQ to SQL, ADO.NET, Entity Framework, Entity Data Model, REST mit ADO.NET Data Services
oder Serialisierung mit WCF ? – neben einem Überblick über die Alternativen und detailliertere
Darstellung des Entity Frameworks wird darauf eingegangen, welche Kriterien beim O/R-Mapping
zur Bewertung zur Verfügung stehen und diskutiert, welcher Nutzen darin liegt, die
Datenanbindung von einer technischen Ebene auf eine logische zu heben.
&lt;/p&gt;
&lt;/blockquote&gt; 
&lt;p&gt;
Ích glaube das dürfte ein Themengebiet sein mit dem im Moment jeder Entwickler in
irgendeiner Weise käpft und so dürfte sich Dariusz schon mal auf eine ganze Reihe
von Fragen einstellen (Mir selbst fallen da schon eine ganze Reihe ein). 
&lt;/p&gt;
&lt;p&gt;
Wer also Interesse an dem Thema hat, ist herzlich eingeladen am Dienstag 17.02.2008
um 18:00 zu uns zu kommen.
&lt;/p&gt;
&lt;p&gt;
Weitere Infos unter:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.dotnet-ulm.de"&gt;http://www.dotnet-ulm.de&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;font face="Times New Roman" size="3"&gt;&amp;nbsp;&lt;/font&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=c452a3fe-3660-44ca-b998-c392d0c6944b" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,c452a3fe-3660-44ca-b998-c392d0c6944b.aspx</comments>
      <category>.Net 3.5;ADO.Net;Architektur;Know-How;Vorträge</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=8cff1937-f4d1-41a4-8124-64efde3d5e2a</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,8cff1937-f4d1-41a4-8124-64efde3d5e2a.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,8cff1937-f4d1-41a4-8124-64efde3d5e2a.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=8cff1937-f4d1-41a4-8124-64efde3d5e2a</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <img alt="ApplicationArchitectureGuidev2.GIF" src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=AppArchGuide&amp;DownloadId=47591" />
        </p>
        <p>
Das patterns &amp; practices Team hat einen Application Architect Guide veröffentlicht.
Das 365 Seiten umfassende Dokument kann kostenlos von CodePlex heruntergeladen werden
und beschreibt Architekturansätze für Windows, Web, Mobile und andere Anwendungen.
Neben theoretischen Grundlagen werden auch explizite Guidelines für verschiedene Design-Aspekte
einer Anwendung beschrieben. 
</p>
        <p>
Absolut empfehlenswert!
</p>
        <p>
          <a href="http://www.codeplex.com/AppArchGuide">patterns &amp; practices: Application
Architecture Guide 2.0 (The Book) - Home</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=8cff1937-f4d1-41a4-8124-64efde3d5e2a" />
      </body>
      <title>patterns &amp;amp; practices: Application Architecture Guide 2.0</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,8cff1937-f4d1-41a4-8124-64efde3d5e2a.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,8cff1937-f4d1-41a4-8124-64efde3d5e2a.aspx</link>
      <pubDate>Wed, 26 Nov 2008 13:21:26 GMT</pubDate>
      <description>&lt;p&gt;
&lt;img alt="ApplicationArchitectureGuidev2.GIF" src="http://i3.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=AppArchGuide&amp;amp;DownloadId=47591"&gt;
&lt;/p&gt;
&lt;p&gt;
Das patterns &amp;amp; practices Team hat einen Application Architect Guide veröffentlicht.
Das 365 Seiten umfassende Dokument kann kostenlos von CodePlex heruntergeladen werden
und beschreibt Architekturansätze für Windows, Web, Mobile und andere Anwendungen.
Neben theoretischen Grundlagen werden auch explizite Guidelines für verschiedene Design-Aspekte
einer Anwendung beschrieben. 
&lt;/p&gt;
&lt;p&gt;
Absolut empfehlenswert!
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codeplex.com/AppArchGuide"&gt;patterns &amp;amp; practices: Application
Architecture Guide 2.0 (The Book) - Home&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=8cff1937-f4d1-41a4-8124-64efde3d5e2a" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,8cff1937-f4d1-41a4-8124-64efde3d5e2a.aspx</comments>
      <category>Architektur;Bücher;Know-How</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=9192c102-ee8e-44fc-bb5c-8a27300c2f41</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,9192c102-ee8e-44fc-bb5c-8a27300c2f41.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,9192c102-ee8e-44fc-bb5c-8a27300c2f41.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=9192c102-ee8e-44fc-bb5c-8a27300c2f41</wfw:commentRss>
      <title>ClickOnce und Prozessorarchitektur</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,9192c102-ee8e-44fc-bb5c-8a27300c2f41.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,9192c102-ee8e-44fc-bb5c-8a27300c2f41.aspx</link>
      <pubDate>Fri, 18 Jul 2008 11:57:09 GMT</pubDate>
      <description>&lt;p&gt;
Standardmäßig stellt Visual Studio die Prozessor-.Architektur für Anwendungen auf
"Any CPU". Vor allem mit Bibliotheken gibt es damit allerdings öfters Probleme auf
x64 Systemen, wenn die Bibliotheken unter 64Bit Betriebssystemen nicht sauber laufen.
Eine Möglichkeit ist, die Anwendung explizit für x86 zu kompilieren, dann wird diese
auch auf x64 Systemen im 32Bit Modus ausgeführt (&lt;a href="http://www.artiso.com/ProBlog/PermaLink,guid,7a7ed9ca-f830-449f-83bb-ff099dca590a.aspx"&gt;siehe
auch den Blogeintrag zur TFS-API unter x64&lt;/a&gt;).
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/ct.ashx?id=7a7ed9ca-f830-449f-83bb-ff099dca590a&amp;amp;url=http%3a%2f%2fwww.artiso.com%2fProBlog%2fcontent%2fbinary%2fWindowsLiveWriter%2fTFSAPImitx64_A334%2fimage_14.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="289" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/TFSAPImitx64_A334/image_thumb_6.png" width="509" border="0"&gt;&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Allerdings muss man hier mit ClickOnce ein wenig vorsichtig sein. Wenn man eine Anwendung
zunächst mit "Any CPU" über ClickOnce verteilt hat und anschließend auf x86 umstellt,
dann meldet ClickOnce 
&lt;/p&gt;
&lt;blockquote&gt; 
&lt;p&gt;
&lt;span lang="EN-US" style="font-size: 11pt; color: #1f497d; font-family: 'Calibri','sans-serif'; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-ansi-language: en-us; mso-fareast-language: de; mso-bidi-language: ar-sa"&gt;„The
deployment identity does not match the subscription” bzw.&lt;br&gt;
&lt;span style="color: #1f497d"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;„Die
Bereitstellungsidentität stimmt nicht mit dem Abonnement überein.“&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&gt;&lt;/blockquote&gt; 
&lt;p&gt;
Verschiedene Einträge im Internet verweisen zunächst darauf, dass das Zertifikat das
Problem sein könnte. Da wir in der Zwischenzeit bei uns eine Domänen-Umstellung hatte,
war diese Erklärung zunächst auch sehr plausibel. Dann stellte sich allerdings heraus,
dass dieses Problem durch die Prozessor-Architektur verursacht wird. ClickOnce verwendet
diese wohl als sog. "subscription identity" und behauptet einfach, dass es sich dabei
um eine andere Anwendung handelt. Um das Problem zu umgehen sollte man also bereits
beim ersten Demployment sehr gut überlegen, ob man die Anwendung nicht unter dem x86-Modus
kompiliert.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=9192c102-ee8e-44fc-bb5c-8a27300c2f41" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,9192c102-ee8e-44fc-bb5c-8a27300c2f41.aspx</comments>
      <category>Know-How;Tipps und Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=8351a1a4-48fa-4be6-b549-3f09db9eaafc</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,8351a1a4-48fa-4be6-b549-3f09db9eaafc.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,8351a1a4-48fa-4be6-b549-3f09db9eaafc.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=8351a1a4-48fa-4be6-b549-3f09db9eaafc</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Über das PropertyGrid-Control habe ich ja mehrmals gebloggt (z.B. <a href="http://www.artiso.com/ProBlog/PermaLink,guid,3603f922-4a46-470a-a6f2-d3e4acf16d50.aspx" target="_blank">hier</a>).
Dieses Control verwendie ich recht häufig um z.B. den Inhalt eigene Konfigurations-Klassen
zu editieren. Zusammen mit der XML-Serialisierung lassen sich so sehr flexible Konfigurationsmöglichkeiten
schaffen.
</p>
        <p>
Nun hatte ich die Anforderung eine dynamische Datenstruktur an ein PropertyGrid zu
binden. Da stand ich zunächst vor einem Problem. Bisher habe ich nur Objekte mit Properties
unterschiedlicher Typen an das PropertyGrid gebunden. Nun habe ich eine Liste von
Objekten, die die Elemente im PropertyGrid beschreiben. Wie aber diese an das PropertyGrid
binden?
</p>
        <p>
Das schöne ist, das das PropertyGrid sich hier als sehr flexibel erweist. Man muss
folgende Schritte durchführen:
</p>
        <ol>
          <li>
Man brauch eine Klasse für ein einzelnes Property<br /></li>
          <li>
Dann brauchen wir eine Collection für diese Properties. Diese leiten wir von CollectionBase
und ICustomTypeDescriptor ab und implementieren die Interfaces. Entscheidend ist hier
die Methode GetProperties. Hier werden nun ine PropertyDescriptionCollection aus unseren
Properties aufgebaut. Diese Methode ruft das PropertyGrid auf um sich dieProperties
zu besorgen, die es rendern soll. Hier können wir nun also von einer belibigen Datenstruktur
die benötigten 
<br />
Informationen für das PropertyGrid aufbauen.<br /></li>
          <li>
Dafür brauch wir jetzt noch einen cCustomPropertyDescriptor. Diesen leiten wir von
PropertyDescriptor ab und implementieren es.<br /></li>
          <li>
Nun können wir unsere Properties aufbauen und an das PropertyGrid binden. Ich habe
das CustomPropertyGrid als eigenes Control angelegt. Der Code ist nun sehr simpel:</li>
        </ol>
        <div>
          <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: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">void</span> Form1_Load(<span style="color: #0000ff">object</span> sender,
EventArgs e)</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: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 3:</span> cPropertyCollection
props = <span style="color: #0000ff">new</span> cPropertyCollection();</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> props.Add(<span style="color: #0000ff">new</span> cPropertyItem(<span style="color: #006080">"BoolValue"</span>, <span style="color: #006080">"This
is a boolean value"</span>, <span style="color: #0000ff">false</span>, <span style="color: #0000ff">true</span>, <span style="color: #006080">"Properties"</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"> 5:</span> props.Add(<span style="color: #0000ff">new</span> cPropertyItem(<span style="color: #006080">"StringValue"</span>, <span style="color: #006080">"This
is a string value"</span>, <span style="color: #0000ff">false</span>, <span style="color: #006080">"Test123"</span>, <span style="color: #006080">"Properties"</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> props.Add(<span style="color: #0000ff">new</span> cPropertyItem(<span style="color: #006080">"Folder"</span>, <span style="color: #006080">"Path
for folder"</span>, <span style="color: #0000ff">false</span>, <span style="color: #006080">""</span>, <span style="color: #006080">"Path"</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"> 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">this</span>.artisoPropertyGrid1.SelectedObject
= props;</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"> 9:</span> }</pre>
          </div>
        </div>
        <p>
          <br />
Damit erhält man folgendes Ergebnis. Man sieht die dynamisch angelegten Properties
mit ihrem Name, in die Kategorien untergliedert und mit der Beschreibung. Das PropertyGrid
wählt automatisch die gewohnten Controls abhängig vom Datentyp aus.<br /><br /><a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/PropertyGridmitdynamischenDatenobjektenv_14077/image_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="267" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/PropertyGridmitdynamischenDatenobjektenv_14077/image_thumb.png" width="494" border="0" /></a></p>
        <p>
Dis ist schon ganz nett. Ich möchte aber für das Folder-Property einen entsprechenden
Editor angeben können. Bei statischen Klassen vrwendet man einfach Attribute, aber
bei dynamischen? Dazu wird die verfügbare Dokumentation sehr, sehr dünn. Hierzu haben
wir auf der Property-Klasse eine Attribute-Arary. Diese Attribute können wir nun in
der GetProperties-Klasse an den cCostomPropertyDescriptor übergeben. Der Aufbau der
Properties sieht dann so aus:
</p>
        <div>
          <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: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 1:</span>
              <span style="color: #0000ff">private</span>
              <span style="color: #0000ff">void</span> Form1_Load(<span style="color: #0000ff">object</span> sender,
EventArgs e)</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: #f4f4f4; border-bottom-style: none">
              <span style="color: #606060"> 3:</span> cPropertyCollection
props = <span style="color: #0000ff">new</span> cPropertyCollection();</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> props.Add(<span style="color: #0000ff">new</span> cPropertyItem(<span style="color: #006080">"BoolValue"</span>, <span style="color: #006080">"This
is a boolean value"</span>, <span style="color: #0000ff">false</span>, <span style="color: #0000ff">true</span>, <span style="color: #006080">"Properties"</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"> 5:</span> props.Add(<span style="color: #0000ff">new</span> cPropertyItem(<span style="color: #006080">"StringValue"</span>, <span style="color: #006080">"This
is a string value"</span>, <span style="color: #0000ff">false</span>, <span style="color: #006080">"Test123"</span>, <span style="color: #006080">"Properties"</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> props.Add(<span style="color: #0000ff">new</span> cPropertyItem(<span style="color: #006080">"Folder"</span>, <span style="color: #006080">"Path
for folder"</span>, <span style="color: #0000ff">false</span>, <span style="color: #006080">""</span>, <span style="color: #006080">"Path"</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"> 7:</span>
              <span style="color: #0000ff">new</span> TypeConverterAttribute(),</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">new</span> EditorAttribute(<span style="color: #0000ff">typeof</span>(System.Windows.Forms.Design.FolderNameEditor), <span style="color: #0000ff">typeof</span>(System.Drawing.Design.UITypeEditor))));</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"> 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>
              <span style="color: #0000ff">this</span>.artisoPropertyGrid1.SelectedObject
= props;</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"> 11:</span> }</pre>
          </div>
        </div>
        <p>
 
</p>
        <p>
Nun kann man im Feld für den Wert für das Property "Folder" auf einen Button klicken
und erhält einen Dialog zur Auswahl eines Verzeichnisses.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/PropertyGridmitdynamischenDatenobjektenv_14077/image_4.png">
            <img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="524" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/PropertyGridmitdynamischenDatenobjektenv_14077/image_thumb_1.png" width="498" border="0" />
          </a>
        </p>
        <div class="wlWriterSmartContent" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:5828e483-7af9-4557-a1cd-91be4bf5d8e8" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">
          <p>
            <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/PropertyGridmitdynamischenDatenobjektenv_14077/CustomPropertyGrid.zip" target="_blank">Den
kompletten Quellcode kann man hier herunterladen.</a>
          </p>
        </div>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=8351a1a4-48fa-4be6-b549-3f09db9eaafc" />
      </body>
      <title>PropertyGrid mit dynamischen Datenobjekten verbinden</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,8351a1a4-48fa-4be6-b549-3f09db9eaafc.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,8351a1a4-48fa-4be6-b549-3f09db9eaafc.aspx</link>
      <pubDate>Fri, 04 Apr 2008 22:17:09 GMT</pubDate>
      <description>&lt;p&gt;
Über das PropertyGrid-Control habe ich ja mehrmals gebloggt (z.B. &lt;a href="http://www.artiso.com/ProBlog/PermaLink,guid,3603f922-4a46-470a-a6f2-d3e4acf16d50.aspx" target="_blank"&gt;hier&lt;/a&gt;).
Dieses Control verwendie ich recht häufig um z.B. den Inhalt eigene Konfigurations-Klassen
zu editieren. Zusammen mit der XML-Serialisierung lassen sich so sehr flexible Konfigurationsmöglichkeiten
schaffen.
&lt;/p&gt;
&lt;p&gt;
Nun hatte ich die Anforderung eine dynamische Datenstruktur an ein PropertyGrid zu
binden. Da stand ich zunächst vor einem Problem. Bisher habe ich nur Objekte mit Properties
unterschiedlicher Typen an das PropertyGrid gebunden. Nun habe ich eine Liste von
Objekten, die die Elemente im PropertyGrid beschreiben. Wie aber diese an das PropertyGrid
binden?
&lt;/p&gt;
&lt;p&gt;
Das schöne ist, das das PropertyGrid sich hier als sehr flexibel erweist. Man muss
folgende Schritte durchführen:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Man brauch eine Klasse für ein einzelnes Property&lt;br&gt;
&lt;li&gt;
Dann brauchen wir eine Collection für diese Properties. Diese leiten wir von CollectionBase
und ICustomTypeDescriptor ab und implementieren die Interfaces. Entscheidend ist hier
die Methode GetProperties. Hier werden nun ine PropertyDescriptionCollection aus unseren
Properties aufgebaut. Diese Methode ruft das PropertyGrid auf um sich dieProperties
zu besorgen, die es rendern soll. Hier können wir nun also von einer belibigen Datenstruktur
die benötigten 
&lt;br&gt;
Informationen für das PropertyGrid aufbauen.&lt;br&gt;
&lt;li&gt;
Dafür brauch wir jetzt noch einen cCustomPropertyDescriptor. Diesen leiten wir von
PropertyDescriptor ab und implementieren es.&lt;br&gt;
&lt;li&gt;
Nun können wir unsere Properties aufbauen und an das PropertyGrid binden. Ich habe
das CustomPropertyGrid als eigenes Control angelegt. Der Code ist nun sehr simpel:&lt;/li&gt;
&lt;/ol&gt;
&lt;div&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: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Form1_Load(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender,
EventArgs e)&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: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; cPropertyCollection
props = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cPropertyCollection();&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; props.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cPropertyItem(&lt;span style="color: #006080"&gt;"BoolValue"&lt;/span&gt;, &lt;span style="color: #006080"&gt;"This
is a boolean value"&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;, &lt;span style="color: #006080"&gt;"Properties"&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; 5:&lt;/span&gt; props.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cPropertyItem(&lt;span style="color: #006080"&gt;"StringValue"&lt;/span&gt;, &lt;span style="color: #006080"&gt;"This
is a string value"&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;, &lt;span style="color: #006080"&gt;"Test123"&lt;/span&gt;, &lt;span style="color: #006080"&gt;"Properties"&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; props.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cPropertyItem(&lt;span style="color: #006080"&gt;"Folder"&lt;/span&gt;, &lt;span style="color: #006080"&gt;"Path
for folder"&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;, &lt;span style="color: #006080"&gt;""&lt;/span&gt;, &lt;span style="color: #006080"&gt;"Path"&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; 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: #0000ff"&gt;this&lt;/span&gt;.artisoPropertyGrid1.SelectedObject
= props;&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; 9:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&lt;br&gt;
Damit erhält man folgendes Ergebnis. Man sieht die dynamisch angelegten Properties
mit ihrem Name, in die Kategorien untergliedert und mit der Beschreibung. Das PropertyGrid
wählt automatisch die gewohnten Controls abhängig vom Datentyp aus.&lt;br&gt;
&lt;br&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/PropertyGridmitdynamischenDatenobjektenv_14077/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="267" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/PropertyGridmitdynamischenDatenobjektenv_14077/image_thumb.png" width="494" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Dis ist schon ganz nett. Ich möchte aber für das Folder-Property einen entsprechenden
Editor angeben können. Bei statischen Klassen vrwendet man einfach Attribute, aber
bei dynamischen? Dazu wird die verfügbare Dokumentation sehr, sehr dünn. Hierzu haben
wir auf der Property-Klasse eine Attribute-Arary. Diese Attribute können wir nun in
der GetProperties-Klasse an den cCostomPropertyDescriptor übergeben. Der Aufbau der
Properties sieht dann so aus:
&lt;/p&gt;
&lt;div&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: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Form1_Load(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender,
EventArgs e)&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: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt; 3:&lt;/span&gt; cPropertyCollection
props = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cPropertyCollection();&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; props.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cPropertyItem(&lt;span style="color: #006080"&gt;"BoolValue"&lt;/span&gt;, &lt;span style="color: #006080"&gt;"This
is a boolean value"&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;, &lt;span style="color: #006080"&gt;"Properties"&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; 5:&lt;/span&gt; props.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cPropertyItem(&lt;span style="color: #006080"&gt;"StringValue"&lt;/span&gt;, &lt;span style="color: #006080"&gt;"This
is a string value"&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;, &lt;span style="color: #006080"&gt;"Test123"&lt;/span&gt;, &lt;span style="color: #006080"&gt;"Properties"&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; props.Add(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cPropertyItem(&lt;span style="color: #006080"&gt;"Folder"&lt;/span&gt;, &lt;span style="color: #006080"&gt;"Path
for folder"&lt;/span&gt;, &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;, &lt;span style="color: #006080"&gt;""&lt;/span&gt;, &lt;span style="color: #006080"&gt;"Path"&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; 7:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; TypeConverterAttribute(),&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;new&lt;/span&gt; EditorAttribute(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(System.Windows.Forms.Design.FolderNameEditor), &lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(System.Drawing.Design.UITypeEditor))));&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; 9:&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; 10:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.artisoPropertyGrid1.SelectedObject
= props;&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; 11:&lt;/span&gt; }&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Nun kann man im Feld für den Wert für das Property "Folder" auf einen Button klicken
und erhält einen Dialog zur Auswahl eines Verzeichnisses.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/PropertyGridmitdynamischenDatenobjektenv_14077/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="524" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/PropertyGridmitdynamischenDatenobjektenv_14077/image_thumb_1.png" width="498" border="0"&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:5828e483-7af9-4557-a1cd-91be4bf5d8e8" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/PropertyGridmitdynamischenDatenobjektenv_14077/CustomPropertyGrid.zip" target="_blank"&gt;Den
kompletten Quellcode kann man hier herunterladen.&lt;/a&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=8351a1a4-48fa-4be6-b549-3f09db9eaafc" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,8351a1a4-48fa-4be6-b549-3f09db9eaafc.aspx</comments>
      <category>Know-How;Tipps und Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=be4cca26-17cf-46da-ae27-fd9e6b895afd</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,be4cca26-17cf-46da-ae27-fd9e6b895afd.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,be4cca26-17cf-46da-ae27-fd9e6b895afd.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=be4cca26-17cf-46da-ae27-fd9e6b895afd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In diesem White Paper werden verschiedene Konzepte für das Requirement Management
mit Visual Studio und einigen 3rd Party Tools beschrieben. Leider fehlt bei den 3rd
Party Tools unser <a href="http://www.artiso.com/?Page=90" target="_blank">artiso
WorkitemManager</a> ;-)
</p>
        <p>
          <a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EEF7BB41-C686-4C9F-990B-F78ACE01C191&amp;displaylang=en#filelist">http://www.microsoft.com/downloads/details.aspx?FamilyId=EEF7BB41-C686-4C9F-990B-F78ACE01C191&amp;displaylang=en#filelist</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=be4cca26-17cf-46da-ae27-fd9e6b895afd" />
      </body>
      <title>Requirement Management mit Visual Studio Team System White Paper</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,be4cca26-17cf-46da-ae27-fd9e6b895afd.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,be4cca26-17cf-46da-ae27-fd9e6b895afd.aspx</link>
      <pubDate>Mon, 17 Mar 2008 23:27:12 GMT</pubDate>
      <description>&lt;p&gt;
In diesem White Paper werden verschiedene Konzepte für das Requirement Management
mit Visual Studio und einigen 3rd Party Tools beschrieben. Leider fehlt bei den 3rd
Party Tools unser &lt;a href="http://www.artiso.com/?Page=90" target="_blank"&gt;artiso
WorkitemManager&lt;/a&gt; ;-)
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=EEF7BB41-C686-4C9F-990B-F78ACE01C191&amp;amp;displaylang=en#filelist"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=EEF7BB41-C686-4C9F-990B-F78ACE01C191&amp;amp;displaylang=en#filelist&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=be4cca26-17cf-46da-ae27-fd9e6b895afd" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,be4cca26-17cf-46da-ae27-fd9e6b895afd.aspx</comments>
      <category>Know-How;Team System Server</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=4614e22e-6861-40f9-b030-0177fb8a2b40</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,4614e22e-6861-40f9-b030-0177fb8a2b40.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,4614e22e-6861-40f9-b030-0177fb8a2b40.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=4614e22e-6861-40f9-b030-0177fb8a2b40</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Objekte und Listen lassen sich jetzt in C# 3.0 sehr schön initialisieren. War bisher
um ein relativ einfaches Objekt zu initialisieren sehr viel Code erforderlich, hat
sich das nun deutlich verkürzt:
</p>
        <p>
Bisher:
</p>
        <div>
          <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">List&lt;cProduct&gt; Products = <span style="color: #0000ff">new</span> List&lt;cProduct&gt;();
cProduct Product = <span style="color: #0000ff">new</span> cProduct(); Product.ID
= 1; Product.BusinessDevelopmentComment = <span style="color: #006080">""</span>;
Product.MarketingComments = <span style="color: #006080">""</span>; Product.VersionDescriptions
= <span style="color: #0000ff">new</span> List&lt;cProductVersionDescription&gt;();
Product.INNs = <span style="color: #0000ff">new</span> List&lt;cProductINNItem&gt;();
cProductVersionDescription VersionDescription = <span style="color: #0000ff">new</span> cProductVersionDescription();
VersionDescription.ID = 1; VersionDescription.LastPCMDate = DateTime.Now; VersionDescription.LastPCMDecision
= <span style="color: #006080">"Go"</span>; VersionDescription.NPV = 689.54; VersionDescription.ProductID
= 1; VersionDescription.ProductVersionID = 1; VersionDescription.VersionName = <span style="color: #006080">"Version1"</span>;
Product.VersionDescriptions.Add(VersionDescription); cProductINNItem INN = <span style="color: #0000ff">new</span> cProductINNItem();
INN.INN = 8; INN.Dosage = 1.5; INN.DosageUnit = 1; INN.Volume = 1; INN.Comment = <span style="color: #006080">"Test-Comment"</span>;
INN.INNOrder = 1; Product.INNs.Add(INN); INN = <span style="color: #0000ff">new</span> cProductINNItem();
INN.INN = 2; INN.Dosage = 2.5; INN.DosageUnit = 2; INN.Volume = 2; INN.Comment = <span style="color: #006080">"Test-Comment2"</span>;
INN.INNOrder = 2; Product.INNs.Add(INN);</pre>
        </div>
        <div> 
</div>
        <p>
Neu mit C#3.0:
</p>
        <div>
          <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">List&lt;cProduct&gt; Products = <span style="color: #0000ff">new</span> List&lt;cProduct&gt;
{ <span style="color: #0000ff">new</span> cProduct{ ID = 1, BusinessDevelopmentComment
= <span style="color: #006080">""</span>, MarketingComments = <span style="color: #006080">""</span>,
VersionDescriptions = <span style="color: #0000ff">new</span> List&lt;cProductVersionDescription&gt;
{ <span style="color: #0000ff">new</span> cProductVersionDescription{ ID=1, LastPCMDate=DateTime.Now,
LastPCMDecision=<span style="color: #006080">"Go"</span>, NPV=689.54, ProductID=1,
ProductVersionID=1, VersionName=<span style="color: #006080">"Version1"</span>} },
INNs = <span style="color: #0000ff">new</span> List&lt;cProductINNItem&gt; { <span style="color: #0000ff">new</span> cProductINNItem{
INN=8, Dosage=1.5, DosageUnit=1, Volume=1, Comment=<span style="color: #006080">"Test-Comment"</span>,
INNOrder=1}, <span style="color: #0000ff">new</span> cProductINNItem{ INN=2, Dosage=2.5,
DosageUnit=2, Volume=2, Comment=<span style="color: #006080">"Test-Comment2"</span>,
INNOrder=2} } } };</pre>
        </div>
        <p>
 
</p>
        <p>
Bisher konnte man den Code noch etwas vereinfachen, indem man einen entsprechenden
Konstruktor für die Objekte erstellt hat, in dem die Initialisierungswerte übergeben
werden konnten. Hier bietet die neue Version aber den Vorteil, dass diese leichter
zu leesen ist, da die Parameter hier entsprechend bezeichnet sind. Beim Konstruktor
musste immer Intellisense zu Hilfe genommen werden um herauszufinden, um welchen Parameter
es sich handelt.
</p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=4614e22e-6861-40f9-b030-0177fb8a2b40" />
      </body>
      <title>Objekte und Listen in C# 3.0 initialisieren</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,4614e22e-6861-40f9-b030-0177fb8a2b40.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,4614e22e-6861-40f9-b030-0177fb8a2b40.aspx</link>
      <pubDate>Sat, 06 Oct 2007 16:17:22 GMT</pubDate>
      <description>&lt;p&gt;
Objekte und Listen lassen sich jetzt in C# 3.0 sehr schön initialisieren. War bisher
um ein relativ einfaches Objekt zu initialisieren sehr viel Code erforderlich, hat
sich das nun deutlich verkürzt:
&lt;/p&gt;
&lt;p&gt;
Bisher:
&lt;/p&gt;
&lt;div&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;List&amp;lt;cProduct&amp;gt; Products = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;cProduct&amp;gt;();
cProduct Product = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cProduct(); Product.ID
= 1; Product.BusinessDevelopmentComment = &lt;span style="color: #006080"&gt;""&lt;/span&gt;;
Product.MarketingComments = &lt;span style="color: #006080"&gt;""&lt;/span&gt;; Product.VersionDescriptions
= &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;cProductVersionDescription&amp;gt;();
Product.INNs = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;cProductINNItem&amp;gt;();
cProductVersionDescription VersionDescription = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cProductVersionDescription();
VersionDescription.ID = 1; VersionDescription.LastPCMDate = DateTime.Now; VersionDescription.LastPCMDecision
= &lt;span style="color: #006080"&gt;"Go"&lt;/span&gt;; VersionDescription.NPV = 689.54; VersionDescription.ProductID
= 1; VersionDescription.ProductVersionID = 1; VersionDescription.VersionName = &lt;span style="color: #006080"&gt;"Version1"&lt;/span&gt;;
Product.VersionDescriptions.Add(VersionDescription); cProductINNItem INN = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cProductINNItem();
INN.INN = 8; INN.Dosage = 1.5; INN.DosageUnit = 1; INN.Volume = 1; INN.Comment = &lt;span style="color: #006080"&gt;"Test-Comment"&lt;/span&gt;;
INN.INNOrder = 1; Product.INNs.Add(INN); INN = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cProductINNItem();
INN.INN = 2; INN.Dosage = 2.5; INN.DosageUnit = 2; INN.Volume = 2; INN.Comment = &lt;span style="color: #006080"&gt;"Test-Comment2"&lt;/span&gt;;
INN.INNOrder = 2; Product.INNs.Add(INN);&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;
&lt;/div&gt;
&lt;p&gt;
Neu mit C#3.0:
&lt;/p&gt;
&lt;div&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;List&amp;lt;cProduct&amp;gt; Products = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;cProduct&amp;gt;
{ &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cProduct{ ID = 1, BusinessDevelopmentComment
= &lt;span style="color: #006080"&gt;""&lt;/span&gt;, MarketingComments = &lt;span style="color: #006080"&gt;""&lt;/span&gt;,
VersionDescriptions = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;cProductVersionDescription&amp;gt;
{ &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cProductVersionDescription{ ID=1, LastPCMDate=DateTime.Now,
LastPCMDecision=&lt;span style="color: #006080"&gt;"Go"&lt;/span&gt;, NPV=689.54, ProductID=1,
ProductVersionID=1, VersionName=&lt;span style="color: #006080"&gt;"Version1"&lt;/span&gt;} },
INNs = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; List&amp;lt;cProductINNItem&amp;gt; { &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cProductINNItem{
INN=8, Dosage=1.5, DosageUnit=1, Volume=1, Comment=&lt;span style="color: #006080"&gt;"Test-Comment"&lt;/span&gt;,
INNOrder=1}, &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; cProductINNItem{ INN=2, Dosage=2.5,
DosageUnit=2, Volume=2, Comment=&lt;span style="color: #006080"&gt;"Test-Comment2"&lt;/span&gt;,
INNOrder=2} } } };&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Bisher konnte man den Code noch etwas vereinfachen, indem man einen entsprechenden
Konstruktor für die Objekte erstellt hat, in dem die Initialisierungswerte übergeben
werden konnten. Hier bietet die neue Version aber den Vorteil, dass diese leichter
zu leesen ist, da die Parameter hier entsprechend bezeichnet sind. Beim Konstruktor
musste immer Intellisense zu Hilfe genommen werden um herauszufinden, um welchen Parameter
es sich handelt.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=4614e22e-6861-40f9-b030-0177fb8a2b40" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,4614e22e-6861-40f9-b030-0177fb8a2b40.aspx</comments>
      <category>.Net 3.5;Know-How;VS 2008</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=102fa38f-aeca-4fea-a894-251d1a5938cd</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,102fa38f-aeca-4fea-a894-251d1a5938cd.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,102fa38f-aeca-4fea-a894-251d1a5938cd.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=102fa38f-aeca-4fea-a894-251d1a5938cd</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://forums.asp.net/members/Scott-Mitchell.aspx">
            <em>
              <u>
                <font color="#0066cc">Scott
Mitchell</font>
              </u>
            </em>
          </a> hat 75 Tutorials zum Thema Data Access mit ASP.Net
2.0 geschrieben. Hier ist praktisch alles an Technologie beschrieben, was für die
Programmierung von datenbankbasierten Webanwendungen mit ASP.Net 2.0 notwendig ist.
Einzig LINQ wird momentan noch ausgespart. Eine wirklich tolle Sammlung an guten
Informationen.
</p>
        <p>
          <a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ASP.Net2.0DataAccessTutorials_9BA5/image.png" atomicselection="true">
            <img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height="373" alt="image" src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ASP.Net2.0DataAccessTutorials_9BA5/image_thumb.png" width="598" border="0" />
          </a>
        </p>
        <p>
          <a href="http://www.asp.net/learn/data-access/?lang=cs">Data Access Tutorials : The
Official Microsoft ASP.NET 2.0 Site</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=102fa38f-aeca-4fea-a894-251d1a5938cd" />
      </body>
      <title>ASP.Net 2.0 Data Access Tutorials</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,102fa38f-aeca-4fea-a894-251d1a5938cd.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,102fa38f-aeca-4fea-a894-251d1a5938cd.aspx</link>
      <pubDate>Thu, 16 Aug 2007 09:06:18 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://forums.asp.net/members/Scott-Mitchell.aspx"&gt;&lt;em&gt;&lt;u&gt;&lt;font color=#0066cc&gt;Scott
Mitchell&lt;/font&gt;&lt;/u&gt;&lt;/em&gt;&lt;/a&gt;&amp;nbsp;hat 75 Tutorials zum Thema Data Access mit ASP.Net
2.0 geschrieben. Hier ist praktisch alles an Technologie beschrieben, was für die
Programmierung von datenbankbasierten Webanwendungen mit ASP.Net 2.0 notwendig ist.
Einzig LINQ wird momentan noch ausgespart.&amp;nbsp;Eine wirklich tolle Sammlung an guten
Informationen.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ASP.Net2.0DataAccessTutorials_9BA5/image.png" atomicselection="true"&gt;&lt;img style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=373 alt=image src="http://www.artiso.com/ProBlog/content/binary/WindowsLiveWriter/ASP.Net2.0DataAccessTutorials_9BA5/image_thumb.png" width=598 border=0&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.asp.net/learn/data-access/?lang=cs"&gt;Data Access Tutorials : The
Official Microsoft ASP.NET 2.0 Site&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=102fa38f-aeca-4fea-a894-251d1a5938cd" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,102fa38f-aeca-4fea-a894-251d1a5938cd.aspx</comments>
      <category>ADO.Net;ASP.Net;Know-How;Lernen;SQL</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=f5b9a6b1-417b-4b6b-a0b3-e272ede9ce0e</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,f5b9a6b1-417b-4b6b-a0b3-e272ede9ce0e.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,f5b9a6b1-417b-4b6b-a0b3-e272ede9ce0e.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=f5b9a6b1-417b-4b6b-a0b3-e272ede9ce0e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Hat man ein typisiertes DataSet und arbeitet darin mit mehreren TableAdaptern, dann stellt
sich die Frage, wie Updates auf diesen TableAdaptern in eine Transaktion zusammengefasst
werden können. Das Problem dabei ist, dass jeder TableAdapter seine eigene Connection
nutzt. Es gibt grundsätzlich zwei Lösungsansätze:
</p>
        <ol>
          <li>
Man verwendet den TransactionScope aus dem System.Transactions-Namespace. Diese Vorgehensweise
hat allerdings den Nachteil, dass die verschiedenen Connections nur über eine
Distributed Transactions verwaltet werden können. Das ist nicht unbedingt das
Nonplusultra was die Performance angeht und eigentlich ja auch mit Kanonen auf Spatzen
geschossen, da typischerweise alle TableAdapter ja auf die gleiche Datenbank gehen
dürften und damit die Ditributed Transactions etwas überkandidelt sind.<br /></li>
          <li>
Man verwendet eine Connection für alle TableAdpater. Hierzu gibt es glücklicherweise
die Möglichkiet, dass man die Connection der Tableadapter austauschen kann. Man kann
z.B. einfach die Connection des ersten TableAdapters allen anderen zuweisen und dann
auf dieser Connection mit BeginTransaction eine neue Transaktion beginnen und diese
dann mit Commit bzw. RollBack abschließen. Alternativ kann man natürlich auch manuell
eine Connection erzeugen und diese dann allen TableAdaptern zuweisen.</li>
        </ol>
        <p>
Eine sehr schöne Beschreibung dieser Lösungsansätze hat John Waters unter folgendem
Link veröffentlicht: <a href="http://www.falafel.com/community/blogs/adonet/archive/2007/04/10/getting-tableadapters-to-participate-in-transactions.aspx">ADO.NET
: Getting TableAdapters to participate in transactions</a></p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=f5b9a6b1-417b-4b6b-a0b3-e272ede9ce0e" />
      </body>
      <title>TableAdapter typisierter DataSets und Transaktionen</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,f5b9a6b1-417b-4b6b-a0b3-e272ede9ce0e.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,f5b9a6b1-417b-4b6b-a0b3-e272ede9ce0e.aspx</link>
      <pubDate>Thu, 26 Jul 2007 16:05:23 GMT</pubDate>
      <description>&lt;p&gt;
Hat man ein typisiertes DataSet und arbeitet darin mit mehreren TableAdaptern, dann&amp;nbsp;stellt
sich die Frage,&amp;nbsp;wie Updates auf diesen TableAdaptern in eine Transaktion zusammengefasst
werden können. Das Problem dabei ist, dass jeder TableAdapter seine eigene Connection
nutzt. Es gibt grundsätzlich zwei Lösungsansätze:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Man verwendet den TransactionScope aus dem System.Transactions-Namespace. Diese Vorgehensweise
hat allerdings den Nachteil, dass die verschiedenen Connections&amp;nbsp;nur über eine
Distributed&amp;nbsp;Transactions verwaltet werden können. Das ist nicht unbedingt das
Nonplusultra was die Performance angeht und eigentlich ja auch mit Kanonen auf Spatzen
geschossen, da typischerweise alle TableAdapter ja auf die gleiche Datenbank gehen
dürften und damit die Ditributed Transactions etwas überkandidelt sind.&lt;br&gt;
&lt;li&gt;
Man verwendet eine Connection für alle TableAdpater. Hierzu gibt es glücklicherweise
die Möglichkiet, dass man die Connection der Tableadapter austauschen kann. Man kann
z.B. einfach die Connection des ersten TableAdapters allen anderen zuweisen und dann
auf dieser Connection mit BeginTransaction eine neue Transaktion beginnen und diese
dann mit Commit bzw. RollBack abschließen. Alternativ kann man natürlich auch manuell
eine Connection erzeugen und diese dann allen TableAdaptern zuweisen.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;
Eine sehr schöne Beschreibung dieser Lösungsansätze hat John Waters unter folgendem
Link veröffentlicht: &lt;a href="http://www.falafel.com/community/blogs/adonet/archive/2007/04/10/getting-tableadapters-to-participate-in-transactions.aspx"&gt;ADO.NET
: Getting TableAdapters to participate in transactions&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=f5b9a6b1-417b-4b6b-a0b3-e272ede9ce0e" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,f5b9a6b1-417b-4b6b-a0b3-e272ede9ce0e.aspx</comments>
      <category>ADO.Net;Know-How</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=43725572-d7b9-4848-be6f-83400b0f70ef</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,43725572-d7b9-4848-be6f-83400b0f70ef.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,43725572-d7b9-4848-be6f-83400b0f70ef.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=43725572-d7b9-4848-be6f-83400b0f70ef</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
 Wie man mit .net (VB2005) auf das Active Directory zugreift und dort Benutzer
ausliest und verwaltet zeigt, der Blog-Beitrag von Armin Stockner.
</p>
        <p>
          <a href="http://vb-magazin.de/forums/blogs/armin_stockner/archive/2007/04/24/8682.aspx">Link
to Armin Stockner : Active Directory with VB2005</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=43725572-d7b9-4848-be6f-83400b0f70ef" />
      </body>
      <title>Active Directory mit .net</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,43725572-d7b9-4848-be6f-83400b0f70ef.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,43725572-d7b9-4848-be6f-83400b0f70ef.aspx</link>
      <pubDate>Sat, 28 Apr 2007 08:16:53 GMT</pubDate>
      <description>&lt;p&gt;
&amp;nbsp;Wie man mit .net (VB2005) auf das Active Directory zugreift und dort Benutzer
ausliest und verwaltet zeigt, der Blog-Beitrag von Armin Stockner.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://vb-magazin.de/forums/blogs/armin_stockner/archive/2007/04/24/8682.aspx"&gt;Link
to Armin Stockner : Active Directory with VB2005&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=43725572-d7b9-4848-be6f-83400b0f70ef" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,43725572-d7b9-4848-be6f-83400b0f70ef.aspx</comments>
      <category>Know-How</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=9eec7387-cfd6-4bf7-b79b-22c21a3a1f69</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,9eec7387-cfd6-4bf7-b79b-22c21a3a1f69.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,9eec7387-cfd6-4bf7-b79b-22c21a3a1f69.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=9eec7387-cfd6-4bf7-b79b-22c21a3a1f69</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Auf Codeplex gibt es einen Guidance zu Visual Studio 2005 Team System, der
verschiedene Vorgehensweisen mit VSTS beschreibt. Themen sind u.a:
</p>
        <ul>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20To%3a%20Structure%20Your%20Windows%20Applications%20for%20Team%20Foundation%20Server&amp;referringTitle=GuidanceIndex">
              <font color="#800080">How
To: Structure Your Windows Applications for Team Foundation Server</font>
            </a>
          </li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20To%3a%20Structure%20Your%20Source%20Control%20Folders%20in%20Team%20Foundation%20Server&amp;referringTitle=GuidanceIndex">
              <font color="#0066cc">How
To: Structure Your Source Control Folders in Team Foundation Server</font>
            </a>  
</li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20To%3a%20Structure%20Your%20ASP.NET%20Applications%20for%20Team%20Foundation%20Server&amp;referringTitle=GuidanceIndex">
              <font color="#0066cc">How
To: Structure Your ASP.NET Applications for Team Foundation Server</font>
            </a>
          </li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=Explained%20-%20Structuring%20Your%20Solutions%20and%20Projects%20in%20Source%20Control%20with%20Team%20Foundation%20Server&amp;referringTitle=GuidanceIndex">
              <font color="#0066cc">Explained
- Structuring Your Solutions and Projects in Source Control with Team Foundation Server</font>
            </a>
          </li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=Explained%3a%20%20Branching%20in%20Team%20Foundation%20Server&amp;referringTitle=GuidanceIndex">
              <font color="#0066cc">Explained:
Branching in Team Foundation Server</font>
            </a>
          </li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20automate%20common%20version%20control%20tasks%20from%20the%20command%20line&amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance">
              <font color="#0066cc">How
to automate common version control tasks</font>
            </a>
          </li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20plan%20your%20branching%20structure&amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance">
              <font color="#0066cc">How
to plan your branching structure</font>
            </a>
          </li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20use%20branching%20to%20support%20a%20release&amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance">
              <font color="#0066cc">How
to use branching to support a release</font>
            </a>
          </li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20use%20branching%20to%20maintain%20a%20previous%20release&amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance">
              <font color="#0066cc">How
to use branching to maintain a previous release</font>
            </a>
          </li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20use%20branching%20to%20stabilize%20your%20development%20and%20build%20process&amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance">
              <font color="#0066cc">How
to use branching to stabilize your development and build process</font>
            </a>
          </li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20use%20branching%20to%20stabilize%20feature%20development&amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance">
              <font color="#0066cc">How
to use branching to stabilize feature development</font>
            </a>
          </li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20use%20branching%20to%20stabilize%20development%20across%20teams&amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance">
              <font color="#0066cc">How
to use branching to stabilize development across teams</font>
            </a>
          </li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20use%20branching%20to%20isolate%20external%20dependencies&amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance">
              <font color="#0066cc">How
to use branching to isolate external dependencies</font>
            </a>
          </li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20use%20TFS%20to%20perform%20continuous%20integration%20builds&amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance">
              <font color="#0066cc">How
to use TFS to perform continuous integration builds</font>
            </a>
          </li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20choose%20one%20project%20Vs%20multiple%20projects%20from%20team%20project%20perspective&amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance">
              <font color="#0066cc">How
to choose one team project vs multiple team projects</font>
            </a>
          </li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20organize%20your%20source%20tree&amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance">
              <font color="#0066cc">How
to organize your source tree</font>
            </a>
          </li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20define%20workspace%20mappings&amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance">
              <font color="#0066cc">How
to define workspace mappings</font>
            </a>
          </li>
          <li>
            <a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20use%20workspaces%20to%20isolate%20code%20changes%20on%20your%20machine&amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance">
              <font color="#0066cc">How
to use workspaces to isolate code changes on your machine</font>
            </a>
          </li>
        </ul>
        <p>
und vieles anderes mehr!
</p>
        <p>
          <a href="http://www.codeplex.com/VSTSGuidance/">Link to patterns &amp; practices:
Visual Studio 2005 Team System Guidance</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=9eec7387-cfd6-4bf7-b79b-22c21a3a1f69" />
      </body>
      <title>patterns &amp;amp; practices: Visual Studio 2005 Team System Guidance</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,9eec7387-cfd6-4bf7-b79b-22c21a3a1f69.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,9eec7387-cfd6-4bf7-b79b-22c21a3a1f69.aspx</link>
      <pubDate>Sat, 28 Apr 2007 08:06:13 GMT</pubDate>
      <description>&lt;p&gt;
Auf Codeplex gibt es&amp;nbsp;einen Guidance zu Visual Studio&amp;nbsp;2005 Team System, der
verschiedene Vorgehensweisen mit VSTS beschreibt. Themen sind u.a:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20To%3a%20Structure%20Your%20Windows%20Applications%20for%20Team%20Foundation%20Server&amp;amp;referringTitle=GuidanceIndex"&gt;&lt;font color=#800080&gt;How
To: Structure Your Windows Applications for Team Foundation Server&lt;/font&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20To%3a%20Structure%20Your%20Source%20Control%20Folders%20in%20Team%20Foundation%20Server&amp;amp;referringTitle=GuidanceIndex"&gt;&lt;font color=#0066cc&gt;How
To: Structure Your Source Control Folders in Team Foundation Server&lt;/font&gt;&lt;/a&gt;&amp;nbsp; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20To%3a%20Structure%20Your%20ASP.NET%20Applications%20for%20Team%20Foundation%20Server&amp;amp;referringTitle=GuidanceIndex"&gt;&lt;font color=#0066cc&gt;How
To: Structure Your ASP.NET Applications for Team Foundation Server&lt;/font&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=Explained%20-%20Structuring%20Your%20Solutions%20and%20Projects%20in%20Source%20Control%20with%20Team%20Foundation%20Server&amp;amp;referringTitle=GuidanceIndex"&gt;&lt;font color=#0066cc&gt;Explained
- Structuring Your Solutions and Projects in Source Control with Team Foundation Server&lt;/font&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=Explained%3a%20%20Branching%20in%20Team%20Foundation%20Server&amp;amp;referringTitle=GuidanceIndex"&gt;&lt;font color=#0066cc&gt;Explained:
Branching in Team Foundation Server&lt;/font&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20automate%20common%20version%20control%20tasks%20from%20the%20command%20line&amp;amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance"&gt;&lt;font color=#0066cc&gt;How
to automate common version control tasks&lt;/font&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20plan%20your%20branching%20structure&amp;amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance"&gt;&lt;font color=#0066cc&gt;How
to plan your branching structure&lt;/font&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20use%20branching%20to%20support%20a%20release&amp;amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance"&gt;&lt;font color=#0066cc&gt;How
to use branching to support a release&lt;/font&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20use%20branching%20to%20maintain%20a%20previous%20release&amp;amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance"&gt;&lt;font color=#0066cc&gt;How
to use branching to maintain a previous release&lt;/font&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20use%20branching%20to%20stabilize%20your%20development%20and%20build%20process&amp;amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance"&gt;&lt;font color=#0066cc&gt;How
to use branching to stabilize your development and build process&lt;/font&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20use%20branching%20to%20stabilize%20feature%20development&amp;amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance"&gt;&lt;font color=#0066cc&gt;How
to use branching to stabilize feature development&lt;/font&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20use%20branching%20to%20stabilize%20development%20across%20teams&amp;amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance"&gt;&lt;font color=#0066cc&gt;How
to use branching to stabilize development across teams&lt;/font&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20use%20branching%20to%20isolate%20external%20dependencies&amp;amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance"&gt;&lt;font color=#0066cc&gt;How
to use branching to isolate external dependencies&lt;/font&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20use%20TFS%20to%20perform%20continuous%20integration%20builds&amp;amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance"&gt;&lt;font color=#0066cc&gt;How
to use TFS to perform continuous integration builds&lt;/font&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20choose%20one%20project%20Vs%20multiple%20projects%20from%20team%20project%20perspective&amp;amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance"&gt;&lt;font color=#0066cc&gt;How
to choose one team project vs multiple team projects&lt;/font&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20organize%20your%20source%20tree&amp;amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance"&gt;&lt;font color=#0066cc&gt;How
to organize your source tree&lt;/font&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20define%20workspace%20mappings&amp;amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance"&gt;&lt;font color=#0066cc&gt;How
to define workspace mappings&lt;/font&gt;&lt;/a&gt; 
&lt;li&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/Wiki/View.aspx?title=How%20to%20use%20workspaces%20to%20isolate%20code%20changes%20on%20your%20machine&amp;amp;referringTitle=Source%20Control%20Practices%20at%20a%20Glance"&gt;&lt;font color=#0066cc&gt;How
to use workspaces to isolate code changes on your machine&lt;/font&gt;&lt;/a&gt; 
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
und vieles anderes mehr!
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codeplex.com/VSTSGuidance/"&gt;Link to patterns &amp;amp; practices:
Visual Studio 2005 Team System Guidance&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=9eec7387-cfd6-4bf7-b79b-22c21a3a1f69" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,9eec7387-cfd6-4bf7-b79b-22c21a3a1f69.aspx</comments>
      <category>Know-How;Team System Server;VS 2005</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=45aa01c0-1cbe-4f3e-bb3d-34f3ffd97f04</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,45aa01c0-1cbe-4f3e-bb3d-34f3ffd97f04.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,45aa01c0-1cbe-4f3e-bb3d-34f3ffd97f04.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=45aa01c0-1cbe-4f3e-bb3d-34f3ffd97f04</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Bei der Dotnet Usergroup Bremen wurde das Thema in einem kleinen Artikel ausführlich
diskutiert.
</p>
        <p>
          <a href="http://www.dotnet-hb.de/default.aspx?page=47&amp;id=406">Link to DOTnet Usergroup
Bremen</a>
        </p>
        <p>
Danke an Chris für den Link
</p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=45aa01c0-1cbe-4f3e-bb3d-34f3ffd97f04" />
      </body>
      <title>Was ist schneller if/else if oder switch/case?</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,45aa01c0-1cbe-4f3e-bb3d-34f3ffd97f04.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,45aa01c0-1cbe-4f3e-bb3d-34f3ffd97f04.aspx</link>
      <pubDate>Wed, 11 Apr 2007 09:11:25 GMT</pubDate>
      <description>&lt;p&gt;
Bei der&amp;nbsp;Dotnet Usergroup Bremen wurde das Thema in einem kleinen Artikel ausführlich
diskutiert.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.dotnet-hb.de/default.aspx?page=47&amp;amp;id=406"&gt;Link to DOTnet Usergroup
Bremen&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Danke an Chris für den Link
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=45aa01c0-1cbe-4f3e-bb3d-34f3ffd97f04" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,45aa01c0-1cbe-4f3e-bb3d-34f3ffd97f04.aspx</comments>
      <category>Know-How</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=c505270f-093a-4036-bfda-fd018e94a0a4</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,c505270f-093a-4036-bfda-fd018e94a0a4.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,c505270f-093a-4036-bfda-fd018e94a0a4.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=c505270f-093a-4036-bfda-fd018e94a0a4</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ein wirklich gutes Dokument zum Thema Databinding in WinForms mit Visual Studio 2005
findet sich unter 
</p>
        <p>
          <a href="http://www.windowsforms.net/Samples/Go%20To%20Market/Data%20Binding/DataBinding%20FAQ.doc#_Toc117313112">http://www.windowsforms.net/Samples/Go%20To%20Market/Data%20Binding/DataBinding%20FAQ.doc#_Toc117313112</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=c505270f-093a-4036-bfda-fd018e94a0a4" />
      </body>
      <title>Visual Studio 2005 Windows Forms DataBinding FAQ</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,c505270f-093a-4036-bfda-fd018e94a0a4.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,c505270f-093a-4036-bfda-fd018e94a0a4.aspx</link>
      <pubDate>Mon, 30 Oct 2006 10:49:20 GMT</pubDate>
      <description>&lt;p&gt;
Ein wirklich gutes Dokument zum Thema Databinding in WinForms mit Visual Studio 2005
findet sich unter 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.windowsforms.net/Samples/Go%20To%20Market/Data%20Binding/DataBinding%20FAQ.doc#_Toc117313112"&gt;http://www.windowsforms.net/Samples/Go%20To%20Market/Data%20Binding/DataBinding%20FAQ.doc#_Toc117313112&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=c505270f-093a-4036-bfda-fd018e94a0a4" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,c505270f-093a-4036-bfda-fd018e94a0a4.aspx</comments>
      <category>Know-How</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=9da148ee-ad6b-40eb-8714-5c198d3b5a8a</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,9da148ee-ad6b-40eb-8714-5c198d3b5a8a.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,9da148ee-ad6b-40eb-8714-5c198d3b5a8a.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=9da148ee-ad6b-40eb-8714-5c198d3b5a8a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
10 häufige Fallstricke bi der Veröffentlichung von ASP.Net Webseiten und deren Vermeidung,
zum Teil auch der technische Hintergrund werden in folgendem Artikel beschrieben:
</p>
        <p>
          <a href="http://www.microsoft.com/germany/msdn/library/net/aspnet/StoerungsfreiAusgefuehrteSitesDurchVermeidenDieserZehnVerbreitetenASPNETFehlerquellen.mspx?mfr=true">http://www.microsoft.com/germany/msdn/library/net/aspnet/StoerungsfreiAusgefuehrteSitesDurchVermeidenDieserZehnVerbreitetenASPNETFehlerquellen.mspx?mfr=true</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=9da148ee-ad6b-40eb-8714-5c198d3b5a8a" />
      </body>
      <title>10 Fallstricke bei der Veröffentlichung von ASP.Net Webseiten</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,9da148ee-ad6b-40eb-8714-5c198d3b5a8a.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,9da148ee-ad6b-40eb-8714-5c198d3b5a8a.aspx</link>
      <pubDate>Sun, 17 Sep 2006 20:44:47 GMT</pubDate>
      <description>&lt;p&gt;
10 häufige Fallstricke bi der Veröffentlichung von ASP.Net Webseiten und deren Vermeidung,
zum Teil auch der technische Hintergrund werden in folgendem Artikel beschrieben:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/germany/msdn/library/net/aspnet/StoerungsfreiAusgefuehrteSitesDurchVermeidenDieserZehnVerbreitetenASPNETFehlerquellen.mspx?mfr=true"&gt;http://www.microsoft.com/germany/msdn/library/net/aspnet/StoerungsfreiAusgefuehrteSitesDurchVermeidenDieserZehnVerbreitetenASPNETFehlerquellen.mspx?mfr=true&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=9da148ee-ad6b-40eb-8714-5c198d3b5a8a" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,9da148ee-ad6b-40eb-8714-5c198d3b5a8a.aspx</comments>
      <category>ASP.Net;Know-How;Unbearbeitet</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=b77e1aba-2bd8-40dd-9eb6-24e24cde5983</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,b77e1aba-2bd8-40dd-9eb6-24e24cde5983.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,b77e1aba-2bd8-40dd-9eb6-24e24cde5983.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=b77e1aba-2bd8-40dd-9eb6-24e24cde5983</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Bei der Erstellung von UIs sollte darauf geachtet werden, dass möglichst wenig Funktionalität
in der Benutzeroberfläche selbst implementiert wird. Das folgende Entwurfsmuster beschreibt
eine Vorgehensweise:
</p>
        <p>
          <a href="http://www.microsoft.com/germany/msdn/library/architecture/EntwurfsmusterModelViewPresenter.mspx?mfr=true">http://www.microsoft.com/germany/msdn/library/architecture/EntwurfsmusterModelViewPresenter.mspx?mfr=true</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=b77e1aba-2bd8-40dd-9eb6-24e24cde5983" />
      </body>
      <title>Entwurfsmuster zum Gestalten von Userinterfaces</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,b77e1aba-2bd8-40dd-9eb6-24e24cde5983.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,b77e1aba-2bd8-40dd-9eb6-24e24cde5983.aspx</link>
      <pubDate>Sun, 17 Sep 2006 20:40:07 GMT</pubDate>
      <description>&lt;p&gt;
Bei der Erstellung von UIs sollte darauf geachtet werden, dass möglichst wenig Funktionalität
in der Benutzeroberfläche selbst implementiert wird. Das folgende Entwurfsmuster beschreibt
eine Vorgehensweise:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/germany/msdn/library/architecture/EntwurfsmusterModelViewPresenter.mspx?mfr=true"&gt;http://www.microsoft.com/germany/msdn/library/architecture/EntwurfsmusterModelViewPresenter.mspx?mfr=true&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=b77e1aba-2bd8-40dd-9eb6-24e24cde5983" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,b77e1aba-2bd8-40dd-9eb6-24e24cde5983.aspx</comments>
      <category>Know-How;Unbearbeitet</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=12510518-0b47-415c-9796-47a3f04d5c87</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,12510518-0b47-415c-9796-47a3f04d5c87.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,12510518-0b47-415c-9796-47a3f04d5c87.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=12510518-0b47-415c-9796-47a3f04d5c87</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Der Artikel beschreibt wie unter ASP.Net 2.0 Ressoucen eingesetzt werden und wie sich
damit Web-Anwendungen lokalisieren lassen.
</p>
        <p>
          <a href="http://www.microsoft.com/germany/msdn/library/net/aspnet/RessourcenUndLokalisierungInASPNET20.mspx?mfr=true">http://www.microsoft.com/germany/msdn/library/net/aspnet/RessourcenUndLokalisierungInASPNET20.mspx?mfr=true</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=12510518-0b47-415c-9796-47a3f04d5c87" />
      </body>
      <title>Lokalisierung von Web-Anwendungen unter ASP.Net 2.0</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,12510518-0b47-415c-9796-47a3f04d5c87.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,12510518-0b47-415c-9796-47a3f04d5c87.aspx</link>
      <pubDate>Sat, 16 Sep 2006 20:46:35 GMT</pubDate>
      <description>&lt;p&gt;
Der Artikel beschreibt wie unter ASP.Net 2.0 Ressoucen eingesetzt werden und wie sich
damit Web-Anwendungen lokalisieren lassen.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/germany/msdn/library/net/aspnet/RessourcenUndLokalisierungInASPNET20.mspx?mfr=true"&gt;http://www.microsoft.com/germany/msdn/library/net/aspnet/RessourcenUndLokalisierungInASPNET20.mspx?mfr=true&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=12510518-0b47-415c-9796-47a3f04d5c87" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,12510518-0b47-415c-9796-47a3f04d5c87.aspx</comments>
      <category>Know-How</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=3b974795-201e-4b48-8fa2-fd1923058fd7</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,3b974795-201e-4b48-8fa2-fd1923058fd7.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,3b974795-201e-4b48-8fa2-fd1923058fd7.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=3b974795-201e-4b48-8fa2-fd1923058fd7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Die Verwaltung von Konfigurationseinstellungen hat sich in .net 2.0 gegenüber .net
1.1 geändert. Es stehen Funktionen zum Schreiben von Konfigurationsparameter und auch
benutzerspezifische Konfigurationsparameter zur Verfügung. Die Verwendung der Konfigurationeinstellungen
unter .net 2.0 beschreibt der Artikel <a href="http://msdn.microsoft.com/vcsharp/default.aspx?pull=/library/en-us/dnvs05/html/SettingsCS_RL.asp">http://msdn.microsoft.com/vcsharp/default.aspx?pull=/library/en-us/dnvs05/html/SettingsCS_RL.asp</a></p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=3b974795-201e-4b48-8fa2-fd1923058fd7" />
      </body>
      <title>Konfigurationseinstellungen unter .Net 2.0</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,3b974795-201e-4b48-8fa2-fd1923058fd7.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,3b974795-201e-4b48-8fa2-fd1923058fd7.aspx</link>
      <pubDate>Sat, 16 Sep 2006 20:40:12 GMT</pubDate>
      <description>&lt;p&gt;
Die Verwaltung von Konfigurationseinstellungen hat sich in .net 2.0 gegenüber .net
1.1 geändert. Es stehen Funktionen zum Schreiben von Konfigurationsparameter und auch
benutzerspezifische Konfigurationsparameter zur Verfügung. Die Verwendung der Konfigurationeinstellungen
unter .net 2.0 beschreibt der Artikel &lt;a href="http://msdn.microsoft.com/vcsharp/default.aspx?pull=/library/en-us/dnvs05/html/SettingsCS_RL.asp"&gt;http://msdn.microsoft.com/vcsharp/default.aspx?pull=/library/en-us/dnvs05/html/SettingsCS_RL.asp&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=3b974795-201e-4b48-8fa2-fd1923058fd7" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,3b974795-201e-4b48-8fa2-fd1923058fd7.aspx</comments>
      <category>Know-How</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=b90292c9-3061-41b3-b41a-b9a1b0981e95</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,b90292c9-3061-41b3-b41a-b9a1b0981e95.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,b90292c9-3061-41b3-b41a-b9a1b0981e95.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=b90292c9-3061-41b3-b41a-b9a1b0981e95</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
.Net Applikationen werden normalerweise Just in Time compiliert. Durch eine Vorkompilierung
können sich Vorteile in Punkto Performance uns Speichernutzung ergeben. Dazu bietet
das .net Framework das Tool NGen. Wie dieses Tool eingesetzt werden kann und was dabei
zu beachten ist beschreibt dieser deutschsprachige Artikel.
</p>
        <p>
          <a href="http://www.microsoft.com/germany/msdn/library/net/DieLeistungsvorteileDurchNGen.mspx?mfr=true">http://www.microsoft.com/germany/msdn/library/net/DieLeistungsvorteileDurchNGen.mspx?mfr=true</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=b90292c9-3061-41b3-b41a-b9a1b0981e95" />
      </body>
      <title>.Net Applikationen vorkompilieren</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,b90292c9-3061-41b3-b41a-b9a1b0981e95.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,b90292c9-3061-41b3-b41a-b9a1b0981e95.aspx</link>
      <pubDate>Tue, 29 Aug 2006 06:57:56 GMT</pubDate>
      <description>&lt;p&gt;
.Net Applikationen werden normalerweise Just in Time compiliert. Durch eine Vorkompilierung
können sich Vorteile in Punkto Performance uns Speichernutzung ergeben. Dazu bietet
das .net Framework das Tool NGen. Wie dieses Tool eingesetzt werden kann und was dabei
zu beachten ist beschreibt dieser deutschsprachige Artikel.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/germany/msdn/library/net/DieLeistungsvorteileDurchNGen.mspx?mfr=true"&gt;http://www.microsoft.com/germany/msdn/library/net/DieLeistungsvorteileDurchNGen.mspx?mfr=true&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=b90292c9-3061-41b3-b41a-b9a1b0981e95" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,b90292c9-3061-41b3-b41a-b9a1b0981e95.aspx</comments>
      <category>Know-How</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=1bdd0b88-f7a0-4cb8-8cc1-279a17e4caf5</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,1bdd0b88-f7a0-4cb8-8cc1-279a17e4caf5.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,1bdd0b88-f7a0-4cb8-8cc1-279a17e4caf5.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=1bdd0b88-f7a0-4cb8-8cc1-279a17e4caf5</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Das Buch beschreibt das Thema Threading in C' recht ausführlich und lässt sich auch
als PDF herunterladen.
</p>
        <p>
          <a href="http://www.albahari.com/threading/">http://www.albahari.com/threading/</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=1bdd0b88-f7a0-4cb8-8cc1-279a17e4caf5" />
      </body>
      <title>Kostenloses e-Book zu Theading in C#</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,1bdd0b88-f7a0-4cb8-8cc1-279a17e4caf5.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,1bdd0b88-f7a0-4cb8-8cc1-279a17e4caf5.aspx</link>
      <pubDate>Fri, 25 Aug 2006 18:03:36 GMT</pubDate>
      <description>&lt;p&gt;
Das Buch beschreibt das Thema Threading in C' recht ausführlich und lässt sich auch
als PDF herunterladen.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.albahari.com/threading/"&gt;http://www.albahari.com/threading/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=1bdd0b88-f7a0-4cb8-8cc1-279a17e4caf5" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,1bdd0b88-f7a0-4cb8-8cc1-279a17e4caf5.aspx</comments>
      <category>Know-How</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=2081d4c3-c18b-4bc9-afb3-d85851272dcf</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,2081d4c3-c18b-4bc9-afb3-d85851272dcf.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,2081d4c3-c18b-4bc9-afb3-d85851272dcf.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=2081d4c3-c18b-4bc9-afb3-d85851272dcf</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <div>
          <span class="020515513-22072005">
            <font face="Arial" size="2">Ich habe im Speicher ein
DataView mit ca. 22000 Datensätzen. Aus diesem DataView musste ich nun innerhalb einer
Schleife 55 Abfragen machen. Dazu zwei Methoden:</font>
          </span>
        </div>
        <div>
          <span class="020515513-22072005">
            <font size="2">
              <p>
                <font face="Arial">dvINNs.RowFilter = "ProductDSID = " + drProducts["ProductDSID"];<br /></font>
              </p>
            </font>
            <font face="Arial">
              <font size="2">foreach</font>
              <font size="2"> (DataRowView
drINN </font>
              <font size="2">in</font>
            </font>
            <font face="Arial">
              <font size="2"> dvINNs)<br />
{<br /><span class="020515513-22072005">...<br /></span></font>
            </font>
            <font face="Arial" size="2">}</font>
            <p>
              <span class="020515513-22072005">
                <font face="Arial" size="2">oder</font>
              </span>
            </p>
            <p>
              <font face="Arial">
                <font size="2">
                  <span class="020515513-22072005">f</span>oreach
(DataRow drINN in</font>
              </font>
              <font face="Arial" size="2"> dvINNs.Table.Select("ProductDSID
= " + drProducts["ProductDSID"]))<br /></font>
              <font face="Arial">
                <font size="2">{<br /><span class="020515513-22072005">...<br /></span></font>
              </font>
              <font face="Arial" size="2">}</font>
            </p>
            <p>
              <span class="020515513-22072005">
                <font face="Arial" size="2">Ich habe eine Zeitmessung
durchgeführt. Dies ergab für Methode I 1,5 Sek und für Methode II 0,03 Sek.
D.h. der Select ist um Faktor 50 (in meinem Beispiel) schneller als der RowFilter.</font>
              </span>
            </p>
          </span>
        </div>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=2081d4c3-c18b-4bc9-afb3-d85851272dcf" />
      </body>
      <title>Performance bei Abfragen in DataTables / DataViews</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,2081d4c3-c18b-4bc9-afb3-d85851272dcf.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,2081d4c3-c18b-4bc9-afb3-d85851272dcf.aspx</link>
      <pubDate>Thu, 24 Aug 2006 06:50:19 GMT</pubDate>
      <description>&lt;div&gt;&lt;span class=020515513-22072005&gt;&lt;font face=Arial size=2&gt;Ich habe im Speicher&amp;nbsp;ein
DataView mit ca. 22000 Datensätzen. Aus diesem DataView musste ich nun innerhalb einer
Schleife 55 Abfragen machen. Dazu zwei Methoden:&lt;/font&gt;&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;&lt;span class=020515513-22072005&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;font face=Arial&gt;dvINNs.RowFilter = "ProductDSID = " + drProducts["ProductDSID"];&lt;br&gt;
&lt;/font&gt;
&lt;/font&gt;&lt;font face=Arial&gt;&lt;font size=2&gt;foreach&lt;/font&gt;&lt;font size=2&gt; (DataRowView drINN &lt;/font&gt;&lt;font size=2&gt;in&lt;/font&gt;&lt;/font&gt;&lt;font face=Arial&gt;&lt;font size=2&gt; dvINNs)&lt;br&gt;
{&lt;br&gt;
&lt;span class=020515513-22072005&gt;...&lt;br&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=Arial size=2&gt;}&lt;/font&gt;&gt;
&lt;p&gt;
&lt;span class=020515513-22072005&gt;&lt;font face=Arial size=2&gt;oder&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Arial&gt;&lt;font size=2&gt;&lt;span class=020515513-22072005&gt;f&lt;/span&gt;oreach (DataRow
drINN in&lt;/font&gt;&lt;/font&gt;&lt;font face=Arial size=2&gt; dvINNs.Table.Select("ProductDSID =
" + drProducts["ProductDSID"]))&lt;br&gt;
&lt;/font&gt;&lt;font face=Arial&gt;&lt;font size=2&gt;{&lt;br&gt;
&lt;span class=020515513-22072005&gt;...&lt;br&gt;
&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font face=Arial size=2&gt;}&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span class=020515513-22072005&gt;&lt;font face=Arial size=2&gt;Ich habe eine Zeitmessung durchgeführt.
Dies ergab für Methode&amp;nbsp;I 1,5 Sek und für Methode&amp;nbsp;II 0,03 Sek. D.h. der Select
ist um Faktor 50 (in meinem Beispiel) schneller als der RowFilter.&lt;/font&gt;&lt;/span&gt;
&lt;/span&gt;&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=2081d4c3-c18b-4bc9-afb3-d85851272dcf" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,2081d4c3-c18b-4bc9-afb3-d85851272dcf.aspx</comments>
      <category>Know-How</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=05903037-dc86-4012-bac9-1d0907763780</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,05903037-dc86-4012-bac9-1d0907763780.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,05903037-dc86-4012-bac9-1d0907763780.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=05903037-dc86-4012-bac9-1d0907763780</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Oft möchte man den Monatsnamen eines Datums in der jeweiligen Landessprache des Anwenders
ausgeben. Dies kann man einfach mit einer Zeile Code bewerkstelligen:
</p>
        <font color="#008080" size="2">
          <p>
string MonthName = Application
</p>
        </font>
        <font color="#000000" size="2">.CurrentCulture.DateTimeFormat.MonthNames[DateTimeValue</font>
        <font size="2">
          <font color="#000000">.Month-1];</font>
        </font>
        <p>
          <font size="2">
            <font color="#000000">Alternativ kann man auch die Kurzform der Monate
über die Eigenschaft <font size="2">AbbreviatedMonthNames abfragen.</font></font>
          </font>
        </p>
        <p>
          <font size="2">
            <font color="#000000">
              <font size="2">Will man eine spezifische Sprache
zur Ausgabe verwenden, kann man dies natürlich auch tun indem man einfach das entsprechende
CultureInfo-Objekt verwendet:</font>
            </font>
          </font>
        </p>
        <font size="2">
          <font color="#000000">
            <font size="2">
              <font size="2">
                <p>
                </p>
              </font>
              <font color="#008080" size="2">CultureInfo</font>
              <font size="2"> ci = </font>
              <font color="#0000ff" size="2">new</font>
              <font size="2">
              </font>
              <font color="#008080" size="2">CultureInfo</font>
              <font size="2">(</font>
              <font color="#800000" size="2">"de-DE"</font>
              <font size="2">);<br />
ci.DateTimeFormat.MonthNames[MonthID];
</font>
            </font>
          </font>
        </font>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=05903037-dc86-4012-bac9-1d0907763780" />
      </body>
      <title>Monatsnamen in der jeweiligen Landesspreche abfragen</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,05903037-dc86-4012-bac9-1d0907763780.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,05903037-dc86-4012-bac9-1d0907763780.aspx</link>
      <pubDate>Tue, 22 Aug 2006 14:59:59 GMT</pubDate>
      <description>&lt;p&gt;
Oft möchte man den Monatsnamen eines Datums in der jeweiligen Landessprache des Anwenders
ausgeben. Dies kann man einfach mit einer Zeile Code bewerkstelligen:
&lt;/p&gt;
&lt;font color=#008080 size=2&gt; 
&lt;p&gt;
string MonthName = Application
&lt;/font&gt;&lt;font color=#000000 size=2&gt;.CurrentCulture.DateTimeFormat.MonthNames[DateTimeValue&lt;/font&gt;&lt;font size=2&gt;&lt;font color=#000000&gt;.Month-1];&lt;/font&gt;&lt;/font&gt;&gt;
&lt;p&gt;
&lt;font size=2&gt;&lt;font color=#000000&gt;Alternativ kann man auch die Kurzform der Monate
über die Eigenschaft &lt;font size=2&gt;AbbreviatedMonthNames abfragen.&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;&lt;font color=#000000&gt;&lt;font size=2&gt;Will man eine spezifische Sprache zur
Ausgabe verwenden, kann man dies natürlich auch tun indem man einfach das entsprechende
CultureInfo-Objekt verwendet:&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;font size=2&gt;&lt;font color=#000000&gt;&lt;font size=2&gt;&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#008080 size=2&gt;CultureInfo&lt;/font&gt;&lt;font size=2&gt; ci = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;new&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#008080 size=2&gt;CultureInfo&lt;/font&gt;&lt;font size=2&gt;(&lt;/font&gt;&lt;font color=#800000 size=2&gt;"de-DE"&lt;/font&gt;&lt;font size=2&gt;);&lt;br&gt;
ci.DateTimeFormat.MonthNames[MonthID];&gt;
&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=05903037-dc86-4012-bac9-1d0907763780" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,05903037-dc86-4012-bac9-1d0907763780.aspx</comments>
      <category>Know-How</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=32eb5aa1-f24b-44ae-af10-e803c217d633</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,32eb5aa1-f24b-44ae-af10-e803c217d633.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,32eb5aa1-f24b-44ae-af10-e803c217d633.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=32eb5aa1-f24b-44ae-af10-e803c217d633</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p class="blurb">
MSDN Solve ist die Lösung für alle Entwickler, die praxis-orientierte Hilfestellungen
bei typischen Programmier-Herausforderungen suchen. MSDN Solve liefert verständliche
Antworten auf immer wiederkehrende Fragen aus dem IT-Alltag und sorgt dafür, dass
Sie Stolperfallen in Software-Projekten künftig leicht umschiffen.
</p>
        <p>
          <a href="http://www.microsoft.com/germany/msdn/solve/default.mspx">http://www.microsoft.com/germany/msdn/solve/default.mspx</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=32eb5aa1-f24b-44ae-af10-e803c217d633" />
      </body>
      <title>Praxisorientierte Informationen für Entwickler</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,32eb5aa1-f24b-44ae-af10-e803c217d633.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,32eb5aa1-f24b-44ae-af10-e803c217d633.aspx</link>
      <pubDate>Mon, 14 Aug 2006 10:04:04 GMT</pubDate>
      <description>&lt;p class=blurb&gt;
MSDN Solve ist die Lösung für alle Entwickler, die praxis-orientierte Hilfestellungen
bei typischen Programmier-Herausforderungen suchen. MSDN Solve liefert verständliche
Antworten auf immer wiederkehrende Fragen aus dem IT-Alltag und sorgt dafür, dass
Sie Stolperfallen in Software-Projekten künftig leicht umschiffen.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/germany/msdn/solve/default.mspx"&gt;http://www.microsoft.com/germany/msdn/solve/default.mspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=32eb5aa1-f24b-44ae-af10-e803c217d633" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,32eb5aa1-f24b-44ae-af10-e803c217d633.aspx</comments>
      <category>.Net und drum rum;Know-How</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=8a00c6b4-2802-498a-99b9-92ccd91eafc0</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,8a00c6b4-2802-498a-99b9-92ccd91eafc0.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,8a00c6b4-2802-498a-99b9-92ccd91eafc0.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=8a00c6b4-2802-498a-99b9-92ccd91eafc0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Die aktuelle Bildschirmauflösung abzufragen ist in .NET denkbar einfach, möchte man
jedoch alle verfügbaren Auflösungen erfragen und eventuell sogar eine neue Auflösung
setzen, muss man auf die Win32 API-Mittel zurückgreifen. Dieser Beitrag stellt eine
Klasse zur Verfügung mit der mit jeweils einer Zeile Code über die verfügbaren Auflösungen
iteriert werden bzw. eine neue Auflösung festgelegt werden kann
</p>
        <p>
          <a href="http://www.codegod.de/WebAppCodeGod/Main.aspx?pid=168">http://www.codegod.de/WebAppCodeGod/Main.aspx?pid=168</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=8a00c6b4-2802-498a-99b9-92ccd91eafc0" />
      </body>
      <title>Bildschirmauflösung unter .Net abfragen und setzen</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,8a00c6b4-2802-498a-99b9-92ccd91eafc0.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,8a00c6b4-2802-498a-99b9-92ccd91eafc0.aspx</link>
      <pubDate>Mon, 14 Aug 2006 05:47:42 GMT</pubDate>
      <description>&lt;p&gt;
Die aktuelle Bildschirmauflösung abzufragen ist in .NET denkbar einfach, möchte man
jedoch alle verfügbaren Auflösungen erfragen und eventuell sogar eine neue Auflösung
setzen, muss man auf die Win32 API-Mittel zurückgreifen. Dieser Beitrag stellt eine
Klasse zur Verfügung mit der mit jeweils einer Zeile Code über die verfügbaren Auflösungen
iteriert werden bzw. eine neue Auflösung festgelegt werden kann
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.codegod.de/WebAppCodeGod/Main.aspx?pid=168"&gt;http://www.codegod.de/WebAppCodeGod/Main.aspx?pid=168&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=8a00c6b4-2802-498a-99b9-92ccd91eafc0" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,8a00c6b4-2802-498a-99b9-92ccd91eafc0.aspx</comments>
      <category>Know-How;Tipps und Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=3f1fcf0c-89c9-4701-81d5-967fafb4be89</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,3f1fcf0c-89c9-4701-81d5-967fafb4be89.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,3f1fcf0c-89c9-4701-81d5-967fafb4be89.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=3f1fcf0c-89c9-4701-81d5-967fafb4be89</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ein wenig bekanntes Control ist das FlowLayoutPanel, das in VS 2005 standardmäßig
enthalten ist. Mit diesem Control kann man Unterelemente in einer fließenden Ansicht
darstellen wie das z.B. auch von Web-Seiten bekannt ist. Sie möchten eine Liste von
Textboxen die untereinander stehen? Kein Problem mit dem FlowLayoutPanel. Sie können
eine beliebige Richtung wählen (von rechts nach links, von oben nach unten etc.).
Passen nicht alle Control in die Reihe, wird automatisch ein Umgruch eingefügt. Damit
ist das FlowLayoutPanel wesentlich flexibler als man diese Funktion z.B. mit Docking
erreichen könnte. Vor allem bei dynamisch generierten Control leistet das FlowLayoutPanel
gute Dienste!
</p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=3f1fcf0c-89c9-4701-81d5-967fafb4be89" />
      </body>
      <title>FlowLayoutPanel</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,3f1fcf0c-89c9-4701-81d5-967fafb4be89.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,3f1fcf0c-89c9-4701-81d5-967fafb4be89.aspx</link>
      <pubDate>Wed, 09 Aug 2006 12:48:34 GMT</pubDate>
      <description>&lt;p&gt;
Ein wenig bekanntes Control ist das FlowLayoutPanel, das in VS 2005 standardmäßig
enthalten ist. Mit diesem Control kann man Unterelemente in einer fließenden Ansicht
darstellen wie das z.B. auch von Web-Seiten bekannt ist. Sie möchten eine Liste von
Textboxen die untereinander stehen? Kein Problem mit dem FlowLayoutPanel. Sie können
eine beliebige Richtung wählen (von rechts nach links, von oben nach unten etc.).
Passen nicht alle Control in die Reihe, wird automatisch ein Umgruch eingefügt. Damit
ist das FlowLayoutPanel wesentlich flexibler als man diese Funktion z.B. mit Docking
erreichen könnte. Vor allem bei dynamisch generierten Control leistet das FlowLayoutPanel
gute Dienste!
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=3f1fcf0c-89c9-4701-81d5-967fafb4be89" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,3f1fcf0c-89c9-4701-81d5-967fafb4be89.aspx</comments>
      <category>Know-How;Tipps und Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=2017b61d-19f4-4e4a-a033-cbf820d2b18e</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,2017b61d-19f4-4e4a-a033-cbf820d2b18e.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,2017b61d-19f4-4e4a-a033-cbf820d2b18e.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=2017b61d-19f4-4e4a-a033-cbf820d2b18e</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Oft möchte man Daten, die aus Excel in die Zwischenablage kopiert wurden, in der Anwendung
verarbeiten. Dies geht recht einfach, da die Excel-Daten in der Zwischenablage einfach
als CSV-Format vorliegen.
</p>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#0000ff" size="2">string</font>
        <font size="2"> ExcelValue
= </font>
        <font color="#800000" size="2">""</font>
        <font size="2">;<br /></font>
        <font color="#008080" size="2">IDataObject</font>
        <font size="2"> ClipboadData
= </font>
        <font color="#008080" size="2">Clipboard</font>
        <font size="2">.GetDataObject();<br /></font>
        <font color="#0000ff" size="2">if</font>
        <font size="2"> (ClipboadData.GetDataPresent(</font>
        <font color="#008080" size="2">DataFormats</font>
        <font size="2">.CommaSeparatedValue))<br />
{<br />
   </font>
        <font color="#008080" size="2">StreamReader</font>
        <font size="2"> ExcelReader
= </font>
        <font color="#0000ff" size="2">new</font>
        <font size="2">
        </font>
        <font color="#008080" size="2">StreamReader</font>
        <font size="2">((</font>
        <font color="#008080" size="2">Stream</font>
        <font size="2">)ClipboadData.GetData(</font>
        <font color="#008080" size="2">DataFormats</font>
        <font size="2">.CommaSeparatedValue));<br />
   </font>
        <font color="#0000ff" size="2">while</font>
        <font size="2"> (!ExcelReader.EndOfStream)<br />
   {<br />
      ExcelValue = ExcelReader.ReadLine();<br />
   }<br />
}</font>
        <p>
          <font size="2">Man holt sich die Daten aus der Zwischenablage und prüft diese, ob
sie im CSV-Format vorliegen. Dann kann man mit Hilfe eines StreamReaders die Daten
lesen. Die Daten kommen dann in einem Format wie z.B. 5,8;8,9;7,5. Das lässt sich
nun problemlos in der eigenen Anwendung verarbeiten.
</font>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=2017b61d-19f4-4e4a-a033-cbf820d2b18e" />
      </body>
      <title>Excel-Daten aus Zwischenablage auslesen</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,2017b61d-19f4-4e4a-a033-cbf820d2b18e.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,2017b61d-19f4-4e4a-a033-cbf820d2b18e.aspx</link>
      <pubDate>Wed, 09 Aug 2006 12:37:59 GMT</pubDate>
      <description>&lt;p&gt;
Oft möchte man Daten, die aus Excel in die Zwischenablage kopiert wurden, in der Anwendung
verarbeiten. Dies geht recht einfach, da die Excel-Daten in der Zwischenablage einfach
als CSV-Format vorliegen.
&lt;/p&gt;
&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;string&lt;/font&gt;&lt;font size=2&gt; ExcelValue = &lt;/font&gt;&lt;font color=#800000 size=2&gt;""&lt;/font&gt;&lt;font size=2&gt;;&lt;br&gt;
&lt;/font&gt;&lt;font color=#008080 size=2&gt;IDataObject&lt;/font&gt;&lt;font size=2&gt; ClipboadData = &lt;/font&gt;&lt;font color=#008080 size=2&gt;Clipboard&lt;/font&gt;&lt;font size=2&gt;.GetDataObject();&lt;br&gt;
&lt;/font&gt;&lt;font color=#0000ff size=2&gt;if&lt;/font&gt;&lt;font size=2&gt; (ClipboadData.GetDataPresent(&lt;/font&gt;&lt;font color=#008080 size=2&gt;DataFormats&lt;/font&gt;&lt;font size=2&gt;.CommaSeparatedValue))&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color=#008080 size=2&gt;StreamReader&lt;/font&gt;&lt;font size=2&gt; ExcelReader
= &lt;/font&gt;&lt;font color=#0000ff size=2&gt;new&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#008080 size=2&gt;StreamReader&lt;/font&gt;&lt;font size=2&gt;((&lt;/font&gt;&lt;font color=#008080 size=2&gt;Stream&lt;/font&gt;&lt;font size=2&gt;)ClipboadData.GetData(&lt;/font&gt;&lt;font color=#008080 size=2&gt;DataFormats&lt;/font&gt;&lt;font size=2&gt;.CommaSeparatedValue));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;while&lt;/font&gt;&lt;font size=2&gt; (!ExcelReader.EndOfStream)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ExcelValue = ExcelReader.ReadLine();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br&gt;
}&lt;/font&gt;&gt;
&lt;p&gt;
&lt;font size=2&gt;Man holt sich die Daten aus der Zwischenablage und prüft diese, ob sie
im CSV-Format vorliegen. Dann kann man mit Hilfe eines StreamReaders die Daten lesen.
Die Daten kommen dann in einem Format wie z.B. 5,8;8,9;7,5. Das lässt sich nun problemlos
in der eigenen Anwendung verarbeiten.
&lt;/p&gt;
&gt;&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=2017b61d-19f4-4e4a-a033-cbf820d2b18e" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,2017b61d-19f4-4e4a-a033-cbf820d2b18e.aspx</comments>
      <category>Know-How;Tipps und Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=39a8ab7f-3e00-4c30-ab5a-e1dc4b8ff962</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,39a8ab7f-3e00-4c30-ab5a-e1dc4b8ff962.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,39a8ab7f-3e00-4c30-ab5a-e1dc4b8ff962.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=39a8ab7f-3e00-4c30-ab5a-e1dc4b8ff962</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Um von generischen Objekten den Typ abzufragen kann man folgenden Code verwenden:
</p>
        <font size="2">
          <p>
          </p>
        </font>
        <font color="#008080" size="2">Dictionary</font>
        <font size="2">&lt;</font>
        <font color="#0000ff" size="2">string</font>
        <font size="2">, </font>
        <font color="#0000ff" size="2">int</font>
        <font size="2">&gt;
MyObject = </font>
        <font color="#0000ff" size="2">new</font>
        <font size="2">
        </font>
        <font color="#008080" size="2">Dictionary</font>
        <font size="2">&lt;</font>
        <font color="#0000ff" size="2">string</font>
        <font size="2">, </font>
        <font color="#0000ff" size="2">int</font>
        <font size="2">&gt;();<br /></font>
        <font color="#008080" size="2">Type</font>
        <font size="2"> T = MyObject.GetType();<br /></font>
        <font color="#008080" size="2">Type</font>
        <font size="2">[] Ts = T.GetGenericArguments();</font>
        <p>
          <font size="2">Dieser Code liefert ein Array zurück, das im ersten Element System.String
und im zweiten System.Double enthält.</font>
        </p>
        <p>
          <font size="2">Weitere Infos unter <a href="http://msdn2.microsoft.com/en-us/library/b8ytshk6.aspx">http://msdn2.microsoft.com/en-us/library/b8ytshk6.aspx</a></font>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=39a8ab7f-3e00-4c30-ab5a-e1dc4b8ff962" />
      </body>
      <title>Type von generischen Objekten abfragen</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,39a8ab7f-3e00-4c30-ab5a-e1dc4b8ff962.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,39a8ab7f-3e00-4c30-ab5a-e1dc4b8ff962.aspx</link>
      <pubDate>Tue, 08 Aug 2006 12:33:43 GMT</pubDate>
      <description>&lt;p&gt;
Um von generischen Objekten den Typ abzufragen kann man folgenden Code verwenden:
&lt;/p&gt;
&lt;font size=2&gt; 
&lt;p&gt;
&lt;/font&gt;&lt;font color=#008080 size=2&gt;Dictionary&lt;/font&gt;&lt;font size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;string&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt;&amp;gt;
MyObject = &lt;/font&gt;&lt;font color=#0000ff size=2&gt;new&lt;/font&gt;&lt;font size=2&gt; &lt;/font&gt;&lt;font color=#008080 size=2&gt;Dictionary&lt;/font&gt;&lt;font size=2&gt;&amp;lt;&lt;/font&gt;&lt;font color=#0000ff size=2&gt;string&lt;/font&gt;&lt;font size=2&gt;, &lt;/font&gt;&lt;font color=#0000ff size=2&gt;int&lt;/font&gt;&lt;font size=2&gt;&amp;gt;();&lt;br&gt;
&lt;/font&gt;&lt;font color=#008080 size=2&gt;Type&lt;/font&gt;&lt;font size=2&gt; T = MyObject.GetType();&lt;br&gt;
&lt;/font&gt;&lt;font color=#008080 size=2&gt;Type&lt;/font&gt;&lt;font size=2&gt;[] Ts = T.GetGenericArguments();&lt;/font&gt;&gt;
&lt;p&gt;
&lt;font size=2&gt;Dieser Code liefert ein Array zurück, das im ersten Element System.String
und im zweiten System.Double enthält.&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font size=2&gt;Weitere Infos unter &lt;a href="http://msdn2.microsoft.com/en-us/library/b8ytshk6.aspx"&gt;http://msdn2.microsoft.com/en-us/library/b8ytshk6.aspx&lt;/a&gt;
&lt;/p&gt;
&gt;&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=39a8ab7f-3e00-4c30-ab5a-e1dc4b8ff962" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,39a8ab7f-3e00-4c30-ab5a-e1dc4b8ff962.aspx</comments>
      <category>Know-How;Tipps und Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=536c1189-c026-4fc5-873b-b8cdd040ffde</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,536c1189-c026-4fc5-873b-b8cdd040ffde.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,536c1189-c026-4fc5-873b-b8cdd040ffde.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=536c1189-c026-4fc5-873b-b8cdd040ffde</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Eine sehr umfangreiche Link-Liste zu den 3 Hauptthemen von .Net 3.0 gibt es unter:
</p>
        <p>
Teil 1: <a href="http://searchvb.techtarget.com/generic/0,295582,sid8_gci1189329,00.html">Windows
Presentation Foundation</a><br />
Teil 2: <a href="http://searchvb.techtarget.com/general/0,295582,sid8_gci1191213,00.html">Windows
Communication Foundation</a><br />
Teil 3: <a href="http://searchvb.techtarget.com/general/0,295582,sid8_gci1193920,00.html">Windows
Workflow Foundation</a></p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=536c1189-c026-4fc5-873b-b8cdd040ffde" />
      </body>
      <title>Links zu den wichtigsten Entwicklungstechnologien unter .Net 3.0</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,536c1189-c026-4fc5-873b-b8cdd040ffde.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,536c1189-c026-4fc5-873b-b8cdd040ffde.aspx</link>
      <pubDate>Fri, 04 Aug 2006 17:10:58 GMT</pubDate>
      <description>&lt;p&gt;
Eine sehr umfangreiche Link-Liste zu den 3 Hauptthemen von .Net 3.0 gibt es unter:
&lt;/p&gt;
&lt;p&gt;
Teil&amp;nbsp;1: &lt;a href="http://searchvb.techtarget.com/generic/0,295582,sid8_gci1189329,00.html"&gt;Windows
Presentation Foundation&lt;/a&gt;
&lt;br&gt;
Teil&amp;nbsp;2: &lt;a href="http://searchvb.techtarget.com/general/0,295582,sid8_gci1191213,00.html"&gt;Windows
Communication Foundation&lt;/a&gt;
&lt;br&gt;
Teil&amp;nbsp;3: &lt;a href="http://searchvb.techtarget.com/general/0,295582,sid8_gci1193920,00.html"&gt;Windows
Workflow Foundation&lt;/a&gt; 
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=536c1189-c026-4fc5-873b-b8cdd040ffde" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,536c1189-c026-4fc5-873b-b8cdd040ffde.aspx</comments>
      <category>Know-How;Unbearbeitet</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=c1754965-81c3-4ef2-a46e-a9305624dfb8</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,c1754965-81c3-4ef2-a46e-a9305624dfb8.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,c1754965-81c3-4ef2-a46e-a9305624dfb8.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=c1754965-81c3-4ef2-a46e-a9305624dfb8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Eine Reihe von interessanten Artikel findet man unter <a href="http://www.theserverside.net/tt/articles/index.tss">http://www.theserverside.net/tt/articles/index.tss</a></p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=c1754965-81c3-4ef2-a46e-a9305624dfb8" />
      </body>
      <title>Artikel-Verzeichnis zu .Net</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,c1754965-81c3-4ef2-a46e-a9305624dfb8.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,c1754965-81c3-4ef2-a46e-a9305624dfb8.aspx</link>
      <pubDate>Tue, 01 Aug 2006 18:05:21 GMT</pubDate>
      <description>&lt;p&gt;
Eine Reihe von interessanten Artikel findet man unter &lt;a href="http://www.theserverside.net/tt/articles/index.tss"&gt;http://www.theserverside.net/tt/articles/index.tss&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=c1754965-81c3-4ef2-a46e-a9305624dfb8" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,c1754965-81c3-4ef2-a46e-a9305624dfb8.aspx</comments>
      <category>Know-How;Unbearbeitet</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=c4a6c2ef-1f44-4294-9b8e-df8f3f2b2e4b</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,c4a6c2ef-1f44-4294-9b8e-df8f3f2b2e4b.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,c4a6c2ef-1f44-4294-9b8e-df8f3f2b2e4b.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=c4a6c2ef-1f44-4294-9b8e-df8f3f2b2e4b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Teil 1 : <a href="http://www.theserverside.net/tt/articles/showarticle.tss?id=UnitTest">http://www.theserverside.net/tt/articles/showarticle.tss?id=UnitTest</a><br />
Teil 2 : <a href="http://www.theserverside.net/tt/articles/showarticle.tss?id=UnitTest2">http://www.theserverside.net/tt/articles/showarticle.tss?id=UnitTest2</a><br />
Teil 3 : <a href="http://www.theserverside.net/tt/articles/showarticle.tss?id=UnitTest3">http://www.theserverside.net/tt/articles/showarticle.tss?id=UnitTest3</a></p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=c4a6c2ef-1f44-4294-9b8e-df8f3f2b2e4b" />
      </body>
      <title>Artikel-Serie zu Unit-Tests in Team System</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,c4a6c2ef-1f44-4294-9b8e-df8f3f2b2e4b.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,c4a6c2ef-1f44-4294-9b8e-df8f3f2b2e4b.aspx</link>
      <pubDate>Tue, 01 Aug 2006 18:03:54 GMT</pubDate>
      <description>&lt;p&gt;
Teil 1 : &lt;a href="http://www.theserverside.net/tt/articles/showarticle.tss?id=UnitTest"&gt;http://www.theserverside.net/tt/articles/showarticle.tss?id=UnitTest&lt;/a&gt;
&lt;br&gt;
Teil 2 : &lt;a href="http://www.theserverside.net/tt/articles/showarticle.tss?id=UnitTest2"&gt;http://www.theserverside.net/tt/articles/showarticle.tss?id=UnitTest2&lt;/a&gt;
&lt;br&gt;
Teil 3 : &lt;a href="http://www.theserverside.net/tt/articles/showarticle.tss?id=UnitTest3"&gt;http://www.theserverside.net/tt/articles/showarticle.tss?id=UnitTest3&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=c4a6c2ef-1f44-4294-9b8e-df8f3f2b2e4b" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,c4a6c2ef-1f44-4294-9b8e-df8f3f2b2e4b.aspx</comments>
      <category>Know-How;Team System Server;Unbearbeitet</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=3a9082ee-7f20-4009-820d-06436178b6d0</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,3a9082ee-7f20-4009-820d-06436178b6d0.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,3a9082ee-7f20-4009-820d-06436178b6d0.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=3a9082ee-7f20-4009-820d-06436178b6d0</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://msdn.microsoft.com/practices/compcat/default.aspx?pull=/library/en-us/dnpag/html/scalenet.asp">http://msdn.microsoft.com/practices/compcat/default.aspx?pull=/library/en-us/dnpag/html/scalenet.asp</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=3a9082ee-7f20-4009-820d-06436178b6d0" />
      </body>
      <title>Leitfaden zum Entwickeln performanter .Net Anwendungen</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,3a9082ee-7f20-4009-820d-06436178b6d0.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,3a9082ee-7f20-4009-820d-06436178b6d0.aspx</link>
      <pubDate>Fri, 28 Jul 2006 06:50:00 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://msdn.microsoft.com/practices/compcat/default.aspx?pull=/library/en-us/dnpag/html/scalenet.asp"&gt;http://msdn.microsoft.com/practices/compcat/default.aspx?pull=/library/en-us/dnpag/html/scalenet.asp&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=3a9082ee-7f20-4009-820d-06436178b6d0" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,3a9082ee-7f20-4009-820d-06436178b6d0.aspx</comments>
      <category>Know-How;Unbearbeitet</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=26801ddb-1fa9-4b3d-9f80-2dac7a30c6c1</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,26801ddb-1fa9-4b3d-9f80-2dac7a30c6c1.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,26801ddb-1fa9-4b3d-9f80-2dac7a30c6c1.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=26801ddb-1fa9-4b3d-9f80-2dac7a30c6c1</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Statt try-catch-finally gibt es auch noch eine Alternative mit Hilfe sog. Scopes.
</p>
        <p>
          <a href="http://blog.veloursnebel.de/PermaLink,guid,fb472ac8-d855-4224-a2e0-ddf758492b17.aspx">http://blog.veloursnebel.de/PermaLink,guid,fb472ac8-d855-4224-a2e0-ddf758492b17.aspx</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=26801ddb-1fa9-4b3d-9f80-2dac7a30c6c1" />
      </body>
      <title>Schließen von Datenbank-Verbindungen auch bei Fehler sicherstellen</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,26801ddb-1fa9-4b3d-9f80-2dac7a30c6c1.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,26801ddb-1fa9-4b3d-9f80-2dac7a30c6c1.aspx</link>
      <pubDate>Thu, 27 Jul 2006 18:04:14 GMT</pubDate>
      <description>&lt;p&gt;
Statt try-catch-finally gibt es auch noch eine Alternative mit Hilfe sog. Scopes.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.veloursnebel.de/PermaLink,guid,fb472ac8-d855-4224-a2e0-ddf758492b17.aspx"&gt;http://blog.veloursnebel.de/PermaLink,guid,fb472ac8-d855-4224-a2e0-ddf758492b17.aspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=26801ddb-1fa9-4b3d-9f80-2dac7a30c6c1" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,26801ddb-1fa9-4b3d-9f80-2dac7a30c6c1.aspx</comments>
      <category>Know-How;Tipps und Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=18a084bd-2322-4b7c-a11e-af983d945ea8</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,18a084bd-2322-4b7c-a11e-af983d945ea8.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,18a084bd-2322-4b7c-a11e-af983d945ea8.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=18a084bd-2322-4b7c-a11e-af983d945ea8</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Will man Fenster mit ungewöhnlichen Formen erzeugen (wie z.B. unten), ist das mit
Hilfe der Region-Eigenschaft kein Problem.
</p>
        <p>
          <a href="http://www.microsoft.com/germany/msdn/library/net/windowsforms/WindowsFormsUmrisseFreiBestimmen.mspx?mfr=true">http://www.microsoft.com/germany/msdn/library/net/windowsforms/WindowsFormsUmrisseFreiBestimmen.mspx?mfr=true</a>
        </p>
        <p>
          <img style="WIDTH: 458px; HEIGHT: 374px" height="621" src="http://www.artiso.com/ProBlog/content/binary/fenster.gif" width="262" border="0" />
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=18a084bd-2322-4b7c-a11e-af983d945ea8" />
      </body>
      <title>Fenster müssen nicht immer rechteckig sein</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,18a084bd-2322-4b7c-a11e-af983d945ea8.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,18a084bd-2322-4b7c-a11e-af983d945ea8.aspx</link>
      <pubDate>Thu, 27 Jul 2006 17:27:42 GMT</pubDate>
      <description>&lt;p&gt;
Will man Fenster mit ungewöhnlichen Formen erzeugen (wie z.B. unten), ist das mit
Hilfe der Region-Eigenschaft kein Problem.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/germany/msdn/library/net/windowsforms/WindowsFormsUmrisseFreiBestimmen.mspx?mfr=true"&gt;http://www.microsoft.com/germany/msdn/library/net/windowsforms/WindowsFormsUmrisseFreiBestimmen.mspx?mfr=true&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;img style="WIDTH: 458px; HEIGHT: 374px" height=621 src="http://www.artiso.com/ProBlog/content/binary/fenster.gif" width=262 border=0&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=18a084bd-2322-4b7c-a11e-af983d945ea8" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,18a084bd-2322-4b7c-a11e-af983d945ea8.aspx</comments>
      <category>Know-How;Tipps und Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=034b5b75-b622-4d9f-854c-c7e86a78eef7</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,034b5b75-b622-4d9f-854c-c7e86a78eef7.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,034b5b75-b622-4d9f-854c-c7e86a78eef7.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=034b5b75-b622-4d9f-854c-c7e86a78eef7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.microsoft.com/germany/msdn/webcasts/serien/MSDNWCS-0607-01.mspx">http://www.microsoft.com/germany/msdn/webcasts/serien/MSDNWCS-0607-01.mspx</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=034b5b75-b622-4d9f-854c-c7e86a78eef7" />
      </body>
      <title>Webcast-Serie Einmaleins der Informatik für .NET-Entwickler </title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,034b5b75-b622-4d9f-854c-c7e86a78eef7.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,034b5b75-b622-4d9f-854c-c7e86a78eef7.aspx</link>
      <pubDate>Wed, 26 Jul 2006 09:12:30 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.microsoft.com/germany/msdn/webcasts/serien/MSDNWCS-0607-01.mspx"&gt;http://www.microsoft.com/germany/msdn/webcasts/serien/MSDNWCS-0607-01.mspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=034b5b75-b622-4d9f-854c-c7e86a78eef7" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,034b5b75-b622-4d9f-854c-c7e86a78eef7.aspx</comments>
      <category>.Net und drum rum;Know-How;Lernen</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=63a2725d-d5a5-4f87-b7e8-9a69b6dc2904</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,63a2725d-d5a5-4f87-b7e8-9a69b6dc2904.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,63a2725d-d5a5-4f87-b7e8-9a69b6dc2904.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=63a2725d-d5a5-4f87-b7e8-9a69b6dc2904</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Unter <a href="http://www.microsoft.com/germany/msdn/webcasts/serien/MSDNWCS-0605-02.mspx">http://www.microsoft.com/germany/msdn/webcasts/serien/MSDNWCS-0605-02.mspx</a> gibt
es eine Webcast-Serie zur Entwicklung mit Office 2007 und .Net
</p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=63a2725d-d5a5-4f87-b7e8-9a69b6dc2904" />
      </body>
      <title>Office 2007 für .Net Entwickler</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,63a2725d-d5a5-4f87-b7e8-9a69b6dc2904.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,63a2725d-d5a5-4f87-b7e8-9a69b6dc2904.aspx</link>
      <pubDate>Wed, 26 Jul 2006 09:07:41 GMT</pubDate>
      <description>&lt;p&gt;
Unter &lt;a href="http://www.microsoft.com/germany/msdn/webcasts/serien/MSDNWCS-0605-02.mspx"&gt;http://www.microsoft.com/germany/msdn/webcasts/serien/MSDNWCS-0605-02.mspx&lt;/a&gt;&amp;nbsp;gibt
es eine Webcast-Serie zur Entwicklung mit Office 2007 und .Net
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=63a2725d-d5a5-4f87-b7e8-9a69b6dc2904" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,63a2725d-d5a5-4f87-b7e8-9a69b6dc2904.aspx</comments>
      <category>Know-How;Lernen;Unbearbeitet</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=c6bbf441-92e9-4ca4-bd12-eae88d2b52fa</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,c6bbf441-92e9-4ca4-bd12-eae88d2b52fa.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,c6bbf441-92e9-4ca4-bd12-eae88d2b52fa.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=c6bbf441-92e9-4ca4-bd12-eae88d2b52fa</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Von Microsoft gibt es ein deutschsprachiges Portal das sich mit Themen rund um die
Software-Architektur beschäftigt:
</p>
        <p>
          <a href="http://www.microsoft.com/germany/architecture/default.mspx">http://www.microsoft.com/germany/architecture/default.mspx</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=c6bbf441-92e9-4ca4-bd12-eae88d2b52fa" />
      </body>
      <title>Portal für Software-Architekten</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,c6bbf441-92e9-4ca4-bd12-eae88d2b52fa.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,c6bbf441-92e9-4ca4-bd12-eae88d2b52fa.aspx</link>
      <pubDate>Wed, 26 Jul 2006 06:20:36 GMT</pubDate>
      <description>&lt;p&gt;
Von Microsoft gibt es ein deutschsprachiges Portal das sich mit Themen rund um die
Software-Architektur beschäftigt:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/germany/architecture/default.mspx"&gt;http://www.microsoft.com/germany/architecture/default.mspx&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=c6bbf441-92e9-4ca4-bd12-eae88d2b52fa" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,c6bbf441-92e9-4ca4-bd12-eae88d2b52fa.aspx</comments>
      <category>.Net und drum rum;Architektur;Know-How</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=95b76059-dbec-4e32-8fb5-1afcd366ce16</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,95b76059-dbec-4e32-8fb5-1afcd366ce16.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,95b76059-dbec-4e32-8fb5-1afcd366ce16.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=95b76059-dbec-4e32-8fb5-1afcd366ce16</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Unter IDesign gibt es einen Download, mit dem das My-Objekt von VB auch unter C# genutzt
werden kann.
</p>
        <p>
          <a href="http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=-1&amp;tabid=19&amp;download=141">http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=-1&amp;tabid=19&amp;download=141</a>
        </p>
        <p>
The My class in VB often simplifies and streamlines many operations, from Network
programming to clipboard, to audio access, and so on. What takes sometimes a programming
fit in C# can be done in one line using the My class in VB. If VB has Me and My, then
C# should have this and That. The That class is the C# equivalent of the VB My class.
It is a static class that uses the VB implementation as much as possible, and it requires
adding a referencing to Microsoft.VisualBasic. The That class is instrumental when
working in heterogeneous environments and when dealing with in porting of VB to C#
or visa-versa. 
</p>
        <p>
Weitere interessante Downloads gibt's unter <a href="http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&amp;tabid=11#ES">http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&amp;tabid=11#ES</a></p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=95b76059-dbec-4e32-8fb5-1afcd366ce16" />
      </body>
      <title>VB my-Objekt unter C# nutzen</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,95b76059-dbec-4e32-8fb5-1afcd366ce16.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,95b76059-dbec-4e32-8fb5-1afcd366ce16.aspx</link>
      <pubDate>Tue, 25 Jul 2006 08:46:16 GMT</pubDate>
      <description>&lt;p&gt;
Unter IDesign gibt es einen Download, mit dem das My-Objekt von VB auch unter C# genutzt
werden kann.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=-1&amp;amp;tabid=19&amp;amp;download=141"&gt;http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=-1&amp;amp;tabid=19&amp;amp;download=141&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
The My class in VB often simplifies and streamlines many operations, from Network
programming to clipboard, to audio access, and so on. What takes sometimes a programming
fit in C# can be done in one line using the My class in VB. If VB has Me and My, then
C# should have this and That. The That class is the C# equivalent of the VB My class.
It is a static class that uses the VB implementation as much as possible, and it requires
adding a referencing to Microsoft.VisualBasic. The That class is instrumental when
working in heterogeneous environments and when dealing with in porting of VB to C#
or visa-versa. 
&lt;/p&gt;
&lt;p&gt;
Weitere interessante Downloads gibt's unter &lt;a href="http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&amp;amp;tabid=11#ES"&gt;http://www.idesign.net/idesign/DesktopDefault.aspx?tabindex=5&amp;amp;tabid=11#ES&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=95b76059-dbec-4e32-8fb5-1afcd366ce16" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,95b76059-dbec-4e32-8fb5-1afcd366ce16.aspx</comments>
      <category>Know-How;Tipps und Tricks</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=717b9a5e-02e4-4538-955a-801ab36b059d</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,717b9a5e-02e4-4538-955a-801ab36b059d.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,717b9a5e-02e4-4538-955a-801ab36b059d.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=717b9a5e-02e4-4538-955a-801ab36b059d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://webperformanceinc.com/library/reports/TestingAspDotNet/index.html">http://webperformanceinc.com/library/reports/TestingAspDotNet/index.html</a>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=717b9a5e-02e4-4538-955a-801ab36b059d" />
      </body>
      <title>Tutorial : Load Tests für ASP.Net</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,717b9a5e-02e4-4538-955a-801ab36b059d.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,717b9a5e-02e4-4538-955a-801ab36b059d.aspx</link>
      <pubDate>Tue, 25 Jul 2006 05:22:40 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://webperformanceinc.com/library/reports/TestingAspDotNet/index.html"&gt;http://webperformanceinc.com/library/reports/TestingAspDotNet/index.html&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=717b9a5e-02e4-4538-955a-801ab36b059d" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,717b9a5e-02e4-4538-955a-801ab36b059d.aspx</comments>
      <category>Know-How</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=ffa67c6b-9534-4250-84d4-c548e9b192a7</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,ffa67c6b-9534-4250-84d4-c548e9b192a7.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,ffa67c6b-9534-4250-84d4-c548e9b192a7.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=ffa67c6b-9534-4250-84d4-c548e9b192a7</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.cimtec.dk/dot-net/DataBinding/DataBinding.htm">http://www.cimtec.dk/dot-net/DataBinding/DataBinding.htm</a>
        </p>
        <p>
Beschreibt auch das Databindung zu User-Controls.
</p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=ffa67c6b-9534-4250-84d4-c548e9b192a7" />
      </body>
      <title>Sehr guter Artikel über Databindung</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,ffa67c6b-9534-4250-84d4-c548e9b192a7.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,ffa67c6b-9534-4250-84d4-c548e9b192a7.aspx</link>
      <pubDate>Fri, 21 Jul 2006 15:15:17 GMT</pubDate>
      <description>&lt;p&gt;
&lt;a href="http://www.cimtec.dk/dot-net/DataBinding/DataBinding.htm"&gt;http://www.cimtec.dk/dot-net/DataBinding/DataBinding.htm&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
Beschreibt auch das Databindung zu User-Controls.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=ffa67c6b-9534-4250-84d4-c548e9b192a7" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,ffa67c6b-9534-4250-84d4-c548e9b192a7.aspx</comments>
      <category>Know-How</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=b3dd9306-c3ea-44c4-b1a4-5ccf39aa16d6</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,b3dd9306-c3ea-44c4-b1a4-5ccf39aa16d6.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,b3dd9306-c3ea-44c4-b1a4-5ccf39aa16d6.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=b3dd9306-c3ea-44c4-b1a4-5ccf39aa16d6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Bisher war es recht mühsahm, Oberflächen für verschiedene Sprachen zu erstellen. Mit
VS 2005 ist das jetzt ein Kinderspiel. Einfach auf der Form die Eigenschaft Localizable
auf true setzen. Dann die Oberfläche für die Standard-Sprache aufbauen. Anschließend
die Eigenschaft Language auf der Form auf eine explizite Sprache einstellen und Anpassungen
vornehmen (Lables, Buttons etc. neu beschriften). VS legt für die Zweitsprache automatisch
eine .resx-Datei an, in der diese sprachspezifischen Einstellungen gespeichert werden. 
</p>
        <p>
Während des editierens kann man beliebig zwischen den Sprachen umschalten und die
Oberfläche für die jeweilige Einstellung editieren. Genial ist dabei, dass nicht nur
Texte in den sprachspezifischen Ressource-Dateien gespeichert werden, sondern auch
alle anderen Einstellungen. Wird ein Button z.B. in Englisch mit "Save" betittelt,
kann es sein, dass die deutsche Bezeichnung "Speichern" zu lang ist und der Platz
nicht ausreicht. Kein Problem. Den Button einfach in der deutschen Einstellung vergrößern
und schon wird auch die Größe des Buttons in Abhängigkeit der Sprache gewählt.
</p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=b3dd9306-c3ea-44c4-b1a4-5ccf39aa16d6" />
      </body>
      <title>Windows Anwendungen mit VS 2005 lokalisieren</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,b3dd9306-c3ea-44c4-b1a4-5ccf39aa16d6.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,b3dd9306-c3ea-44c4-b1a4-5ccf39aa16d6.aspx</link>
      <pubDate>Fri, 21 Jul 2006 14:17:56 GMT</pubDate>
      <description>&lt;p&gt;
Bisher war es recht mühsahm, Oberflächen für verschiedene Sprachen zu erstellen. Mit
VS 2005 ist das jetzt ein Kinderspiel. Einfach auf der Form die Eigenschaft Localizable
auf true setzen. Dann die Oberfläche für die Standard-Sprache aufbauen. Anschließend
die Eigenschaft Language auf der Form auf eine explizite Sprache einstellen und Anpassungen
vornehmen (Lables, Buttons etc. neu beschriften). VS legt für die Zweitsprache automatisch
eine .resx-Datei an, in der diese sprachspezifischen Einstellungen gespeichert werden. 
&lt;/p&gt;
&lt;p&gt;
Während des editierens kann man beliebig zwischen den Sprachen umschalten und die
Oberfläche für die jeweilige Einstellung editieren. Genial ist dabei, dass nicht nur
Texte in den sprachspezifischen Ressource-Dateien gespeichert werden, sondern auch
alle anderen Einstellungen. Wird ein Button z.B. in Englisch mit "Save" betittelt,
kann es sein, dass die deutsche Bezeichnung "Speichern" zu lang ist und der Platz
nicht ausreicht. Kein Problem. Den Button einfach in der deutschen Einstellung vergrößern
und schon wird auch die Größe des Buttons in Abhängigkeit der Sprache gewählt.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=b3dd9306-c3ea-44c4-b1a4-5ccf39aa16d6" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,b3dd9306-c3ea-44c4-b1a4-5ccf39aa16d6.aspx</comments>
      <category>Know-How;VS 2005</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=b521716d-f136-4d4e-8aea-51cf21ec48fc</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,b521716d-f136-4d4e-8aea-51cf21ec48fc.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,b521716d-f136-4d4e-8aea-51cf21ec48fc.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=b521716d-f136-4d4e-8aea-51cf21ec48fc</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Dass viele Operationen mit einem string recht langsam ist, ist ja weitgehend bekannt,
auch dass man hier besser einen StringBuilder verwendet. Folgendes Beispiel ist unter
Performance-Aspekten sehr ungünstig:
</p>
        <p>
string Text = "";<br />
for (int i=0; i&lt;100000; i++)<br />
{<br />
   Text += "x";<br />
}
</p>
        <p>
Was weniger bekant ist, die Erklärung dafür. Wird einem String ein neuer Wert zugeweisen,
so wird das Objekt jedes mal neu angelegt. In dem obigen Beispiel wird also 100000
mal ein neues String-Objekt angelegt und das alte verworfen. Das kostet natürlich
Zeit. Dahingegen ist der StringBuilder dynamisch erweiterbar. Nach der initialisierung
wird er mit einer Kapazität von 16 Zeichen angelegt. Die Kapazität verdoppelt sich
nun jedesmal, wenn die Kapazität überschritten wird. Mit dem einfügen des 17. Zeichens
wird die Kapazität also auf 32 erhöht etc. Beim Stringbuilder kann man im Konstruktor
auch schon eine größere Kapazität angeben.
</p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=b521716d-f136-4d4e-8aea-51cf21ec48fc" />
      </body>
      <title>Warum sind Strings so langsam?</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,b521716d-f136-4d4e-8aea-51cf21ec48fc.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,b521716d-f136-4d4e-8aea-51cf21ec48fc.aspx</link>
      <pubDate>Thu, 20 Jul 2006 06:14:12 GMT</pubDate>
      <description>&lt;p&gt;
Dass viele Operationen mit einem string recht langsam ist, ist ja weitgehend bekannt,
auch dass man hier besser einen StringBuilder verwendet. Folgendes Beispiel ist unter
Performance-Aspekten sehr ungünstig:
&lt;/p&gt;
&lt;p&gt;
string Text = "";&lt;br&gt;
for (int i=0; i&amp;lt;100000; i++)&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;Text += "x";&lt;br&gt;
}
&lt;/p&gt;
&lt;p&gt;
Was weniger bekant ist, die Erklärung dafür. Wird einem String ein neuer Wert zugeweisen,
so wird das Objekt jedes mal neu angelegt. In dem obigen Beispiel wird also 100000
mal ein neues String-Objekt angelegt und das alte verworfen. Das kostet natürlich
Zeit. Dahingegen ist der StringBuilder dynamisch erweiterbar. Nach der initialisierung
wird er mit einer Kapazität von 16 Zeichen angelegt. Die Kapazität verdoppelt sich
nun jedesmal, wenn die Kapazität überschritten wird. Mit dem einfügen des 17. Zeichens
wird die Kapazität also auf 32 erhöht etc. Beim Stringbuilder kann man im Konstruktor
auch schon eine größere Kapazität angeben.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=b521716d-f136-4d4e-8aea-51cf21ec48fc" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,b521716d-f136-4d4e-8aea-51cf21ec48fc.aspx</comments>
      <category>Know-How</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=82b87750-e08c-48ca-8bd5-e119a91f888b</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,82b87750-e08c-48ca-8bd5-e119a91f888b.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,82b87750-e08c-48ca-8bd5-e119a91f888b.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=82b87750-e08c-48ca-8bd5-e119a91f888b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In der AssemblyInfo.vb bzw. AssemblyInfo.cs gibt es zwei Einträge zur steuerung der
Versionierung.
</p>
        <font size="2">
          <p>
&lt;Assembly: AssemblyVersion(
</p>
        </font>
        <font color="#800000" size="2">"0.9.*"</font>
        <font size="2">)&gt; 
<br />
&lt;Assembly: AssemblyFileVersion(</font>
        <font color="#800000" size="2">"0.9.2.0"</font>
        <font size="2">)&gt; </font>
        <p>
          <font size="2">Das Problem dabei ist, dass die AssemblyVersion durch * automatisch
nummeriert werden kann, dass das aber bei der AssemblyFileVersion nicht funktioniert.
Möchte man, dass beide gleich sind, muss man lediglich die AssemblyFileVersion löschen.
</font>
        </p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=82b87750-e08c-48ca-8bd5-e119a91f888b" />
      </body>
      <title>AssemblyFileVersion automatisch setzen</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,82b87750-e08c-48ca-8bd5-e119a91f888b.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,82b87750-e08c-48ca-8bd5-e119a91f888b.aspx</link>
      <pubDate>Wed, 19 Jul 2006 13:40:00 GMT</pubDate>
      <description>&lt;p&gt;
In der AssemblyInfo.vb bzw. AssemblyInfo.cs gibt es zwei Einträge zur steuerung der
Versionierung.
&lt;/p&gt;
&lt;font size=2&gt; 
&lt;p&gt;
&amp;lt;Assembly: AssemblyVersion(
&lt;/font&gt;&lt;font color=#800000 size=2&gt;"0.9.*"&lt;/font&gt;&lt;font size=2&gt;)&amp;gt; 
&lt;br&gt;
&amp;lt;Assembly: AssemblyFileVersion(&lt;/font&gt;&lt;font color=#800000 size=2&gt;"0.9.2.0"&lt;/font&gt;&lt;font size=2&gt;)&amp;gt; &lt;/font&gt;&gt;
&lt;p&gt;
&lt;font size=2&gt;Das Problem dabei ist, dass die AssemblyVersion durch * automatisch nummeriert
werden kann, dass das aber bei der AssemblyFileVersion nicht funktioniert. Möchte
man, dass beide gleich sind, muss man lediglich die AssemblyFileVersion löschen.
&lt;/p&gt;
&gt;&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=82b87750-e08c-48ca-8bd5-e119a91f888b" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,82b87750-e08c-48ca-8bd5-e119a91f888b.aspx</comments>
      <category>.Net und drum rum;Know-How;VS 2005</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=c8795f3b-db8d-4e60-b47d-96dfda70f1d2</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,c8795f3b-db8d-4e60-b47d-96dfda70f1d2.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,c8795f3b-db8d-4e60-b47d-96dfda70f1d2.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=c8795f3b-db8d-4e60-b47d-96dfda70f1d2</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Microsoft bietet unter <a href="http://www.microsoft.com/germany/msdn/webcasts/library.aspx?id=1032301564">http://www.microsoft.com/germany/msdn/webcasts/library.aspx?id=1032301564</a> eine
neue Reihe von WebCastts für .Net Entwickler an.
</p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=c8795f3b-db8d-4e60-b47d-96dfda70f1d2" />
      </body>
      <title>Neue Webcast-Reihe für .Net Entwickler</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,c8795f3b-db8d-4e60-b47d-96dfda70f1d2.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,c8795f3b-db8d-4e60-b47d-96dfda70f1d2.aspx</link>
      <pubDate>Mon, 10 Jul 2006 15:16:40 GMT</pubDate>
      <description>&lt;p&gt;
Microsoft bietet unter &lt;a href="http://www.microsoft.com/germany/msdn/webcasts/library.aspx?id=1032301564"&gt;http://www.microsoft.com/germany/msdn/webcasts/library.aspx?id=1032301564&lt;/a&gt;&amp;nbsp;eine
neue Reihe von WebCastts für .Net Entwickler an.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=c8795f3b-db8d-4e60-b47d-96dfda70f1d2" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,c8795f3b-db8d-4e60-b47d-96dfda70f1d2.aspx</comments>
      <category>Know-How;Lernen;Unbearbeitet</category>
    </item>
    <item>
      <trackback:ping>http://www.artiso.com/ProBlog/Trackback.aspx?guid=b20b7b2c-5d64-408f-ac2e-8719fd08ac49</trackback:ping>
      <pingback:server>http://www.artiso.com/ProBlog/pingback.aspx</pingback:server>
      <pingback:target>http://www.artiso.com/ProBlog/PermaLink,guid,b20b7b2c-5d64-408f-ac2e-8719fd08ac49.aspx</pingback:target>
      <dc:creator>Thomas Schissler</dc:creator>
      <wfw:comment>http://www.artiso.com/ProBlog/CommentView,guid,b20b7b2c-5d64-408f-ac2e-8719fd08ac49.aspx</wfw:comment>
      <wfw:commentRss>http://www.artiso.com/ProBlog/SyndicationService.asmx/GetEntryCommentsRss?guid=b20b7b2c-5d64-408f-ac2e-8719fd08ac49</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p class="bul">
          <b>Mit Hilfe der Eigenschaft UpdateBatchSize kann eingestellt werden, wieviele Update-Befehle
beim Updaten eines Datasets in die Datenbank zusammengefasst werden sollen.</b>
        </p>
        <p class="bul">
          <b>DataAdapter and Batch Updates</b>. In the previous version of ADO.NET, when updating
a database with changes from a DataSet, the <b>Update</b> method of a DataAdapter
performs updates to the database one row at a time.
</p>
        <p class="bul">
As the method iterates through the rows in the specified DataTable, it examines each
DataRow to see if the row has been modified. If the row has been modified, the method
calls the appropriate <b>UpdateCommand</b>, <b>InsertCommand</b> or <b>DeleteCommand</b>,
depending on the value of the <b>RowState</b> property for that row. Every row update
involves a network round-trip to the database.
</p>
        <p class="bul">
In ADO.NET 2.0, the DataAdapter exposes an <b>UpdateBatchSize</b> property. Setting
the property to a positive integer value causes updates to the database to be sent
as batches of the specified size. For example, setting the UpdateBatchSize to 10 will
group 10 separate statements and submit them as a single batch. Setting the UpdateBatchSize
to 0 will cause the DataAdapter to use the largest batch size that the server can
handle. Setting it to 1 disables batch updates as rows are sent one at a time.
</p>
        <p class="bul">
          <b>Event Behavior Changes with Batch Updates</b>. The <b>DataAdapter</b> class has
two update-related events i.e. <b>RowUpdating</b> and <b>RowUpdated</b>. In previous
versions of ADO.NET, and when batch processing is disabled, each of these events is
generated once for each row processed. RowUpdating is generated before the update
occurs, and RowUpdated is generated after the database update is completed.
</p>
        <p class="bul">
When batch processing is enabled, multiple rows are updated in a single database operation.
Therefore, only one <b>RowUpdated</b> event occurs for each batch, whereas the <b>RowUpdating</b> event
occurs for each row processed.
</p>
        <p class="bul">
When batch processing is disabled, the two events are fired with one-to-one interleaving
where one <b>RowUpdating</b> event and one <b>RowUpdated</b> event fire for a row,
then one <b>RowUpdating</b> and one <b>RowUpdated</b> event fire for the next row,
until all of the rows are processed.
</p>
        <img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=b20b7b2c-5d64-408f-ac2e-8719fd08ac49" />
      </body>
      <title>BatchUpdate auf Datenbanken</title>
      <guid isPermaLink="false">http://www.artiso.com/ProBlog/PermaLink,guid,b20b7b2c-5d64-408f-ac2e-8719fd08ac49.aspx</guid>
      <link>http://www.artiso.com/ProBlog/PermaLink,guid,b20b7b2c-5d64-408f-ac2e-8719fd08ac49.aspx</link>
      <pubDate>Fri, 07 Jul 2006 16:37:41 GMT</pubDate>
      <description>&lt;p class=bul&gt;
&lt;b&gt;Mit Hilfe der Eigenschaft UpdateBatchSize kann eingestellt werden, wieviele Update-Befehle
beim Updaten eines Datasets in die Datenbank zusammengefasst werden sollen.&lt;/b&gt;
&lt;/p&gt;
&lt;p class=bul&gt;
&lt;b&gt;DataAdapter and Batch Updates&lt;/b&gt;. In the previous version of ADO.NET, when updating
a database with changes from a DataSet, the &lt;b&gt;Update&lt;/b&gt; method of a DataAdapter
performs updates to the database one row at a time.
&lt;/p&gt;
&lt;p class=bul&gt;
As the method iterates through the rows in the specified DataTable, it examines each
DataRow to see if the row has been modified. If the row has been modified, the method
calls the appropriate &lt;b&gt;UpdateCommand&lt;/b&gt;, &lt;b&gt;InsertCommand&lt;/b&gt; or &lt;b&gt;DeleteCommand&lt;/b&gt;,
depending on the value of the &lt;b&gt;RowState&lt;/b&gt; property for that row. Every row update
involves a network round-trip to the database.
&lt;/p&gt;
&lt;p class=bul&gt;
In ADO.NET 2.0, the DataAdapter exposes an &lt;b&gt;UpdateBatchSize&lt;/b&gt; property. Setting
the property to a positive integer value causes updates to the database to be sent
as batches of the specified size. For example, setting the UpdateBatchSize to 10 will
group 10 separate statements and submit them as a single batch. Setting the UpdateBatchSize
to 0 will cause the DataAdapter to use the largest batch size that the server can
handle. Setting it to 1 disables batch updates as rows are sent one at a time.
&lt;/p&gt;
&lt;p class=bul&gt;
&lt;b&gt;Event Behavior Changes with Batch Updates&lt;/b&gt;. The &lt;b&gt;DataAdapter&lt;/b&gt; class has
two update-related events i.e. &lt;b&gt;RowUpdating&lt;/b&gt; and &lt;b&gt;RowUpdated&lt;/b&gt;. In previous
versions of ADO.NET, and when batch processing is disabled, each of these events is
generated once for each row processed. RowUpdating is generated before the update
occurs, and RowUpdated is generated after the database update is completed.
&lt;/p&gt;
&lt;p class=bul&gt;
When batch processing is enabled, multiple rows are updated in a single database operation.
Therefore, only one &lt;b&gt;RowUpdated&lt;/b&gt; event occurs for each batch, whereas the &lt;b&gt;RowUpdating&lt;/b&gt; event
occurs for each row processed.
&lt;/p&gt;
&lt;p class=bul&gt;
When batch processing is disabled, the two events are fired with one-to-one interleaving
where one &lt;b&gt;RowUpdating&lt;/b&gt; event and one &lt;b&gt;RowUpdated&lt;/b&gt; event fire for a row,
then one &lt;b&gt;RowUpdating&lt;/b&gt; and one &lt;b&gt;RowUpdated&lt;/b&gt; event fire for the next row,
until all of the rows are processed.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.artiso.com/ProBlog/aggbug.ashx?id=b20b7b2c-5d64-408f-ac2e-8719fd08ac49" /&gt;</description>
      <comments>http://www.artiso.com/ProBlog/CommentView,guid,b20b7b2c-5d64-408f-ac2e-8719fd08ac49.aspx</comments>
      <category>ADO.Net;Know-How</category>
    </item>
  </channel>
</rss>