Sonntag, Juni 29, 2008

Der Juni Monat

Ist nun schon eine Weile her, dass ich rein privates geschrieben habe. Daher nun mal ein kleiner Rückblick auf den Juni.

Der Juni ist immer ein Familienfeiermonat, meine Schwägerin hatte Geburtstag, ich hatte Anfang des Monats Geburtstag und schließlich auch noch mein Neffe. (übrigens, ähnlich war auch der Mai) Um nicht zu viel zu feiern, haben wir wenigstens 2 Geburtstage zusammen gelegt (1Tag vor meinem eigentlichen Geburtstag gefeiert). Es war aber schon eine ganze Menge zu tun, Salate, Fleisch einkaufen und noch bisschen kochen. Das Wetter war richtig Klasse und sehr warm, so hat es bei meinem Bruder im Garten richtig Spass gemacht. Meinen Geburtstag habe ich anschließend mit meinen besten Freunden in Berlin verbracht. Wir (inkl. 2 kleinen Kindern) haben schön Kaffee gegessen und anschließend ging es noch etwas durch die Stadt und anschließend zum grillen. War angenehm mit den 4 den Geburtstag zu verbringen.

Im Juni war dieses Jahr außerdem noch ein 4 tägiges Firmenevent. Um alle aus der Arbeit herauszureißen ging es etwa 150km Richtung Norden in den Robinson Club. In den 4 Tagen habe ich massig gegessen, es ist unglaublich, was in den Bauch alles so rein geht. Das nette an dem Event war, dass auch die Familien mit-/nachkommen durften, bei mir gab es niemanden, aber war interessant auch mal die Kinder der Kollegen zu sehen. Insgesamt ein schönes Event, das mit einem Sportlichen und Erholsamen Sonntag echt schön war. Anschließend hatte ich auch noch 3 Tages Muskelkater.

Den restlichen Monat habe ich nur mit Arbeit verbracht, fast nur. Ich bin zur Zeit mal wieder auf Dienstreisen und treibe mich in Deutschland rum. Ein Tag war noch Kirschernte bei meinen Bruder, natürlich nicht nur ernten sondern auch entspannen im Garten.

Mit einigen Kollegen wollten wir schon seit Anfang Mai endlich mal wieder Volleyball spielen. Aber wie die Welt so spielt, wir haben es einfach nicht hinbekommen. Aber der nächste Anlauf folgt demnächst.

Ansonsten ist bei mir aber nix los. Viele Freunde habe ich schon lange nicht mehr gesehen und ....

Nun noch schön auf das Deutschland-Spiel heute Einstimmen, die Fan-Meile ist wohl schon geschlossen und ich muss morgen gegen 5:00 aufstehen. Wir werden endlich mal wieder Europameister!

UPDATE: Leider war es nix mit dem Titel, aber wenigstens war das Fußballspiel ansehnlich. Spanien war im ganzen Spiel besser, zumindest mit den klar besseren Chancen. Gratulation! Nun ins Bett!

Sonntag, Juni 22, 2008

Kämpfen mit ASP.NET MVC

Ich habe mir dieses Wochenende mal wieder etwas Zeit für ein Projekt genommen, in dem das ASP.NET MVC-Framework zum Einsatz kommt. Das Arbeiten mit dem MVC-Framework macht mir richtig Spass. Aber dennoch gibt es einige Hacken, die einem den nerv rauben.

MVC Routing Trouble

Allgemein ist es wichtig, dass Routen nach der Reihenfolge des hinzufügen ausgewertet werden. Meistens sollte dass auch mit der Lesereihenfolge in der Global.asax übereinstimmen.

Meine erste Baustelle war das Routing bzw. die Übergaben von Parametern. Mir ist noch nicht klar, warum die Standardwerte in der Global.asax nicht weitergegeben werden. Meine Nullable-Parameters haben erhalten nicht den Wert. Für das Problem habe ich 2 mögliche Lösungsszenarien, zum einen kann man die Parameter nicht Nullable machen oder innerhalb der Methode ggf. den Standardwert setzen.

