Node.js in the Cloud

25 May
May 25, 2012

I will come back to Berlin and I’m proud to host this Event at the Darksidebakery. A short technical, overview on our Node.js Support in Windows Azure. Here are the details:

Node.js in the Cloud

Join us for this brief overview on Node.js and Windows Azure Support. We will cover the following topics

  • Node.js – a short intro and how is Microsoft engaged
  • Brief overview on Windows Azure
  • Node.js on Windows Azure
  • Tools and Demos
  • Use cases
  • Q&A

As we are in Berlin this event will be in English. If you are interested, please register via Eventbrite:

Register for Node.js in the Cloud

Hope to see you in Berlin!

Windows 8 Hackathon – Leipzig Edition

16 May
May 16, 2012

Du bist leidenschaftlicher Coder? Du erzielst gerne Ergebnisse? Du hast einfach Spaß mit Leuten zusammen Ideen auszutauschen und zu realisieren? Dann komme doch zum Windows 8 Hackathon nach Leipzig! Wir veranstalten zusammen mit der ALT.NET Berlin, der .NET Developer Group Braunschweig, der .NET User Group Dresden und der .NET User Group Leipzig einen Windows 8 Hackathon.

Wie für einen wahren Hackathon üblich findet das Coding Nachts statt. Wir starten am 15.Juni um 19.00 Uhr und wollen bis morgens um 07.00 Uhr durchmachen. Ziel ist es eine Windows 8 App zu schreiben, die Technologie hierfür bleibt vollkommen Euch überlassen. Ob C# und XAML, HTML5 und JavaScript oder DirectX mit C++, Ihr habt die Wahl wie die technische Umsetzung aussieht. Technische Unterstützung Vor-Ort ist vorhanden, ebenso Verpflegung in Form eines kostenfreien Grillbuffets samt Getränken.

Mein Kollege Tom Wendel und ich werden auch Vor-Ort sein. Wir freuen uns!

Um Dich für den Hackathon zu registrieren folge diesem Link.

Metro Style Apps für Windows 8

25 Apr
April 25, 2012

Auf der letztjährigen //build Konferenz in Anaheim wurde Windows 8 das erste Mal der Entwicklergemeinde offiziell vorgestellt und in Form der Windows 8 Developer Preview konnte man gleich praktische Entwicklererfahrung sammeln. Das war letzten September und in der Zwischenzeit hat sich einiges getan. Die Consumer Preview von Windows 8 ist verfügbar und die Windows 8 Release Preview für Anfang Juni bereits angekündigt. Mit der Consumer Preview von Windows 8 stehen dem Entwickler Visual Studio 11 Express Beta und Blend für Visual Studio 11 Beta zur Verfügung. Mit diesen Tools lassen sich Windows 8 Metro Style Apps entwickeln und in den Windows Store publizieren.

WinRT als Grundlage

Die WinRT APIs sind die Basis und zentrale Schnittstelle zum Betriebssystem für die Entwicklung einer Metro Style App. Ob Dateizugriff, Zugriff auf XML Dokumente, Sensoren, Netzwerkzugriff, etc…, die WinRT bietet Anwendungsentwicklern die entsprechende Funktion in einer einheitlichen API. Einheitlich in der Form, das es die gleiche API für C++, C#, Visual Basic oder JavaScript ist.

Ein Beispiel soll hier den Zugriff auf die WinRT verdeutlichen. Die Webcam lässt sich über die WinRT Klasse Windows.Media.MediaCapture.CameraCaptureUI ansprechen. Der folgende C++ Code spricht die Kamera genauso an

using namespace Windows::Media::Capture;

...

auto cam = ref new CameraCaptureUI();

task<StorageFile^>( cam->CaptureFileAsync( CameraCaptureUIMode::Photo )).then([this](StorageFile^ file)
{
    task<IRandomAccessStream^>( file->OpenAsync(Windows::Storage::FileAccessMode::Read)).then([this](IRandomAccessStream^ stream)
    {
        BitmapImage^ image = ref new BitmapImage();
        image->SetSource(stream);
        photo->Source = image;
    });
});

wie der nachfolgende JavaScript Code

var capture = Windows.Media.Capture;

...

var dialog = new capture.CameraCaptureUI();
dialog.captureFileAsync( camera.CameraCaptureUIMode.photo ).then( function( file ) {
    imageElement.src = URL.createObjectUrl(file);
});

Bestehendes Know-How nutzen

Richtig! Es ist vollkommen egal ob man Windows 8 Metro Style Apps mit C++ oder mit JavaScript schreibt. Mit beiden Sprachen hat man die Möglichkeit eine Metro Style App zu schreiben die in Funktion der anderen in nichts nachsteht. Nun, ganz so ist es nicht, da man mit der Oberflächenvisualisierung die ein oder andere Möglichkeit mehr hat. Denn aufbauend auf der WinRT kommt nun die Visualisierungstechnologie zum Zuge. Das ist im Falle von C++ zum Beispiel DirectX oder auch XAML, das ebenso die verwendete Technologie für C# und Visual Basic ist. Nutzt man JavaScript hingegen kann man mit HTML5 und CSS3 bestehendes Webentwickler Know-how anwenden.

