26.06.2011 18:23:00
  
  
 Zugegeben, diese Überschrift wirkt ein wenig provokant und wie Salz in der Wunde von Silverlight-Fans, die nun - nachdem Microsoft verkündet hat, dass die von Phone 7 bekannten Tiles in Windows 8 auf HTML 5 und JavaScript basieren werden - wieder ein wenig mehr schmerzt. Trotzdem kann man nicht leugnen, dass HTML 5 und JavaScript in einer Zeit, in denen Web-Angebote immer mehr von verschiedenstenden Endgeräten jenseits des klassischen Windows-PCs genutzt werden, eine wichtige Rolle spielen. Somit verwundert es auch nicht, dass sich in der aktuellen Preview der kommenden Version von WCF RIA Services [1] alles um diese Technologien dreht. 
  
Das nachfolgende Beispiel gibt einen kurzen Vorgeschmack darauf, indem es zeigt, wie mit dieser Preview, die kurz RIA/JS genannt wird, mittels jQuery ein Domain-Service konsumiert werden kann. Die dazu nötigen jQuery-Plugins findet man im Beispiel unter [1], welches auf der letzten MIX präsentiert wurde. Hierbei ist zu beachten, dass auch das jQuery-Template-Plugin, das Microsoft der Community zur Verfügung gestellt hat, darin verwendet wird. 
<html>
    [...]
    
    <script src="..." ...></script>
    <!-- Plugins: siehe Samples unter [1] -->
    <script language="javascript">
    var hamster = [];
    var ds;
    var list;
    $(function () {
        ds = $([hamster]).dataSource({
            serviceUrl: "FlugSample-HamsterDomainService.svc",
            queryName: "GetHamster",
            bufferChanges: true,
            /* Änderungen können retourgesendet werden */
            refresh: function () {
                /* Refresh wird nach dem Laden der Daten aufgerufen */
                /* Template auf jeden geladenen Hamster anwenden */
                list = new ListControl(hamster, {
                    template: "#hamsterTemplate",
                    container: "#hamster"
                });
            },
            queryParameters: { farbe: "gold" }
            /* Mappt auf Parameter der Operation GetHamster */
        });
        // IQueryable um Sortierausdruck erweitern
        var sort = { property: "Spitzname", direction: "ascending" };
        ds.option("sort", sort);
        // IQueryable um Filterausdruck erweitern
        var filter = {
            property: "Spitzname",
            operator: "StartsWith",
            value: "Krümel"
        };
        ds.option("filter", filter);
        // Daten abrufen, ins Array hamster laden und render aufrufen
        ds.refresh();
    });
 
</script>
<script id="hamsterTemplate" type="text/x-jquery-tmpl">
  <li>
    ${Spitzname}, Farbe: ${Farbe}
  </li>    
</script>
</head>
<body>
    <h1>Hamster on demand</h1>
    <ul id="hamster">
    </ul>
</body>
</html>
 
 
  
  
  
 
  |