BASTA 2014

Meine persönlichen Highlights von der BASTA 2014 (Mo, den 22.09.2014 – Do, den 25.09.2014):

Am Montag hat Neno Loje in seinem Workshop “Ganzheitliches Application LifeCycle Management mit Team Foundation Server: Von der Idee bis zum Release” wieder einmal einen sehr guten Einblick in dieses Thema gegeben. Mein Eindruck war allerdings, dass es im Team Foundation Server innerhalb des letzten Jahres keine spektakulären Neuerungen gegeben hat. Stattdessen hat Microsoft an vielen Details (wie z.B. der Verbesserung der Charting-Funktionalität) gearbeitet. Dass sich der Besuch für mich dennoch gelohnt hat, lag an einigen Tipps, die mir Neno im Anschluss an den Workshop geben konnte. Dabei ging es u.a. um das Thema “Update/Migration eines produktiven TFS 2010 (mit angepasstem Prozess-Template) auf die aktuelle Version”.

Am Dienstag hat die Keynote “Die neue Offenheit” bei mir leider keinen nachhaltigen Eindruck hinterlassen. Für die erste Keynote einer BASTA wäre es aus meiner Sicht wünschenswert, wenn man in Zukunft hochkarätigere Speaker gewinnen könnte. In der Podiumsdiskussion ging es diesmal im Wesentlichen darum, dass Microsoft seine Aktivitäten im Bereich OpenSource verstärkt und dass man jetzt zunehmend auch auf anderen Plattformen (Beispiel: IOS, Linux/Android) durchstarten möchte. Nichts was einen wirklich überrascht hat!!! Im Anschluß habe ich dann den C# Track verfolgt: In den beiden Vorträgen von Oliver Sturm und Christian Nagel wurden die neuen “Code Features von C# 6″ vorgestellt. Beide Vorträge waren für sich genommen wirklich sehr gut und sehr informativ. Allerdings hätte es aus meiner Sicht definitiv gereicht, einen der beiden Vorträge zu besuchen. Am Nachmittag gab es dann gute Tipps, wie man seine Codequalität verbessern kann (z.B. mit StyleCop oder mit Code Analysis). Anschließend hat Thomas Claudius Huber dem geneigten Publikum die S.O.L.I.D-Prinzipien anhand von vielen Code-Beispielen erklärt. Ich vermute mal, dass die meisten Teilnehmer (mich eingeschlossen) nicht alles verstanden haben. Gute Anregungen für den eigenen Code konnte man aber auf jeden Fall mitnehmen.

Bei der Keynote am Mittwoch hat Tarek Madkour (Microsoft) einen sehr guten Überblick zum Thema “Awesome everywhere – Targeting EVERY DEVICE with Visual Studio” abgeliefert. Eine besondere Empfehlung gab er für die Tools Xamarin und Cordova. Mit diesen ist es möglich, mobile Apps für IPhone, Android und Windows Phone zu entwickeln, die auf einer einzigen Codebasis beruhen. Am Mittwoch hat mir außerdem der Vortrag von Christian Nagel zum Thema “Using LINQ in Real Life Scenarious” gefallen. Es gab wieder viele Code-Beispiele. Ausgehend von einer guten Einführung hat er dabei immer fortgeschrittene Anwendungsszenarien (inkl. Grouping und SelectMany) vorgestellt. In Erinnerung bleiben wird außerdem der Vortrag von Thomas Schissler zum Thema “Performance Testing”. Dabei stellte er u.a. die folgenden Tools vor: Die Load Testing – Funktionalität aus Visual Studio Ultimate, die WPF Performance Suite, Snoop (Event Monitoring für WPF) und den Windows Performance Recorder.

In der Keynote am Donnerstag haben dann Dr. Holger Schwichtenberg und Manfred Steyer über die “Zukunft von .Net am Server” berichtet. Ich fand die Keynote sehr kurzweilig. In Erinnerung geblieben ist mir, das Microsoft das .Net-Framework in Zukunft auch in vielen kleineren Häppchen anbieten wird. Diese kann man sich dann für seinen speziellen Anwendungsfall zusammenstellen. Dadurch ergeben sich folgende Vorteile: Bessere Performance und weniger Ressourcenverbrauch. Man liefert wirklich nur noch das aus (z.B. per XCopy – Deployment), was auch wirklich benötigt wird. Damit werden in Zukunft auch Anwendungen auf kleineren Devices, wie z.B. Raspberry Pi oder auch auf sogenannten Wearables möglich. Leider sind dazu auch Code-Breaks im .Net-Framework erforderlich, die dazu führen werden, dass möglicherweise auch Anpassungen am eigenen Code erforderlich sind. Auch das Thema NuGet spielt in Zukunft eine immer wichtiger werdende Rolle. Hier wurde auch der Tipp gegeben, dass sich bei Verwendung entsprechender Pakete auch mal ein Blick in die Lizenzbedingungen lohnt. Weiterhin in Erinnerung bleiben wird auch der Vortrag von Christian Binder mit dem Thema “Entwickeln im Rhythmus der Cloud”. Hier wurde am Beispiel der Entwicklung des Team Foundation Servers und von Visual Studio gezeigt wie Microsoft Software entwickelt. Wichtige Aspekte des Vortrags waren: Wie sind die Entwicklungsteams bei Microsoft organisiert? Wie wird Scrum gelebt? Wie bekommt man unmittelbares Feedback der Anwender? Wie geht dieses Feedback in die Entwicklung ein? Wie bekommt man immer kürzere Realeasezyklen hin? Weiterführende Infos dazu gibt es unter: http://stories.visualstudio.com.

 
Ein Thema ist dieses Jahr auf der BASTA scheinbar etwas in den Hintergrund gerückt. Während man im letzten Jahr irgendwann fast zwangsläufig in einen Vortrag saß, der sich mit dem Thema “Cloud” beschäftigte, habe ich es dieses Jahr geschafft, keinen einzigen technischen Vortrag zu diesem Thema zu verfolgen. Neben den vielen Vorträgen sind auch noch die Aussteller zu erwähnen, deren Besuch sich in einigen Fällen (nicht nur wegen der Give Aways !!!) wirklich gelohnt hat. Insgesamt war die BASTA auch in diesem Jahr wieder eine gelungene Veranstaltung und daher komme ich auch im nächsten Jahr gerne wieder.

