Windows Store App „…does not contain a static ‚Main‘ method suitable for an entry point“

Ich arbeite mich gerade in Universal Apps ein und bin über einen dummen Fehler gestolpert. Da in einer Universal App der gemeinsame Code in die entsprechenden Projekte geklinkt wird, muss an einigen Stellen in den .cs Dateien über Compiler Anweisungen mitgeteilt werden, wenn Code nicht zu verwenden ist. Gerade bei der app.Xaml wird dies deutlich. Ich hatte gehofft dies durch IoC besser lösen zu können und habe einfach die App.Xaml gelöscht und für jedes Projekt neu angelegt, mit dem Ergebnis, dass ich folgenden Fehler bekam: Error    1    Program ‚d:\Source\TFS\UniversalNorthwind\UniversalNorthwind.WindowsApp\obj\Debug\intermediatexaml\UniversalNorthwind.WindowsApp.exe‘ does not contain a static ‚Main‘ method suitable for an entry point    D:\Source\TFS\UniversalNorthwind\UniversalNorthwind.WindowsApp\CSC    UniversalNorthwind.WindowsApp

Weiterlesen »

Vortrag bei den Testing Info Days von Microsoft

Dieses Jahr war ich für Microsoft als Sprecher auf den Testing Info Days unterwegs. Dies waren zwei Veranstaltungen im März, bei denen ich jeweils in München und Hamburg über Unit Testing mit Visual Studio gesprochen habe. Der entsprechende Mitschnitt dazu findet sich auf Channel 9 und kann nachfolgend auch angesehen werden. Leider gab es wohl beim Schnitt ein paar Probleme mit den Folien wodurch diese nach einiger Zeit asynchron angezeigt werden 🙁 Weitere Informationen gibt es auch auf der entsprechenden Webseite von Channel9.

Weiterlesen »

NDepend im Einsatz

Seit einigen Wochen nutze ich NDepend als logische Erweiterung zum Resharper und Style Cop. Während der Resharper dafür sorgt, dass sich alle Entwickler an die gleichen Regeln halten. Kann ich mit NDepend zum einen prüfen ob sich auch wirklich an die Regeln gehalten wird, vor allem aber ob die Ideen hinter den Regeln auch korrekt umgesetzt werden. Der eigentliche Auslöser für die Nutzung von NDepend war aber ein anderer. Es ging viel mehr darum eine Anwendung mit sehr „interessanter“ Codebasis soweit zu refaktorisieren, dass ihre innere Struktur nicht durch jede Änderung gleich ins Wanken gerät. In wie weit dieser Anspruch erfüllt wurde sei jetzt einmal dahin gestellt. NDepend hat aber auf alle Fälle dabei geholfen den Ist-Stand zu visualisieren.

Weiterlesen »

IconToggleButton für Windows 8

Da ich für eine App einen Togglebutton mit Icon brauchte, habe ich mir einen Style für den AppBarToogleButton geschrieben, der diesen so umgestaltet, dass er wie der normale ToggleButton aussieht. Zugegebener maßen, der Aufwand ist gering und es ist auch etwas schmutzig gelöst, da kein Text angezeigt wird. Es erfüllt aber alle meine Anforderungen.

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 »

Xaml: ViewModel für die Designzeit

Wenn es etwas gibt, dass ich bei der Nutzung von Xaml besonders mag, dann ist es die strikte Trennung zwischen Logik und Darstellung. Alles was zur Darstellung gehört, wird in Xaml geschrieben, die Logik wiederum findet sich im testbaren ViewModel. Dies erlaubt eine einfache Trennung der Verantwortlichkeiten und eine Parallelisierung der Arbeit, weil Designer und Entwickler unabhängig von einander arbeiten. Damit der Designer dabei auch wirklich unabhängig vom Entwickler, nicht aber an diesem vorbei, arbeitet, sollten sich beide auf eindeutige Schnittstellen einigen. Das Wort „Schnittstelle“ kann dabei ruhig wörtlich genommen werden. Denn wenn sich beide zum Beispiel auf ein Interface für ein ViewModel einigen, kann es anschließend zwei dieser ViewModels geben. Eines, das nur die Logik für die Anzeige enthält und eines mit der tatsächlichen Logik die zur Laufzeit gebraucht wird.

Weiterlesen »

Qualität, aber bitte agil!

Gestern war ich bei Agile Saxony und habe über die unterschiedlichen Schulen des TDD gesprochen und wie sie sich auf unsere Arbeitsweise auswirken. Für mich besonders interessant war dabei die Diskussion am Ende meines Vortrages. Denn anscheinend war meine Vortragsweise etwas negativ konnotiert, wodurch ich eher skeptisch als überzeugt gewirkt haben muss. Ich war sehr übernächtigt, daher entschuldigung an dieser Stelle, wenn der Vortrag nicht die sonst übliche Qualität hatte.

Weiterlesen »

Coded UI Test: Validierung auf UI Ebene prüfen

Ein wiederkehrendes Problem das es zu lösen gilt wenn man typische Oberflächen testen möchte, ist die Prüfung auf einen Validierungsrahmen. Solche Rahmen werden immer dann eingesetzt wenn der Nutzer auf eine Falscheingabe hingewiesen werden soll. Dummerweise kann die UI Automation uns keine Informationen über jene Rahmen geben, da sie sie selbst nicht kennt. Wie also vorgehen?

Weiterlesen »