Kolumne: .NETversum

Tipps und Tricks rund um .NET und Visual Studio

Tipps und Tricks rund um .NET und Visual Studio

Kolumne: .NETversum

Tipps und Tricks rund um .NET und Visual Studio


Zeilen zählen bei WCF Data Services

WCF Data Services unterstützen seit Version 2.0 das serverseitige Zählen von Ergebnismengen. Durch das Anhängen von $count im URL kann man anstelle der Ergebnismenge in XML- oder JSON-Form die Anzahl der Elemente als reinen Text erhalten (Tabelle 1).

URL

Bedeutung

http://UnserServer/WWWingsDataService.svc/Flug/$count

Anzahl der Flüge

http://UnserServer / WWWingsDataService.svc/Flug(101)/Passagier/$count

Anzahl der Passagiere auf Flug 101

http://UnserServer/WWWingsDataService.svc / Flug/$count?$filter=Abflugort eq 'Berlin'

Anzahl der Flüge von Rom

Tabelle 1: URL mit „$count“

DataServiceProxy.WWWings6Entities proxy = new DataServiceProxy.WWWings6Entities( 
new Uri("http://UnserServer/WWWingsDataService.svc"));
var anz = (from f in proxy.Flug where f.Abflugort == "Rom" select f).Count();
Console.WriteLine(anz);

Mit $inlinecount kann man zusätzlich (!) zur Ergebnismenge ein Zählergebnis erhalten, z. B. neben den ersten beiden Flügen von Rom auch die Anzahl aller Flüge (Abb. 1). Dabei kann man die Art der Zählung angeben. Derzeit ist allpages neben none (keine Zählung) die einzige verfügbare Option.

schwichtenberg_kolumne_1.tif_fmt1.jpgAbb. 1: Anwendung des Operators „$inlinecount“

ASP.NET Web-API ohne IIS verwenden

Web-API-basierte Services müssen nicht zwangsweise innerhalb von IIS laufen. Bei Bedarf kann der Entwickler sie auch in einer benutzerdefinierten Anwendung, zum Beispiel einer Kommandozeilenapplikation oder einem Windows-Dienst, zur Ausführung bringen. Hierbei ist von „Self-Hosting“ die Rede. Die dazu benötigten Assemblies System.Net.Http, System.Web.Extensions, System.Web.Http und System.Web.Http.SelfHost können entweder manuell eingebunden oder über ein zu diesem Zwecke bereitgestelltes NuGet Package mit dem Namen Microsoft.AspNet.WebAPI.SelfHost bezogen werden.

Bei Self-Hosting-Szenarien ist zu beachten, dass ab Windows Vista Benutzer vom Administrator die Erlaubnis erhalten müssen, um Services über HTTP bereitstellen zu können. Zum Erteilen dieser Rechte steht das Dienstprogramm netsh XE "netsh" zur Verfügung. Die folgende Anweisung würde zum Beispiel dem Benutzer DOMAIN\user das Recht geben, einen HTTP-basierenden Service über Port 8080 bereitzustellen:

netsh http add urlacl url=http://+:8080 user=DOMAIN\user

Alternativ dazu können Self-Hosting-Szenarien getestet werden, indem Visual Studio oder der kompilierte Self-Host als Administrator gestartet werden (Kontextmenübefehl Als Administrator starten).

Wie Listing 1 zeigt, muss der Entwickler...