Von
Toni Pohl (Gastblogger)
29. December 2012 07:15
Die Europäische Kommission hat vor kurzem ohne große Ankündigung die Beta-Version des EU-Portals für Open Data vorgestellt. Das Portal soll einen öffentlichen und einheitlichen Zugang zu gesammelten Statistikdaten der EU bieten. Der offizielle Start ist für Januar 2013 geplant.
[More]
Von
Toni Pohl (Gastblogger)
19. August 2012 13:51
Beim App-a-thon Weekend im Juli kamen Software-Entwickler bei Microsoft in Wien zusammen, um Windows 8 Apps zu bauen. Christoph Wille war so nett und hielt einen Spontanvortrag über seine Windows 8 Applikation “Sprudelsuche” und Do´s and Don´ts beim Development solcher Apps. Sprudelsuche ist eine Windows 8 App zur Suche nach der günstigsten Tankstelle in Österreich. Hier Christophs´Gastbeitrag!
[More]
Von
Andreas Pollak
19. July 2012 18:23
Microsoft hat heute angekündigt (ADO.NET Blog), dass der Source Code des Entity Frameworks (EF) unter einer Open Source Lizenz auf Codeplex veröffentlicht wurde. Mit der Veröffentlichung auf Codeplex möchten wir unter anderem die Transparenz bei der Weiterentwicklung des EF erhöhen. Wir geben euch damit Möglichkeit Änderungen sofort einzusehen und direkt Feedback zu Code-Check-Ins, Bug-Fixes und neuen Features zu geben. Zudem habt ihr damit die Möglichkeit immer die aktuellste Version auf einer täglichen Basis zu Verfügung zu haben. Zum ersten Mal ist es auch für Entwickler und Entwicklerinnen außerhalb von Microsoft möglich direkt Fehlerbehebungen oder Code Beiträge einzureichen. Das Entwicklerteam bei Microsoft wird diese Beiträge direkt überprüfen und gegebenenfalls* in das Produkt aufnehmen. Nur um eines gleich vorweg zu nehmen! Das Entity Framework wird nach wie von Microsoft voll unterstützt! Das Entwicklerteam in Redmond ist das selbe wie zuvor und das EF wird als Bestandteil von Visual Studio 2012 ausgeliefert. Die nächste Version des EF ist für Mitte nächstes Jahr geplant. Entwickler und Entwicklerinnen können ab sofort den Source des EF ansehen, synchronisieren und compilieren (http://entityframework.codeplex.com/) Feedback zur Roadmap senden Feedback zu Code-Check-Ins senden Neue Features vorschlagen und ausprobieren wenn diese implementiert werden Fehler melden und überprüfen ob die Fehler vollständig behoben wurden Codefixes oder Codebeiträge einreichen* Ressourcen http://entityframework.codeplex.com/ *) Alle Code Beiträge werden vom Microsoft Team streng überprüft und getestet. Nur Beiträge die unseren hohen Ansprüchen für Qualität und Design/Roadmap entsprechen werden in den Quellcode aufgenommen. Andreas Pollak Product Marketing Manager Visual Studio 2012 (Entwicklungs- und Testwerkzeuge) Leader im Magic Quadrant von Gartner für ALM
Von
Jürgen Mayrbäurl
18. July 2012 17:19
Am 7. Juni war es soweit: Auf dem Meet Windows AzureEvent wurde zum ersten Mal die Zukunft von Windows Azure öffentlich gezeigt. Dies ist der größte Schritt seit dem Start von Windows Azure Anfang 2010. Um Ihnen einen entsprechenden Einstieg in die neue Funktionalität „Windows Azure Websites“ zu geben, veranstalten wir ein kostenloses Windows Azure Summer DevCamp, bei dem Sie sich, auch anhand praktischer Übungen, von dieser neuen Funktionalität ein Bild machen können. Was sind Windows Azure Websites? Ab sofort können Webentwickler ihre in ASP.NET, PHP oder Node.js entwickelten Anwendungen in Minuten in einer geteilten Umgebung auf Windows Azure bereitstellen. Jeder Kunde bekommt im ersten Jahr zehn kostenfreie Webseiten und kann innerhalb der Preview reservierte Instanzen zu reduzierten Preisen nutzen. Entwickler können hierbei auf bekannte Frameworks (WordPress, Joomla! etc.) und Tools zurückgreifen. Verschiedene Deploymentvarianten (FTP, WebDeploy, Git etc.) und einfachste Skalierungsoptionen runden das Gesamtangebot ab. Trainer: Manfred Steyer (softwarearchitekt.at) ist freiberuflicher Trainer und Berater bei IT-Visions (it-visions.de) sowie verantwortlich für den Fachbereich "Software Engineering" der Studienrichtung "IT und Wirtschaftsinformatik" an der FH CAMPUS 02 (campus02.at) in Graz. In seinem aktuellen Buch „Verteilte Systeme und Services mit .NET 4.0: Konzepte und Lösungen mit WCF 4.0“ beschreibt er gemeinsam mit Holger Schwichtenberg den Einsatz von WCF für Unternehmensanwendungen. Agenda: 09:00 – 10:00: Überblick Windows Azure und Einführung zu Windows Azure Websites 10:00 – 10:45: Hands-on-Lab 1: Enwickeln und Bereitstellen einer Website 11:15 – 12:15: Windows Azure Websites entwickeln mit Visual Studio, Webmatrix und von der Command-Line 12:15 – 13:00: Hands-on-Lab 2: Beispiele für Visual Studio und Webmatrix Entwicklung 14:00 – 14:45: Bereitstellung von Websites aus Git, FTP und TFS inklusive Demos 14:45 – 15:30: Skalierung und Management von Windows Azure Websites 16:00 – 17:00: Hands-on-Lab 3: Praktische Beispiele zum Management und Monitoring Mitzubringen für die Teilnahme an den Hands-on-Labs sind: Notebook mit Visual Studio 2010 oder 2012 RC und Windows Azure SDK Aktive Windows Azure Subscription (Kostenlose Testsubscription unterhttp://www.windowsazure.com/de-de/pricing/free-trial/ ). Anmeldung zur kostenlosen Veranstaltung
Von
Jürgen Mayrbäurl
28. March 2012 16:22
Konsequent wird die Linie des Öffnens von Kernbestandteilen der Windows Plattform, durch Einbringen der Sourcen in die Open Source Community, fortgeführt. Etwas unbemerkt wurde letzte Woche die Unterstützung von Git zu Codeplex hinzugefügt, womit es nun möglich ist, Git als Source Code Management System für Codeplex Projekte einzusetzen. Dies ist bereits für die diversen Windows Azure SDKs (.NET, Java, …) der Fall, die im Dezember letzten Jahres zu Open Source gemacht wurden. Wichtig dabei ist auch, dass einerseits für die Projekte die Apache Software Lizenzbedingungen zum Einsatz kommen und andererseits neben einer RoadMap auch ein Beteiligungsmodell für Softwareentwickler außerhalb von Microsoft (wie dies bei den meisten Open Source Projekten der Fall ist) aufgesetzt wurde. Ressourcen: Codeplex Projekt für ASP.NET MVC 4, ASP.NET Web API und Razor Weiterführende Informationen zu ASP.NET und Open Source Ankündigung von Scott Hanselmann zum Thema ASP.NET und Open Source Details von Scott Guthrie Windows Azure SDK for Java auf GitHub
Von
Jürgen Mayrbäurl
29. June 2011 08:11
Gemeinsam mit der Firma Joyentund Ryan Dahl wird Microsoft demnächst eine Implementierung der populären Open Source JavaScript Library Node.js für Windows zur Verfügung stellen. Node.js Ziel ist die Vereinfachung der Entwicklung von skalierbaren Netzwerkprogrammen. Damit ist es z.B. möglich mit wenigen Zeilen JavaScript Code einen einfachen Webserver aufzusetzen. Beispiel Webserver, der mit “Hello world” antwortet: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, "127.0.0.1"); console.log('Server running at http://127.0.0.1:1337/'); Als erster Schritt wird dazu das hochperformante IOCP API von Node.js nativ auf Windows implementiert. Das dadurch entstehende Binary node.exe wird dann unter Windows Azure und Windows Server, zurückreichend bis zur Version 2003, einsetzbar sein. Weiterführende Informationen dazu am Node.js Blog
Von
Jürgen Mayrbäurl
28. January 2011 07:56
Im September 2010 konnte Microsoft Gianugo Rabellino, Vizepräsident des Apache XML Project Komitees und Gründer der Firma Sourcesense, für sich als Senior Director of Open Source Communities gewinnen. Anfang dieser Woche nahm Gianugo an einer Diskussion mit Stephen Walli, Technical Director der Outercurve Foundation, und Garrett Serack, Open Source Entwickler bei Microsoft, teil. Die Diskussion wurde aufgezeichnet und steht auf Channel 9 zur Verfügung. Die Videoaufzeichnung der Diskussion steht hier zur Verfügung. Gianugo verfügt über langjährige Erfahrung mit Open Source Technologien und Plattformen. Er wird all sein Wissen und seine Begeisterung in das Interoperabilitätsprogramm von Microsoft einbringen und damit dazu beitragen, dass die Integration der Microsoft Plattformen in heterogenen IT-Lösungen noch reibungsloser von statten gehen kann, als heute bereits aktuell der Fall ist.
Von
Jürgen Mayrbäurl
15. December 2010 19:05
Seit nunmehr geraumer Zeit haben viele öffentliche Verwaltungen, wie z.B. Behörden von Städten und Ländern, festgestellt, dass sie ihre umfangreichen Datensammlungen, deren Erstellung und Wartung von öffentlichen Geldern finanziert werden, auch wiederum der Öffentlichkeit zur Verfügung stellen sollten. Diese Initiativen laufen in der Regel unter dem Namen “Open Government” und im speziellen Fall unter “Open Data”. Wie in vielen anderen Fällen auch, ist der angloamerikanische Raum wieder einmal in der Vorreiterrolle bei diesen Bestrebungen. Ein gutes Beispiel dafür ist die Londoner Behörde für den öffentlichen Verkehr, die erst unlängst umfangreiche Datensammlungen zum U-Bahn Verkehr in London öffentlich zugänglich gemacht hat. Es handelt sich dabei nicht ausschließlich um statische Daten, wie z.B. klassische Stammdaten für geografische Ortsangaben der Stationen, sondern auch um Echtzeitinformationen über den tatsächlichen Verkehr im U-Bahn Netz von London. Damit werden Softwareentwickler in die Lage versetzt, neuartige Applikationen auf unterschiedlichen Endgeräten zu entwickeln, die einen wesentlichen Mehrwert für den Konsumenten darstellen. Weiters stellt diese öffentlich, zugängliche Datenbereitstellung ein maßgeschneidertes Szenario für den Einsatz von Cloud Computing dar, da nur die Cloud über die entsprechende Skalierbarkeit und Elastizität verfügt, um das sich verändernde Lastverhalten der Gesamtlösung bewältigen zu können. Die Londoner Behörde für den öffentlichen Verkehr (Transport for London, kurz Tfl) hat genau dies bei einem Pilotversuch, den sie On-Premise im eigenen Datacenter durchgeführt hat, festgestellt. Darum wurde ein Relaunch auf der Microsoft Cloud Computing Plattform Windows Azure beschlossen, der vor wenigen Tagen abgeschlossen werden konnte. Damit ist nun sichergestellt, dass die zu anfangs erwartete Anzahl von 7 Millionen Zugriffen pro Tag mit einer entsprechenden Reaktionszeit bearbeitet werden können und zukünftige Zunahmen bei den Zugriffen inklusive Spitzen ebenfalls bewältigt werden können. Folgende Daten werden u.a. aktuell von Tfl angeboten: Aktuelle Abfahrtszeiten von U-Bahnen Zügen Status von U-Bahn Linien und Stationen Geografische Daten zu U-Bahn und Buslinien inklusive der Stationen Live-Bilder von Verkehrskameras … Weiterführende Informationen für Softwareentwickler zum neuen Service von Transport of London inklusive Darstellung der gesamte Liste von Daten finden sich unter: http://www.tfl.gov.uk/businessandpartners/syndication/default.aspx Links und Ressourcen zum Thema Open Data: OData Protokoll für Open Data: www.odata.org und www.odataprimer.com Open Source Implementierung für die Bereitstellung von Open Data in Windows Azure OGDI: http://ogdi.codeplex.commit der Beispielimplementierung auf http://ogdisdk.cloudapp.net Microsoft Windows Datamarket: www.datamarket.azure.com Österreichische Initiative für Open Data: www.opendata.at Zentrum für E-Government der Donau-Universität Krems: http://www.donau-uni.ac.at/de/department/gpa/telematik/index.php
Von
Mario Meir-Huber
30. September 2010 23:55
JSON (Java Script Object Notation) wird für Webservices durch WCF häufig eingesetzt. Doch was verbirgt sich hinter JSON und wie kann man es selbst in .NET verarbeiten? Die Hauptaufgabe von JSON ist es, ein kompaktes Datenformat, welches für Mensch wie auch Maschine einfach zu lesen ist, bereit zu stellen. JSON soll eine wesentlich schlankere Möglichkeit bietet, Daten zu verteilen. JSON wird oft für JavaScript Operationen und in AJAX-Anwendungen eingesetzt. JSON wird durch den MIME-Type “application/json” repräsentiert*. JSON-Objekte werden durch Klammern eingeleitet, deren Elemente sind in Hochkomma und die Werte je nach Typ entweder selbst in Hochkomma oder als Zahlenwert angegeben. Eine Person würde etwa folgenderweise aussehen: { “Name”:”Mario Meir-Huber”, “Age”:2e+6, } Würde man dies in XML abbilden, so sieht dies (ohne Attribute) folgendermaßen aus: <Person> <Name>Mario Meir-Huber</Name> <Age>27</Age> </Person> Das XML-Format hat 66 Zeichen, wohingegen für das JSON-Format lediglich 46 Zeichen anfallen. Selbst in einem sehr kleinen Objekt spart man somit Platz. Dies hat für Webservices natürlich gewisse Vorteile. JSON-Objekte kann man auch verschachteln: { “Name”:”Mario Meir-Huber”, “Age”:2e+6, “Address”: { “City”: “Vienna” } } Werden Arrays abgebildet, so kommen diese in eckige Klammern: []. Innerhalb dieser Klammern werden die einzelnen Werte, welche wiederum verschachtelte Objekte sein können, zusammengesetzt. { “Name”:”Mario Meir-Huber”, “Age”:2e+6, “Address”: { “City”: “Vienna” } “Web”: [“www.codeforce.at”, “www.codefest.at”] } JSON Daten kann man in .NET über verschiedenste Libraries parsen. JSON.org nennt einige Projekte, welche JSON im .NEt Framework unterstützen. Ich selbst habe bereits ein Interop-Projekt mit Jayrock und eines mit Json.NET durchgeführt. Das für mich am besten geeignete Framework war Json.NET. Hierfür gibt es sogar eine LinQ to JSON Möglichkeit. Fangen wir jedoch mit der einfachsten Möglichkeit, deiner JSON Serialisierung, an. Im unten stehenden Beispiel erstellen wir ein Produkt, welches Unterprodukte haben kann. Dies rufen wir mit JSON.NET über “JsonConvert.SerializeObject” auf. Product p = new Product();
p.Name = "My powerfull Product";
p.Id = Guid.NewGuid();
p.ChildProduct = new Product();
p.ChildProduct.Name = "My child";
p.ChildProduct.Id = Guid.NewGuid();
p.ChildProduct.ChildProduct = new Product();
p.ChildProduct.ChildProduct.Name = "I am deep!";
p.ChildProduct.ChildProduct.Id = Guid.NewGuid();
string serialcontent = JsonConvert.SerializeObject(p);
Will man wieder die andere Richtung gehen, verwendet man “DeserializeObject”. In diesem Fall erstellen wir einfach nur eine Deep-Copy des Objektes.
Product copy = JsonConvert.DeserializeObject<Product>(serialcontent);
Will man sich das serialisierte JSON Objekt ansehen, sieht dies folgendermaßen aus:
{
"Name": "My powerfull Product",
"Id":"01ed3cb1-2a99-4d62-bf1b-c878dbed6c9b",
"ChildProduct":
{
"Name":"My child",
"Id":"f48cbed8-ce83-4bcb-94f8-dbe10f26036a",
"ChildProduct":
{
"Name":"I am deep!",
"Id":"035b407e-4cec-4456-a47d-17df33b2f27a",
"ChildProduct":null,
"id":0,
"Date":"\/Date(-62135596800000+0100)\/"
},
"id":0,"Date":"\/Date(-62135596800000+0100)\/"
},
"id":0,"Date":"\/Date(-62135596800000+0100)\/"
}
LinQ to JSON funktioniert auch ganz einfach. Wir erstellen uns auch wieder ein Produkt, welches Serialisiert werden sollte. Wollen wir den Namen des Child-Produktes erfahren, greifen wir auf diesen dem Pfad zu:
private static void DoSomeLinQToJson()
{
Product p = new Product();
p.Name = "My powerfull Product";
p.Id = Guid.NewGuid();
p.ChildProduct = new Product();
p.ChildProduct.Name = "My child";
p.ChildProduct.Id = Guid.NewGuid();
p.ChildProduct.ChildProduct = new Product();
p.ChildProduct.ChildProduct.Name = "I am deep!";
p.ChildProduct.ChildProduct.Id = Guid.NewGuid();
string serialcontent = JsonConvert.SerializeObject(p);
JObject obj = JObject.Parse(serialcontent);
var childName = (string)obj["ChildProduct"]["Name"];
Console.WriteLine(childName);
}
Dies gibt uns dann den korrekten Produktnamen aus. Ob es sich dabei um richtiges LinQ handelt sei dahingestellt. Es besteht jedoch eine einfache Möglichkeit, Daten abzufragen. Sehr nett ist auch die Möglichkeit, dynamische Typen zu serialisieren:
private static void WriteADynamicObject()
{
dynamic obj = new ExpandoObject();
obj.WhatEver = "Hello";
obj.SomeThing = 123;
Console.WriteLine(JsonConvert.SerializeObject(obj));
}
Im nächsten Beitrag werde ich JSON und XML etwas genauer vergleichen, wobei der Hauptteil auf einen Geschwindigkeits- wie auch Größenvergleich liegen soll.
Die Library findet Ihr unter http://json.codeplex.com/.
Mario Meir-Huber
Mail: mario.mh@codeforce.at
Twitter: www.twitter.com/mario_mh
*: http://tools.ietf.org/html/rfc4627