<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>XP - Development</title>
    <link>http://www.xp-dev.de/</link>
    <description>Tägliche Programmierarbeiten, Agile Entwicklung und kleine Tools in php5 und asp.net</description>
    <dc:language>de</dc:language>
    <generator>Serendipity 1.2.1 - http://www.s9y.org/</generator>
    <managingEditor>info@xp-dev.de</managingEditor>
<webMaster>info@xp-dev.de</webMaster>
<pubDate>Wed, 07 May 2008 19:30:37 GMT</pubDate>

    <image>
        <url>http://www.xp-dev.de/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: XP - Development - Tägliche Programmierarbeiten, Agile Entwicklung und kleine Tools in php5 und asp.net</title>
        <link>http://www.xp-dev.de/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>xp-development.com ist online!</title>
    <link>http://www.xp-dev.de/index.php?/archives/40-xp-development.com-ist-online!.html</link>
            <category>Allgemeines</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/40-xp-development.com-ist-online!.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=40</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=40</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    xp-dev.de hat ausgedient und wird nun durch &lt;a href=&quot;http://de.xp-development.com&quot; title=&quot;xp-development.com&quot;&gt;xp-development.com&lt;/a&gt; ersetzt. Dort erwarten euch mehr Infos und ganz neue Bereiche! Abboniert euch einfach den neuen &lt;a href=&quot;http://de.xp-development.com/blog/feeds/index.rss2&quot; title=&quot;RSS Feed&quot;&gt;RSS Feed&lt;/a&gt;!&lt;br /&gt;
&lt;br /&gt;
Unter anderem findet Ihr auf der neuen Seite:
&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://de.xp-development.com/reports/&quot; title=&quot;Berichte übe Agile Softwareentwicklung&quot;&gt;Berichte über Agile Softwareentwicklung&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://de.xp-development.com/tools/&quot; title=&quot;Activities für den Internet Explorer 8&quot;&gt;Activities für den Internet Explorer 8&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;WebSlices für den Internet Explorer 8&lt;/li&gt;
  &lt;li&gt;und noch mehr...&lt;/li&gt;
&lt;/ul&gt; 
    </content:encoded>

    <pubDate>Wed, 07 May 2008 21:13:17 +0200</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/40-guid.html</guid>
    
</item>
<item>
    <title>Internet Explorer 8 nun auch endlich in Deutsch!</title>
    <link>http://www.xp-dev.de/index.php?/archives/37-Internet-Explorer-8-nun-auch-endlich-in-Deutsch!.html</link>
            <category>Browser</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/37-Internet-Explorer-8-nun-auch-endlich-in-Deutsch!.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=37</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=37</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    Der &lt;a href=&quot;http://www.xp-dev.de/index.php?/archives/31-Internet-Explorer-8-Beta.html&quot; title=&quot;IE 8&quot; target=&quot;blank&quot;&gt;Internet Explorer 8&lt;/a&gt; ist nun auch endlich in Deutsch zu haben! Für alle, die den IE 8 bisher aufgrund der Sprachbarierre noch nicht installiert haben, haben nun die Möglichkeit in den Genuss der neuen Features (z.B. der &lt;a href=&quot;http://www.xp-dev.de/index.php?/archives/33-Internet-Explorer-8-Serendipity-Blog-Activity.html&quot; title=&quot;Internet Explorer 8 Activity&quot; target=&quot;blank&quot;&gt;Activities&lt;/a&gt;) des Microsoft Browsers zu kommen!&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.microsoft.com/germany/windows/products/winfamily/ie/ie8/getitnow.mspx&quot; title=&quot;Internet Explorer 8 download&quot; target=&quot;blank&quot;&gt;Hier ist der Browser zu finden!&lt;/a&gt; 
    </content:encoded>

    <pubDate>Tue, 15 Apr 2008 22:32:56 +0200</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/37-guid.html</guid>
    
</item>
<item>
    <title>Serendipity Blog Activity Icon</title>
    <link>http://www.xp-dev.de/index.php?/archives/35-Serendipity-Blog-Activity-Icon.html</link>
            <category>Browser</category>
            <category>Tools and Activities</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/35-Serendipity-Blog-Activity-Icon.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=35</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=35</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    Die &lt;a target=&quot;blank&quot; href=&quot;http://www.xp-dev.de/index.php?/archives/33-Internet-Explorer-8-Serendipity-Blog-Activity.html&quot; title=&quot;Serendipity Blog Activity&quot;&gt;Serendipity Blog Activity&lt;/a&gt; hat nun endlich auch ein Icon. Ich nutze dafür nun das bekannte Serendipity Logo.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://board.s9y.org/viewtopic.php?t=12533&quot; target=&quot;blank&quot;&gt;Das ist natürlich mit den Leuten von Serendipity abgesprochen!&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