Bei einer meiner Routen wurden einer der 1. Parameter nur ab und zu gesetzt. Zur besseren Darstellung mal ein Beispiel:

Die Route:

new Route("Projects/Results/{client}/{customerName}/{projectName}/{page}/{pageSize}/{order}", new MvcRouteHandler())
{
    Defaults = new RouteValueDictionary(new { controller = "Projects", action = "Results", client = ClientEnum.SDC, customerName = "", projectName = "", page = 1, pageSize = 20, order = "Default" }),
}

Signatur:

public void List(ClientEnum client, long page, long pageSize, string order)
{
    this.Results(client, null, null, page, pageSize, order);
}

Die Url:

http://localhost/Projects/search/customerPart/myProjectPart

In meinen Routen soll eigentlich die nicht mehr die Default.aspx aufgerufen werden, hierfür habe ich noch nicht die Lösung gefunden. Das Verhalten muss ich mir noch mal zu Gemüte führen und die Videos dazu anschauen, Vielleicht schon morgen im Zug.

SQL Paging Trouble

In der Anwendung greife ich auf einen Sql Server oder Sql Server Express mittels Paging zu, leider ist es kompliziert eine ordentliche Abfrage dafür zu erstellen. Normalerweise soll man für Paging-Abfragen RowNumber oder Rank benutzen, alternativ wird oft über Temp-Tables das Select erstellt. Allerdings ist das mit dem Sql Express nicht möglich, in dem Fall ist ein anderer Weg notwendig. Ich bin auf eine recht einfache Lösung im Internet gestoßen, dabei wird Top verwendet um die Ergebnismengen zu reduzieren. Das Grundprinzip für die Abfrae verwendet TOP mit unter Queries und könnte so aussehen:

SELECT top(ANZAHL) * 
FROM (
    SELECT top(OFFSET + ANZAHL) * 
    FROM MyTable
    ORDER BY xyz ASC
) as maxLimit 
ORDER BY xyz DESC

SETUP

Wer das MVC unter IIS6 benutzen will, sollte mal in die Blog-Einträge How to enable pretty urls with Asp.Net MVC and IIS6 oder Using ASP.NET MVC on IIS 6 without the .MVC Extension schauen. Besser kann man das nicht mehr beschreiben. Bei beiden Techniken wird Url-Rewriting eingesetzt. Ich würde aber den IIS7 empfehlen, da sind solche Umwege nicht mehr notwendig.

Donnerstag, Juni 19, 2008

Subversion 1.5 ist da!

Endlich, Endlich ist Subversion 1.5 verfügbar. Ich warte schon so lange auf das Release und nun kann man sich auf die vielen neuen Features freuen. Ursprünglich war das Release mal für Ende 2007 angekündigt, aber es zog sich dann. Ich finde es aber nicht so schlimm, dass es länger gebraucht hat, wenn die Qualität stimmt. Die wichtigsten Features sind das Merge Tracking und WebDav transparent wirte-through proxy, alle anderen Features sind in den Release notes aufgeführt.

Natürlich habe ich gleich den Download (Source) begonnen, allerdings gibt es aktuell noch keine Binaries, aber die kommen sicher in den nächsten Stunden. (Binaries download) Die 2. wichtige Komponente TortoiseSVN wird sicher ebenfalls in den nächsten Stunden oder Tagen released werden.

Ich werde bei uns das update unseres Versions-Servers in den nächsten Wochen durchführen. Es ist nur immer problematisch Sicherzustellen, dass es nicht zu Seiteneffekten mit anderen Anwendungen kommt. Ich kann es ehrlich gar nicht mehr erwarten damit zu arbeiten.

