Der-Albert.com sein Blog!

Dieses Blog steht unter einer Creative Commons-Lizenz Jul 07

Schön etwas länger, als versteckte Information im RSS Feed, habe ich es nun etwas deutlicher kenntlich gemacht

Zusammenfassung http://creativecommons.org/licenses/by-sa/2.0/de/

Kleingedrucktes http://creativecommons.org/licenses/by-sa/2.0/de/legalcode

Somit erlaube ich explizit meine Beiträge unter bestimmten Bedingungen weiter zu verwenden.

Bei einer abweichende Verwendung ist weiterhin meine Zustimmung notwendig. Einfach fragen, wir werden uns sicherlich über die Bedingungen einig.

Für mehr zu Creative Commons empfehle ich folgende weiterführende Informationen

Die Diplomarbeit von Nicole Ebber
http://www.antischokke.de/meine-diplomarbeit/

Die Wikipedia
http://de.wikipedia.org/wiki/Creative_Commons 

Die Seite von Creative Commons:
http://de.creativecommons.org

Sowie einen kurzen Film der Creative Commons erklärt.
http://de.creativecommons.org/werbefilm-creative-commons-erklart/

Technorati-Tags: ,

Einzeilige Methoden? Jul 05

In Stelle immer wieder fest dass es eine ziemlich eingefahrene Meinung dazu gibt ab wann sich eine eigene Methode lohnt und wann nicht. Meist heißt es dass für eins bis drei Zeilen keine Methode notwendig ist und man durch einen Methoden Aufruf ja auch Performance Einbußen hat.

Ja, dieser Ansicht war ich früher auch. Problem an der Sache ist einfach, dass man auch bei wenig Zeilen oft manchmal nicht direkt den Zweck dahinter erkennt. Also müsste man entsprechende Kommentare schreiben die erklären was dort eigentlich passiert.

Hier ein kleines Beispiel welches ich gerade geschrieben hatte.

public void Register(Type interfaceType, Type implementationType, bool isStatic)
{
    lock (servicesLock)
    {
        EnsureValidInterface(interfaceType);
        if (implementationType.FindInterfaces(
                     (m, criteria) => m.Equals(interfaceType), null).Length == 0)
        {
            // Do Some Magic
        }
        services.Add(interfaceType, new IoCInfo(implementationType, isStatic));
    }
}

Hier muss dass if-Statement schon sehr genau angesehen werden damit einem klar wird was dort eigentlich überprüft wird. Somit wird der Fluss beim Lesen doch sehr gestört weil ich erst einmal analysieren muss was da passiert.

Ein kleiner Kommentar drüber und schon wüsste man was passiert. Der Kommentar müsste ungefähr so lauten "Wird das angegebene Interface implementiert?". Doch Hand auf's Herz, machen wir Entwickler dies wirklich? Des weiteren lesen wir doch noch den Code mit und versuchen ihn zu verstehen, somit haben wir nicht wirklich etwas gewonnen.

Jedoch besteht auch die Möglichkeit das if-Statement in eine eigene Methode auszulagern, deren Bezeichnung dazu noch ausdrückt was darin gemacht wird.

private bool InterfaceIsImplemented(Type interfaceType, Type implementationType)
{

return implementationType.FindInterfaces(
(m, criteria) => m.Equals(interfaceType), null).Length > 0;

}

Ein Kommentar bei der Verwendung wird nicht mehr gebraucht, die Methode spricht für sich selbst.

public void Register(Type interfaceType, Type implementationType, bool isStatic)
{
    lock (servicesLock)
    {
        EnsureValidInterface(interfaceType);
        if (!InterfaceIsImplemented(interfaceType, implementationType))
        {
            // Do some Magic
        }
        services.Add(interfaceType, new IoCInfo(implementationType, isStatic));
    }
}

