<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" 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:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Christian </title>
        <link>http://christian.bloggingon.net/Default.aspx</link>
        <description>auf der Reise ins .NET - Wunderland</description>
        <language>de-DE</language>
        <copyright>Christian Kiefer</copyright>
        <managingEditor>christian.kiefer@bsp.de</managingEditor>
        <generator>Subtext Version 1.9.5.177</generator>
        <image>
            <title>Christian </title>
            <url>http://christian.bloggingon.net/images/RSS2Image.gif</url>
            <link>http://christian.bloggingon.net/Default.aspx</link>
            <width>77</width>
            <height>60</height>
        </image>
        <item>
            <title>Erste Tests mit BING</title>
            <category> Tools</category>
            <category>_Allgemein</category>
            <link>http://christian.bloggingon.net/archive/2009/06/04/erste-tests-mit-bing.aspx</link>
            <description>&lt;p&gt;Habe heute mal mit der amerikanischen Version der neuen Microsoft-Suchmaschine &lt;a target="_blank" href="http://www.bing.com/?scope=web&amp;amp;setmkt=en-US&amp;amp;setlang=SET_NULL&amp;amp;uid=F5703367&amp;amp;FORM=W5WA"&gt;www.bing.com&lt;/a&gt; herumgespielt. Grundsätzlich ist es zu begrüßen, dass der Markt für Suchmaschinen nicht allein Google überlassen wird.&lt;/p&gt;
&lt;p&gt;Mein erstes Fazit: &lt;br /&gt;
Die Benutzung von Bing ist einfach und intuitiv und die Suchergerbnisse sehen aufgeräumt aus. &lt;br /&gt;
Mit den Ergebnissen meiner ersten Tests war ich grundsätzlich zufrieden, vermisse jedoch die Suche in Büchern wie sie Google anbietet.&lt;/p&gt;
&lt;p&gt;Neben den Suchergebnissen kann man sich einen Textauschnitt der entsprechenden Seite anzeigen lassen: &lt;br /&gt;
&lt;a href="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ErsteTestsmitBING_FFE2/bing2_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="454" alt="bing2" width="774" border="0" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ErsteTestsmitBING_FFE2/bing2_thumb.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Ein nettes Gimmick: &lt;br /&gt;
Das Bild auf der Startseite ist jeden Tag ein anderes, heute z.B. "Cinque Terre" in Italien. Über klickbare Flächen auf dem Bild kann man sich weitere Informationen zu den auf dem Bild dargestellten Informationen ausgeben lassen, so z.B. weitere Bilder oder Lage in Landkarte.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ErsteTestsmitBING_FFE2/bing1_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="514" alt="bing1" width="774" border="0" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ErsteTestsmitBING_FFE2/bing1_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/316.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/06/04/erste-tests-mit-bing.aspx</guid>
            <pubDate>Thu, 04 Jun 2009 14:11:23 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/316.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/06/04/erste-tests-mit-bing.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/316.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Visual Studio Feintuning</title>
            <category> -  VB.NET</category>
            <category>CSharp</category>
            <category>Visual Studio</category>
            <link>http://christian.bloggingon.net/archive/2009/05/14/visual-studio-feintuning.aspx</link>
            <description>&lt;p&gt;&lt;font face=""&gt;Meistens macht man es sich bei der Entwicklung einfach und hat das Visual Studio so eingestellt, dass viele Exceptions einfach geschluckt und beim debuggen nicht angezeigt werden. Gerne packt man unsichere Stellen des Quellcodes  in einen Try-Catch Block und ist froh das das Programm wie erwartet (erhofft) weiterarbeitet. Später vergisst man leicht die im Try-Catch-Block aufgetretenen Fehler abzufangen und auszuwerten.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;Leider verursachen Exceptions jedoch immer kleine "Systembremsen", so dass sich ein paar Exceptions pro Seite schnell auf die Performance auswirken können. Im Output sehen wir dann z.B.: "Eine Ausnahme (erste Chance) des Typs "System.InvalidCastException" ist in Microsoft.VisualBasic.dll aufgetreten" was auch auf Probleme hinweisen kann.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;Daher sollte Visual Studio so eingestellt sein, dass alle Exceptions sauber geworfen werden. Dazu muss unter:&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;Menü: DEBUGGEN-&amp;gt;AUSNAHMEN-&amp;gt;Common Language Runtime Exceptions&lt;br /&gt;