Noch ein ganz anderes Thema: Ich habe heute von einem Projekt gehört, dass Nunit für Team Builds verfügbar macht. Das Projekt nennt sich Nunit4MSBuild. Wer fleißig mit Nunit und TFS arbeitet, sollte sich das Projekt durchaus mal anschauen. Ich bin allerdings eher ein SVN-/TRAC-/TortoiseSVN-/NUnit-/CCNET-Fan.

Mittwoch, Juni 18, 2008

Endlich MCSD

Puuuh, ich habe es geschafft, seit dem 12.6. bin ich nun ein Microsoft Certified Solution Developer und auch ein Microsoft Certified Technology Specialist. Das interessante ist, dass der MCSD rückwirkend zum 5.3. ausgestellt wurde und der Technology Specialist zum 12.6.. (Transcript download)

Die BizTalk-Prüfung war nicht so schwer, wie meine anderen Prüfungen. Das Ergebnis von mir und auch einem Kollegen in der Prüfung, zeigt, dass es sehr einfach war. Man musste einige Sachen noch einmal Prüfen und nachlesen, aber dann sollt die Prüfung zu schaffen sein. Besonders hilfreich sind die prüfungsähnlichen Anwendungen.

Nun mal die nächsten Schritte überlegen. Es gibt leider so viele Prüfungen.

Dienstag, Juni 03, 2008

Die Beste Band der Welt

Vorgestern war Ärzte Konzert in der Kindl Bühne Wuhlheide, den Title "Beste Band" haben sie sich selber gegeben, das ist nicht meine Idee. Ich kann mir ein Ärzte Konzert außerhalb der Wuhlheide gar nicht vorstellen, dass ist einfach der beste Ort dafür. Heute bin ich dadurch etwas KO, aber mal von Anfang an.

Letztes Jahr habe ich 2 Karten für das Konzert gekauft, damals hatte ich noch eine Freundin und somit hatte ich eine Karte zuviel und wußte bis wenige Tage vorher nicht, wen ich mit hinnehme. Ich habe letztendlich einen Freund gefragt, den ich lange nicht gesehen hatte. Eine Freundin, die ich mehrfach gefragt hatte, wollte/konnte nicht so richtig. Ich fand es schon ziemlich schade, dass ich nicht mit meiner Freundin hingehen konnte. Der Zug war aber schon lange abgefahren.

Als Vorbereitung auf das Konzert hieß es zu erst mal ordentlich eincremen. Es war extrem heiß, aber besser als zu kühl. Nach dem eincremen ging es los zur Tram und wie kann es anders sein, ich schnappe die falsche und verträume das aussteigen. Aber alles kein Problem, in Berlin fährt nicht nur eine Bahn. Durch die Hitze sind alle total begeistert vom Tram fahren. Angekommen, hieß es anschließend noch auf den Rest warten um zum Eingang der Bühne zu marschieren. Wir waren nicht die einzigen die hinein wollten. ;)

Diesmal war das Konzert ohne Vor-Band, die Ärzte fingen direkt an. Direkt heißt dann auch mal Eben mit einer Verspätung von über 1h. Statt 19:00 nach 20:00. Aber das Konzert entschädigt einfach für alles und hat sehr viel Spass gemacht. Interessant waren die Leute im inneren Kreis, die massig Staubwolken produziert haben und das freiwillig. Manchmal sind massen wie die Bekloppten aufeinander zu gerannt. Ich bin kein Fan des "poken", daher für mich auch völlig unverständlich.

Die Staubwolken wurden am Ende für jeden nochmal ein Genuß, beim herausgehen wurden unweigerlich Unmengen davon provoziert und jeder mußte es einatmen. Die Weg in der Wuhlheide sollten mal mit Licht ausgestattet werden. Total finstere Wege die zum Glück von vielen Handy-Displays ausgeleuchtet wurden. Ich habe mich an Ausgang entschlossen den langen Weg zur Tram zu nehmen, was ein längerer Fußmarsch war als ich dachte. Am Ende war ich gegen 00:30 zu Hause, schnell noch geduscht und versuchen etwas schlaf zu finden. Übrigens, ich war anschließend seit 5:45 unterwegs Richtung Kassel und dort war dann arbeiten bis 19:00.

