Application Insights für Desktop Anwendungen (WPF + WinForms)

Windows Azure bietet mit Application Insights eine einfache Möglichkeit Telemetriedaten für Desktop-Anwendungen und Dienste zu sammeln. Diese Daten können unter anderem Aufschluss darüber geben, wie oft welche Funktionalität in der Anwendung verwendet wird, wie viele Benutzer zu welchen Zeiten die Anwendung verwenden, wie häufig die Anwendung abstürzt oder wie häufig Exceptions auftreten. Das Sammeln dieser Informationen kann z.B. zur Verbesserung der Anwendung beitragen, in dem z.B. häufig verwendete Funktionen schneller und einfacher für den Anwender zugängig gemacht werden. So könnten solche Funktionalitäten im Ribbon nach links oder im Kontextmenu nach oben wandern. Unter https://azure.microsoft.com/en-us/documentation/articles/app-insights-windows-Desktop/ findet man eine sehr gute Anleitung. Etwas verwirrend ist leider die Tatsache, dass der in der Anleitung benötigte ‘Instrumentation Key’ im Portal (zumindest in der deutschsprachigen Version) ‘Komponenten-ID’ heißt: AppInsigths1      

Zu Evaluierungszwecken habe ich ein kleines WPF-Testprojekt angelegt. Bitte in diesem Testprojekt, den Instrumentation-Key in der Datei ApplicationInsights.config anpassen. Bitte auch die installierten Nu-Get Pakete beachten. Ich habe das Paket ‘Desktop Apllication Insights’ hinzugefügt, welches aktuell nur in einer Vorabversion existiert. Die abhängigen Pakete werden dann automatisch hinzugefügt.

AppInsigths4

Die Testanwendung gibt z.B. einen simplen Einblick, wie oft welcher Button betätigt wurde:

AppInsigths3

AppInsigths2

PowerShell 3.0 Installation Hilfe

powershell

Unter PowerShell 3.0 müssen die Hilfe-Texte mit dem folgenden Befehl einmalig installiert werden:

PS> Update-Help

(PowerShell als Administrator ausführen)

Leider stehen viele Hilfetexte nicht in deutscher Sprache zur Verfügung. Daher lohnt es sich die englischsprachige Hilfe mit dem folgendem Befehl zu installieren:

PS> Update-Help -UICulture en-us -Force

Damit die englische Hilfe unter einem deutschen System zur Verfügung steht, müssen die Dateien aber noch vom englischsprachigen Hilfeorder (C:\Windows\System32\WindowsPowerShell\v1.0\en-us) in den deutschen Hilfeordner (C:\Windows\System32\WindowsPowerShell\v1.0\de-DE) kopiert werden.

(Damit die “Update-Help”-Befehle funktionieren muss das System auf das Internet (ohne Verwendung eines Proxys) zugreifen können.)

FileSystemWatcher

Ein FileSystemWatcher in .Net kann unter Umständen auch mal seine Arbeit verweigern. Das kann sich zum Beispiel so auswirken, das die Software nicht mehr auf das Created-Ereignis reagiert. Wie in einem solchen Fall zu verfahren ist steht z.B. hier: http://stackoverflow.com/questions/6184115/filesystemwatcher-stops-catching-events

Windows-Remoteunterstützung

Remote

Unter Windows 7 + 8 gibt es das Feature “Windows-Remoteunterstützung”. Damit kann man auf einfache Art und Weise ohne Zusatzsoftware einer anderen Person Zugriff auf den eigenen Desktop gewähren um Support zu erhalten. Funktion findet man einfach in dem man im Startmenü im Suchen-Textfeld das Wort “Remote” eingibt. Dann auf “Eine vertrauenswürdige Person zur Unterstützung einladen” klicken. Alles weitere ist praktisch selbsterklärend. Weitere Infos unter: http://windows.microsoft.com/de-DE/windows-8/windows-remote-assistance-frequently-asked-questions

Einführung in MVVM

Die beste Einführung in MVVM, die ich gefunden habe, ist diese: http://visualstudiogallery.msdn.microsoft.com/af12ce3b-8337-4bbb-853f-9fdad7105ec8

Ein weiteres Skript findet sich hier: http://msdn.microsoft.com/de-de/magazine/dd419663.aspx

Besonderheiten im Zusammenhang mit einem TreeView zeigt dieser Artikel auf.

C# String Replace

Leider bietet die String.Replace – Methode nicht die Möglichkeit mit IgnoreCase zu arbeiten:

StringReplace

Funktioniert leider OFTB nicht:

string test = "Hallo Dieter";
test = test.Replace("dieter", "Thomas", StringComparer.CurrentCultureIgnoreCase);

Glücklicherweise gibt es Hilfe im NameSpace “System.Text.RegularExpressions“:

Funktioniert:

string test = "Hallo Dieter";
test = Regex.Replace(test, "dieter", "Thomas", RegexOptions.IgnoreCase);

Wer besonders smart ist, kann sich damit eine Erweiterungsmethode basteln. Dann bekommt man auch den oberen Quelltext an den Start!

Unable to create a Team Foundation Service Account

TFS_Cloud

A few days ago I wanted to create a new Team Foundation Service (tfs in the cloud) account. Unfortunatly I got the following message:

Sorry, we were unable to create the ‘XXX’ account. Our records indicate that you already own an account in the service and currently Team Foundation Service only allows one account per user.

OK! I might already have created an account a long time ago! But I can’t remember and I definitively lost the URL. In cases like that you can send an email to TFServiceSupport@microsoft.com. I got the following great support from Microsoft:

Please log in to https://tfs.visualstudio.com/en-us/account/subscriptions using your Windows Live account. The TF Service collection you own will be listed there.

That solved my problem!

Microsoft TechDay Office 2013

Im Februar bietet Microsoft den TechDay Office 2013 in München, Stuttgart, Berlin und Köln an.

TechDay

Agenda findet man hier: http://www.techday.ms/office2013/Agenda.aspx

Zur Anmeldung geht es hier: https://www.event-team.com/events/techday/office2013/Anmeldung.aspx

Ich habe mich für den TechDay am 19.02.2013 in Köln angemeldet.