An dieser Stelle nochmal vielen Dank an das Team von &lt;a href=&quot;http://www.s9y.org&quot; target=&quot;blank&quot; title=&quot;Serendipity Blog&quot;&gt;s9y.org&lt;/a&gt;! 
    </content:encoded>

    <pubDate>Tue, 01 Apr 2008 18:52:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/35-guid.html</guid>
    
</item>
<item>
    <title>Internet Explorer 8 - Serendipity Blog Activity</title>
    <link>http://www.xp-dev.de/index.php?/archives/33-Internet-Explorer-8-Serendipity-Blog-Activity.html</link>
            <category>Browser</category>
            <category>Tools and Activities</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/33-Internet-Explorer-8-Serendipity-Blog-Activity.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=33</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=33</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    Ich habe soebend meine erste Activity entwickelt. Mit dieser Activity ist es möglich einen Text zu makieren und diesen dann direkt zu bloggen. Diese Funktion ist besonders gut für Zitate geeignet.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Diese Activity ist speziell für den Serendipity Blog entwickelt.&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Vorraussetzung für dieses Tool ist der &lt;a href=&quot;http://www.xp-dev.de/index.php?/archives/31-Internet-Explorer-8-Beta.html&quot; title=&quot;Internet Explorer 8&quot; target=&quot;blank&quot;&gt;Internet Explorer 8&lt;/a&gt;. Außerdem muss man bei seinem Blog schon eingeloggt sein. Ansonsten wird der Text nicht mit kopiert.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.xp-dev.de/tools/blog-serendipity.php&quot; onclick=&quot;window.open(this.href, &#039;Serendipity&#039;, &#039;width=400,height=200,left=200,top=150,scrollbars=yes&#039;); return false;&quot;&gt;Serendipity Blog Activity installieren&lt;/a&gt; 
    </content:encoded>

    <pubDate>Sun, 16 Mar 2008 18:02:00 +0100</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/33-guid.html</guid>
    
</item>
<item>
    <title>Internet Explorer 8 Beta</title>
    <link>http://www.xp-dev.de/index.php?/archives/31-Internet-Explorer-8-Beta.html</link>
            <category>Browser</category>
            <category>Webentwicklung</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/31-Internet-Explorer-8-Beta.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=31</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=31</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    Es ist noch nicht lange her, das der Internet Explorer 7 veröffentlich wurde, schon ist auch die erste Beta Version des IE 8 draußen.&lt;br /&gt;
&lt;br /&gt;
Ich habe mir die neue Version bereits runtergeladen und bin jetzt schon vollkommen begeistert! Es sieht so aus, als ob Microsoft nun endlich den ersten Browser für Entwickler entwicklen würde! Script-Debugging, DOM-Inspector und eine CSS-Ansicht, alles was der Firefox schon lange besitzt, kommt nun auch dem IE zu Gute.&lt;br /&gt;
&lt;br /&gt;
Damit möchte Microsoft anscheind die Developer Community zurückgewinnen. Das wird allerdings auch so langsam Zeit, da viele Entwickler, die für Microsoft arbeiten, mittlerweile auch den Firefox benutzen.&lt;br /&gt;
&lt;br /&gt;
Zudem sollen weitere Features das IE 8 Produkt abrunden. Dazu gehören u.a. &lt;a target=&quot;blank&quot; href=&quot;http://www.microsoft.com/windows/products/winfamily/ie/ie8/readiness/NewFeatures.htm&quot; title=&quot;Internet Explorer 8 Features&quot;&gt;Activities und die WebSlices.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;
&lt;a target=&quot;blank&quot; href=&quot;http://www.microsoft.com/windows/products/winfamily/ie/ie8/readiness/Install.htm&quot; title=&quot;Internet Explorer 8&quot;&gt;Hier kann der neue Internet Explorer installiert werden.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a target=&quot;blank&quot; href=&quot;http://www.xp-dev.de/index.php?/archives/33-Internet-Explorer-8-Serendipity-Blog-Activity.html&quot; title=&quot;Internet Explorer 8 Serendipity Blog Activity&quot;&gt;Hier habe ich eine Activity für den Serendipity Blog entwickelt.&lt;/a&gt; 
    </content:encoded>

    <pubDate>Sun, 16 Mar 2008 17:01:22 +0100</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/31-guid.html</guid>
    
