Win 8.1: Anrufe per Behavior

In einem meiner Posts habe ich darüber geschrieben wie einfach es unter Windows Phone 8.1 ist, einen Anruf zu starten oder eine E-Mail zu schreiben. Da ich diese Funktion nun an mehreren Stellen brauche, habe ich jeweils ein Behavior daraus gemacht. Damit dieses Behavior auch per Blend verwendet werden kann und weil es einfacher zu realisieren ist als attached Behaviors, habe ich es als Blend Behavior gemacht.

Weiterlesen »

Dateien im Solution Explorer verdecken

Der Solution Explorer des Visual Studios zeigt häufig Dateien in einer Hierarchie an, die zu in einer bestimmten Verbindung stehen. So zum Beispiel Dateien die aus anderen heraus generiert werden oder wenn es sich um partial Classes handelt, wie sie zum beispiel bei Xaml üblich sind. Gelegentlich geht diese Abhängigkeitsbeziehung verloren und dann werden diese Dateien „falsch“ im Solution Explorer angezeigt.

Weiterlesen »

Toast Notifications in Windows 8

Als ich das erste Mal eine Toast Notification unter Windows 8 verwenden wollte, war ich doch ein wenig verdutzt. Der gesamte Vorgang wirkte auf mich etwas eigenartig, da er sich sehr von dem unterscheidet was man sonst so von WPF und Co. gewöhnt ist. Sehen wir uns aber einfach mal an wie man vorgehen kann.

Weiterlesen »

Datenkonvertierung mit implicit und explicit

Als ich nach Informationen gesucht habe um mein Post zum Thema Exceptions und „as“ zu untermauern, bin ich in der MSDN auf zwei weitere Schlüsselworte gestoßen die ich noch nicht kannte: implicit und explicit Diese Entdeckung hat mich schon etwas verwundert, sind beide doch seit .Net 2.0 Teil des Frameworks aber mir in den vergangenen Jahren noch nie über den Weg gelaufen. Woran das wohl liegt?

Weiterlesen »

Warum ich „as“ nicht mag aber Exceptions liebe

Heute widme ich mich mal wieder zwei Bestandteilen von .Net die es schon sehr lange gibt und deren Nutzung als Grundlagenwissen zu verstehen sind. Da mir recht häufig der „Missbrauch“ dieser Dinge unterkommt, will ich hier die Vorteile und Nachteile etwas genauer beleuchten. Dabei geht es mir zunächst um das Schlüsselwort as und im Weiteren um Exceptions allgemein.

Weiterlesen »

Lazy-Instantiation and the Lazy<T> – class

I’ve spent the last weeks playing around with MEF which uses a feature of .Net 4.0 I didn’t know before: the Lazy class. A class which gives us a standardized, easy to use and thread safe way for implementing lazy instantiation. Lazy instantiation describes a procedure of creating class instances on demand e.g. when accessing a property. The advantage is that you only invest resources like CPU time and memory if it is really necessary.

Weiterlesen »

Lazy-Instantiation mit der Lazy<T>-Klasse

An english version of this post can be found here: http://www.just-about.net/lazy-t-english Im Zusammenhang mit MEF bin ich auf ein Feature von .Net 4.0 gestoßen, welches mir bisher nicht bekannt war. Genauer meine ich die Klasse Lazy<T>, welche ein standardisiertes und threadsicheres Vorgehen bei Lazy Instantiation bietet. Lazy Instantiation beschreibt eine Art der Instatierung von Objekten, die erst zu dem Zeitpunkt ausgeführt wird wenn auf jene Objekte zugegriffen wird. Ein solches Vorgehen hat den Vorteil, dass unter Umständen Ressourcen gespart werden weil aufwändige Operationen nur wirklich dann angefordert werden wenn man sie benötigt.

Weiterlesen »

Der testfreundliche Singleton – Versuch 2.0

Gestern habe ich bereits ein Post zum testbaren Singleton geschrieben, in welchem ich es mir zur Aufgabe gemacht hatte eine Möglichkeit zu finden Singletons so umzusetzen, dass sie möglichst einfach zu testen und ersetzen sind. Dies ist mir nur teilweise gelungen. Das erste System das ich vorstellte, erlaubte zwar ein Testen des Singletons, nicht aber den Austausch durch ein Fake-Objekt. Die zweite Fassung ermöglichte zwar das Ersetzen und Testen, war in meinen Augen aber zu aufwändig. Dazu kommt, dass beide Systeme dem Entwickler die Freiheit gewähren die tatsächliche Singleton-Funktionalität zu nutzen oder sich einfach selbst eine Instanz der Klasse zu erstellen.

Weiterlesen »