Metro Style Apps mit XAML

Hat man Beispielsweise C# und Silverlight oder WPF Know How so liegt es nahe eine Metro Style App mit XAML und C# zu bauen. Es sind die gleichen Techniken und Entwurfsmuster die hier zum Einsatz kommen.

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <Button x:Name="backButton" Click="GoBack" IsEnabled="{Binding Frame.CanGoBack, ElementName=pageRoot}" Style="{StaticResource BackButtonStyle}"/>
    <TextBlock x:Name="pageTitle" Text="{StaticResource AppName}" Grid.Column="1" Style="{StaticResource PageHeaderTextStyle}"/>
</Grid>

Das ist die Defintion der Überschrift samt Back-Buttons aus dem Visual Studio Default Grid Projekt Template. Das ist XAML, das XAML das WPF und Silverlight Entwickler kennen und lieben. Und liebgewonnene Entwurfsmuster wie das populäre MVVM (Model-View-ViewModel) können auch weiter verwendet werden. Unter Umständen lassen sich auch bestehende View Modelle aus Projekten übernehmen.

Metro Style Apps mit HTML5

Webentwicklern steht eine neue Welt offen. Mit den bisherigen Kenntnissen zu HTML5, CSS3 und JavaScript lassen sich nun Windows 8 Metro Style Apps schreiben. Auch populäre Frameworks wie z.B. jQuery lassen sich nutzen und weiterverwenden. Ein weiterer Satz an Funktionalitäten kommt in Form der WinJS. Die WinJS ist eine JavaScript Bibliothek die hilfreiche Funktionalität anbietet und auch visuelle Animationen und Controls und weiteres beherbergt. Mit der WinJS verwandeln sich Standard div Elemente in Windows 8 konforme Steuerelemente.

<div id="template" data-win-control="WinJS.Binding.Template">
    <div class="item">
        <h2 data-win-bind="textContent: title"></h2>
    </div>
</div>

<div class="myList" data-win-control="WinJS.UI.ListView"></div>

Das obige HTML Fragment definiert zuerst ein Template und ein weiteres div Element das ein ListView Control gefüllt mit Daten wird wenn der folgende JavaScript Code ausgeführt wird

onready: function( element, options ) {

    var list = new WinJS.Binding.List([
        { title: "Artikel 1" },
        { title: "Artikel 2" },
        { title: "Artikel 3" }
    ]);

    var template = document.getElementById("template");
    var listView = document.querySelector(".myList").winControl;

    WinJS.UI.setOptions(listView, {
        itemDataSource: list.dataSource,
        itemTemplate: template
    });
}

Ein paar Zeilen HTML und JavaScript lassen eine Liste mit Daten auf dem Bildschirm erscheinen.

Am Horizont: Der Windows Store

Egal in welcher Sprache man seine eigene Metro Style App entwickelt aus Visual Studio heraus hat man direkt die Möglichkeit die Anwendung in den Windows Store zu publizieren. Man benötigt dazu einen Developer Account der für den Windows Store freigeschalten ist. Wie man an einen solchen Account in der momentanen pre-release Phase kommt ist hier im Detail beschrieben.

Eine Reise beginnt

Selbst wenn man noch nicht mit dem Gedanken gespielt hat Windows 8 Metro Style Apps zu entwickeln, mit den heutigen Know-how rund um Silverlight / WPF oder HTML5 / CSS3 besitzt Ihr bereits die Grundlage technisch für die Windows 8 Platform Metro Style Apps zu schreiben. Es fehlen nur noch die letzten 20%, das kennen lernen der Plattform, der Möglichkeiten, um diese in eine gute App Idee umzusetzen.

Windows 8 Events

23 Mar
March 23, 2012

Im Laufe der nächsten 3 Monate veranstalten wir eine Reihe von Windows 8 Events. Dabei gibt es verschiedene Formate die ausführlich auf der offiziellen deutschen Event Webseite beschrieben sind.

Ich möchte einfach nochmals klarstellen an wen sich die einzelnen Formate wirklich richten.

Windows 8 Camps (Einsteiger)

Ein Windows 8 Camp ist eine eintägige Veranstaltung die primär an Einsteiger in die Windows 8 Metro Style App Entwicklung gedacht ist. In 5 Sessions werden die wichtigsten Dinge bezüglich dem Einsteig in die App Entwicklung erläutert und die Grundkonzepte von Windows 8 erklärt. Das Format richtet sich primär an Entwickler und technische Entscheider die einen Überblick bekommen möchten. Wichtig: Wer bereits das CeBIT Entwicklerforum für Windows 8 besucht hat oder den TechTalk zu Windows 8 besucht hat, wird vermutlich nicht viel neues erfahren.

Windows 8 UX Camps (Einsteiger)

