unseren Blog abonnieren... rss feed abonieren

Interface naming convention

"I" als Praefix - das ist Geschmacksfrage und soll nicht Thema sein. Folgendes hat mich schmunzeln lassen:

A couple of programmers on our team learned that interface names should begin with "I", but didn't pick up on the rest of the guidelines. So they treated "I" as a personal pronoun, not as an acronym. We now have interface names like "IAmAChildObject", "INeedMyDataRow", "IAmDependentAndWantMyParentCollection", and "ICanDeleteMyself".

[via Brad Abrams (in den Kommentaren)]

posted @ Freitag, 6. Juni 2008 00:31 | Feedback(0) | Filed Under [ .NET ]

Entwickler Austausch Programm

Steven Harman hat ein großartige Idee: Ein "Entwickler Austausch Programm". Statt allein im stillen Kämmerlein zu lernen und sich mit Open Source Projekten, Büchern und Blogs fortzubilden, schlägt er vor direkt mit anderen Entwicklern zusammen zu arbeiten. Also für eine Woche, oder vielleicht eine ganze Iteration, mal das Büro zu wechseln und zu schauen wie die Kollegen so arbeiten.

Wer Interesse an einem solchen Programm hat, einfach mal bei uns melden :-)

Wir:

  • arbeiten Agile,
  • setzen auf TDD und DDD
  • verwenden NHibernate, Microkernel & Windsor
  • bauen primär Webanwendungen mit ASP.NET (AJAX u.Toolkit)

Ein Austausch ist vielleicht dann besonders interessant, wenn ein komplementärer Development Stack verwendet wird.

posted @ Montag, 12. Mai 2008 19:23 | Feedback(0) |

Opera Dragonfly

image Nachdem Opera in Punkto Qualität und Komfortabilität die Browser-Kriege schon lange für sich entscheiden konnte und der einzige Grund Firefox zu verwenden, Firebug ist, hat die norwegische Firma das Fehlen eines soliden (Web)Entwicklerwerkzeugs erkannt und legt mit "DragonFly" nach.

image

Die erste Eindruck ist durchaus positiv. Insbesondere der Javascript Debugger scheint einfach und intuitiv zu bedienen. Ob nicht nur der Reiz des Neuen Dragonfly gefallen läst und ob er wirklich besser ist als FireBug wird sich in den nächsten Wochen zeigen.

image 

DragonFly versteckt sich in der aktuellen Opera Beta unter dem MenuPunkt "Developer Tools".

[via: Tobbis Blog]

posted @ Donnerstag, 8. Mai 2008 15:18 | Feedback(0) |

Interessant aber falsches Ergebnis

im folgenden Video wird alles korrekt dargestellt, so wie wir es kennen und täglich erleben. Beim Lösen der Aufgabe ist ASP.NET der klare Geschwindigkeits Sieger.

Der zweite Test ist natürlich unseriös.

image

Ein Speak-Friend Entwickler hätte ASP.NET sicher klar an die Spitze gesetzt.

[mehr auf Betterwebapp.com ] [via Dariusz quatscht]

posted @ Mittwoch, 7. Mai 2008 16:34 | Feedback(0) | Filed Under [ ASP.NET Unterhaltung ]

Dem Entwickler sein Designer

Bill Buxton kennt sich aus und das nicht nur weil er Professor ist, für Microsoft arbeitet und auf eine lange erfolgreiche Karriere zurück blicken kann. Als Industriedesigner spricht er darüber was Design erfolgreich macht und wie es passiert.

Für Entwickler ist das Interessant, in dem Moment wo sie Benutzer-Oberflächen umsetzen. Oftmals und zwangsläufig als Erstnutzer können Sie wertvollen Input liefern und dann ist es gut die Kollegen der anderen Art (Designer) zu verstehen. ("Jeder ist nicht ein Designer")

Hier eine kleine Auswahl von Bemerkenswertem aus dem Talk:

"Das Fundament für einige der größten Fehler meiner Karriere, war es nicht genug Zeit zu investieren den Kunden zu verstehen - verstanden zu werden, ist keine Einbahnstraße."

