SASS & Compass – komplexes CSS einfach managen

Compass ist ein großartiges Tool, um ein Webprojekt auch nachträglich mit Foundation „aufzupeppen“. Außerdem erledigt es nebenbei alle nötigen Arbeiten, um Anpassungen am Framework sofort als CSS bereitzustellen. Und wenn man schon mal dabei ist, kann man auch gleich SASS nutzen, um seine eigenen Styles einfacher zu managen.

Compass installieren

Compass benötigt Ruby und ist dann sehr einfach zu installieren:

gem update --system
gem install compass

Bestehendes ASP.NET MVC4 -Projekt erweitern

Um ein typisches Webprojekt um Compass-Unterstützung zu erweitern, müssen lediglich die folgenden Befehle ausgeführt werden:

cd <myproject>
compass create --bare --sass-dir "Content\sass"
    --css-dir "Content" --javascripts-dir "Scripts"
    --images-dir "Content\images"

Verzeichnisüberwachung starten

Mit dem Befehl „compass watch“ kann das akuelle Verzeichnis überwacht werden – der Watcher startet aber nur, wenn es schon eine *.SASS oder *.SCSS Datei zu überwachen gibt, weswegen vorher im Verzeichnis „.\Content\sass“ z.B. eine Datei „Styles.scss“ händisch angelegt werden sollte.

Foundation mit Compass installieren

Wie auf der Foundation-Homepage beschrieben, ist es sehr einfach, Foundation zu installieren:

gem install zurb-foundation

oder zu aktualisieren:

gem update zurb-foundation

Ist ein Projekt bereits für Compass eingerichtet, liegt eine „config.rb“ Datei im Projektverzeichnis. Diese muss (am besten am Anfang) um den Eintrag require "zurb-foundation" ergänzt werden, was dann die Ausführung des folgenden Befehls ermöglicht:

compass install foundation

Und damit ist das Projekt dann auch schon bereit für den Einsatz von Foundation!

Simple Dice Roller R3: Deutsch!

Das dritte Release des Simple Dice Rollers steht an – auch wenn es eigentlich nur ein Service Release ist und die Quellen von Store- und Phone-App vereinheitlicht, so gibt es doch eine Neuerung: Das Release 3 wird auf deutschen Rechner in deutscher Sprache dargestellt! Für alle weiteren Sprachen wird nach wie vor Englisch verwendet.

Falls jemand weitere Übersetzungen beisteuern will, dann bitte gerne an Support@JochenLinnemann.de wenden!

XAML: Unterschiede in der Namespace-Deklaration Phone / Store Apps

Wie ich gerade feststellen musste, arbeiten in Visual Studio 2012 die XAML-Editoren/-Compiler für WinStore-Apps und WinPhone 8-Apps unterschiedlich, wenn es um die Referenzierung von Klassen im eigenen Assembly geht. Während bei Phone-Apps die Angabe xmlns:local=“clr-namespace:JochenLinnemann.DiceRoller“ durchaus akzeptiert wird, muss es bei Store-Apps xmlns:local=“using:JochenLinnemann.DiceRoller“ heißen.

Simple Dice Roller goes Mobile

Es ist soweit, meine erste WinPhone App ist zur Zertifizierung eingereicht!

Während der Simple Dice Roller einen Aufwand von gut einer Woche erfordert hatte, war der Mobile Dice Roller in etwa einem Tag fertig und das samt deutscher Lokalisierung. Viel von der Funktionalität der WinStore App konnte ich in eine Portable Library auslagern, ohne großartig Änderungen am Bestandscode durchführen zu müssen (portable Bibliotheken unterstützen nur eine Teilmenge der .NET-Funktionalitäten der verschiedenen Plattformen – den kleinsten gemeinsamen Nenner). Lediglich die Oberfläche musste ich neu entwerfen und dies fiel wegen der deutlich einfacheren Struktur einer Phone-Anwendung auch entsprechend leichter als bei den vielen Möglichkeiten einer Store-Anwendung. Die neuen Strukturen ermöglichen es nun, auch einfach eine deutsche Version des Simple Dice Rollers bereitzustellen, ohne dabei dort einen eigenen Weg gehen zu müssen.

Sobald der Simple Dice Roller: Mobile Edition zertifiziert und veröffentlicht wurde, werde ich hier den entsprechenden Link bereitstellen.

Erste Schritte: Windows Phone 8 Apps

Der Einstieg in die Windows Phone App-Programmierung fiel mir sehr viel einfacher als in die Windows Store App-Programmierung, was aber sicherlich an einer gewissen Ähnlichkeit liegt. Prinzipiell geht es auch hier um Seiten, zwischen denen navigiert wird. Interessant fand ich den relativ ähnlichen Ansatz zur Settings-Speicherung – beide arbeiten mit Dictionaries, die automatisch gespeichert werden.

Windows Store App

Object obj;
ApplicationDataContainer roamingSettings = ApplicationData.Current.RoamingSettings;
roamingSettings.Values.TryGetValue("Key", out obj);
...
roamingSettings.Values["Key"] = obj;

Windows Phone App

Object obj;
IsolatedStorageSettings appSettings = IsolatedStorageSettings.ApplicationSettings;
appSettings.TryGetValue("Key", out obj);
...
appSettings.Values["Key"] = obj;

Nokia Lumia 520

Seit kurzem bin ich stolzer Besitzer eines Lumia 520 (Windows Phone 8) – es besitzt zwar nicht die „Wertigkeit“ (Aussehen, Material, etc.) eines Samsung Galaxy, aber dafür überzeugt mich das Betriebssystem. Von Anfang an macht es Spaß damit zu arbeiten und die von Nokia mitgelieferten Apps (Karten, Navi, Musik/Radio Mix) gefallen. Nun sind auch alle Mails, Kontakte, etc. synchron auf Server, Notebook, Surface und Phone und das ohne großartige Installationen – einfach unproblematisch. Ich freue mich jetzt schon auf meine ersten Windows Phone Apps!