</item>
<item>
    <title>Resource Refactoring</title>
    <link>http://www.xp-dev.de/index.php?/archives/30-Resource-Refactoring.html</link>
            <category>Refactoring</category>
            <category>XP</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/30-Resource-Refactoring.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=30</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=30</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    Wer in .net mit Resourcen arbeitet, wird sich über dieses Tool wahrhaftig freuen! Es erweitert das Context Menü im Visual Studio für Refactoring und ermöglicht ein schnelles auslagern von Strings in die Resourcen.&lt;br /&gt;
&lt;br /&gt;
Zu finden ist es unter &lt;a href=&quot;http://www.codeplex.com/&quot; target=&quot;blank&quot;&gt;Codeplex&lt;/a&gt; oder direkt unter &lt;a href=&quot;http://www.codeplex.com/ResourceRefactoring&quot; target=&quot;blank&quot;&gt;Resource Refactoring&lt;/a&gt;! 
    </content:encoded>

    <pubDate>Wed, 12 Mar 2008 21:50:10 +0100</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/30-guid.html</guid>
    
</item>
<item>
    <title>Optimierungspotenzial beim Stringvergleich</title>
    <link>http://www.xp-dev.de/index.php?/archives/29-Optimierungspotenzial-beim-Stringvergleich.html</link>
            <category>Refactoring</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/29-Optimierungspotenzial-beim-Stringvergleich.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=29</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=29</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    &lt;strong&gt;Von 20 Sekunden auf weniger 1 Sekunde!&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Man sollte meinen, dass das Vergleichen zweier Strings nicht viel Performance in Anspruch nehmen sollte, aber man wird ja immer wieder eines besseren belehrt!&lt;br /&gt;
&lt;br /&gt;
Ein relativ kurzer Codeabschnitt hatte eine enorm lange Durchlaufzeit. Problem war, das zwei Schleifen verschachtelt werden mussten und zudem in der zweiten Schleife noch zwei Stringvergleiche integriert werden mussten! Die Stringvergleiche sahen in etwa so aus:&lt;br /&gt;
&lt;blockquote&gt;
string val = &quot;SOMEVALUE&quot;;
if (val.ToLower() == &quot;somevalue&quot;)
&lt;/blockquote&gt;
&lt;br /&gt;
Da es sich um recht viele Daten gehandelt hat, wurde die ToLower Methode insgesamt 13,5 Mio mal aufgerufen. Für diesen simplen Code nahm der Prozessor gleich 20 Sekunden in Anspruch.&lt;br /&gt;
&lt;br /&gt;
Nun änderten wir den Stringvergleich folgendermaßen ab:&lt;br /&gt;
&lt;blockquote&gt;
string val = &quot;SOMEVALUE&quot;;
if (val.Equals(&quot;somevalue&quot;, StringComparison.OrdinalIgnoreCase))
&lt;/blockquote&gt;
&lt;br /&gt;
Das Ergebnis ist immer noch das selbe, allerdings wurde somit die Dauer auf weniger 1 Sekunde gebracht!&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Die ToLower Methode erzeugt bei jedem Aufruf einen neuen String, der zurückgegeben wird. Allein die Erstellung des neuen Strings nimmt enorm viel Zeit in Anspruch!&lt;/strong&gt; 
    </content:encoded>

    <pubDate>Mon, 25 Feb 2008 20:46:08 +0100</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/29-guid.html</guid>
    
</item>
<item>
    <title>Wie sieht eigentlich meine eigene Webseite aus?</title>
    <link>http://www.xp-dev.de/index.php?/archives/28-Wie-sieht-eigentlich-meine-eigene-Webseite-aus.html</link>
            <category>Browser</category>
            <category>Webentwicklung</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/28-Wie-sieht-eigentlich-meine-eigene-Webseite-aus.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=28</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=28</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    Die verschiedensten Betriebssysteme und viele verschiedene Browser.. wie soll man eigentlich eine Webseite erstellen, die auf allen Betriebssystemen und bei allen Browsern gleich aussieht?!&lt;br /&gt;
