Bitte lasst meine Qualen enden!

Bitte Microsoft, habt Erbarmen mit uns! Bitte lasst die endlose Zeit der Warteliste vorübergehen und uns das Live Framework downloaden! Bitte lasst uns endlich gegen dieses Framework programmieren, lasst uns darüber bloggen, lasst uns darüber austauschen und unsere Kreativität darin ausleben. Bitte lasst die Qualen endlich enden.

Einen Monat warte ich nun schon auf einen Key für das Herunterladen des Live Frameworks, doch leider steht eine Freigabe noch immer aus. Und das bedeutet: anstatt weiter darüber zu bloggen, Tutorials zu schreiben und meine „Mesh-enabled applications“ damit zu entwickeln, drehe ich hier zu Hause Däumchen und hoffe auf ein vorzeitiges Weihnachtsgeschenk von Microsoft-Seite aus. Die Hoffnung stirbt zuletzt 😉

Dariusz Parys hatte heute für kurze Zeit 2 Keys für das Live Framework zu vergeben, die natürlich sofort weg waren. Das macht die Sache nur noch unerträglicher für mich, wann hat das Warten endlich ein Ende? Was mich zur nächsten Frage führt, warum überhaupt eine Warteliste existiert. Meine Vermutung sind derzeit mangelnde Ressourcen im Backend, die ansonsten vielleicht nicht ausreichen würden, wenn Tausende von Entwicklern ihre Programme auf ihren Meshs laufen lassen. Andere Ideen?

Silverlight Wünsch-Dir-Was

Wer Microsoft schon immermal über Silverlight die Meinung geigen wollte, hat jetzt Gelegenheit dazu. Microsoft hat eine Umfrage zu Silverlight gestartet, wo jeder Entwickler darüber abstimmen kann, was ihm an Silverlight gut gefällt und was noch bitter aufstößt.

Zusätzlich ist es möglich, Wünsche für das kommende Silverlight 3 zu äußern.

http://deploy.ztelligence.com/start/survey/survey_taking.jsp?PIN=13AQC8W8EAHZP

Evolution eines Entwicklers

Jeremy Miller hat in seinem Blog einen wirklich interessanten Beitrag zur persönlichen Entwicklung eines Programmierers geschrieben. In diesem Beitrag habe ich mich selbst mehr als einmal wiedergefunden und gesehen, auf welcher Stufe der Evolution ich gerade stehe. Auf jeden Fall empfehlenswert!

Vorhang auf für… das MeshPack

Wie bereits zuvor beschrieben, ist Live Mesh nicht lediglich ein weiteres Synchronisationstool, sondern unter der Oberfläche eine Plattform für die Bereitstellung umfangreicher verteilter Funktionen, gegen die mit dem Live Framework programmiert werden kann. Und wie vermutet haben die Microsoft Startup Labs nun (Blog-Eintrag) als „Showcase“ die ersten 4 Mesh-Applikationen veröffentlicht: das MeshPack! (Zugang mit PDC-Code)

Die 4 Anwendungen lauten wie folgt:

  • Collaborative Crossword: Ein Kreuzworträtsel, welches von mehreren Benutzern zusammen (kollaborativ) gelöst werden kann.
  • CorkBoard: Digitales schwarzes Brett.
  • CrowdVote: Kollaboratives Umfragen-/Abstimmungstool.
  • MeshLists: Tool zur Erzeugung und zum Austausch von Listen.

Die Anwendungen basieren grundlegend auf den zur Verfügung gestellten Mesh-Objekten, z.B. den Feeds, um Informationen auszutauschen. Bei der Realisierung des Kreuzworträtsels kommt zudem Silverlight zum Einsatz, um die Mesh-Funktionalität mit einer RIA-Oberfläche zu verbinden.

