Erstaunen sorgte die Entscheidung von Microsoft ganze Applikationen auf Basis von Html 5 und JavaScript unter Windows 8 zu unterstützen und sogar die ‘Touch-Oberfläche’ so zu steuern.
Nach längerem Reflektieren und Lesen von verschiedenen Blogs/Einschätzungen ergibt diese Entscheidung viel Sinn und hat sogar einen großen Vorteil:
Vom Rechner in die Cloud!
Microsoft hat mit dem IISExpress einen schnellen, schmalen, einbettbaren Webserver zur Verfügung. Microsoft hat mit http.sys die Möglichkeit viele Webserver in unterschiedlichen Prozessen rein im ‘Userland’ zu starten und an einen TCP-Port zu binden. Microsoft hat mit SQL Server Compact die Möglichkeit einen kompletten Datenbankserver im Prozessraum laufen zu lassen.
Zusammengefasst: Eine Applikation startet IIS Express, nutzt SQL Server Compact und startet einen eingebetteten Webbrowser (IE 10), der direkt mit IIS Express kommuniziert.
Mit diesem Modell hat man eine schöne Skalierbarkeit. Stellt sich heraus, dass man das Programm von vielen Rechnern aus nutzen lassen möchte oder dass die Rechenleistung für die Logik nicht ausreicht (Thin-Client), geht man auf einen Server: Windows Server statt Windows 8, IIS 7.5 statt IIS Express, SQL Server statt SQL Server Express und die Benutzeroberfläche des Clients verbindet sich dann mit einem externen Server.
Reicht der Server nicht aus, geht man in die Cloud:
Windows Azure statt Windows Server, Azure Web Role statt IIS und SQL Azure Database statt SQL Server.
Skaliert von der Desktop-Applikation zu einem Cloud-Service ohne nur eine Zeile des Programmcodes in der Logik, Ansicht und Datenbank anzufassen. Der Benutzer bekommt davon nichts mit, ‘nur’ die Änderung der Verbindung und die Authentifizierung muss hinzugefügt werden. Dank Active Directory und Access Control eher ein Konfigurationsaufwand.
Geschickter Schachzug… Die Ansicht kann dann auf einem WinPhone7, einer Xbox, einem Tablet-PC, eigentlich auf jedem HTML 5 fähigen Browser laufen, während die Applikation auf dem Heim-Server, dem Desktop-Rechner, einer Server-Landschaft oder in der Cloud laufen kann.
Ob das so funktioniert?
EDIT:
Danke ‘Dunedan’ habe ich auch eine Quelle wieder gefunden:
http://www.heise.de/developer/artikel/Windows-8-HTML5-und-die-Folgen-fuer-NET-1267153.html