"Sie benötigen Gestaltungsplan, einen Businessplan und einen Technischen-Umsetzungsplan und zwar bevor das Projekt beginnt und das hat ist nichts mit 'Wasserfallprozess' zu tun".

"Die letze Person die ich einstellen würde, wäre mich selbst, den ich bin ja bereits im Team. Ich weiß, das ich einigen Dingen gut bin, aber in anderen bin ich dafür wirklich schlecht. Der Grund dafür ist, das in einigen Bereichen schlecht zu sein, der einzige Weg ist, gut in den anderen Dingen zu sein."

"Kreativität, dient dem Schaffen von Auswahl. Planen Sie ein, die meisten entwickelten Ideen nicht umzusetzen."

... und vieles mehr. Buxton liefert nicht nur eine Menge Inspiration, sondern ist dabei auch absolut Unterhaltsam.

 

[via: Andrej]

posted @ Mittwoch, 7. Mai 2008 14:36 | Feedback(0) |

The problem with wikipedia

the_problem_with_wikipedia

:-)

[Hier das Original und mehr]

posted @ Mittwoch, 7. Mai 2008 01:58 | Feedback(0) | Filed Under [ Unterhaltung ]

Zeitfragen

"I don't have time to be classified as difficult, and I don't have time to care." Kim Basinger

(Die kreative Antwort auf die Frage, was das mit Produktivität, Software-Entwicklung und der wundervollen Firma Speak-Friend zu tun hat, ist leicht beantwortet: Entwicklungen und deren Erfolg sind zu allererst ein soziales Ereignis und Ignoranz ("Ignorance is a bliss") ein Ninja-Move im Produktivitätsspiel.

In den letzten Jahren durfte ich eine Reihe von A-Liga Entwicklern erleben die einfach nicht performed haben. Was nützt ein solcher Entwickler der im Zweifelsfall ein Webframework mit einer Nadel in drei Nächten Binär auf eine Festplatte ritzen könnte, wenn er in drei Wochen nicht die Motivation findet ein paar einfache Formular zu bauen?

Oft nützt ein dickes Fell und Immunität für Fremdmeinungen, um Dinge vom Tisch zu bekommen.)

posted @ Dienstag, 6. Mai 2008 19:23 | Feedback(0) | Filed Under [ Produktivität Unterhaltung ]

HTML/UI Rap

(Basis)Wissen für eine neue Generation :-)

posted @ Freitag, 25. April 2008 10:01 | Feedback(0) |

Projektstruktur, Thirdparty .dlls

Ich kann mich nicht erinnern an einem Projekt gerabeitet zu haben das nicht Komponenten Dritter verwendet hat.

Bei uns sind Zurzeit eigentlich immer dabei: NUnit, NHibernate, Log4Net, gelegentlich kommen Charting Komponenten, das AJAX Toolkit, PDF Werkzeuge und andere dazu.

Damit eine Anwendung sich nach dem Ausschecken auch direkt bauen lässt, müssen diese dlls nun irgendwo abgelegt werden. Hier nun eine Reihe von Vorschlägen für den Ordnernamen, in dem sich dlls dritter finden lassen könnten.

  • _libs (MojoPortal)
  • lib (u.a. NHibernate, StoryVerse, NetBpm, Flex-Wiki, Cuyahoga)
  • 3rdParty (Watin, dotNetKicks)
  • Dependencies (Subtext, EComerce Web 2.0.1)
  • Bin (SharForge)
  • References (Screwturn)
  • SharedLibs (RhinoMcoks)

(in Klammern stehen OSS Projekte, die diesen Ordernamen verwenden).

Bei Gelegenheit wird es auch noch eine kurzen Vergleich der Projektstrukturen geben :-)

posted @ Donnerstag, 24. April 2008 13:07 | Feedback(0) | Filed Under [ Software-Entwicklung ]

Brauchbare Benutzernachrichten

Folgende Nachricht empfinde ich als sehr hilfreich:

image

Auch wenn ich kein Performance Problem habe, die Information ist passend. Die "Ausblenden" Funktion befreit davon sie ein zweites mal zu sehen. So durchdacht sollten alle Web-Anwendungen sein.

[gesehen auf mail.google.com]