Es wird direkt beim lesen des Codes deutlich was man prüft. Dass wie es gemacht wird, interessiert mich erst wenn es sich andersartig verhält. Des weiteren hat man ohne großen Aufwand die Möglichkeit geschaffen den Code an mehreren Stellen zu verwenden ohne in in per Copy & Paste zu vervielfältigen.

Die Performance-Frage ist in den allermeisten Fällen zu vernachlässigen. An erster Stelle sollte Funktion, Lesbarkeit sowie einfache Wartung des Codes stehen. Tritt dann ein Performance Problem auf so kann man sich dann immer noch damit beschäftigen, jedoch nicht ohne wirklich mit einem Profiler nachzumessen, da die Performance oft nicht da liegen bleibt wo man meint.

Nun mag man noch es wäre ja erhöhter Aufwand "so viel" in einzelnen Methoden zu packen, dem kann ich nur widersprechen. Visual Studio bietet seit der Version 2005 eingebautes Refactoring mit dem man mit einem Shortcut eine entsprechende Methode aus dem Code extrahieren kann. Beim schreiben des Codes kann man dies auch berücksichtigen den unbekannte Methodenrümpfe sind auch per Shortcut zu erstellen.

Es gibt AddIns wie ReSharper von JetBrains oder ReFactor! von DevExpress, die weit über die Möglichkeiten von Visual Studio hinausgehen und ein Vielfältigeres Refactoring des Codes erlauben.

Sun.NET bei der .net user group Köln am 08. Juli 2008 Jul 01

Das Treffen der .net user Group Köln wird am Dienstag, den 8. Juli 2008 um 19.00 Uhr auf dem Sky Beach Köln, Cäcillienstrasse 32, Köln stattfinden.

Diesmal geht’s rund um Sun.NET

Wie jedes Jahr in den Sommerferien machen wir ein außerordentliches UserTreffen. Wo wir uns treffen, was essen, diskutieren rund um .NET , Softwareentwicklung sowie Ideen wir man bestimmte Herausforderungen im Entwickler Alltag bewältigen kann. Ein intensiver Gedankenaustausch ohne Themenvorgabe und Vorträge.

Eingeladen ist jeder der kommen möchte ob sie/er schon bei einem Usertreffen war oder nicht.
Da wir nun Sommer haben gehen wir diesmal an den Strand. Sonnenstühle und Schirme sind vor Ort, für Sonnencreme muss jeder selber sorgen.

http://www.skybeach.de

Getränke und kleinere Snacks kann man dort auch erwerben.

Parken kann man im darunterliegenden ARAL Parkhaus, mit der Bahn fährt man am besten bis Neumarkt und geht dann Richtung Deutzer Brücke. Den Sky Beach erreicht man vom ARAL Parkhaus mit dem Aufzug in die 6. Etage.

Ab 19 Uhr geht’s los, bitte meldet euch an damit wir entsprechende Stühle mit dem Handtuch reservieren können.

Anmeldung über http://www.dnug-koeln.de/treffen/infos/ oder XING

Technorati-Tags: ,,

Das Bild ist unter CC von http://www.flickr.com/photos/photophob/

MbUnit 2.4 PlugIn for ReSharper 4.0 Final Jun 13

Update (20.06):

Beta 9 is ready ReSharper-MbUnit-Beta9.zip it fixes Issues 11, 17, 18 and some other things. Go and get it and please provide feedback. If work stable it will be included in the next MbUnit 2.4 Update.
Know Issues: DependsOn() and DataFixture() not supported in R# (not fixable yet)

A new Version of the PlugIn to Run MbUnit 2.4 Test in ReSharper is available.

You can download it: ReSharper-MbUnit-Beta8.zip

There is also an Update for ReSharper 3.1 which fixes some bugs..

Know-Issues:

The results of an RowTest with Enums are not displayed in the Unit Test Explorer.

Have fun.

Technorati-Tags: ,,

Dunkles Visual Studio 2008 mit ReSharper 4 Jun 12