Sicherlich ist keine dieser Anwendungen eine Killer-App und anscheinend spielen die Jungs bei Microsoft selbst noch mit dem Framework rum und erforschen, welche Ideen möglich bzw. sinnvoll sind. Persönlich vermute ich, dass im Hintergrund bereits größere Projekte angesetzt sind und umgesetzt werden, diese jedoch noch keinen Status erreicht haben, der es wert wäre, die Anwendungen das Licht der Welt erblicken zu lassen. Ich bin sehr gespannt, wie es hier weitergeht.

Links:

Playing around with… Silverlight 2

Halb beruflich, halb privat beschäftige ich mich derzeit mit Silverlight 2 und den Möglichkeiten, welche dieses bietet. Silverlight wird meiner Meinung nach in Zukunft eine verstärkte Rolle bei RIAs spielen und Microsoft hat mit Version 2 einen wichtigen Grundstein dafür gelegt. Endlich muss man sich als passionierter C#/.NET-Entwickler nicht mehr mit Javascript rumärgern, sondern bekommt eine integrierte Lösung an die Hand. Silverlight ist zweifelsohne auf einem aufsteigenden Ast, ob es wie mancherorts vermutet die Zukunft sein wird muss sich allerdings noch herausstellen.

Silverlight Toolkit

Ich spiele also derzeit ein wenig mit Silverlight rum und bin schon relativ begeistert, was die Möglichkeiten anbelangt. Ein Manko bisher waren die fehlenden Controls, doch mit dem Silverlight Toolkit und diversen Controls von Drittanbietern sind jetzt einige höchst interessante Lösungen verfügbar, welche die standardmäßig mangelhafte Funktionalität einbringen. Ich liebe die AutoCompleteBox und die Möglichkeiten des einfachen, aber mächtigen Item-Templatings. User Experience? Thumbs up!

Expression Blend AddIn-API

Weiterhin habe ich bereits eine frühe Version des Buches Hacking Silverlight 2 verfügbar und finde trotz einiger inhaltlicher Mängel die“Deep-Inside-Tipps“ (*Hacks*) wirklich gut. Zuvor war mir nicht bekannt, dass Expression Blend über eine AddIn-API verfügt, welche sich leicht ansprechen lässt um eigene Funktionalität zu Blend hinzuzufügen. Eine Einführung mit kleinem Beispiel dafür findet sich z.B. hier.

Intellisense in Expression Blend

Die AddIn-API von Blend macht es auch möglich, dass meine Gebete (oder zumindest eines) erhört wurden (wurde). Entwickler, die parallel mit VS 2008 und Blend arbeiten, kennen das Problem: in VS 2008 hat man keinen Design-Support (pfui Microsoft! wenigstens ein wenig Unterstützung in Form des Auswählen von Controls und Anzeigen von Properties wäre hilfreich gewesen… soll sich Silverlight auf diese Art durchsetzen? hier darf man sich auf VS 2010 freuen: „Also, the planned Visual Studio 2010 development platform will build further on Silverlight, featuring a fully interactive Silverlight designer.„). Dafür hat man im Visual Studio Intellisense für XAML. Genau anders herum ist es bei Expression Blend: schöner Design-Support, kein Intellisense. Des leidresistenten Entwicklers Lieblingstastenkombination wird Alt+Tab und alles ist schön… oder? Schöner geht’s mit XAML-Intellisense in Blend und genau das hat Stefan Dobrev von Telerik vorgestellt. Kaxaml (auch bei Codeplex gehostet) als AddIn für Expression Blend ist nicht perfekt, als Übergangslösung aber gut geeignet, bis Microsoft endlich mal mit einer eigenen Solution aufwartet…

Mesh me up!

Microsoft’s Live Mesh ist ja nun endlich auch offiziell als Betaversion in Deutschland verfügbar. Grund genug, sich diese Web-Applikation einmal genauer anzuschauen…  Live Mesh (bzw. das derzeitige Frontend) ist (momentan!) vordergründig ein Online-Dienst zur Synchronisation von Daten zwischen mehreren Rechnern. Gerade für mich, der 3 Rechner besitzt und diese auch abwechselnd in Betrieb hat, kommt so eine Lösung gerade recht. Daten (z.B. Visual-Studio-Projekte), welche man auf allen seinen Rechnern immer auf dem aktuellsten Stand haben möchte, ohne z.B. über einen LAN-Server darauf zuzugreifen, können auf diese Art schnell synchronisiert werden.

