Logging für Windows Store Apps mit WinRT

Logging ist in der Programm-Entwicklung eine der wesentlichsten Methoden zur Fehlerverfolgung. So nimmt die Bedeutung von Logging mit den neuen .NET 4.5 Features (speziell async/await) zu, da im asynchronen Programmcontext bei unsachgemässer Implementation nicht deterministische Fehler “geschluckt” werden können. Die Nachverfolgung solcher Fehler gestaltet sich, ohne Protokollierung, als äusserst schwierig.

Was WinRT bietet

Als rudimentäres Logging-Feature hat Microsoft zu diesem Zweck in WinRT die Event Tracing for Windows (ETW) Library für das Mobile- und Desktop-App Framework integriert. Dieses entfaltet vor allem für kleinere Entwicklungen seine Stärken, ist allerdings für den Einsatz von grösseren und komplexeren Lösungen nur bedingt geeignet. Es fehlen markante Features wie das Uploaden der Log-Files auf einen zentralen Server. Zusätzlich enthält das von Microsoft gebotene Beispiel Multithreading-Probleme, welche beim Save des Log-Files zum Tragen kommen können.

MetroLog kann Abhilfe schaffen

Das MetroLog Framework als OpenSource Projekt nimmt sich dieser Problematik an. Dieses basiert auf NLog und bietet neben der klassischen Logging-API auch den besagten Upload zum Server an. Weiterhin bietet MetroLog die Features zum Loggen von Daten ins ETW oder in eine lokale SQL-Lite Datenbank. Ein Beispiel zu MetroLog findet sich unter: https://github.com/mbrit/MetroLog/blob/master/Samples/ConsoleSample/Program.cs

Wunsch-Framework: log4net und noch mehr…

Persönliche habe ich eine Vorliebe für das log4net Framework. Dieses wurde bereits bei diversen .NET Projekten eingesetzt und ist entsprechend in der .NET Community etabliert. Ebenfalls setzen bereits bestehende interne Basis-Funktionalitäten log4net ein. Diese Funktionalitäten sollen nach und nach zu WinRT migriert werden, ohne hierbei ein grosses Rewrite zu generieren.

Leider exisitiert im Moment noch keine Implementierung des log4net Frameworks für WinRT. Aus diesem Grunde heisst die Lösung im Moment: Facade-Pattern der GoF. Mit Hilfe dieses Patterns, kann die effektive Logging-Implementierung im Nachhinein ohne Probleme ausgetauscht und so beispielsweise durch log4net Komponenten ersetzt werden.

Die Anwendung der Facade (Klasse Logger<T>) sieht wie folgt aus:

Durch die Facade kann ebenfalls die Logging-API minimiert werden. Im Beispiel werden direkt die Logger<ExampleClass>-Methoden aufgerufen. Diese loggen anschliessend die Mitteilung im Namen der Klasse ExampleClass. Der Compiler sorgt implizit dafür, dass genau eine Instanz des Templates Logger<ExampleClass> existiert, daher muss der Logger nicht explizit in jeder Anwender-Klasse instanziiert werden. Dank der Verwendung des Compiler-Features müssen auch keine Performance-Einbussen hingenommen werden.

Die Implementation der Logger<T> sieht im Prinzip sehr einfach aus:

Fazit

WinRT bietet im Moment erst rudimentäre Logging-Funktionalitäten. Dafür stehen Frameworks wie MetroLog zur Verfügung. Wer sich allerdings an ein zukunftssicheres API binden möchte, ist gut beraten, eine eigene Entwicklung anzustreben.

Im Beispiel oben wurde auf einfache Art und Weise gezeigt, wie das Logging mit WinRT mit den heutigen Mitteln zukunftssicher implementiert werden kann. Sicherlich ist die gebotene Implementierung aus aktueller Sicht noch ausbaufähig, doch bietet sie einen Grundstein für den späteren Einsatz einer mächtigeren Library.

Namics an der WPC 2010

Washington. Microsoft World Partner Conference 2010. Rund 14’000 Teilnehmer aus über 100 Ländern.

Namics ist auch in diesem Jahr wieder der Einladung von Microsoft gefolgt, um die aktuellen Trends, Themen und Entwicklungen aus erster Hand zu erfahren.

Das Microsoft Geschäftsjahr verlief wie das aktuelle sonninge Wetter in Washington – strahlend. Steve Ballmer bedankt sich für die tolle Zusammenarbeit, sieht jedoch Wolken aufziehen, trotz der geplanten Launches für 2010/2011 muss es einen grundlegenden Wandel geben – zur Cloud. Das Thema der diesjährigen WPC ist leicht zu identifizieren – internetbasierte Services „Cloud Computing”. Was wird unter Cloud Computing verstanden? Steve Ballmer erläuterte in seiner Keynote wenig konkretes, eher den bestehenden Nachholbedarf für Microsoft mehr auf virtualisierte und skalierbare Umgebungen zu setzen. Unterstützt durch Webservices und den bedarfsorientierten Einsatz aller Microsoft Produkte soll hier ein spürbarer Mehrwert für Kunden und Partner geschaffen werden. Steve Ballmer appeliert aber auch an die Verantwortung gegenüber den Kunden und deren Erwartungen hinsichtlich Sicherheit und „operativer Qualität” der Produkte und Dienstleistungen.Was ist aber das wirklich neue an dieser Story? Azure! Die seit Februar 2010 zur Verfügung stehende Entwicklerplattform basiert auf einer neuen Version des .NET Frameworks und SQL DB und bietet vielfältige Möglichkeiten für individuelles Applikationsdesign, sowie Datensynchronisation mit SharePoint an. Azure soll also der Tornado am Himmel werden und kräftig für „Wolken” sorgen.

