Zum Inhalt springen

Just about .Net

It's just a blog about .Net…

Für die Basta habe ich ein Plakat erstellt um eine Übersicht zum Thema Software Evolution zu geben. Dessen Inhalt möchte ich nun auch hier zur Verfügung stellen, da das Thema sicher eine ganze Reihe von Personen interessieren dürfte.
Continue reading “Softwareevolution – eine Übersicht” »

Bezieht man sich bei der testgetriebenen Entwicklung nur auf die blanke Theorie, so bleiben die eigentlichen Vorteile häufig zu abstrakt. Im nachfolgenden Video wird deshalb eine sehr einfache Code Kata gelöst. Auf diese Weise soll gezeigt werden wie produktiv man mit den entsprechenden Werkzeugen arbeiten kann und wie sehr die so entstandene Testabdeckung bei der Refaktoriserung des Quellcodes hilft.

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.

Continue reading “Win 8.1: Anrufe per Behavior” »

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.

Continue reading “Dateien im Solution Explorer verdecken” »

Für eine App brauchte ich eine Möglichkeit, dass der Nutzer direkt aus der App heraus Behörden anrufen oder ihnen eine Email schicken kann. Dabei war ich positiv begeistert wie einfach sich diese Funktionalität umsetzen lässt. Grundlage dafür ist immer der Namensraum Windows.ApplicationModel. Von diesem aus kann dann auf die Anruffunktion (Call), die Funktionalität für E-Mails (EMail) oder weitere Dienste (Appointment, Chat, …) zugreifen kann.

Continue reading “Windows Phone 8.1: Mails und Anrufe” »

Ich war etwas überrascht als ich mitbekam, dass es keine Suchbox für Windows Phone gibt, immerhin ist diese ja in Windows 8 enthalten. Andererseits hatte ich mit der unter Windows 8 auch nicht so viel Spaß, da sie kein sauberes MVVM zuließ. Besonders interessant war sie eigentlich für mich auch nur deshalb, da ich nach einer Möglichkeit suchte eine Suche zu starten sobald der Nutzer die Enter Taste betätigt und zeitgleich das Keyboard zu schließen. Dazu eignet sich grundsätzlich auch eine TextBox insofern man etwas Vorarbeit leistet.

Continue reading “Windows Phone 8: Keyboard schließen nach Enter” »

Ich nutze sehr gern NCrunch um meine Tests automatisch im Hintergrund ausführen zu lassen, hatte aber jüngst das Problem, dass es sich nicht beim Entwickeln einer Universal App nutzen lässt. Im Forum von NCrunch bin ich aber recht schnell auf eine Lösung gestoßen, die ich hier noch einmal zusammen fassen möchte um auch anderen eine schnelle Beseitigung ihres Problems zu ermöglichen.

So scheint das Problem beim Linken der App.xaml Datei zu passieren. Diese liegt im Shared Projekt, welches nachträglich in die jeweiligen Projekte für Windows und Windows Phone eingebunden wird. Die einfachste Lösung scheint nun, diese App.Xaml in der *.projitems Datei des Shared Projekt so zu kennzeichnen, dass sie sauber gelinkt wird.

Continue reading “NCrunch beim Erstellen von Universal Apps verwenden” »

Seit wenigen Tagen ist mein Onlinekurs zum Thema „Universal Apps automatisch testen“ bei der Microsoft Virtual Academy verfügbar. Mit 6 Modulen ist er dabei umfangreicher geworden als ich zunächst geplant hatte und doch hätte ich noch weit mehr Module erstellen müssen um wirklich alle Aspekte abzudecken.

So wird zunächst auf die grundsätzlichen Features zum automatisierten Test in Visual Studio eingegangen, bevor es mit einem Schlenker über die Architektur mit MVVM zu den Unit Tests, der Testisolation, Unit Tests von Java Script Apps und abschließend den Coded UI Tests geht.

Continue reading “MVA: Universal Apps automatisch testen” »

Seit einiger Zeit bin ich dazu übergegangen meine eigenen Apps in der Cloud zu entwickeln. Neben Visual Studio Online zur Verwaltung von Workitems und Quellcode setze ich dabei seit neustem auch auf die virtuellen Maschinen um meine eigentliche Entwicklungsumgebung zu realisieren. Diese sind sehr schnell aufgesetzt und verhalten sich fast wie ein lokaler Rechner, mit dem Vorteil, dass man sie nicht nur schnell erstellen, sondern auch wieder löschen kann, falls man beim Spielen mit neuen Frameworks oder Tools die Installation zerschossen hat…

Nichts desto trotz steht man zu Beginn vor einem kleinen Problem. Denn will man eine Windows 8 App in einer solchen VM entwickeln, wird man mit der Fehlermeldung: „Unable to activate Windows Store app ‚…‘ . The activation request failed with error ‚The app can’t be activated by the Built-in Administrator‘.

Fehlermeldung beim Erstellen einer App

Continue reading “Windows 8 Apps in der Cloud aka „Unable to activate…“” »

A colleague of mine asked me this week how he can emulate special keys in Coded UI Tests. I knew that I wrote that in my book but actually did not find the official reference in the MSDN. That’s why I will provide it here again.

The Keyboard class provides different methods with which you can send texts or key codes to the UI element currently selected. Some of these methods also allow the use of modifier keys like Ctrl or Alt.

Keyboard.SendKeys(“Message{ENTER}”);
Keyboard.SendKeys(“{F4}”, ModifierKeys.Alt);

All special keys are shown in the following list. They are usually surrounded by curly braces and can be part of any string (see also the example above).

Key Code
Backspace {BACKSPACE}, {BS} or {BKSP}
Pause {BREAK}
Capslock {CAPSLOCK}
Delete {DELETE} or {DEL}
End {END}
Return {ENTER} or ~
Esc {ESC}
Help {HELP}
Pos1 {HOME}
Insert {INSERT} or {INS}
Numlock {NUMLOCK}
Page Down {PGDN}
Page Up {PGUP}
Print {PRTSC}
Scrollock {SCROLLLOCK}
Tab {TAB}
F1… {F1}
Cursor up {UP}
Cursor down {DOWN}
Cursor left {LEFT}
Cursor right {RIGHT}
Addition (num block) {ADD}
Subtraction (num block) {SUBTRACT}
Multiplication (num block) {MULTIPLY}
Division (num block)) {DIVIDE}