Ebenso eine eintägige Einführungsveranstaltung, allerdings mit kompletten Fokus auf UX. Dieser Workshop richtet sich primär an Designer und Entwickler die mehr über das Metro UX Konzept erfahren möchten.

Windows 8 Trainings (Fortgeschritten)

Die Windows 8 Trainings sind nun für fortgeschrittene Entwickler gedacht. Diese gibt es in zwei Ausprägungen: einmal für .NET Entwickler und zum anderen für Entwickler die mit HTML5 und JavaScript Windows 8 Metro Style Apps entwickeln möchten. Es handelt sich hierbei ebenfalls um ein eintägiges Format welches ziemlich Code-lastig in die speziellen Bereiche der Windows 8 Metro Style App abtaucht und viele Codebeispiele enthält. Die Teilnehmer erhalten am Ende des Events ein komplettes Hands-on Lab und können die gezeigten Beispiele zu Hause in aller Ruhe ausprobieren. Es ist allerdings kein wirkliches Hands-on Training Vor-Ort.

Windows 8 Hackathon (Einsteiger + Fortgeschritten)

Bei einem Hackathon geht es darum in einer vorgegebenen Zeit eine Anwendung zu entwickeln. Entweder nach freier Wahl oder vorbestimmt durch das Thema des Hackathon. Ein Hackathon setzt voraus das man einen eigenen Rechner mitbringt und die Windows 8 Consumer Preview samt Visual Studio 11 Express installiert hat. Gerne auch virtuell. Am Anfang gibt es eine kleine Zusammenfassung der wichtigsten Punkte von Windows 8 und danach steigt man in die Entwicklung ein. Es werden Vor-Ort Leute da sein die bei Fragen helfen können und am Ende werden fertige oder auch nicht fertige Projekt vorgestellt. Überlicherweise geht ein Hackathon über 12 Stunden und startet am späten Abend, so dass man eine ganze Nacht mit einem Haufen Geeks rumhängt und codet. Der Hackathon eigent sich auch für Einsteiger, da man sich in Gruppen zusammenschliessen kann und eine Aufgabe gemeinsam löst und entwickelt. Man profitiert dabei von Erfahrungen der anderen und selbst wenn man nicht selbst codet, die Kommunikation zwischen den einzelnen Leuten bringt schon einen großen Mehrwert.

 Windows 8 App Excellence Labs

Die Windows 8 App Excellence Labs sind ein besonderes Angebot unsererseits. Wenn Ihr eine fertige Windows 8 App habt so könnt Ihr von uns für das Windows 8 App Excellence Lab nominiert werden. In diesem Lab wird die Anwendung nach den Qualitätskriterien für den Windows Store vorab geprüft und Experten geben Euch noch die letzten Tipps für Eure App. Natürlich nur im Bereich technische Realisierung und UX Design Konformität. Ist der Ausgang im Windows 8 App Excellence Lab erfolgreich, so könnt Ihr Eure Windows 8 App für den Windows Store einreichen und das noch vor dem eigentlichen Release. Das bringt Euch den Vorteil das Eure App im Store ist wenn Windows 8 generell verfügbar sein wird und damit eine der ersten die von vielen Konsumenten installiert werden können.

Fragen?

Falls Ihr noch die ein oder andere Frage habt, kontaktiert mich doch einfach, entweder hier in den Comments oder über das Kontaktformular oder über Twitter an @writeline

 

 

Warten mit Spin.js

13 Mar
March 13, 2012

Spin.js ist eine Bibliothek zum Anzeigen von Wartekreisen besser als “Spinner” bekannt. Die Library benutzt hierfür keine Grafiken sondern macht das ausschliesslich über CSS3 bzw. über einen VML Fallback für ältere IE Versionen.

Die Handhabung ist denkbar einfach. Möchte man in einem div Element einen Spinner anzeigen so übergibt man dieses der Methode spin()

var output = document.getElementById("output");
var spinner = new Spinner();
spinner.spin( output );

Damit erzeugt man die Spinning Animation zentriert in diesem DIV Element.

Einsatzszenario Grafiken laden

Typischerweise benötigt man einen Spinner wenn man Sachen asynchron nachlädt und die Zeitspanne des Nachladens länger dauert als die Gesamte Anzeige. Möchte man zum Beispiel eine große Grafik dynamisch nachladen ohne das ein leeres Grafikelement angezeigt wird so kann man hier Spin.js einsetzen.

function loadImage(url, element) {
    var spinner = new Spinner();
    var img = new Image();

    img.onload = function() {
        element.appendChild( this );
        spinner.stop();
    }

    spinner.spin( element );
    img.src = url;
}

Die Funktion loadImage erwartet die URL der Grafik-Ressource sowie ein Container Element, z.B. ein DIV um den Spinner zu setzen und danach die Grafik anzuzeigen.

Das schöne an Spin.js ist die Flexibilität der Spinner. Auf der Projektseite lassen sich verschiedene Einstellungen testen und die Optionen werden sogleich als JavaScript zur Verfügung gestellt

© Copyright - //kouder