Weiteres Thema ist Windows Phone. Auch hier taucht am Horizont Hoffnung für alle Freunde einer iPhone Alternative auf. Microsoft hat und wird viel in Devices, Software, Entwicklungsplattformen für businessorientiertes Mobile Computing investieren. Die Ergebnisse sollen Ende 2010 präsentiert werden.

Organisatorisch wurde noch ein Staffelstab übergeben, bzw. ein Rollentausch vollzogen. Jon Roskill leitet künftig die gesamte Microsoft Worldwide Partner Group und übernimmt diese Rolle von Allison Watson, die ihrerseits die ehemalige Position von Jon Roskill des Corporate Vice President der Business & Marketing Organization für die USA übernimmt.

Persönlicher Higlight war sicherlich der Auftritt des ehemaligen US Präsidenten Bill Clinton, der in seiner Keynote über die Zusammenhänge von gesellschaftlicher Verantwortung, Netzwerken und Technologieeinsatz sprach. Schwerpunkt war der Wirkungskreis der William J. Clinton Foundation für Haiti und die Unterstützung dieser Aktivitäten durch bspw. den Einsatz von Social Media und virtuellen Netzwerken.

Namics an den X.DAYS im März 2010

Am 17. und 18. März findet in Interlaken der nationale Business & ICT Event X.DAYS statt, an dem sich das “Who is Who” der ICT-Branche einfindet.

Wir freuen uns auf Ihren Besuch an den X.DAYS. Sie finden uns während dieser Zeit an den folgenden Orten:

Ihre Ansprechpartner bei Namics an den X.DAYS sind Mischa Mundwiler und Troy Lüchinger.

Wir freuen uns auf Ihren Besuch an den X.DAYS!

SharePoint 2010 bei Namics.

Nach Las Vegas und vor der Beta Veröffentlichung am 18. November 2009.

Was tun? Markus Wirrer (St. Gallen) und Markus Spiekermann (Baar) sind mit einer Vielzahl von Informationen und Eindrücken von der diesjährigen Konferenz zurückgekehrt. Viel Neues – manch altes und eine ganze Menge zu tun. Wie angehen, wie strukturieren, und vor allem wie das Wissen nutzbar machen? Ergebnis unserer Überlegungen sieht wie folgt aus.

1. Evaluation der zentralen Themenfelder
2. Identifikation der zentralen Handlungsfelder
3. Zuweisung von Spezialisten(gruppen) zu den Handlungsfeldern
4. Wissensaufbau in der neuen Systemumgebung mittels definierter Use Cases
5. Interne Kommunikation und Wissensvermittlung via Roundtable
6. Externe Kommunikation via Blog

Wir haben uns entschlossen entlang den beiden zentralen Themenfeldern Collaboration / Document Management und Publishing folgende Handlungsfelder genauer zu betrachten:
1. Infrastruktur
Hierzu zählen wir nicht nur die Architektur, Planung, Topologie sowie Hardware Anforderungen, sondern auch die betriebskritischen Themen wie Backup, Recovery und Migrationsszenarien.
Menschen: Sascha David, Reto Rosspeintner, Heinz Beutler
2. Administration
Altbekannte Probleme und Themen aus SharePoint 2007 gepaart mit der Konfiguration und Set-Up der eigentlichen Applikation, Berechtigungskonzept, Informationsarchitektur, Sprachen und den gängigen OOB Funktionalitäten.
Menschen: Markus Wirrer, Markus Spiekermann
3. Development
Dier Hoffnung stirbt zuletzt, auch mit SharePoint 2010 wird es wieder Customizing und Eigenentwicklungen geben. Wie sieht die Erstellung von WebParts aus, welche sind wiederzuverwenden, welche nicht, Was verbirgt sich hinter „Services”
Menschen: David Zahorsky, Maya Feurer
4. FrontEnd Engeneering
Zentarles Thema neben dem eigentlichen Styling und Templating ist die Verwendung,, bzw. Anwendung von AJAY, J-Query, Java Script, WebControls und Silverlight in SharePoint 2010.
Menschen: Andreas Glaser und Baris Bikmaz
5. Suche / Search
Was ist es denn? MOSS Search, WSS Search, FAST? Viel wichtiger und eng mit der Infrastruktur und dem Aufbau der Architektur verbunden – das Thema Indexierung.
Menschen: Harry Preis, Michael Iten
6. Anwendungs- und Integrationsszenarien für Benutzer
Was machte eine Unternehmung heute mit SharePoint – was kann eine Unternehmung Morgen mit SharePoint machen? Von der Informationsarchitektur, über interne Abläufe und Prozesse zur tatsächlichen Anwendung von Collaborationsszenarien – aus Benutzerperspektive.
Menschen: Michael Pertek, Mischa Mundwiler

Jedes dieser Handlungsfelder wird in einzelnen Beiträgen analysieren und berichten über die Neuigkeiten, Änderungen und Konsequenzen des Einsatzes von SharePoint 2010. Los geht’s ab dem 19. November 2010 nachdem die erste Beta Installation läuft. Die beiden SharePoint Teams in Baar und St. Gallen werden auch hier gemeinsam und eng zusammenarbeiten, Elisabeth Stettler koordieniert und stimmt diese entsprechend ab.
Ein separates Handlungsfeld für Namics wird das Thema Sprache werden. Hier scheint auch in SharePoint 2010 keine der gewünschten Mehrsprachigkeit zuträgliche Lösung gefunden worden zu sein.

Nebenbei wird selbstverständlich die ganze Mannschaft in den jeweiligen Themenfeldern mitarbeiten und die Ergebnisse in kurzen Blogeinträgen veröffentlichen.

Seien Sie gespannt!