Den Post hatte ich eigentlich schon gestern geschrieben, aber nicht mehr online published.

Sonntag, Juni 01, 2008

Fehlende Zeit, aber kurz ...

Ich habe zur Zeit nicht so richtig einen Schimmer, über was ich am besten bloggen soll. Gibt einiges an interessanten Themen, momentan komme ich nicht so richtig dazu mit den neuen Sachen zu spielen. Ich bereite mich mal wieder auf eine Prüfung vor.

Ein andere Grund für meine mangelnde Zeit ist das Schauen von Web- oder Screencasts von David Hayden. Ich habe nun schon beim 2. Projekt mit der Web Client Software Factory zu tun. Das Konzept gefällt mir recht gut, wobei ich MVC noch ein ganzes Stück besser finde. Mittels der WCSF kann man super moduare Webseiten erstellen und pflegen. Außerdem ist es (zumindest nach den bisherigen Erfahrungen) relativ einfach die Logik auf einen Smart Cient (SCSF) zu portieren oder sogar zu nutzen. Ich glaube, ich würde meine ASP.NET Projekte nie wieder ohne WCSF oder MVC erstellen.

In einem meiner aktuellen Projekte versuche ich Kollegen in die Lage zu versetzen, mittel .NET die Vision der IT umzusetzen. Dabei muss ein Framework realisiert werden und die Kollegen fit in .NET werden. Einzige umgesetzt. Nach meinen bisherigen Erfahrungen ist das die schlechteste Entscheidung. Ich finde, es gibt so viele Mängel mit der Sprache:

  • Aufblähen des Codes (Generics IList(of Object), Properties)
  • Kein Refactoring Support
  • Namespaces verhalten sich etwas anders (Ordner)
  • Attribute müssen auf der gleichen Zeile sein, wie deren Bezugspunkt
  • Man muss überlegen ob nun Inheritance (Klasse) oder Implements (Interface) eingesetzt werden soll.
  • Man muss dem Projekt erst sagen, dass es sicher sein soll
  • Formatierungen sind extrem wichtig
  • Case-Insensitiv
  • IL-Code wird größer ->langsamer?
  • Arrays sind schwerer zu erkennen, da sie nur mit Klammer () merkiert werden, ebenso die Indexer
  • kein Using-Statement!
  • Übergabe von Parametern ist verwirrend (Function MyFunc(ByVal o as Object) as Boolean)

Hier noch ein Link zum Thema VB/C# Visual Basic .NET & C# Die Qual der Wahl?.

Ich habe jetzt schon auf 3 oder 4 Rechnern versucht das Visual Studio 2008 SP1 zu installieren, leider immer ohne Erfolg. Dabei war einer wirklich nur rudimentär installiert. Das Framework 3.5 war dagegen problemlos zu installieren und ich habe damit wenig sorgen.

Wir haben in 2 Wochen ein Firmenevent (SD&C/CapeVision) über 4 Tage, ich bin mal gespannt, was da so alles passiert. Am Anfang habe ich überlegt, ob ich da wirklich mit hin will. Irgendwie bringt jeder Freundin oder Familie mit. Irgendwie werde ich das schon überstehen. Zurück aus dem Firmenevent und gleich weiter zum Projekt Reisen, so wird es laufen. Wobei es sich wenig von den letzten Wochen unterscheidet. Momentan hört man bei fast allen Kollegen und Leuten in der IT das gleiche, es gibt zu viel zu zu tun und alle sind momentan mit Projekten überfüllt.

Übrigens das ist mein erster Post mit Live Writer, ich bin darauf gespannt, was wirklich auf der Seite erscheint. Das Tool ist wirklich sehr nett und es macht Spass damit zu schreiben. Vorher habe ich die Posts als Emails in Outlook erstellt, das war schon nett, aber nicht der Renner.