BASTA!Spring 2010 – Mein Fazit

March 2, 2010 on 11:46 pm | In Erfahrungsberichte, Tools | No Comments

Auch dieses Jahr war ich wieder Teilnehmer der Frühjahrausgabe der Konferenz für .NET Entwickler BASTA!.

Hinter mir liegen 4 Tage voller teils sehr interessanter und unterhaltsamer Vorträge aus allen Bereichen der .NET-Welt.

Hier mal ein paar Dinge die ich dazugelernt habe:

Das Keyword “var” wurde nicht etwa nur erfunden damit man nicht mehr explizit den Typ einer Variablen angeben muss, sondern um Anonyme Typen darstellen zu können. Das war mir bisher irgendwie entgangen ;-)

IPhone Anwendungen muss man nicht in Objective C schreiben, es geht auch in C#. Mit der Hilfe eines Apple Rechners, der Entwicklungsumgebung MonoDevelop (kostenlos) und einer MonoTouch Lizenz (400€) kann man eine C# Anwendung zu einer IPhone App kompilieren. Dazu gabs eine schöne Live-Demo, sah relativ einfach aus.

Debugger

Habt ihr im Visual Studio 2008 schon mal mit der rechten Maustaste auf einen Breakpoint geklickt? Ich leider nicht, daher sind mir einige sehr hilfreiche Funktionen bisher entgangen…

Zum Beispiel kann man hier eine “Bedingung” festlegen die erfüllt sein muss, damit der Debugger die Anwendung anhält.

Die “Trefferanzahl” ermöglicht es einem festzulegen, dass der Debugger beispielsweise erst beim 5. Erreichen des Breakpoints das Program anhält und nicht jedesmal!

Mit “Bei Treffer” kann dem Breakpoint ein Makro hinterlegt werden, dass bei Erreichen ausgeführt wird.

Das neue Visual Studio 2010 kommt allerdings mit einem Hammer-Feature daher, und das heisst “Rückwärts-Debugger”. Man kann nun endlich im Programmablauf in der Zeit zurückspringen und sich jeden Zustand anschauen den man will. Leider wird dieses “IntelliTrace” nur in der teuersten Ultimate Version enthalten sein die ca. 2 Scheine kosten wird.

TFS 2010 ist die neuste Version vom Team Foundation Server und dieser soll sich  im Gegensatz zu seinem Vorgänger sehr einfach (in ca. 20 Minuten) in Betrieb nehmen lassen und man braucht kein Server-Betriebsystem mehr dazu. Das hier integrierte Code-Versions-Verwaltungssystem ist der Nachfolger vom bisherigen “SourceSafe” und bietet auch sehr kleinen Teams sehr gute Kontrolle über gemeinsame Projekte. TFS enthält auch einen Issue bzw. Bug-Tracker und man kann WorkItems verwalten. Damit lässt sich quasi der komplette Lebenszyklus einer Anwendung abbilden. Sehr schönes Teil wie ich finde. Besitzer einer MSDN-Subscription bekommen das Teil mit einer 5 Benutzer Lizenz wohl schon recht günstig.

Das MVVM Pattern (Model-Viev-ViewModel) ist ein Design Pattern, dass häufig bei WPF/Silverlight Projekten zum Einsatz kommt. Hierzu gibt es einen sehr schönen Beitrag auf Codeprojekt von Rainer Stropek wo gezeigt wird, wie das Entwurfsmuster angewendet wird und wie man damit eine wiederverwendbare Codebasis schaffen kann, die sowohl für WPF als auch für Silverlight Projekte gleichermaßen einsetzbar ist. An dieser Stelle möchte ich auch mal ein richtig dickes Lob an Rainer Stropek rausschicken. Er hat während der BASTA mehrere sehr gute und vorallem praxisnahe, Vorträge gehalten die mich wirklich weiter gebracht haben. Danke dafür, weiter so!

IronPython ermöglicht die direkte Nutzung der sehr mächtigen Skriptsprache Python aus .NET Assemblies heraus. Hier gabs ein schönes Praxisbeispiel zu sehen in Verbindung mit dem HTML/XML Parser BeautifulSoup für Python, welcher einfaches ScreenScraping ermöglicht. Ist auf jeden Fall einen Blick wert!

CodeContracts bieten eine sehr schöne Möglichkeit um Validierungslogik zu implementieren. Anstatt viele If-Anweisungen oder try/catch Blöcke in die Ablauflogik zu packen kann man beispielsweise mit dem Attribut  “Contract.Reqire(…)” über einer Methode oder einem Property eine entsprechende Gültigkeitsbedingung festlegen. Das sieht nicht nur sauberer aus, sondern ist auch deutlich besser testbar. Ist auf jedenfall empfehlenswert, wenn man sehr viele Gültigkeitsbedingungen abzuprüfen hat.

RhinoMocks und MOQ sind zwei gute Mocking-Frameworks um Objekte bzw, Verhalten zu “simulieren”. Es geht darum Code testbar zu machen in dem Abhägigkeiten “gemockt” werden. Das Ziel ist es, dass ein Testfall nur maximal EINEN Grund haben darf um zu scheitern und nicht mehrere. Sobald aber mein Testfall eine Abhägigkeit hat wie z.B. ein Zugriff auf eine Datenbankverbindung oder einen Webservice habe ich mehrere potentielle Fehlerfälle zu betrachten. Hier springen die Mockobjekte in die Bresche, mit denen man bestimmte Dienste, Rückgabewerte oder Abläufe simulieren kann, obwohl diese evtl. nicht erreichbar bzw. noch garnicht implementiert sind. Damit ist man in der Lage einzelne Dinge zu testen ohne auf die Abhängigkeiten eingehen zu müssen.

Zum Thema “Geschwindigkeitsoptimierung” von Anwendungen gab es auch einen schönen Vortrag zu hören in dem auf Möglichkeiten eingegangen wurde, wie man seine Anwendung schneller machen kann. Das betrifft vorallem Anwendungen die viel rechnen müssen bzw, die sehr komplexe Algorithmen durchlaufen. Beispielweise ist die Verwendung von “struct” deutlich besser für die Performance einer Anwendung als bei der Nutzung einer Klasse und Methodenaufrufe in flachen Objekten sind deutlich schneller als bei Objekten die ein Interface implementieren bzw. die von einer Klasse erben. Um Performance von Anwendungen zu messen sollte man dotTrace von jetbrains verwenden. Das ist mit Sicherheit besser als jeglicher handgestrickter Kram.

Sehr unterhaltsam war der Vortrag “Why software sucks” von David Platt. Der Mann ist Amerikaner und ein echter Entertainer! Er hat auf sehr amüsante Weise ausgesprochen, was die meisten Entwickler eigentlich nicht hören wollen: “Kein Schwein interessiert sich für deine Software”. Leider hat er damit sehr recht, denn Anwender nutzen Software um ihre Arbeit zu erledigen und sonst für nichts. Es interessiert wirklich keinen Anwender wie Software gemacht ist und was alles für spannende Technologien drin verbaut wurden. Es geht dem Benutzer nur darum seine Arbeit zu erledigen bzw. einen Zustand der Zufriedenheit herzustellen. Deshalb sollten alle Entwickler immer darauf achten das Software einfach zu benutzen ist und möglichst kein Handbuch notwendig ist um sie zu verstehen. Es sollten nur Dinge implementiert werden die wirklich gebraucht werden. Maximale Flexibilität in einer Anwendung heisst oft leider auch zu viele unübersichtliche Features die oft eher zu Frustration des Benutzers führen als zur Zufriedenheit.

Don’t let your software suck! Make it just work!

So, das soll reichen.

Neben den vielen Informationen gabs natürlich auch wieder sehr gutes Essen! Daher möchte ich noch den Veranstalter loben, insbesondere die Küchencrew vom Maritim Hotel in Darmstadt. Das war mal wieder eine Schlemmerwoche vom Allerfeinsten, Super Leistung :D

Na dann hoffentlich bis nächstes Jahr…

Total Commander a.k.a. Windows Commander

September 10, 2007 on 6:27 pm | In Tools | 3 Comments

Ich möchte hier kurz mein absolutes Lieblingsprogramm vorstellen, den Dateimanager “Total Commander” (totalcmd)! Dieses fantastische Tool begleitet mich seitdem ich mich mit Computern beschäftige und das sind nun mehr als 10 Jahre. Nachdem ich das Programm seit vielen Jahren als Shareware benutzt habe bin ich nun endlich auch Besitzer einer Lizenz. Die kostet nur 28 Euro und das ist es auch auf jedenfall wert kann ich nur sagen. Ich kann mir nicht mehr vorstellen ohne dieses Tool zu arbeiten.

Angefangen hat das damals mit dem bekannten Norton Commander der noch unter DOS lief. Ich habe mir im Laufe der Zeit viele verschiedene Dateimanager angeschaut aber ich bin doch immer wieder zum totalcmd zurückgekehrt. Er vereint viele gute Programme in einem und er ist dabei auch noch portabel. Zusätzlich zum Dateimanagement kann er synchronisieren, Mehrfach-Umbenennen, mit FTP-Servern kommunizieren, Dateien packen und entpacken und noch viel mehr. Auch optisch ist er genau wie ich mir so ein Tool wünsche, einfach und solide ohne zuviel Schnickschnack.

Also wenn ich ein Tool des Jahrhunderts wählen müsste dann würde ich den totalcmd favorisieren. Ich bekomme kein Geld dafür, das ist nur meine Meinung.

Wie siehts bei euch aus, habt ihr auch ein Lieblingstool?

Wieviel Bandbreite hab ich eigentlich?

June 28, 2007 on 2:44 pm | In Tools | 8 Comments

29.06.07 Update

Hm, also irgendwie wirds mir langsam unheimlich ;)

28.06.07 Update

Glaubt es oder nicht, aber die haben die Bandbreite schon wieder hochgedreht, und zwar ordentlich. Siehe hier:

Auf dieser schicken Seite kann man die exakte Geschwindigkeit seiner Verbindung nachmessen. Mit dem Download bin ich ziehmlich zufrieden, nur der Upload ist leider echt armselig. Ich hoffe das ändert sich mal irgendwann…


Was habt ihr da so?

[HowTo] C# Code-Listings mit Syntax-Highlighting in Latex

June 17, 2007 on 8:43 am | In Artikel / HowTo's, Studium, Tools | 15 Comments

Ich schreibe derzeit an meiner Diplomarbeit mit Latex, genauer gesagt mit Lyx1.4.4 als WISIWYM-Editor und Miktex 2.5 Basic als Latex Unterbau. Mittlerweile gibts schon Lyx 1.5, was deutlich schicker ist als 1.4.x, aber da es das bisher nur als Beta gibt und ich fertig werden will/muss hab ich auf ein Upgrade verzichtet. Never touch a running system ;-)

Ich habe relativ viele Code-Listings in meiner Arbeit, die man aus optischen Gründen NICHT als Screenshots integrieren sollte. Ich habs versucht, aber es sieht aufgrund der teilweise unterschiedlichen Größen der Bilder und deren Qualität einfach nicht aus. Nach einigem Recherchieren und etwas Hilfe durch Micha kam ich dann zu einer halbwegs schicken Lösung.

Um ein Listing zu erstellen geht man in Lyx zur gewünschten Stelle im Dokument und dann zu [INSERT >>> Tex Code] bzw. man drückt Strg+L. In diesen Tex Code Block lässt man dann folgenden Code ein:

begin{lstlisting}

//Euer Quellcode

\end{lstlisting}

Kleiner Tip, vermeidet Unterstriche in der Caption, da meckert Lyx rum. Ich habe Stunden gebraucht bis ich das rausgefunden hatte, da Lyx mit Fehlergründen manchmal etwas zurückhaltend ist…

Damit das ganze überhaupt läuft muss aber etwas Vorarbeit geleistet werden. Um Listings zu integrieren benötigt man vorallem eins, das Latex-Paket “Listings”, wer hätte das gedacht ;-) Also schreibt man in die Preambel, a.k.a. der Latex-Vorspann, folgenden Code:

%Quellcode-Listing Einstellungen

\usepackage{color,listings} %bindet das Paket Listings ein

% Der lstset-Befehl ermöglicht haufenweise Einstellungen zur Formatierung