Live Mesh

Mit seiner Windows-Live-ID hat man sich schnell beim Mesh-Dienst angemeldet und kann ein/sein Mesh anlegen. Zum Mesh gehört grundsätzlich eine Weboberfläche, über die neue Ordner angelegt werden können und über die sich neue Rechner/Geräte leicht in das bestehende Mesh aufnehmen lassen. Zudem steht über den „Live Desktop“ eine Art Desktop im Browser zur Verfügung, über den sich Dateien öffnen lassen und sogar Bilder angeschaut und Video-/Audio-Dateien abgespielt werden können. Die Datenhaltung erfolgt zentral, d.h. die zu synchronisierenden Daten liegen auf einem Server in einem MS-Datencenter, wobei der eigene Account über 5GB kostenlosen Speicher verfügt. Sensible Daten sollte man hier vielleicht nicht ablegen, je nachdem wie sehr man Microsoft vertraut 🙂  Dies ist sicher auch der größte Knackpunkt der Applikation, da nicht jeder Benutzer seine Daten auf einem Microsoft-Server halten möchte…

Clientseitig wird auf jedem Rechner, der an der Datensynchronisation teilhaben soll, eine kleine Desktop-Applikation installiert. Nachdem man den Rechner über die Webplattform zum Mesh hinzugefügt hat, lassen sich über diese Applikation schnell zu synchronisierende Ordner auswählen. Insgesamt erhält also jeder Client eine lokale Kopie der Ordner, die im Mesh abgelegt sind. Auf dieser Kopie kann gearbeitet werden und Dateien können geändert werden. Die Clientapplikation sorgt dann automatisch dafür, dass Änderungen zum zentralen Server hochgeladen werden und dann an die anderen angeschlossenen Geräte verteilt werden. So wird dafür gesorgt, dass die Dateien ohne Zutun des Benutzers auf dem aktuellen Stand sind. Benutzerfreundlicher kann man es kaum gestalten. Derzeit lassen sich Windows- und Mac-Rechner zum Mesh hinzufügen, bald sollen auch Mobiltelefone integriert werden können.

Nur zur Synchronisation?

Synchronisationssoftwares gibt es viele, Live Mesh bietet aber noch ein bisschen mehr. Über den Live Desktop kann man auch von Rechnern, die nicht an der Synchronisation teilhaben, auf Dateien zugreifen und neue Dateien hinzufügen. Die Webapplikation ist komplett in Silverlight geschrieben und gestaltet sich entsprechend intuitiv und benutzerfreundlich. Weiterhin kann man andere einladen und ihnen Zugriff auf einen Ordner gewähren. Somit lassen sich bestimmte Ordner leicht austauschen und gleichzeitig synchron halten. Eine News-Seite informiert dabei über aktuelle Änderungen und erlaubt auch ein Hinterlassen eigener Nachrichten. Eine interessante Möglichkeit ist zudem die Option, einen Remote-Zugriff via Live Mesh zu gewähren. Rechner, die online sind, können so von einem selbst über Live Mesh ferngesteuert werden, wenn man dies erlauben möchte.

Zukunftsstrategie