posted @ Mittwoch, 23. April 2008 18:37 | Feedback(0) | Filed Under [ Web Applikationen ]

Debugging von First Chance Exceptions

Beim Debuggen finden sich von Zeit zu Zeit sogenannte "First chance exceptions" im Output Window. Das sind Exceptions die von der Anwendung gehandelt wurden.

Oft ist es gewollt oder normal, das eine Exeption erwartet wird und von der Anwendung bearbeitet wird. Beispiel: Ein fehlgeschlagenen Datenbankzugriff. (Ob das grundsätzlich guter Stil ist, ist wie so vieles eine Geschmackfrage.)

clip_image002

Der Name kommt daher das der Debugger die Exception 2 Mal sieht. Das erste Mal vor der Anwendung (first chance exception) und das zweite Mal, wenn die Anwendung die Exception nicht verarbeitet hat - also das Programm normalerweise abstürzen würde (second chance excpetion).

Weil Exeption Handling Performance intensiv ist oder einfach weil einem die im Output Fenster angezeigten Fehlermeldungen komischem vorkommen, kann es wünschenswert sein schon beim Auftreten einer "first chance exception" in den Code zu springen.

Das ist einfach erreichen, in dem unter Debug->Exceptions->CLR -Exceptions antickt.

clip_image004

clip_image006

Genug von Ausnahmen, happy coding!

posted @ Mittwoch, 23. April 2008 02:16 | Feedback(0) | Filed Under [ .NET ]

Software-Patente

image

Wichtig und sinnvoll - bitte unterstützen!

posted @ Freitag, 18. April 2008 19:44 | Feedback(0) |

Hohe Auffassungsgabe und Teamfaehigkeit...

... solche Phrasen in Stellenangeboten wirken auf mich eigentlich abschreckend. Hier wird wertvoller Platz mit Allgemein-Punkten verschenkt.

Hat schon wer den egozentrischen Einzelkämpfer gesucht? (Auch wenn das vielleicht in einigen, wenigen Situation ein interessanter Schritt sein könnte.)

Wohltuend anders ist hingegen das hier zu findende Job-Angebot. Wer fit ist in WPF oder Winforms, begeistert von .NET 3.5 und Agilen Entwicklungsmethoden wird sich sicherlich sehr angesprochen fühlen.

posted @ Mittwoch, 16. April 2008 14:23 | Feedback(0) | Filed Under [ .NET ]

Dump

"Man sollte eigentlich im Leben niemals die gleiche Dummheit zweimal machen, denn die Auswahl ist so groß." Bertrand Russell

Auch ein gutes Programmierer-Paradigma?

:-)

posted @ Montag, 7. April 2008 09:38 | Feedback(0) | Filed Under [ Unterhaltung ]

ASP.NET Session zwischen Subdomains

Für die Umsetzung einer ,mehrsprachigen Seite, möchten wir für jede Sprache eine eigene Subdomain verwenden.

Also:

  • www.domain.org (default Sprache)
  • en.domain.org
  • es.domain.org
  • und noch 30 weitere :-)

Beim Wechsel der Sprache erfolgt eine Redirect auf die entsprechende Subdomain.

clip_image002

Beim Rederict auf eine andere Domain, geht in ASP.NET die aktuelle Session verloren.

Grund, die aktuelle SessionId wird von ASP.NET, sofern nicht "Cookieless", in einem Cookie gespeichert. Per default wird als Cookie Domain, die aktuelle Domain, inklusive der Subdomains definiert.

Also für www.domain.org, ist auch die Domain des Cookies: "domain=www.domain.org"

Navigiert man also von einer Subdomain zu einer anderen, wird nun ein neues Session-Cookie mit einer neuen SessionId gesetzt.

Möchte man dieses verhindern hilft folgender Code:

clip_image004

Der Event lässt sich so registrieren:

clip_image006

Hier wird die Domain des gesetzten Cookies im Unload Event der Masterpage angepasst. Wichtig ist, das der "Domain" Teil des Cookies auf allen Seiten der Anwendungen korrigiert wird.

posted @ Dienstag, 18. März 2008 03:29 | Feedback(0) | Filed Under [ ASP.NET ]