&lt;/font&gt;&lt;font face=""&gt;der Haken bei System (für alle Exceptions, die im Assembly System auftreten können) von "User Unhandled" auf "thrown" geändert werden.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face=""&gt;Das Visual Studio verschluckt nun diese Exceptions nicht mehr, sondern zeigt alle an, so dass man sauberen Quellcode entwickeln muss.&lt;/font&gt;&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/315.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/05/14/visual-studio-feintuning.aspx</guid>
            <pubDate>Thu, 14 May 2009 08:45:48 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/315.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/05/14/visual-studio-feintuning.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/315.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Einzelne Felder einer DataRow eines DataSets &amp;auml;ndern</title>
            <category> -  VB.NET</category>
            <category>- DataTable</category>
            <link>http://christian.bloggingon.net/archive/2009/04/28/einzelne-felder-einer-datarow-eines-datasets-aumlndern.aspx</link>
            <description>&lt;p&gt;Für's Archiv:    &lt;br /&gt;Einzelne Felder einer DataRow eines DataSets ändern:&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;                    DS.Tables(0).Select("SpaltennameID=" &amp;amp; WERT)(0)("SpalteUpdate") = "NeuerWert"     &lt;br /&gt;                    DS.AcceptChanges()&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/314.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/04/28/einzelne-felder-einer-datarow-eines-datasets-aumlndern.aspx</guid>
            <pubDate>Tue, 28 Apr 2009 03:29:25 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/314.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/04/28/einzelne-felder-einer-datarow-eines-datasets-aumlndern.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/314.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Kleine Funktion SelectDistinct</title>
            <category> -  VB.NET</category>
            <link>http://christian.bloggingon.net/archive/2009/04/15/kleine-funktion-selectdistinct.aspx</link>
            <description>&lt;p&gt;Hier eine kleine Funktion SelectDistinct für einen Distinct auf eine Spalte eines DataTables. Diese gibt eine DataTable mit einer Spalte zurück, welche die Werte, die mehrfach auftreten nur einmal zurückgibt.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Public Function SelectDistinct(ByVal TableName As String, ByVal SourceTable As DataTable, ByVal FieldName As String) As DataTable     &lt;br /&gt;Dim dt As New DataTable(TableName)     &lt;br /&gt;        dt.Columns.Add(FieldName, SourceTable.Columns(FieldName).DataType)     &lt;br /&gt;Dim LastValue As Object = Nothing     &lt;br /&gt;Dim dr As DataRow     &lt;br /&gt;For Each dr In SourceTable.Select("", FieldName)     &lt;br /&gt;If LastValue Is Nothing Or Not ColumnEqual(LastValue, dr(FieldName)) Then     &lt;br /&gt;                LastValue = dr(FieldName)     &lt;br /&gt;If Convert.ToString(LastValue) = "" Then     &lt;br /&gt;                    LastValue = Nothing     &lt;br /&gt;End If     &lt;br /&gt;                dt.Rows.Add(New Object() {LastValue})     &lt;br /&gt;End If     &lt;br /&gt;Next dr     &lt;br /&gt;If Not (dsTemp Is Nothing) Then     &lt;br /&gt;            dsTemp.Tables.Add(dt)     &lt;br /&gt;End If     &lt;br /&gt;Return dt     &lt;br /&gt;End Function&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Das Ergebnis kann man anschließend einem DataView zuweisen, mit DataView.Sort sortieren und z.B. in einer DropDowm-Liste ausgeben&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/313.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/04/15/kleine-funktion-selectdistinct.aspx</guid>
            <pubDate>Wed, 15 Apr 2009 03:27:44 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/313.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/04/15/kleine-funktion-selectdistinct.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/313.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Praktische Erweiterung f&amp;uuml;r Visual Studio: Class Builder Wizard</title>
            <category>Visual Studio</category>
            <link>http://christian.bloggingon.net/archive/2009/04/03/praktische-erweiterung-fuumlr-visual-studio-class-builder-wizard.aspx</link>
            <description>&lt;p&gt;Die Erweiterung "Class Builder Wizzard" für Visual Studio errmöglicht es Klassen für einzelne Datenbank-Tabellen zu generieren und diese als data layer in eigenen Projekt zu verwenden. Nach der Installation steht in Visual Studio eine neue Vorlage (Class Builder Wizzard) zur Verfügung:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/PraktischeErweiterungfrVisualStudioClass_1180D/classBuilder1_2.gif"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="421" alt="classBuilder1" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/PraktischeErweiterungfrVisualStudioClass_1180D/classBuilder1_thumb.gif" width="694" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Nach Auswahl der Vorlage lässt sich eine Verbindung zur Datenbank aufbauen und die Datenbank und die zu benutzenden Tabellen auswählen. Der Wizzard erstellt dann automatisch pro Tabelle 3 Dateien, in meinem Beispiel für die Tabelle Personen:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/PraktischeErweiterungfrVisualStudioClass_1180D/classBuilder2_2.gif"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="52" alt="classBuilder2" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/PraktischeErweiterungfrVisualStudioClass_1180D/classBuilder2_thumb.gif" width="172" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Die Datei &lt;strong&gt;Personen.sql&lt;/strong&gt; enthält SQL-Befehle welche stored procedures im SQL-Server anlegen und dort ausgeführt werden müssen, damit die Klassen die Befehle wie Select, Insert, Update und Delete ausführen können.&lt;/p&gt;  &lt;p&gt;Die Datei Personen.cs repräsentiert die Tabelle Personen und enthält als Eigenschaften die einzelnen Felder. Die Datei PersonenDataAccess schließlich enthält enthält die Methoden für den Aufbau der Datenbank-Verbindungen sowie das Absetzen der Datenbankoperationen wie Select, Delete etc.&lt;/p&gt;  &lt;p&gt;Schließlich sollte die Datenbankverbindung in der Date App.Config gespeichert werden, so dass mit dem ConfiguationManager darauf zugegriffen werden kann.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Links:      &lt;br /&gt;&lt;a title="http://www.codeplex.com/ClassBuilderWizard" href="http://www.codeplex.com/ClassBuilderWizard" target="_blank"&gt;http://www.codeplex.com/ClassBuilderWizard&lt;/a&gt;       &lt;br /&gt;&lt;a title="http://www.codeplex.com/ClassBuilderWizard/Wiki/View.aspx?title=Screenshots&amp;amp;referringTitle=Home" href="http://www.codeplex.com/ClassBuilderWizard/Wiki/View.aspx?title=Screenshots&amp;amp;referringTitle=Home" target="_blank"&gt;http://www.codeplex.com/ClassBuilderWizard/Wiki/View.aspx?title=Screenshots&amp;amp;referringTitle=Home&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/312.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/04/03/praktische-erweiterung-fuumlr-visual-studio-class-builder-wizard.aspx</guid>
            <pubDate>Fri, 03 Apr 2009 15:03:49 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/312.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/04/03/praktische-erweiterung-fuumlr-visual-studio-class-builder-wizard.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/312.aspx</wfw:commentRss>
        </item>
        <item>
            <title>JavaScript-Funktion von code behind aus aufrufen</title>
            <category> -  Javascript</category>
            <category> -  VB.NET</category>
            <link>http://christian.bloggingon.net/archive/2009/03/28/javascript-funktion-von-code-behind-aus-aufrufen.aspx</link>
            <description>&lt;p&gt;Hier ein weiteres Beispiel dafür, wie man von code behind aus eine Javascript-Funktion aufrufen kann&lt;/p&gt;
&lt;p&gt;&amp;lt;%@ Page Language="VB" AutoEventWireup="false" CodeFile="test.aspx.vb" Inherits="test" %&amp;gt; &lt;br /&gt;
&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "&lt;a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt;&lt;/a&gt; &lt;br /&gt;
&amp;lt;html xmlns="&lt;a href="http://www.w3.org/1999/xhtml"&gt;http://www.w3.org/1999/xhtml"&amp;gt;&lt;/a&gt; &lt;br /&gt;
&amp;lt;head runat="server"&amp;gt; &lt;br /&gt;
&amp;lt;title&amp;gt;&amp;lt;/title&amp;gt; &lt;br /&gt;
&amp;lt;/head&amp;gt; &lt;br /&gt;
&amp;lt;body&amp;gt; &lt;br /&gt;
&amp;lt;script language="javascript"&amp;gt; &lt;br /&gt;
function TestCodebehind() { &lt;br /&gt;
        alert("JavaSCript-Aufruf von codebehind aus hat geklappt"); &lt;br /&gt;
    } &lt;br /&gt;
&amp;lt;/script&amp;gt; &lt;br /&gt;
&amp;lt;form id="form1" runat="server"&amp;gt; &lt;br /&gt;
&amp;lt;div&amp;gt; &lt;br /&gt;
&amp;lt;asp:Button ID="Button1" runat="server" Text="Button" /&amp;gt; &lt;br /&gt;
&amp;lt;asp:Label ID="Javascript" runat="server" Text=""&amp;gt;&amp;lt;/asp:Label&amp;gt; &lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&amp;lt;/form&amp;gt; &lt;br /&gt;
&amp;lt;/body&amp;gt; &lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;/p&gt;
&lt;p&gt;Die dazugehörige code behind Datei:&lt;/p&gt;
&lt;p&gt;Partial Class test &lt;br /&gt;
Inherits System.Web.UI.Page &lt;br /&gt;
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click &lt;br /&gt;
        Javascript.Text = "&amp;lt;script&amp;gt;TestCodebehind()&amp;lt;/" + "script&amp;gt;" &lt;br /&gt;