&lt;br /&gt;
Eine Lösung bietet hierbei der Anbieter von &lt;a href=&quot;http://browsershots.org&quot; target=&quot;blank&quot; title=&quot;Browsershots&quot;&gt;browsershots.org&lt;/a&gt;! Die Bedienung gestaltet sich sehr einfach! Die Webseite, die geprüft werden soll, angeben und fertig!&lt;br /&gt;
&lt;br /&gt;
Neben den vier Betriebssystemen Linux, Windows, Mac OS und BSD, werden alle gängigen Browser zur Prüfung angeboten, u.a. Firefox, &lt;a href=&quot;http://www.xp-dev.de/index.php?/archives/19-Internet-Explorer-6.0-und-7.0-laufen-parallel!.html&quot; title=&quot;Internet Explorer 4-6&quot;&gt;Internet Explorer 4-6&lt;/a&gt;, Opera, SeaMonkey, Safari, Epiphany, etc.&lt;br /&gt;
&lt;br /&gt;
Als Ergebnis bekommt man Screenshots von den getesteten OS-Browser Kombinationen.&lt;br /&gt;
&lt;br /&gt;
Dieser Dienst erleichtert grade dem Webdesigner das Entwickeln neuer Webseiten, der oftmals gar nicht die Möglichkeit hat, eine Webseite für verschiedene Betriebssysteme zu optimieren, da ihm dazu oftmals die technischen Vorraussetzungen fehlen. 
    </content:encoded>

    <pubDate>Sat, 23 Feb 2008 11:59:22 +0100</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/28-guid.html</guid>
    
</item>
<item>
    <title>Ein neuer Versuch mit einem neuen Projekt!</title>
    <link>http://www.xp-dev.de/index.php?/archives/27-Ein-neuer-Versuch-mit-einem-neuen-Projekt!.html</link>
            <category>Agile Entwickung</category>
            <category>Scrum</category>
            <category>XP</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/27-Ein-neuer-Versuch-mit-einem-neuen-Projekt!.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=27</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=27</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    Wir haben ein neues Projekt. Die Entwicklung soll mit insgesamt sechs Entwicklern von statten gehen. Wir haben uns wieder für die Programmiersprache c# entschieden, damit wir unseren Sourcecode testbar halten können. Die Entwicklungszeit wurde auf drei Monate geschätzt. Um wirklich alle Features in das Release integrieren zu können, dürften keine weiteren größeren Zwischenfälle auftreten.&lt;br /&gt;
&lt;br /&gt;
Da wir schon seit einem Monat bei der Entwicklung sind, möchte ich jetzt auch schon einmal ein Zwischenfazit ziehen.&lt;br /&gt;
Zum einen haben wir in diesem Projekt zum ersten Mal viel weniger Storykarten als sonst immer. Wir haben uns dazu entschlossen die Karten dieses Mal großer zu fassen, da in den vergangenen Projekten die Übersichtlichkeit aufgrund viel zu vieler kleiner Karten erheblich litt. Dies hat sich bereits jetzt schon bewährt. Es ist nun leicht die Übersicht über das Projekt zu behalten.&lt;br /&gt;
Da wir nun weniger Karten haben, haben wir nun endlich ausführliche Taskkarten zu den Storykarten eingeführt. Diese beschreiben den technischen Part der Entwicklung einer Story. Mit diesen Karten hat der Projektleiter allerdings nichts zu tun, diese sind nur für uns Entwickler gedacht.&lt;br /&gt;
Auch &#039;Continuous Integration&#039; funktioniert wunderbar. Jeder checkt seine Änderungen am Sourcecode mehrmals täglich in den gemeinsamen Datenbestand ein. Somit ist jeder immer auf dem aktuellsten Stand der Dinge. Hinzu kommt das unser Buildserver ständig alle Änderungen an diesem Projekt neu kompiliert und unsere Testassemblies komplett testet.&lt;br /&gt;
Was noch nicht so gut funktioniert hat, war die Planung vor Projektbeginn. Wir hatten zu wenige Informationen, um eine wirklich präzise Zeitabschätzung zu geben. Diese Fragen konnten wir mittlerweile durch den &#039;On-Site Customer&#039; klären und können somit auf ein positives Projektende hoffen. 
    </content:encoded>

    <pubDate>Fri, 25 Jan 2008 17:35:58 +0100</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/27-guid.html</guid>
    