Ich selbst benutze schon seit längeren auch einen "dunkles" Visual Studio, ich habe mir damals irgendeine Dark-Theme genommen und über die Zeit an meine Bedürfnisse angepasst. Dazu gehört unter anderem auch die Verwendung einer Schriftart für den Text-Editor die nicht über eine feste Laufweite verfügt Verdana. Darauf hat mich vor einiger Zeit Roland Weigelt drauf gebracht. Zusätzlich wird noch Segio UI für den Rest verwendet.

Proportional und Schwarz

Visual Studio arbeitet damit ohne Probleme und man hat den angenehmen Nebeneffekt das man mehr Text in eine Zeile bekommt. Anfangs ein wenig ungewöhnlich, aber man gewöhnt sich schnell dran. Nur ASCII-Art ist nun ein wenig schwierig.

image

Verdana als proportionale Schriftart deshalb weil man dort das große i von kleinen l sehr gut unterscheiden kann.

image

imageDes weiteren werden bei mir die Operatoren auch noch fett dargestellt, hauptsächlich damit man das ! im Quelltext besser erkennen kann.

Dies noch in einer anderen Farbe und schon kann man den kleinen not-Operator sehr schön erkennen.

Feinarbeit

Was mir bei einigen Dunklen-Themes für Visual Studio aufgefallen ist dass dies nicht sehr ausgearbeitet sind. Dies fällt dann auf wenn man man damit arbeitet.

So ist das Bracket Highlighting oft nicht schön, oder das markieren von Text.

image

image

So etwas habe ich in "langer" Arbeit soweit korrigiert, sicher noch nicht alles.

Visual Studio Bug

Auch wird einem Visual Studio Bug entgegen gewirkt, der bei der umfangreichen Einfärbung die ReSharper vornimmt. Zwischendurch passiert es das die Hintergrund Farben plötzlich falsch sind, dies dadurch behoben dass die Hintergrund Farben explizit gesetzt werden und nicht auf "Default" gelassen worden sind.

ReSharper 4

Die hier hinterlegte Einstellungen funktionieren nur gut mit dem ReSharper 4 und Visual Studio 2008. Dazu muss in den ReSharper-Options noch das erweiterte Einfärben aktiviert werden.

image

Beachtenswertes

Installiert man ein Update des ReSharpers dann muss die Farbpalette erneut importiert werden, sonst werden die Farben nicht richtig gesetzt, ob nun Visual Studio oder ReSharper die "Schuld" daran hat ist nicht wirklich geklärt.

Damit dies auch immer schnell und Einfach funktioniert, sind in den gespeicherten Einstellungen auch nur Fonts & Colors hinterlegt. So das keine anderen Einstellungen überschrieben werden.

Auch die HTML und XML Darstellung ist entsprechend angepasst. Somit das ein vernünftiges arbeiten damit möglich ist. Jedoch empfehle ich es an die eigenen Bedürfnisse anzupassen.

Bestes Dark-Theme?

Das ist natürlich subjektiv ;) Ich bin an weiteren Verbesserungen interessiert, und ich habe sicherlich immer noch nicht alles beachtet um es 100% Rund zu bekommen. Wenn jemand also Anpassungen daran vornimmt bin ich daran interessiert diese zu sehen und selbst zu nutzen. Somit immer raus mit der Sprache.

Download

Wenn jemand anderes die Einstellungen nutzen möchte, dann einfach die Settings-Datei hier herunterladen und in Visual Studio importieren. Fertig.

DarkResharperColors.zip

Social Linkkram Jun 06

Ich habe auf der rechten Seite mal ein paar Buttons mit links zu Social Networks (On- und Offline) hinzugefügt wo ich mehr oder weniger aktiv bin.

Online Vortrag am 27. Mai 2008 zum Thema ReSharper Mai 21

