So funktioniert es: Bing von .NET aus aufrufen

(http://www.zdnet.de/magazin/41526790/so-funktioniert-es-bing-von-net-aus-aufrufen.htm)

von Justin James, 3. Februar 2010

Mit einfachen Code-Schnipseln kann man die entscheidenden Schritte beim Schreiben einer Anwendung mit Bing-Schnittstelle bewältigen. ZDNet erklärt die Vorgehensweise und zeigt den Code.

Wer eine Suchmaschine in eine Anwendung integrieren will, sollte sich erst einmal für einen der drei führenden Anbieter entscheiden: Google, Yahoo oder Bing. Der Autor dieses Artikels hat sich für Bing entschieden, da ihm nach einem Vortrag des Programmierers Chris Eargle[1] das Aufrufen von Bing von .Net aus am einfachsten erschien.

Um mit der Bing-API arbeiten zu können, muss man eine AppID von Microsoft anfordern[2]. Mit dieser AppID übernimmt Visual Studio die WSDL und generiert automatisch die benötigten .NET-Klassen. Dazu sind folgende Schritte auszuführen (für Visual Studio 2008):

Wer möchte, kann auch XML[3] oder JSON[4] für den Zugriff auf Bing nutzen, obwohl die SOAP-Schnittstelle für den Großteil der .NET-Anwendungen am sinnvollsten ist, da Visual Studio gut mit SOAP-Services zusammenarbeitet. Nun kann es also losgehen. Um die neu erstellten Referenzen verwenden zu können, muss man die entsprechende using-Anweisung (für C#) oder Imports-Anweisung (für VB.NET) zu dem Code hinzufügen, der Bing verwenden soll. Der vollständige Name ist der Default-Namespace für das Projekt, plus die Service-Referenz. In diesem Fall ist der Namespace des Projekts TestProject, also sieht die Zeile zu seiner Einbindung wie folgt aus:


using TestProject.net.live.search.api;

Nun soll gezeigt werden, wie man eine Basisanfrage für Webergebnisse erstellt. Allerdings ist hierbei zu bedenken, dass Bing verschiedene Arten von Ergebnissen liefern kann, darunter Videos, Bilder und Telefonbücher. Mit einer Anfrage wird nach unterschiedlichen Typen gleichzeitig gesucht. Zur Übung kann man natürlich auch die anderen verfügbaren Suchtypen[5] testen.

Alle Suchanfragen enthalten grundlegende Parameter und bieten zusätzlich eigene. Die erforderlichen Parameter lauten:

Hier eine einfache Methode, um auf eine Anfrage hin eine Suche durchzuführen:

Dies ist eine stark vereinfachte, modifizierte Version des Mustercodes in der Bing-Dokumentation. Mehr braucht man zur Durchführung einer Suche nicht.

Ab hier kann man mit den Ergebnissen der Abfrage arbeiten. Dazu ist LINQ sehr praktisch. In der Anwendung wird eine Results-Klasse erstellt, die nicht nur die aus Bing benötigten Informationen, sondern auch die Verarbeitung nach der Suche verkapselt. So bestückt man eine List mit einer einfachen LINQ-Abfrage:

Einige Einträge, mit denen die Result-Objekte in der Liste bestückt sind, stammen aus den Bing-Ergebnissen im Response-Objekt, andere wiederum sind einfach Initialisierungswerte, auf denen die spätere Verarbeitung aufbaut.

URLs in diesem Artikel:
[1] = http://www.kodefuguru.com/
[2] = http://www.bing.com/developers/createapp.aspx
[3] = http://msdn.microsoft.com/en-us/library/dd250893.aspx
[4] = http://msdn.microsoft.com/en-us/library/dd250846.aspx
[5] = http://msdn.microsoft.com/en-us/library/dd250847.aspx