End Sub &lt;br /&gt;
End Class&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/311.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/03/28/javascript-funktion-von-code-behind-aus-aufrufen.aspx</guid>
            <pubDate>Sat, 28 Mar 2009 10:13:38 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/311.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/03/28/javascript-funktion-von-code-behind-aus-aufrufen.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/311.aspx</wfw:commentRss>
        </item>
        <item>
            <title>DropDown-Listen und Flash-Filme</title>
            <category> -  Javascript</category>
            <link>http://christian.bloggingon.net/archive/2009/03/25/dropdown-listen-und-flash-filme.aspx</link>
            <description>&lt;p&gt;DropDown-Listen sind praktisch jedoch legen sie sich in diversen Browserversionen über den Flash-Film. Dies ist z.B. im Internet Explorer 6.0 der Fall. &lt;/p&gt;  &lt;p&gt;Um dieses Verhalten zu verhindern, sollten im Flash-Film beim Start und beim folgende Javascript-Funktionen angesprochen werden um während der Laufzeit die vorhandenen Dropdown-Listen auszublenden:&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;function HideSelect()     &lt;br /&gt;{     &lt;br /&gt;        for (var i=0; i&amp;lt;document.getElementsByTagName('select').length; i++)     &lt;br /&gt;        document.getElementsByTagName('select')[i].style.setAttribute('visibility', 'hidden')     &lt;br /&gt;}     &lt;br /&gt;function ShowSelect()     &lt;br /&gt;{     &lt;br /&gt;        for (var i=0; i&amp;lt;document.getElementsByTagName('select').length; i++)     &lt;br /&gt;        document.getElementsByTagName('select')[i].style.setAttribute('visibility', 'visible')     &lt;br /&gt;}&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/310.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/03/25/dropdown-listen-und-flash-filme.aspx</guid>
            <pubDate>Wed, 25 Mar 2009 16:50:28 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/310.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/03/25/dropdown-listen-und-flash-filme.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/310.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Eine JavaScript-Funktion von VB.Net aus aufrufen</title>
            <category> -  Javascript</category>
            <category> -  VB.NET</category>
            <link>http://christian.bloggingon.net/archive/2009/03/16/eine-javascript-funktion-von-vb.net-aus-aufrufen.aspx</link>
            <description>&lt;p&gt;Hier ein Beispiel wie man von VB.Net aus eine Javascript-Funktion aufrufen kann:    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Dim onloadScript As StringBuilder = New StringBuilder()    &lt;br /&gt;onloadScript.Append("&amp;lt;script type='text/javascript'&amp;gt;")     &lt;br /&gt;onloadScript.Append("JavascriptFunction();")     &lt;br /&gt;onloadScript.Append("&amp;lt;/script&amp;gt;")     &lt;br /&gt;Page.ClientScript.RegisterStartupScript(Me.GetType(), "onLoadCall", onloadScript.ToString())&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/309.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/03/16/eine-javascript-funktion-von-vb.net-aus-aufrufen.aspx</guid>
            <pubDate>Mon, 16 Mar 2009 17:29:21 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/309.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/03/16/eine-javascript-funktion-von-vb.net-aus-aufrufen.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/309.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Browser und W3C DOM</title>
            <category> -  Javascript</category>
            <category>Webdesign</category>
            <link>http://christian.bloggingon.net/archive/2009/03/12/browser-und-w3c-dom.aspx</link>
            <description>&lt;p&gt;Eine Übersicht über die W3C DOM Kompatibilität der verschiedenen Browser findet man hier: &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.quirksmode.org/dom/w3c_core.html" target="_blank"&gt;http://www.quirksmode.org/dom/w3c_core.html&lt;/a&gt;&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/308.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/03/12/browser-und-w3c-dom.aspx</guid>
            <pubDate>Thu, 12 Mar 2009 17:26:15 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/308.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/03/12/browser-und-w3c-dom.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/308.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Praktisches AddIn f&amp;uuml;r Visual Studio: Koda</title>
            <category>Visual Studio</category>
            <link>http://christian.bloggingon.net/archive/2009/03/10/praktisches-addin-fuumlr-visual-studio-koda.aspx</link>
            <description>&lt;p&gt;Das AddIn Koda erweitert Visual Studio um einige praktische Erweiterungen die ich nicht mehr missen möchte:&lt;/p&gt;  &lt;p&gt;Code Outline:    &lt;br /&gt;Die Klassenstruktur der aktuell geöffneten Datei wird als Outline dargestellt und von hier aus lässt ich zu den einzelnen Elemente im Quellcode springen.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/PraktischesAddInfrVisualStudioKoda_11BD7/koda_2.gif"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="415" alt="koda" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/PraktischesAddInfrVisualStudioKoda_11BD7/koda_thumb.gif" width="781" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Weitere Erweiterungen:      &lt;br /&gt;&lt;/strong&gt;Das Kontextmenü wird um die folgenden Funktionen erweitert: Generate Properties, Generate Constructor und Goto Unit Test.&lt;/p&gt;  &lt;p&gt;Die Reiter über dem Quellcode erhalten im Kontextmenü den neuen Menüpunkt "Close all Documents"&lt;/p&gt;  &lt;p&gt;&lt;a href="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/PraktischesAddInfrVisualStudioKoda_11BD7/CloseAllDocuments_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="176" alt="CloseAllDocuments" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/PraktischesAddInfrVisualStudioKoda_11BD7/CloseAllDocuments_thumb.png" width="239" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;und im Projektmappen-Explorer lassen sich jetzt alle Projektordner auf einmal schliessen:&lt;/p&gt;  &lt;p&gt; &lt;a href="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/PraktischesAddInfrVisualStudioKoda_11BD7/CollapseAllProjects_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="104" alt="CollapseAllProjects" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/PraktischesAddInfrVisualStudioKoda_11BD7/CollapseAllProjects_thumb.png" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Links:      &lt;br /&gt;&lt;a title="http://www.codeplex.com/koda" href="http://www.codeplex.com/koda" target="_blank"&gt;http://www.codeplex.com/koda&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/307.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/03/10/praktisches-addin-fuumlr-visual-studio-koda.aspx</guid>
            <pubDate>Tue, 10 Mar 2009 20:12:36 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/307.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/03/10/praktisches-addin-fuumlr-visual-studio-koda.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/307.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Tools f&amp;uuml;r einen besseren Quellcode II</title>
            <category> -  CSharp</category>
            <category>CSharp</category>
            <category>Visual Studio</category>
            <category>- Add-In</category>
            <link>http://christian.bloggingon.net/archive/2009/02/19/tools-fuumlr-ein-besseren-quellcode-ii.aspx</link>
            <description>&lt;p&gt;Von Microsoft gibt es das kostenfreie  Programm &lt;strong&gt;FxCop&lt;/strong&gt; downloadbar unter: &lt;a title="http://msdn.microsoft.com/en-us/library/bb429476(VS.80).aspx" target="_blank" href="http://msdn.microsoft.com/en-us/library/bb429476(VS.80).aspx"&gt;http://msdn.microsoft.com/en-us/library/bb429476(VS.80).aspx&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;FxCop ist ein Analysewerkzeug für .NET. Es prüft den CIL-Code und den Aufruf der einzelnen Routinen nach ca. 200 Verstößen gegen die Entwurfsrichtlinien von Microsoft sowie auf potentielle Schwachpunkte.&lt;/p&gt;
&lt;p&gt;Nach der Installation des Programmes kan man dieses aufrufen. Nachdem man die entsprechende EXE- oder DLL-Datei ausgewählt und auf Analyse geklickt hat wird das Ergebnis angezeigt:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ToolsfrbesserenQuellcodeII_1143F/FxCop1_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="551" alt="FxCop1" width="804" border="0" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ToolsfrbesserenQuellcodeII_1143F/FxCop1_thumb.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Links kann man die zu beachtenden Regeln einschränken (danach muss man neu analysieren), rechts sieht man die gefundenen Verstöße.&lt;/p&gt;
&lt;p&gt; &lt;br /&gt;
Durch einen Doppelklick auf einen Verstoß öffnet sich ein Fenster mit weiteren Detailinformationen:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ToolsfrbesserenQuellcodeII_1143F/FxCop3_2.gif"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="373" alt="FxCop3" width="724" border="0" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ToolsfrbesserenQuellcodeII_1143F/FxCop3_thumb.gif" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;br /&gt;
Alternativ kann man auch den linken Reiter &lt;strong&gt;Target&lt;/strong&gt; anklicken und nun werden die Verstöße den einzelnen Klassen, Methoden etc. zugeordnet:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ToolsfrbesserenQuellcodeII_1143F/FxCop2_2.gif"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="561" alt="FxCop2" width="804" border="0" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ToolsfrbesserenQuellcodeII_1143F/FxCop2_thumb.gif" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt; &lt;br /&gt;
Das Programm FXCop lässt sich in Visual Studio auch als Post-Build Event einbinden, eine Beschreibung hierzu findet man hier: &lt;a title="http://blogs.msdn.com/fxcop/archive/2007/02/24/faq-how-do-i-run-fxcop-during-a-post-build-event.aspx" target="_blank" href="http://blogs.msdn.com/fxcop/archive/2007/02/24/faq-how-do-i-run-fxcop-during-a-post-build-event.aspx"&gt;http://blogs.msdn.com/fxcop/archive/2007/02/24/faq-how-do-i-run-fxcop-during-a-post-build-event.aspx&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br /&gt;
Anmerkungen:&lt;br /&gt;
&lt;/strong&gt;Jeder muss sich natürlich Gedanken machen welche Regeln er in seinem Projekt berücksichtigen möchte. Auch mag es in manchen Fällen sinnvoll sein sich nicht an alle Regeln zu halten.&lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
&lt;strong&gt;Links: &lt;br /&gt;
&lt;/strong&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/bb429476(VS.80).aspx" target="_blank" href="http://msdn.microsoft.com/en-us/library/bb429476(VS.80).aspx"&gt;&lt;strong&gt;http://msdn.microsoft.com/en-us/library/bb429476(VS.80).aspx&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;br /&gt;
&lt;/strong&gt;&lt;a title="http://blogs.msdn.com/fxcop/archive/2007/02/24/faq-how-do-i-run-fxcop-during-a-post-build-event.aspx" target="_blank" href="http://blogs.msdn.com/fxcop/archive/2007/02/24/faq-how-do-i-run-fxcop-during-a-post-build-event.aspx"&gt;http://blogs.msdn.com/fxcop/archive/2007/02/24/faq-how-do-i-run-fxcop-during-a-post-build-event.aspx&lt;/a&gt; &lt;br /&gt;
&lt;a title="http://de.wikipedia.org/wiki/FxCop" target="_blank" href="http://de.wikipedia.org/wiki/FxCop"&gt;http://de.wikipedia.org/wiki/FxCop&lt;/a&gt; &lt;br /&gt;
&lt;a title="http://blogs.msdn.com/fxcop/" target="_blank" href="http://blogs.msdn.com/fxcop/"&gt;http://blogs.msdn.com/fxcop/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/306.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/02/19/tools-fuumlr-ein-besseren-quellcode-ii.aspx</guid>
            <pubDate>Thu, 19 Feb 2009 15:29:21 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/306.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/02/19/tools-fuumlr-ein-besseren-quellcode-ii.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/306.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Tools f&amp;uuml;r einen besseren Quellcode I</title>
            <category> -  CSharp</category>
            <category>CSharp</category>
            <category>Visual Studio</category>
            <category>- Add-In</category>
            <link>http://christian.bloggingon.net/archive/2009/02/18/tools-fuumlr-besseren-quellcode-i.aspx</link>
            <description>&lt;p&gt;Von Microsoft gibt es das kostenlose Tool &lt;strong&gt;StyleCop (Version 4.3)&lt;/strong&gt;, downloadbar unter: &lt;a title="http://code.msdn.microsoft.com/sourceanalysis/Release/ProjectReleases.aspx?ReleaseId=1425" target="_blank" href="http://code.msdn.microsoft.com/sourceanalysis/Release/ProjectReleases.aspx?ReleaseId=1425"&gt;http://code.msdn.microsoft.com/sourceanalysis/Release/ProjectReleases.aspx?ReleaseId=1425&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;StyleCop vergleicht den C#-Quellcode (VB.NET wird nicht unterstützt) mit den von Microsoft empfohlenen .NET Framework Design Guidelines. Der Sinn dahinter ist es nicht nur das ein robusterer Code entsteht, sondern - wenn sich möglich viele daran halten - der erstellte Quellcode für jeden Dritten leichter zu verstehen und zu erweitern ist, da er nach allgemeinen gültigen Regeln (Benamung etc) erstellt wurde.&lt;/p&gt;
&lt;p&gt;Dieses Programm ist ein AddOn für Visual Studio und lässt sich nach der Installation über das Menü Extra sowie über das Kontextmenü aufrufen:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ToolsfrbesserenQuellcodeI_B684/StyleCop1_2.gif"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="221" alt="StyleCop1" width="179" border="0" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ToolsfrbesserenQuellcodeI_B684/StyleCop1_thumb.gif" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Nachdem StyleCop den Quellcode analysiert hat gibt er seine Warnungen und Vorschläge in der Fehlerliste im Tab Warnungen aus. Darunter fallen Hinweise wie fehlende Dokumentation, "falsche" Formatierung, fehlende Zugriffsmodifizierer, etc.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ToolsfrbesserenQuellcodeI_B684/StyleCop2_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="254" alt="StyleCop2" width="804" border="0" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ToolsfrbesserenQuellcodeI_B684/StyleCop2_thumb.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&lt;br /&gt;
Die zu berücksichtigenden Regeln lassen sich mit dem ebenfalls installierten Programm (Settings) festlegen:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ToolsfrbesserenQuellcodeI_B684/StyleCop3_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="572" alt="StyleCop3" width="753" border="0" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ToolsfrbesserenQuellcodeI_B684/StyleCop3_thumb.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;So z.B. ob wirklich jedes Element mit einer Summary dokumentiert werden muss (meist reicht ja ein sprechender Name aus), ob Tabs zum einrücken verwendet werden dürfen oder nur Leerzeichen etc. Die zu berücksichtigenden Regeln variieren wahrscheinlich von Projekt zu Projekt.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;br /&gt;
Links: &lt;br /&gt;
&lt;/strong&gt;&lt;a title="http://code.msdn.microsoft.com/sourceanalysis/Release/ProjectReleases.aspx?ReleaseId=1425" target="_blank" href="http://code.msdn.microsoft.com/sourceanalysis/Release/ProjectReleases.aspx?ReleaseId=1425"&gt;http://code.msdn.microsoft.com/sourceanalysis/Release/ProjectReleases.aspx?ReleaseId=1425&lt;/a&gt; &lt;br /&gt;
&lt;a title="http://blogs.msdn.com/sourceanalysis/" target="_blank" href="http://blogs.msdn.com/sourceanalysis/"&gt;http://blogs.msdn.com/sourceanalysis/&lt;/a&gt; &lt;br /&gt;
&lt;a title="http://www.onedotnetway.com/stylecop-tutorial/" target="_blank" href="http://www.onedotnetway.com/stylecop-tutorial/"&gt;http://www.onedotnetway.com/stylecop-tutorial/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/305.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/02/18/tools-fuumlr-besseren-quellcode-i.aspx</guid>
            <pubDate>Wed, 18 Feb 2009 15:27:04 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/305.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/02/18/tools-fuumlr-besseren-quellcode-i.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/305.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Literaturempfehlungen zu C#</title>
            <category> -  CSharp</category>
            <category>CSharp</category>
            <link>http://christian.bloggingon.net/archive/2009/02/17/literaturempfehlungen-zu-csharp.aspx</link>
            <description>&lt;p&gt;Manchmal werde ich zu guter Literatur für den Einstieg in C# gefragt. Zur Zeit empfehle ich dann folgende Bücher:&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="2" width="600" border="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="200"&gt;&lt;a target="_blank" href="http://www.amazon.de/exec/obidos/ASIN/3897218526/edvbranchede"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="214" alt="csharp" width="184" border="0" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/LiteraturempfehlungenzuC_95E4/csharp_3.jpg" /&gt;&lt;/a&gt; &lt;/td&gt;
            &lt;td valign="top" width="400"&gt;&lt;strong&gt;"C# von Kopf bis Fuß" &lt;br /&gt;
            &lt;br /&gt;
            &lt;/strong&gt;Guter Einstieg in C#, erklärt werden: Objekte, Typen und Referenzen, Kapselung, Vererbung, Schnittstellen und abstrakte Klassen, Collections etc.&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="200"&gt; &lt;/td&gt;
            &lt;td valign="top" width="400"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="200"&gt;&lt;a target="_blank" href="http://www.amazon.de/exec/obidos/ASIN/0596527578/edvbranchede"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="214" alt="nutshell" width="184" border="0" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/LiteraturempfehlungenzuC_95E4/nutshell_5.jpg" /&gt;&lt;/a&gt; &lt;/td&gt;
            &lt;td valign="top" width="400"&gt;&lt;strong&gt;"C# in a nutshell" &lt;br /&gt;
            &lt;/strong&gt;&lt;br /&gt;
            Gut geeignet als Referenzhandbuch, wenn man mal etwas nachschlagen muss oder Wissenslücken  füllen möchte/muss.&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="200"&gt; &lt;/td&gt;
            &lt;td valign="top" width="400"&gt; &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="200"&gt;&lt;a target="_blank" href="http://www.amazon.de/exec/obidos/ASIN/3897214210/edvbranchede"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="214" alt="entwurfsmuster" width="184" border="0" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/LiteraturempfehlungenzuC_95E4/entwurfsmuster_3.jpg" /&gt;&lt;/a&gt; &lt;/td&gt;
            &lt;td valign="top" width="400"&gt;
            &lt;p&gt;&lt;strong&gt;"Entwurfsmuster von Kopf bis Fuß"&lt;/strong&gt; &lt;/p&gt;
            &lt;p&gt;Dieses Buch bietet einen guten Einstieg in das Thema Design Patterns. So z.B. observer, facrtory, template, adapter u.a. &lt;br /&gt;
            &lt;br /&gt;
            Die Beispiele sind zwar in Java, jedoch ist die Syntax sehr ähnlich zu C# und von daher leicht nachzuvollziehen.&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;&lt;img src="http://christian.bloggingon.net/aggbug/304.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/02/17/literaturempfehlungen-zu-csharp.aspx</guid>
            <pubDate>Tue, 17 Feb 2009 08:36:45 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/304.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/02/17/literaturempfehlungen-zu-csharp.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/304.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Literatur zu Softwarearchitektur</title>
            <category>Framework</category>
            <category> -  Architektur</category>
            <link>http://christian.bloggingon.net/archive/2009/02/01/literatur-zu-softwarearchitektur.aspx</link>
            <description>&lt;p&gt;Bei codeplex.com kann man einen Guide zur Softwarearchitektur (Application Architecture Guide 2.0) als PDF-Datei herunterladen: &lt;a title="http://www.codeplex.com/AppArchGuide/" target="_blank" href="http://www.codeplex.com/AppArchGuide/"&gt;http://www.codeplex.com/AppArchGuide/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/LiteraturzuSoftwarearchitektur_F48A/AppARch2_0_small_thumb_2.jpg"&gt;&lt;img style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" height="236" alt="AppARch2_0_small_thumb" width="184" border="0" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/LiteraturzuSoftwarearchitektur_F48A/AppARch2_0_small_thumb_thumb.jpg" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Es gibt auch ein Einleitungsvideo dazu: &lt;br /&gt;
&lt;a title="http://www.codeplex.com/AppArchGuide/Wiki/View.aspx?title=Video%3a%20Train%20the%20Trainer%20-%20Application%20Architecture%20Guide%202.0&amp;amp;referringTitle=Home" target="_blank" href="http://www.codeplex.com/AppArchGuide/Wiki/View.aspx?title=Video%3a%20Train%20the%20Trainer%20-%20Application%20Architecture%20Guide%202.0&amp;amp;referringTitle=Home"&gt;http://www.codeplex.com/AppArchGuide/Wiki/View.aspx?title=&lt;/a&gt;&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/303.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/02/01/literatur-zu-softwarearchitektur.aspx</guid>
            <pubDate>Sun, 01 Feb 2009 15:23:11 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/303.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/02/01/literatur-zu-softwarearchitektur.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/303.aspx</wfw:commentRss>
        </item>
        <item>
            <title>ZKM in Karlsruhe</title>
            <category> off topic</category>
            <link>http://christian.bloggingon.net/archive/2009/01/27/zkm-in-karlsruhe.aspx</link>
            <description>&lt;p&gt;Wenn mal jemand in Karlsruhe ist und Zeit hat, dann kann ich ihm einen Besuch im Zentrum für Kunst und Medientechnologie Karlsruhe (ZKM) in Karlsruhe empfehlen &lt;a href="http://www.zkm.de" target="_blank"&gt;ZKM &amp;gt;&amp;gt;&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Hier gibt es das Medienmuseum. Das ZKM | Medienmuseum ist das weltweit erste und einzige Museum für Interaktive Kunst. Das thematische Spektrum reicht vom interaktiven Film über Simulationstechnik für den Cyberspace bis zum Einsatz aktueller Softwareapplikationen im Internet. Auch verschiedene alte Rechner und Computerspiele vom C64 bis hin zur aktuellen Playstation kann man sehen und spielen.&lt;/p&gt;  &lt;p&gt;Das toll daran ist, dass man an den meisten Applikationen (und auch die Computerspiele) selbst ausprobieren kann.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ZKMinKarlsruhe_8160/llb_090124_000014640_bf_2_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="292" alt="llb_090124_000014640_bf_2" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/ZKMinKarlsruhe_8160/llb_090124_000014640_bf_2_thumb.jpg" width="364" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/301.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/01/27/zkm-in-karlsruhe.aspx</guid>
            <pubDate>Tue, 27 Jan 2009 07:10:31 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/301.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/01/27/zkm-in-karlsruhe.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/301.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Beispiele f&amp;uuml;r die Verwendung von Cookies</title>
            <category> -  CSharp</category>
            <category>CSharp</category>
            <link>http://christian.bloggingon.net/archive/2009/01/21/beispiele-fuumlr-die-verwendung-von-cookies.aspx</link>
            <description>&lt;p&gt;Fürs Archiv drei Beispiele für die Verwendung von Cookies:&lt;/p&gt;
&lt;p&gt; &lt;font face="Courier New" size="2"&gt;       // Cookie setzen &lt;br /&gt;
        Response.Cookies["Test"].Value = Wert_uebergeben; &lt;br /&gt;
        Response.Cookies["Test"].Expires = DateTime.Now.AddMonths(2); &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;        // Cookie auslesen &lt;br /&gt;
        Label1.Text = Request.Cookies["Test"].Value; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;        // Cookies mit Schlüsseln (mehrere Werte) setzen &lt;br /&gt;
        Response.Cookies["MehrereWerte"]["Wert1"] = "Value 1"; &lt;br /&gt;
        Response.Cookies["MehrereWerte"]["Wert2"] = "Value 2"; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;        // Cookies mit Schlüsseln auslesen &lt;br /&gt;
        Label1.Text = Request.Cookies["MehrereWerte"]["Wert1"] + "&amp;lt;br /&amp;gt;"; &lt;br /&gt;
        Label1.Text += Request.Cookies["MehrereWerte"]["Wert2"]; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;        // HttpCookie setzen &lt;br /&gt;
        HttpCookie Cookie = new HttpCookie("MehrereWerte"); &lt;br /&gt;
        Cookie.Values.Add("Wert1", "Value 1"); &lt;br /&gt;
        Cookie.Values.Add("Wert2", "Value 2"); &lt;br /&gt;
        Response.AppendCookie(Cookie); &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;        // ArrayList in ein Cookie serialisieren &lt;br /&gt;
        ArrayList Array = new ArrayList(); &lt;br /&gt;
        Array.Add("Value 1"); &lt;br /&gt;
        Array.Add("Value 2"); &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;        XmlSerializer xs = new XmlSerializer(Array.GetType()); &lt;br /&gt;
        StringWriter w = new StringWriter(); &lt;br /&gt;
        xs.Serialize(w, Trainings); &lt;br /&gt;
        w.Close(); &lt;br /&gt;
        string wert = w.ToString(); &lt;br /&gt;
        wert = wert.Replace("\n", ""); &lt;br /&gt;
        wert = wert.Replace("\t", ""); &lt;br /&gt;
        wert = wert.Replace("\r", ""); &lt;br /&gt;
        Response.Cookies["CookieSerialisiert"].Value = wert; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;        // serialisiertes Cookie auslesen &lt;br /&gt;
        String wert = Request.Cookies["CookieSerialisiert"].Value; &lt;br /&gt;
        StringReader r = new StringReader(wert); &lt;br /&gt;
        XmlSerializer d = new XmlSerializer((new ArrayList()).GetType()); &lt;br /&gt;
        Object Test = d.Deserialize(r); &lt;br /&gt;
        r.Close(); &lt;br /&gt;
        Label1.Text = ((ArrayList)Test)[0] + " " + ((ArrayList)Test)[1];&lt;/font&gt;&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/300.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/01/21/beispiele-fuumlr-die-verwendung-von-cookies.aspx</guid>
            <pubDate>Wed, 21 Jan 2009 12:35:06 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/300.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/01/21/beispiele-fuumlr-die-verwendung-von-cookies.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/300.aspx</wfw:commentRss>
        </item>
        <item>
            <title>SharePoint: Werte aus einer Datenbank-Tabelle in eine Liste einf&amp;uuml;gen / updaten</title>
            <category> - Coding tricks</category>
            <link>http://christian.bloggingon.net/archive/2009/01/15/sharepoint-werte-aus-einer-datenbank-tabelle-in-eine-liste-einfuumlgen.aspx</link>
            <description>&lt;p&gt;Manchmal kann es einer SharePoint Anwendung sinnvoll sein,die Werte einer Liste mit denen einer Tabelle aus einer anderen Datenbank abzugleichen, z.B. wenn man Daten aus einer Anwendung in SharePoint replizieren möchte.&lt;/p&gt;
&lt;p&gt;Dies kann man auf die folgende Art lösen:&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;using System; &lt;br /&gt;
using System.Collections.Generic; &lt;br /&gt;
using System.Text; &lt;br /&gt;
using System.Data.SqlClient; &lt;br /&gt;
using System.Data; &lt;br /&gt;
using Microsoft.SharePoint; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;namespace Konsole2 &lt;br /&gt;
{ &lt;br /&gt;
    class Program &lt;br /&gt;
    {  &lt;br /&gt;
        static void Main(string[] args) &lt;br /&gt;
        {  &lt;br /&gt;
            string strTable = "Tablename"; &lt;br /&gt;
            string strListname = "Listname";  &lt;br /&gt;
            string strUrl = "URL"; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;            string strConn = "ConnectionString;"; &lt;br /&gt;
            string strSQL = "SELECT * from  " + strTable ; &lt;br /&gt;
            SqlConnection conn = new SqlConnection(strConn); &lt;br /&gt;
            SqlDataReader rdr = null; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;            try &lt;br /&gt;
            { &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;                conn.Open(); &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;                SqlCommand cmd = new SqlCommand(strSQL, conn); &lt;br /&gt;
                rdr = cmd.ExecuteReader(); &lt;br /&gt;
                int itemid = 0; &lt;br /&gt;
                int iUpdate = 0; &lt;br /&gt;
                int iInsert = 0; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;                using (SPSite oSPSite = new SPSite(strUrl)) &lt;br /&gt;
                { &lt;br /&gt;
                    using (SPWeb oSPWeb = oSPSite.OpenWeb()) &lt;br /&gt;
                    { &lt;br /&gt;
                        SPList list = oSPWeb.Lists[strListname]; &lt;br /&gt;
                        Console.WriteLine("Table/List: " + list.Title); &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;                        while (rdr.Read()) &lt;br /&gt;
                        { &lt;br /&gt;
                            itemid = Convert.ToInt32(rdr["ListItemId"]); &lt;br /&gt;
                            Console.WriteLine(itemid); &lt;br /&gt;
                             SPListItem spItem; &lt;br /&gt;
                            try &lt;br /&gt;
                            { &lt;br /&gt;
                                spItem = list.GetItemById(itemid); &lt;br /&gt;
                            } &lt;br /&gt;
                            catch (Exception ex) &lt;br /&gt;
                            { &lt;br /&gt;
                                spItem = null; &lt;br /&gt;
                            } &lt;br /&gt;
                            if (spItem != null) &lt;br /&gt;
                            { &lt;br /&gt;
                                spItem = list.Items.Add(); &lt;br /&gt;
                                iInsert++; &lt;br /&gt;
                            } &lt;br /&gt;
                                // Update &lt;br /&gt;
                                iUpdate++; &lt;br /&gt;
                                for (int i = 0; i &amp;lt; rdr.FieldCount; i++) &lt;br /&gt;
                                {                                    &lt;br /&gt;
                                    try &lt;br /&gt;
                                    { &lt;br /&gt;
                                        spItem[spItem.Fields.GetFieldByInternalName(rdr.GetName(i)).Title] = rdr.GetValue(i); &lt;br /&gt;
                                    } &lt;br /&gt;
                                    catch (Exception ex) &lt;br /&gt;
                                    { &lt;br /&gt;
                                        Console.WriteLine(ex.Message ); &lt;br /&gt;
                                    } &lt;br /&gt;
                                }  &lt;br /&gt;
                                spItem.Update(); &lt;br /&gt;
                        } &lt;br /&gt;
                    } &lt;br /&gt;
                } &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;                Console.WriteLine(iUpdate + " Updates"); &lt;br /&gt;
                Console.WriteLine(iInsert + " Inserts"); &lt;br /&gt;
            } &lt;br /&gt;
            finally &lt;br /&gt;
            { &lt;br /&gt;
                if (rdr != null) &lt;br /&gt;
                { &lt;br /&gt;
                    rdr.Close(); &lt;br /&gt;
                } &lt;br /&gt;
                if (conn.State == ConnectionState.Open) &lt;br /&gt;
                { &lt;br /&gt;
                    conn.Close(); &lt;br /&gt;
                } &lt;br /&gt;
            }  &lt;br /&gt;
        }  &lt;br /&gt;
    } &lt;br /&gt;
}&lt;/font&gt;&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/299.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/01/15/sharepoint-werte-aus-einer-datenbank-tabelle-in-eine-liste-einfuumlgen.aspx</guid>
            <pubDate>Thu, 15 Jan 2009 17:24:18 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/299.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/01/15/sharepoint-werte-aus-einer-datenbank-tabelle-in-eine-liste-einfuumlgen.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/299.aspx</wfw:commentRss>
        </item>
        <item>
            <title>SharePoint: CAML-Abfragen per Assistenten erzeugen</title>
            <category>- Allgemein</category>
            <link>http://christian.bloggingon.net/archive/2009/01/11/sharepoint-caml-abfragen-per-assistenten-erzeugen.aspx</link>
            <description>&lt;p&gt;In SharePoint wird für Abfragen auf SharePoint-Listen die "Collaborative Application Markup Language" (CAML) verwendet. Da es etwas mühsam ist diese manuell zu erstellen, ist es ganz praktisch dass es hierfür einen Assistenten gibt: &lt;a title="http://www.u2u.info/Blogs/Patrick/Lists/Posts/Post.aspx?ID=1252" target="_blank" href="http://www.u2u.info/Blogs/Patrick/Lists/Posts/Post.aspx?ID=1252"&gt;http://www.u2u.info/Blogs/Patrick/Lists/Posts/Post.aspx?ID=1252&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/298.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/01/11/sharepoint-caml-abfragen-per-assistenten-erzeugen.aspx</guid>
            <pubDate>Sun, 11 Jan 2009 19:16:35 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/298.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/01/11/sharepoint-caml-abfragen-per-assistenten-erzeugen.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/298.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Anmerkungen zu document.getElementsByTagName()</title>
            <category> -  Javascript</category>
            <category>- Javascript</category>
            <link>http://christian.bloggingon.net/archive/2009/01/07/anmerkungen-zu-document.getelementsbytagname.aspx</link>
            <description>&lt;p&gt;Mit document.getElementsByTagName() lässt sich bekanntlich auf beliebige HTML-Elemente des Documentes zugreifen. Für jeden HTML-Elementtyp wird im Dokument ein Array erzeugt, über den die einzelnen Elemente dann ansprechbar sind.&lt;/p&gt;
&lt;p&gt;Lässt man sich z.B. mit: &lt;font face="Courier New" size="2"&gt;var tagTable= document.getElementsByTagName("table")&lt;/font&gt; &lt;/p&gt;
&lt;p&gt;das Array der Elemente vom Typ "Table" ausgeben, dann ist dies keine eigentliche Zuweisung sondern ein Pointer auf dieses Array im Dokument. D.h. legt man in einer Javascript-Funktion nach der obigen Zuweisung eine neue Tabelle an, dann ist diese automatisch in der Variablen "tagTable" enthalten.&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/297.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/01/07/anmerkungen-zu-document.getelementsbytagname.aspx</guid>
            <pubDate>Wed, 07 Jan 2009 10:39:57 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/297.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/01/07/anmerkungen-zu-document.getelementsbytagname.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/297.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Eine Tabelle dynamisch mit JavaScript erstellen</title>
            <category> -  Javascript</category>
            <category>- Javascript</category>
            <link>http://christian.bloggingon.net/archive/2009/01/05/eine-tabelle-dynamisch-mit-javascript-erstellen.aspx</link>
            <description>&lt;p&gt;Manchmal kann es notwendig sein in eine HTML-Seite per JavaScript eine Tabelle hinzuzufügen. Hier ein kleines Beispiel mit einer entsprechenden JavaScript-Funktion welche hierbei nützlich sein kann:&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&amp;gt; &lt;br /&gt;
&amp;lt;head&amp;gt; &lt;br /&gt;
&amp;lt;meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /&amp;gt; &lt;br /&gt;
&amp;lt;title&amp;gt;Unbenanntes Dokument&amp;lt;/title&amp;gt; &lt;br /&gt;
&amp;lt;script language="javascript"&amp;gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;function start() { &lt;br /&gt;
    node = document.getElementById("tabelle1"); &lt;br /&gt;
    node.parentNode.insertBefore(createTable(3, 3), node ); &lt;br /&gt;
} &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;function createTable(row, col, id) { &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;    var myTable     = document.createElement("table"); &lt;br /&gt;
        var mytablebody = document.createElement("tbody"); &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;        for(var j = 0; j &amp;lt; row; j++) { &lt;br /&gt;
            mycurrent_row = document.createElement("tr"); &lt;br /&gt;
            for(var i = 0; i &amp;lt; col; i++) { &lt;br /&gt;
                    mycurrent_cell = document.createElement("td");                &lt;br /&gt;
                    currenttext = document.createTextNode("row"+j+", column "+i); &lt;br /&gt;
                    mycurrent_cell.appendChild(currenttext); &lt;br /&gt;
                    mycurrent_row.appendChild(mycurrent_cell); &lt;br /&gt;
            } &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;            mytablebody.appendChild(mycurrent_row); &lt;br /&gt;
    } &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;    myTable.appendChild(mytablebody); &lt;br /&gt;
    myTable.setAttribute("ID", id); &lt;br /&gt;
    return myTable; &lt;br /&gt;
} &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;lt;/script&amp;gt;    &lt;br /&gt;
&amp;lt;/head&amp;gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;&amp;lt;body onload="javascript:start()"&amp;gt; &lt;br /&gt;
&amp;lt;table width="100" border="0" cellpadding="0" cellspacing="1" id="tabelle1"&amp;gt; &lt;br /&gt;
  &amp;lt;tr&amp;gt; &lt;br /&gt;
    &amp;lt;td&amp;gt;Feld 1 &amp;lt;/td&amp;gt; &lt;br /&gt;
    &amp;lt;td&amp;gt;Feld 2 &amp;lt;/td&amp;gt; &lt;br /&gt;
    &amp;lt;td&amp;gt;Feld 3 &amp;lt;/td&amp;gt; &lt;br /&gt;
  &amp;lt;/tr&amp;gt; &lt;br /&gt;
&amp;lt;/table&amp;gt; &lt;br /&gt;
&amp;lt;/body&amp;gt; &lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/296.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2009/01/05/eine-tabelle-dynamisch-mit-javascript-erstellen.aspx</guid>
            <pubDate>Mon, 05 Jan 2009 10:45:07 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/296.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2009/01/05/eine-tabelle-dynamisch-mit-javascript-erstellen.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/296.aspx</wfw:commentRss>
        </item>
        <item>
            <title>SharePoint und tables</title>
            <category>- Design</category>
            <category>- Allgemein</category>
            <category>- Javascript</category>
            <link>http://christian.bloggingon.net/archive/2008/12/18/sharepoint-und-tables.aspx</link>
            <description>&lt;p&gt;SharePoint benutzt für die Darstellung seiner Inhalte hauptsächlich Tabellen und ist hierbei nicht sparsam. Abgesehen davon dass die Seiten länger brauchen bis Sie gerendert und im Browser dargestellt sind macht es auch das layouten von Seiten umständlicher.&lt;/p&gt;
&lt;p&gt;Wenn man sich die folgende kleine JavaScript-Function auf dem estserver in den Body onload-Event der Masterpage einbindet kann man sich pro Seite die Anzahl der verwendeten Tabellen und der Zellen ausgeben lassen und wird evtl. überrascht sein: &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;&lt;font face="Courier New" size="2"&gt;function countTables(){ &lt;br /&gt;
&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;    var tables = document.getElementsByTagName("table") &lt;br /&gt;
    var cells = document.getElementsByTagName("td") &lt;br /&gt;
    alert(tables.length + ' tables with ' + cells.length + ' cells'); &lt;br /&gt;
&lt;/font&gt;&lt;font face="Courier New" size="2"&gt;}&lt;/font&gt;&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/295.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2008/12/18/sharepoint-und-tables.aspx</guid>
            <pubDate>Thu, 18 Dec 2008 18:20:44 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/295.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2008/12/18/sharepoint-und-tables.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/295.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Tutorial Regex</title>
            <category> -  CSharp</category>
            <category>CSharp</category>
            <link>http://christian.bloggingon.net/archive/2008/12/17/tutorial-regex.aspx</link>
            <description>&lt;p&gt;Unter der Adresse &lt;a title="http://www.mycsharp.de/wbb2/thread.php?threadid=41009" href="http://www.mycsharp.de/wbb2/thread.php?threadid=41009" target="_blank"&gt;http://www.mycsharp.de/wbb2/thread.php?threadid=41009&lt;/a&gt; findet man ich ein gutes Tutorial für Regex.&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/294.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2008/12/17/tutorial-regex.aspx</guid>
            <pubDate>Wed, 17 Dec 2008 18:08:34 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/294.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2008/12/17/tutorial-regex.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/294.aspx</wfw:commentRss>
        </item>
        <item>
            <title>SharePoint CSS-Referenz</title>
            <category>- Design</category>
            <link>http://christian.bloggingon.net/archive/2008/12/16/css-referenz.aspx</link>
            <description>&lt;p&gt;Unter der folgenden Adresse findet man eine anschauliche CSS-Referenz über die von SharePoint verwendeten StyleSheets (core.css): &lt;a title="http://www.heathersolomon.com/content/sp07cssreference.htm" target="_blank" href="http://www.heathersolomon.com/content/sp07cssreference.htm"&gt;http://www.heathersolomon.com/content/sp07cssreference.htm&lt;/a&gt;&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/293.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2008/12/16/css-referenz.aspx</guid>
            <pubDate>Tue, 16 Dec 2008 18:08:12 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/293.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2008/12/16/css-referenz.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/293.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Minimale Master Pages f&amp;uuml;r SharePoint</title>
            <category>- Design</category>
            <link>http://christian.bloggingon.net/archive/2008/12/15/minimale-master-pages-fuumlr-sharepoint.aspx</link>
            <description>&lt;p&gt;Bei Microsoft gibt es einen Artikel über den Aufbau einer minimalen Master Page für SharePoint. So benötigt das SharePoint page model bestimmte content Platzhalter (z.B. Navigation, Content etc) um den Content darstellen zu können: &lt;br /&gt;
&lt;a title="http://msdn.microsoft.com/en-us/library/aa660698.aspx" target="_blank" href="http://msdn.microsoft.com/en-us/library/aa660698.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa660698.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/292.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2008/12/15/minimale-master-pages-fuumlr-sharepoint.aspx</guid>
            <pubDate>Mon, 15 Dec 2008 18:07:15 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/292.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2008/12/15/minimale-master-pages-fuumlr-sharepoint.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/292.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Damit wir UpToDate bleiben ...</title>
            <category> off topic</category>
            <link>http://christian.bloggingon.net/archive/2008/12/15/damit-wir-uptodate-bleiben.aspx</link>
            <description>&lt;p&gt;hier eine Auswahl von derzeit gängigen Vokabular der Jugend:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/DamitwirUpToDatebleiben_9745/pic16162_2.gif"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="576" alt="pic16162" src="http://christian.bloggingon.net/images/christian_bloggingon_net/WindowsLiveWriter/DamitwirUpToDatebleiben_9745/pic16162_thumb.gif" width="500" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://christian.bloggingon.net/aggbug/291.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Christian Kiefer</dc:creator>
            <guid>http://christian.bloggingon.net/archive/2008/12/15/damit-wir-uptodate-bleiben.aspx</guid>
            <pubDate>Mon, 15 Dec 2008 08:51:10 GMT</pubDate>
            <wfw:comment>http://christian.bloggingon.net/comments/291.aspx</wfw:comment>
            <comments>http://christian.bloggingon.net/archive/2008/12/15/damit-wir-uptodate-bleiben.aspx#feedback</comments>
            <wfw:commentRss>http://christian.bloggingon.net/comments/commentRss/291.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>