</item>
<item>
    <title>Warum das MVC Framework keine großen Projekte unterstützen wird!</title>
    <link>http://www.xp-dev.de/index.php?/archives/26-Warum-das-MVC-Framework-keine-grossen-Projekte-unterstuetzen-wird!.html</link>
            <category>Agile Entwickung</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/26-Warum-das-MVC-Framework-keine-grossen-Projekte-unterstuetzen-wird!.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=26</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=26</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    &lt;a target=&quot;blank&quot; href=&quot;http://weblogs.asp.net/scottgu/archive/2007/11/13/asp-net-mvc-framework-part-1.aspx&quot;  title=&quot;MVC Framework&quot;&gt;Scott Guthrie &lt;/a&gt;und &lt;a target=&quot;blank&quot; href=&quot;http://www.hanselman.com/blog/ScottGuMVCPresentationAndScottHaScreencastFromALTNETConference.aspx&quot;  title=&quot;MVC Framework&quot;&gt;Scott Hanselman&lt;/a&gt; haben in Ihren Blogs das MVC Framework vorgestellt, das schon bald als Download zur Verfügung gestellt werden soll. Ich arbeite nun seit über zwei Jahren nach dem Model View Controller Pattern. Mit den Erfahrungen, die ich mir in dieser Zeit erarbeitet habe, muss ich das Framework &lt;i&gt;leider&lt;/i&gt; kritisieren.&lt;br /&gt;
Wir haben vor zwei Jahren mit dem selben Schema angefangen. Unsere Projekte wurden mit Hilfe von drei Verzeichnissen (Model, View und Controller) unterteilt. Für kleine Projekte ist das auch vollkommen ausreichend. Die Datenbindung wird im Model vollzogen und die gebundenen Daten werden mit Hilfe des Controllers an die View gegeben und dort wiederum ausgegeben.&lt;br /&gt;
Die Verzeichnisstruktur verleitet dazu sich direkt Daten aus dem Model zu holen und auf der Webseite anzuzeigen und somit den Controller komplett zu übergehen.&lt;br /&gt;
Für kleine Projekte, die im Endeffekt nur Daten aus der Datenbank holen und diese auf der Webseite darstellen sollen bzw. Daten auch wieder in der Datenbank abspeichern sollen, ist das so auch in Ordnung. Doch schon bei etwas größeren Projekten fehlt ein wesentlicher Bestandteil, der normalerweise im Model mit abgebildet sein soll: Die Businesslogik.&lt;br /&gt;
Die Businesslogik ist bei komplexeren Projekten am wichtigsten und ist der Hauptteil des Models. Die Model-Schicht bietet eine API an, die dem Controller zur Verfügung gestellt wird. Um eine saubere Trennung zwischen den Schichten herzustellen, hat uns die Erfahrung gelehrt für jede Schicht ein eigenes Projekt anzulegen.&lt;br /&gt;
Die drei Schichten sind immer noch folgende:
&lt;ul&gt;
  &lt;li&gt;View&lt;/li&gt;
  &lt;li&gt;Controller&lt;/li&gt;
  &lt;li&gt;Model&lt;/li&gt;
&lt;/ul&gt;
Allerdings hat jede Schicht ein eigenes Projekt. Somit werden unerwünschte Zugriffe z.B. von der View direkt zum Model, unterbunden. D.h. die View darf nur mit dem Controller kommunizieren und das Model selbst darf auch nur mit dem Controller kommunizieren.&lt;br /&gt;
Wie schon erwähnt ist das Model die wohl wichtigste Schicht. Um in diese Schicht nochmal Struktur zu bringen, haben wir diese Schicht nochmals in drei kleineren Schichten unterteilt:
&lt;ul&gt;
  &lt;li&gt;API&lt;/li&gt;
  &lt;li&gt;DataModel&lt;/li&gt;
  &lt;li&gt;DAL&lt;/li&gt;