\lstset{language=[Sharp]C, % Grundsprache ist C und Dialekt ist Sharp (C#)
captionpos=b, % Beschriftung ist unterhalb

frame=lines, % Oberhalb und unterhalb des Listings ist eine Linie

basicstyle=\ttfamily, % Schriftart
keywordstyle=\color{blue}, % Farbe für die Keywords wie public, void, object u.s.w.

commentstyle=\color{green}, % Farbe der Kommentare
stringstyle=\color{red}, % Farbe der Zeichenketten

numbers=left, % Zeilennummern links vom Code

numberstyle=\tiny, % kleine Zeilennummern

numbersep=5pt,
breaklines=true, % Wordwrap a.k.a. Zeilenumbruch aktiviert

showstringspaces=false,

% emph legt Farben für bestimmte Wörter manuell fest

emph={double,bool,int,unsigned,char,true,false,void},

emphstyle=\color{blue},

emph={Assert,Test},

emphstyle=\color{red},

emph={[2]\using,\#define,\#ifdef,\#endif}, emphstyle={[2]\color{blue}}
}

Falls ihr den Absatz kopieren wollt, dann vergesst nicht die Leerzeichen und Kommentare innerhalb des lstset-Befehls zu entfernen, sonst meckert Lyx.

Wenn man Listings benutzt, will man diese meistens auch am Ende seiner Arbeit, ähnlich dem Abbildungsverzeichnis, aufführen. Also einfach an gewünschter Stelle im Dokument [Strg+L] drücken und folgenden Code einfügen:

\renewcommand{\lstlistlistingname}{Auflistungen}
\lstlistoflistings

Damit hat man ein schönes Verzeichnis seiner Listings mit Seitenangabe im Dokument und es heisst so wie man es haben will, in meinem Fall eben “Auflistungen”.

Das Preambel-Beispiel erhebt keinen Anspruch auf Vollständigkeit und ist auch noch nicht optimal, aber ich denke es ist ein guter Anfang für alle die damit arbeiten wollen. Ich kanns nur empfehlen :-)

Einfach Screenshots machen…

May 31, 2007 on 11:19 pm | In Tools | No Comments

… mit FSCapture.

Wer einen einfach zu bedienenden, echt smarten, Screenshotgrabber sucht für den Heimgebrauch und dafür nix bezahlen will, dem sei Faststone Capture empfohlen! Es gibt nicht viel dazu zu sagen, ausser das man damit prima Screenshots machen kann und diese auch gleich im integrierten schmalen Bearbeitungsprogramm mit Texten, Pfeilen und anderen Sachen verschönern kann. Macht sich besonders gut beim Diplom schreiben, soviel kann ich versichern ;)

[QoS] Traffic Shaping mit cFosSpeed

April 25, 2007 on 2:10 pm | In Tools | No Comments

Ich muss hier mal ein großes Lob loswerden an an Tool was ich seit ca. 1 Monat erfolgreich einsetze. Lange habe ich rumexperimentiert mit meinem Router und irgendwelcher Custom-Firmware die QoS bzw. Traffic Shaping unterstützt mit dem Ende das ich es aufgegeben habe. Entweder bin ich zu doof oder es funktioniert einfach nicht. Jedenfalls bin ich zufällig über dieses nette Programm gestolpert was genau das perfekt macht. Es läuft zwar nicht auf dem Router, aber da den meisten Traffic unterschiedlichster Art ich hier selbst produziere reichts auch wenn es nur auf meinem Rechner läuft. Für nur 15 Euro gibts eine Lizenz mit Updates für immer, die sind gut angelegt. Nie wieder irgendwelche Datenstau-Probleme, super Ping auch bei schnellen Downloads nebenher und man kann den Programmen einzeln Prioritäten zuweisen. Außerdem gibts auf Wunsch auch nette grafische Animationen zum Traffic und Verbindungsübersichten zur Analyse. Das Teil kann noch viel mehr aber das war so das wichtigste ;) Gibt ‘ne große Kaufempfehlung von mir!

Pimp My WordPress

October 29, 2006 on 4:00 pm | In Tools | No Comments

Ich hab mir heut mal die Zeit genommen etwas am Blog zu feilen. Schon vor kurzem ist das Archiv ist dazugekommen, welches dank fArc etwas schicker ist als das Standardding. Heute dazugekommen ist das Kontaktformular von Ryan Duff, falls mir mal jemand von euch schreiben will ;-) Sehr zu empfehlen sind auch die Plugins von Lester Chan, dessen UserOnline und PageNavi Plugins ich bei mir integriert habe. Super Arbeit! Last but not least hab ich mir auch noch das ShortStat-Plugin gegönnt, welches sehr aufschlussreiche Statistiken liefert. Sehr schön. Ganz nebenbei hab ich natürlich auch gleich noch auf die neuste WP Version 2.0.5 geupdated.

Ach ja, ein kleiner Nachtrag zum letzten Beitrag noch. Die Kanzlerin hat tatsächlich antworten lassen, leider nicht direkt auf meinen Beitrag, aber auf diverse andere, also wen es interessiert der kann die Ergüsse des Bundespresseamtes hier nachlesen…

Powered by WordPress with Pool theme design by Borja Fernandez.
Entries and comments feeds. Valid XHTML and CSS. ^Top^