Mein persönlicher Lieblingssprecher bei der diesjährigen BASTA war übrigens Christian Nagel. Er hat mit seiner unverwechselbaren Art, seinem Akzent, seiner Bärenruhe und natürlich seiner Kompetenz sehr gute Vorträge zum Thema C# gehalten. Da er es bei der Einleitung seiner Vorträge jedes mal erwähnte, habe ich insbesondere mitgenommen, dass man mit Büchern zum Thema “C# – Entwicklung” nicht reich werden kann und das Hollywood (aus welchem Grund auch immer) keinen Wert darauf legt, seine Bücher zu verfilmen!!!

 

 

 

 

 

 

Welche .Net Assembly wurde eigentlich geladen ?

Als .Net Entwickler kommt man früher oder später an den Punkt, wo man sich fragt: Welche Assembly hat meine Software eigentlich geladen? Eine sehr gute Antwort auf die Frage, wie man in einem solchen Fall vorgehen kann, gibt z.B. ein Artikel von Scott Hanselmann: http://www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx.

Hervorzuheben ist hier insbesondere der “Fusion Protokoll Viewer”. Mit seinen Logging-Fubktionalitäten kommt man möglichen Problemen schon sehr gut auf die Schliche. Leider muss man sich oft durch eine Vielzahl von Protokolleinträgen kämpfen bis man eine Antwort auf seine Fragen gefunden hat. Wer es einfacher haben will und mit weniger Infos auskommt, der findet mit den in Visual Studio 2013 eingebauten Funktionalitäten eine sehr gute Alternative:

Einfach einen BreakPoint setzen. Dann die Anwendung bis auf diesen Punkt laufen lassen. Dann unter Debuggen->Fenster->Module aufrufen.

VS2013_Module

 

 

 

 

 

 

 

 

My “holy” ten commandments of software development

moses.gebote6

1. Learn programming language as good as possible!

2. Use a style guide!

3. Use code analysis and profiling tools!

4. Apply clean code developer rules!

5. Apply common design patterns!

6. Write unit tests!

7. Apply the agile software development methodology

8. Use a source code control

9. Meet colleagues for code reviews!

10. Visit lectures and conferences!

 

And another tip:

Never be satisfied with ‘good’ code! There is always room for improvement!

Vintage Hifi – Geräte

Hifi

Allen, die auf der Suche nach einem schönen Vintage Hifi-Gerät (z.B. Dual Plattenspieler) sind oder Ihr altes Gerät, das vielleicht viele Jahre auf dem Dachboden gestanden hat und bereits verstaubt ist, wieder flott machen wollen, möchte ich an dieser Stelle den folgenden Link empfehlen: http://www.radio-werkstatt.de/

 

 

Windows Service Status

Service

Das Microsoft .Net Framework bietet eine einfache Möglichkeit festzustellen, ob ein bestimmter Windows Dienst gestartet ist und läuft.

C# Beispielcode:

(Verweis auf System.ServiceProcess muss vorab eingefügt werden)

using System;
using System.ServiceProcess;

namespace IsServiceRunning
{
  public class Program
  {
    public static void Main(string[] args)
    {
      const string serviceName = "Windows Search";
      Console.WriteLine("Service '{0}' running: {1}", serviceName, IsRunning(serviceName).ToString());
      Console.ReadLine();
    }

    /// <summary>
    /// windows service running ?
    /// </summary>
    /// <param name="serviceName">service name</param>
    /// <returns>true or false</returns>
    private static bool IsRunning(string serviceName)
    {
      try
      {
        ServiceController sc = new ServiceController(serviceName);
        return sc.Status == ServiceControllerStatus.Running;
      }
      catch
      {
        return false;
      }
    }
  }
}

Entsprechenden VB-Code findet man hier: http://dotnet-snippets.de/snippet/pruefen-ob-ein-dienst-gestartet-ist/157

Free Microsoft EBooks

ebook

oldie, but goodie:

Microsoft verschenkt 63 E-Books zu Office 365, SharePoint, SQL Server, Visual Studio, Windows Azure, Windows Server und Co. http://windowsdeveloper.de/news/Microsoft-verschenkt-63-EBooks-zu-Office-365-SharePoint-SQL-Server-Visual-Studio-Windows-Azure-Windows-Server-Co

EBooks hier: http://blogs.msdn.com/b/mssmallbiz/archive/2013/06/18/huge-collection-of-free-microsoft-ebooks-for-you-including-office-office-365-sharepoint-sql-server-system-center-visual-studio-web-development-windows-windows-azure-and-windows-server.aspx