&lt;/ul&gt;
Die drei Schichten sind klar definiert und helfen einem sehr bei der Entwicklung bzw. auch bei späteren Weiterentwicklungen.&lt;br /&gt;
&lt;strong&gt;API&lt;/strong&gt;: Das Application Programming Interface ist die oberste Schicht und besitzt als einzige Klassen mit öffentlichen Methoden. Der Controller hat nur die Möglichkeit mit der API zu kommunizieren.&lt;br /&gt;
&lt;strong&gt;DataModel&lt;/strong&gt;: Das DataModel ist ein Abbild der Datenbank. In dieses DataModel werden die Daten aus der Datenbank geladen und können dort verändert werden.&lt;br /&gt;
&lt;strong&gt;DAL&lt;/strong&gt;: Der Data Access Layer ist für die Datenbindung zuständig. Dieser füllt die Daten aus der Datenbank in das DataModel bzw. speichert geänderte Daten wieder in der Datenbank ab.&lt;br /&gt;
&lt;br /&gt;
Die Businesslogik kann sich je nach Anwendung entweder in der API oder im DataModel befinden.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Meine Meinung&lt;/strong&gt;: Momentan scheint es leider so, dass das MVC Framework kein Platz für die eigentliche Businesslogik lässt. Für die kleinen Beispiel-Projekte wird diese auch nicht nötig sein. Allerdings werden bei der Entwicklung großer Projekte noch einige Unebenheiten aufteten, die durch das Framework entstehen werden.&lt;br /&gt;
Ich möchte aber nicht alles negativ reden! Das Mapping der URL&#039;s zu den Controller Klassen verspricht doch eine ganze Menge. Somit können die .NET Projekte endlich auf einfache Weise google-freundliche URL&#039;s anbieten. 
    </content:encoded>

    <pubDate>Thu, 15 Nov 2007 22:08:57 +0100</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/26-guid.html</guid>
    
</item>
<item>
    <title>So langsam kann ein Index sein!</title>
    <link>http://www.xp-dev.de/index.php?/archives/25-So-langsam-kann-ein-Index-sein!.html</link>
            <category>Datenbanken</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/25-So-langsam-kann-ein-Index-sein!.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=25</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=25</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    Beim Erstellen einer Tabelle in MySql ist mir ein gravierender Fehler unterlaufen. Ich habe einen Index für eine Spalte vom Type varchar(200) angelegt. Die Antwortzeiten lagen bei 14 Sekunden für eine Teilstring-Abfrage. Daraufhin habe ich den Index gelöscht. Nun dauern die Abfragen unter 0,5 Sekunden. 
    </content:encoded>

    <pubDate>Mon, 01 Oct 2007 18:40:55 +0200</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/25-guid.html</guid>
    
</item>
<item>
    <title>Testgetriebene Entwicklung mit php5</title>
    <link>http://www.xp-dev.de/index.php?/archives/24-Testgetriebene-Entwicklung-mit-php5.html</link>
            <category>Agile Entwickung</category>
            <category>php5</category>
            <category>Webentwicklung</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/24-Testgetriebene-Entwicklung-mit-php5.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=24</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=24</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    Beim Herumstöbern in alten Projekten fand ich ein Projekt, das schon ca. 1 Jahr alt ist. Es handelt sich hierbei um ein Framework, das in php geschrieben ist. Es ist eine Nachstellung des .NET Framework&#039;s von Microsoft. Dieses Projekt ist meiner Meinung nach sehr Interessant, da man sieht, wie schnell php5 an seine Grenzen stößt. php5 hat im Gegensatz zu seinem Vorgänger php4 zwar einen riesigen Sprung in Richtung OOP gemacht, trotzdem ist in c# immernoch eine Menge mehr möglich!&lt;br /&gt;
&lt;br /&gt;
In erster Linie ging es mir darum die Klassen DataTable, DataColumn, DataRow und die anderen dazugehörigen Klassen nachzustellen. Ziel des Projektes war es die Klassen möglichst genau den .NET Klassen nachzustellen. Diese Klassen sind zwar noch nicht sehr weit fortgeschritten, trotzdem stelle ich euch diese mal zum Download bereit. Die dazugehörigen Tests sind ebenfalls im Download enthalten.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.xp-dev.de/uploads/framework_0.1.rar&quot; title=&quot;framework_0.1.rar&quot; target=&quot;_blank&quot;&gt;framework_0.1.rar&lt;/a&gt; 
    </content:encoded>

    <pubDate>Sat, 15 Sep 2007 14:07:00 +0200</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/24-guid.html</guid>
    
</item>
<item>
    <title>MySql-Query lieferte falsche Daten. Grund: case-sensitive</title>
    <link>http://www.xp-dev.de/index.php?/archives/23-MySql-Query-lieferte-falsche-Daten.-Grund-case-sensitive.html</link>
            <category>Datenbanken</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/23-MySql-Query-lieferte-falsche-Daten.-Grund-case-sensitive.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=23</wfw:comment>

    <slash:comments>5</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=23</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    Heute hat sich beim Entwickeln wieder ein kurioser Fehler eingeschlichen. Beim Auslesen von Daten aus einer MySql Tabelle, habe ich nicht erwünschte Daten wiederbekommen. Grund dafür war die unterschiedliche Behandlung zwischen Groß- und Kleinschreibung.&lt;br /&gt;
&lt;br /&gt;
Beim Erstellen einer MySql Tabelle sollte unbedingt darauf geachtet werden, welcher Zeichensatz genutzt wird. Standardmäßig nimmt mein lokaler MySql Server den Zeichensatz latin1_swedish_ci, wobei das ci für case-insensitive steht.&lt;br /&gt;
&lt;br /&gt;
Daher sollte man sich schon vor dem Erstellen einer Tabelle gedanken über den Zeichensatz machen. Für Daten, die immer case-sensitive sein sollen, nutze ich nun latin1_general_cs (cs steht für case-sensitive).&lt;br /&gt;
&lt;br /&gt;
Sollte die gewünschte Spalte, die abgefragt werden soll, case-insensitive sein, kann direkt im SELECT Befehl dies geändert werden!&lt;br /&gt;
&lt;blockquote&gt;
col_name COLLATE latin1_general_cs = &#039;value&#039;
&lt;/blockquote&gt;
&lt;br /&gt;
Weitere Informationen zu diesem Thema findet Ihr hier: &lt;a href=&quot;http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html&quot; target=&quot;blank&quot;  title=&quot;MySql case-sensitive&quot;&gt;MySql case-sensitive&lt;/a&gt; 
    </content:encoded>

    <pubDate>Tue, 04 Sep 2007 22:34:38 +0200</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/23-guid.html</guid>
    
</item>
<item>
    <title>Migration von MySql 4 zu MySql 5 abgeschlossen!</title>
    <link>http://www.xp-dev.de/index.php?/archives/22-Migration-von-MySql-4-zu-MySql-5-abgeschlossen!.html</link>
            <category>Datenbanken</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/22-Migration-von-MySql-4-zu-MySql-5-abgeschlossen!.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=22</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=22</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    Am letzten Wochenende haben wir es endlich gewagt den MySql Server mit der Version 4 durch einen MySql 5 Server zu ersetzen. Mitten in der Nacht wurden die Daten vom alten auf den neuen Server kopiert. Dies alleine dauerte schon vier bis fünf Stunden. Direkt danach haben wir einfach die IP&#039;s der beiden Server getauscht und schon war der neue Server in betrieb.&lt;br /&gt;
&lt;br /&gt;
Trotz langer Vorbereitungen für diesen Tag sind an mehreren Stellen Fehler aufgetreten:&lt;br /&gt; &lt;br /&gt;&lt;a href=&quot;http://www.xp-dev.de/index.php?/archives/22-Migration-von-MySql-4-zu-MySql-5-abgeschlossen!.html#extended&quot;&gt;&quot;Migration von MySql 4 zu MySql 5 abgeschlossen!&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 28 Aug 2007 21:47:11 +0200</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/22-guid.html</guid>
    
</item>
<item>
    <title>Migration MySql 4 zu Version 5</title>
    <link>http://www.xp-dev.de/index.php?/archives/21-Migration-MySql-4-zu-Version-5.html</link>
            <category>Datenbanken</category>
            <category>Webentwicklung</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/21-Migration-MySql-4-zu-Version-5.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=21</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=21</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    In den nächsten Tagen wollen wir endlich unseren MySql 4 Server abschalten und diesen durch einen MySql 5 Server ersetzten. Dabei fällt auf, dass immer wieder kleine Fehler auftauchen. &lt;br /&gt;&lt;a href=&quot;http://www.xp-dev.de/index.php?/archives/21-Migration-MySql-4-zu-Version-5.html#extended&quot;&gt;&quot;Migration MySql 4 zu Version 5&quot; vollständig lesen&lt;/a&gt;
    </content:encoded>

    <pubDate>Tue, 21 Aug 2007 21:40:27 +0200</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/21-guid.html</guid>
    
</item>

</channel>
</rss>