Ich werde am Dienstag den 27. Mai 2008 einen Online Vortrag zum Thema ReSharper 4.0 machen. Dies geschieht im Rahmen der .net user group Köln Online Usertreffen. Es wird also das erste reine Online "treffen". Mal schauen was dabei rumkommt.

Der Vortrag wird über Office Live Meeting 2007 gehalten. Den kostenlosen Client kann man herunterladen. Eine Test nach der Installation ist unter folgender Seite möglich. http://esd.placeware.com/lm2007test/

ReSharper 4.0

Geplant sind folgende Themenbereiche die ReSharper beherrscht.

  • Quelltext Navigation
  • Refactoring
  • Quelltext Erzeugung
  • Quelltext Analyse
  • Unit Testing
  • LIve Templates

ReSharper ist ein sehr mächtiges Tool, welches jedoch Erklärung bedarf um den Einstieg zu erleichtern. Dies versuche ich mit dem Vortrag zu erreichen. Sicherlich wird auch der eine oder anderen ReSharper Anwender auch noch was neues Kennenlernen, wie ich auch ständig auf's neue Überrascht bin was ReSharper noch kann.

Ab 18:30 Uhr könnt Ihr euch hier anmelden. Es besteht die Möglichkeit des Sprachchats.

Eingeladen sind natürlich alle interessierte, nicht nur Mitglieder der .net user group Köln.

Live Übertragung des Treffen der .net user group Köln am 6. Mai 2008 (heute) Mai 06

Hallo zusammen,

die .net user group Köln plant heute Abend ein experiment. Wir wollen unser Usertreffen live im Internet streamen. So dass auch die Leute die nicht um Köln herum wohnen die Möglichkeit haben daran teilzunehmen.

Die Sende-Adresse ab 19 Uhr ist

http://www.mogulus.com/dnugkoeln

Wir wissen noch nicht ob und wie es klappt (Bandbreite, Licht etc.), also  erscheint ruhig zahlreich und tragt bitte einen ordentlichen Nickname für den Chat ein.

Die Themen heute sind

Final Builder 6
Robert Wachtel

Final Builder ist ein Build-Werkzeug mit dem man seine Software-Builds automatisieren kann. Von einfacher Automatisierung bis zum CI-Server ist alles damit machbar. Sowohl auf dem Client als auch dem Server. Robert Wachtel gibt einen Überblick über die Möglichkeiten.

ADO.NET „Astoria“ Data Services
Albert Weinert


Mit .NET 3.5 Service Pack 1 kommen die ADO.NET Data Services in das .NET Framework, aktuell gibt es sie als Preview zum runterladen und ausprobieren. Mit den Data Services wird eine REST basierte Schnittzustelle zu beliebigen Daten ermöglicht. Damit werden über das HTTP Protokoll Daten für JavaScript, Silverlight und Fat-Client Anwendungen ermöglicht. CRUD-Operationen sind natürlich auch möglich.

http://www.dnug-koeln.de

 

Afterlaunch - er ist vorbei Apr 11

Aus Sicht eines Veranstalters und Sprechers, schön, schön anstrengend, ein wenig Stress, alles gut verlaufen (stand jetzt :). Somit insgesamt eine gelungene Veranstaltung auf der sich 152 Teilnehmer, 14 Sprecher, 7 Mitarbeiter von Sponsoren sowie ein überall helfender Kassenwart tummelten.

Vielen Dank an alle 174 Personen sowie den Mitarbeitern der Sponsoren die nicht vor Ort waren, das sie diesen Tag möglich gemacht haben.

http://www.afterlaunch.de

Wer mag; Lob bitte hier rein, konstruktive Kritik auch.

Technorati-Tags: ,,

Die Afterlaunch-Konferenz ist ausgebucht Apr 08

Ich freue mich der Welt mitzuteilen dass die Afterlaunch-Konferenz am Freitag den 11. April 2008 restlos ausgebucht ist.

Die glücklichen Ticket-Besitzer werden am Freitag in Köln erwartet, es kann nur großartig werden!