Kategorien |
Mittwoch, 7. Mai 2008xp-development.com ist online!
xp-dev.de hat ausgedient und wird nun durch xp-development.com ersetzt. Dort erwarten euch mehr Infos und ganz neue Bereiche! Abboniert euch einfach den neuen RSS Feed!
Unter anderem findet Ihr auf der neuen Seite:
Dienstag, 15. April 2008
Internet Explorer 8 nun auch endlich ... Geschrieben von Jan Schubert
in Browser um
22:32
Kommentar (1) Internet Explorer 8 nun auch endlich in Deutsch!
Der Internet Explorer 8 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 Activities) des Microsoft Browsers zu kommen!
Hier ist der Browser zu finden! Dienstag, 1. April 2008
Serendipity Blog Activity Icon Geschrieben von Jan Schubert
in Browser, Tools and Activities um
18:52
Serendipity Blog Activity Icon
Die Serendipity Blog Activity hat nun endlich auch ein Icon. Ich nutze dafür nun das bekannte Serendipity Logo.
Das ist natürlich mit den Leuten von Serendipity abgesprochen! An dieser Stelle nochmal vielen Dank an das Team von s9y.org! Sonntag, 16. März 2008
Internet Explorer 8 - Serendipity ... Geschrieben von Jan Schubert
in Browser, Tools and Activities um
18:02
Kommentar (1) Trackbacks (3) Internet Explorer 8 - Serendipity Blog Activity
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.
Diese Activity ist speziell für den Serendipity Blog entwickelt. Vorraussetzung für dieses Tool ist der Internet Explorer 8. Außerdem muss man bei seinem Blog schon eingeloggt sein. Ansonsten wird der Text nicht mit kopiert. Serendipity Blog Activity installieren Sonntag, 16. März 2008
Internet Explorer 8 Beta Geschrieben von Jan Schubert
in Browser, Webentwicklung um
17:01
Kommentare (2) Trackbacks (2) Internet Explorer 8 Beta
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.
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. 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. Zudem sollen weitere Features das IE 8 Produkt abrunden. Dazu gehören u.a. Activities und die WebSlices. Hier kann der neue Internet Explorer installiert werden. Hier habe ich eine Activity für den Serendipity Blog entwickelt. Mittwoch, 12. März 2008Resource Refactoring
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.
Zu finden ist es unter Codeplex oder direkt unter Resource Refactoring! Montag, 25. Februar 2008Optimierungspotenzial beim Stringvergleich
Von 20 Sekunden auf weniger 1 Sekunde!
Man sollte meinen, dass das Vergleichen zweier Strings nicht viel Performance in Anspruch nehmen sollte, aber man wird ja immer wieder eines besseren belehrt! 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: string val = "SOMEVALUE"; if (val.ToLower() == "somevalue") 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. Nun änderten wir den Stringvergleich folgendermaßen ab: string val = "SOMEVALUE"; if (val.Equals("somevalue", StringComparison.OrdinalIgnoreCase)) Das Ergebnis ist immer noch das selbe, allerdings wurde somit die Dauer auf weniger 1 Sekunde gebracht! 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! Samstag, 23. Februar 2008
Wie sieht eigentlich meine eigene ... Geschrieben von Jan Schubert
in Browser, Webentwicklung um
11:59
Wie sieht eigentlich meine eigene Webseite aus?
Die verschiedensten Betriebssysteme und viele verschiedene Browser.. wie soll man eigentlich eine Webseite erstellen, die auf allen Betriebssystemen und bei allen Browsern gleich aussieht?!
Eine Lösung bietet hierbei der Anbieter von browsershots.org! Die Bedienung gestaltet sich sehr einfach! Die Webseite, die geprüft werden soll, angeben und fertig! Neben den vier Betriebssystemen Linux, Windows, Mac OS und BSD, werden alle gängigen Browser zur Prüfung angeboten, u.a. Firefox, Internet Explorer 4-6, Opera, SeaMonkey, Safari, Epiphany, etc. Als Ergebnis bekommt man Screenshots von den getesteten OS-Browser Kombinationen. 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. Freitag, 25. Januar 2008
Ein neuer Versuch mit einem neuen ... Geschrieben von Jan Schubert
in Agile Entwickung, Scrum, XP um
17:35
Trackback (1) Ein neuer Versuch mit einem neuen Projekt!
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.
Da wir schon seit einem Monat bei der Entwicklung sind, möchte ich jetzt auch schon einmal ein Zwischenfazit ziehen. 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. 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. Auch 'Continuous Integration' 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. 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 'On-Site Customer' klären und können somit auf ein positives Projektende hoffen. Donnerstag, 15. November 2007Warum das MVC Framework keine großen Projekte unterstützen wird!
Scott Guthrie und Scott Hanselman 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 leider kritisieren.
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. Die Verzeichnisstruktur verleitet dazu sich direkt Daten aus dem Model zu holen und auf der Webseite anzuzeigen und somit den Controller komplett zu übergehen. 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. 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. Die drei Schichten sind immer noch folgende:
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:
API: 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. DataModel: Das DataModel ist ein Abbild der Datenbank. In dieses DataModel werden die Daten aus der Datenbank geladen und können dort verändert werden. DAL: 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. Die Businesslogik kann sich je nach Anwendung entweder in der API oder im DataModel befinden. Meine Meinung: 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. Ich möchte aber nicht alles negativ reden! Das Mapping der URL's zu den Controller Klassen verspricht doch eine ganze Menge. Somit können die .NET Projekte endlich auf einfache Weise google-freundliche URL's anbieten. Montag, 1. Oktober 2007So langsam kann ein Index sein!
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.
Samstag, 15. September 2007
Testgetriebene Entwicklung mit php5 Geschrieben von Jan Schubert
in Agile Entwickung, php5, Webentwicklung um
14:07
Testgetriebene Entwicklung mit php5
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'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!
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. framework_0.1.rar Dienstag, 4. September 2007
MySql-Query lieferte falsche Daten. ... Geschrieben von Jan Schubert
in Datenbanken um
22:34
Kommentare (5) MySql-Query lieferte falsche Daten. Grund: case-sensitive
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.
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. 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). Sollte die gewünschte Spalte, die abgefragt werden soll, case-insensitive sein, kann direkt im SELECT Befehl dies geändert werden! col_name COLLATE latin1_general_cs = 'value' Weitere Informationen zu diesem Thema findet Ihr hier: MySql case-sensitive Dienstag, 28. August 2007Migration von MySql 4 zu MySql 5 abgeschlossen!
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's der beiden Server getauscht und schon war der neue Server in betrieb.
Trotz langer Vorbereitungen für diesen Tag sind an mehreren Stellen Fehler aufgetreten: "Migration von MySql 4 zu MySql 5 abgeschlossen!" vollständig lesen Dienstag, 21. August 2007Migration MySql 4 zu Version 5
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.
"Migration MySql 4 zu Version 5" vollständig lesen
|
Kalender
Blog abonnierenVerwaltung des Blogs |
|||||||||||||||||||||||||||||||||||||||||||||||||
s9y |
|
Webkataloge |
Casino online