Microsoft hat ja bereits mit Groove eine Synchronisationssoftware im Programm, was macht Mesh also für einen Sinn bzw. besonders? Insgesamt kann man Live Mesh bzw. das, was derzeit davon zu sehen ist, guten Gewissens als Spitze eines riesigen Eisberges sehen. Ziel ist vielmehr die Vereinigung der 4 Elemente Applikationen, Geräte, Daten und Menschen. Den Zugriff und Austausch zwischen diesen Elementen zu vereinheitlichen ist das Ziel von Live Mesh. Unter der Oberfläche ist die Windows Azure Plattform angesiedelt, darauf setzen die sogenannten „Live Services“ auf (s. Bild unten). Diese stellen Dienste/Services für Live Mesh zur Verfügung und über das Live Framework kann bequem dagegen programmiert werden. Das alles sieht sehr elegant und einfach aus. Um z.B. alle zum Mesh gehörenden Devices abzurufen, genügen folgende Zeilen: „var livefx = new LiveOperatingEnvironment(); livefx.Connect(); foreach(var dev in livefx.Mesh.Devices) …“. Außer Devices gibt es noch allgemeine Mesh Objects, Data Feeds und Data Entries, Contacts, Profiles, News, Media Resources etc.. Das Live Framework ist als CTP bereits verfügbar, allerdings existiert für den Download eine Warteliste, die ziemlich lang sein dürfte (ich warte immernoch…). Microsoft hat weiterhin bereits damit begonnen, auf Basis des Live Frameworks einige Applikationen zu schreiben. Im Vorfeld wurde schonmal mit Tracker eine „Demo-App“ zur Aufgabenverwaltung vorgestellt. Man stelle sich aber vor, was mit dieser Technologie alles möglich ist! Eigene Applikationen können leicht alle Mesh-Features nutzen und Daten über das Mesh anderen Devices zur Verfügung stellen. Weiterhin sind Anwendungen denkbar, die sowohl auf dem Live Desktop als auch auf den Client-Rechnern laufen und somit von überall erreichbar sind.

Ich bin gespannt, was da demnächst auf uns zukommt – get meshified 🙂

Multitouch: die nächste UI-Revolution?

Auf der PDC hat Microsoft einiges zum Thema Multitouch bekannt gegeben: Windows 7 kommt mit Multitouch-Funktionalität und mit dem Surface-Tisch wurde bereits ein Konzept für angewandte Multitouch-Funktionen vorgestellt. Dass Multitouch ein hohes Potential hat, zeigt die Benutzerakzeptanz, welche nicht zuletzt bei Apple’s iPhone demonstriert wurde. Der „Cool“-Faktor spielt dabei eine große Rolle und das ist ein Grund dafür, warum die Bedienung des Rechners per Touchscreen die nächste Ausprägung von Benutzerinteraktion mit dem Computer darstellen wird. Gerade im Endbenutzerbereich und im Bereich der Internet Tablets dürfte sich diese Funktionalität schnell durchsetzen, nur zum schnellen Schreiben und Programmieren werden meiner Meinung nach wohl noch herkömmliche Peripheriegeräte zum Einsatz kommen.

Multitouch bzw. Touchscreens allgemein senken nicht nur die Hemmschwelle für neue Computernutzer, sie erlauben auch eine nicht gekannte Fülle neuer Funktionen (Video-/Bildbearbeitung, CAD, Spiele, …) und somit neue Benutzerinterfaces. Viele heutige Programme werden mit Multitouch „besser“ im Sinne der Benutzerakzeptanz und der „User Experience“, wichtig ist dabei allerdings ein integriertes Konzept, durch welches der Benutzer intuitiv und schnell erlernen kann, wie er mit der neuen Funktionalität umzugehen hat und sie sich zunutze machen kann.

Für Surface wurde bereits ein SDK angekündigt, das Surface Device wird außerdem bald in Europa erhältlich sein (mehr Infos zu Surface hier).

Weitere Links:

C# 4.0 Neuerungen

Die ersten Neuerungen kurz in 3 Stichpunkten:

  • Aufruf dynamischer Sprachen: dynamic-Schlüsselwort
  • Optionale Funktionsparameter wie in C++ (wie ich das vermisst habe!)
  • Rückgabe anonymer Typen durch Funktionen

Einen umfassenden Überblick über die Neuerungen gibt ein Word-Dokument, welches Microsoft hier zum Download bereitstellt.

Links: