{"id":38,"date":"2007-09-05T23:42:15","date_gmt":"2007-09-05T21:42:15","guid":{"rendered":"http:\/\/joergnapp.de\/2007\/09\/05\/nutzung-unseres-soap-servers-mit-vb.net\/"},"modified":"2008-02-12T08:55:50","modified_gmt":"2008-02-12T07:55:50","slug":"nutzung-unseres-soap-servers-mit-vbnet","status":"publish","type":"post","link":"https:\/\/joergnapp.de\/blog\/nutzung-unseres-soap-servers-mit-vbnet\/","title":{"rendered":"Nutzung unseres SOAP-Servers mit VB.net"},"content":{"rendered":"<p>  Die Nutzung unseres <a href=\"http:\/\/joergnapp.de\/2007\/08\/30\/ein-einfacher-soap-server-in-php\/\">SOAP-Servers<\/a> mit Visual Basic .net ist eine ziemlich einfache Angelegenheit.<\/p>\n<p><!--more--><\/p>\n<p>Die \u201eExpress Edition\u201c von Visual Basic gibt es nach wie vor <a href=\"http:\/\/www.microsoft.com\/germany\/msdn\/vstudio\/products\/express\/vb\/default.mspx\">kostenlos bei Microsoft<\/a>.Nach der Installation und dem Start eine neue Windows-Anwendung anlegen. Um unseren <acronym title=\"Simple Object Access Protocol\">SOAP<\/acronym>-Server nutzen zu k\u00f6nnen, m\u00fcssen wir ihn der Anwendung bekannt machen. Dazu im Projektmappen-Explorer auf den Titel der Applikation mit rechts klicken, und aus dem Kontextmen\u00fc \u201eWebverweis hinzuf\u00fcgen\u201c w\u00e4hlen (Alternativ geht das auch \u00fcber den Punkt \u201eProjekt\u201c in der Men\u00fcleiste). Die einzugebende <acronym title=\"Uniform Resource Locator\">URL<\/acronym> ist die <acronym title=\"Uniform Resource Locator\">URL<\/acronym> der WSDL-Datei. Bei unserem Server ist das also so etwas wie<\/p>\n<pre><code>\r\nhttp:\/\/www.example.com\/soapserver.php?wsdl<\/code><\/pre>\n<p>. Nachdem <acronym title=\"Visual Basic\">VB<\/acronym>.net die WSDL-Datei geladen hat, werden die verf\u00fcgbaren Methoden angezeigt. Jetzt ist es noch sinnvoll, unter \u201eWebverweisname\u201c einen k\u00fcrzeren Namen anzugeben \u2013 dies ist n\u00e4mlich der Name, unter dem der Webservice sp\u00e4ter genutzt wird. Ich verwende hier als Beispiel mal \u201esoapservice\u201c. Mit einem Klick auf \u201eVerweis hinzuf\u00fcgen\u201c steht der Dienst in dieser Anwendung zur Verf\u00fcgung.Jetzt kann ein entsprechendes Objekt definiert und benutzt werden:<\/p>\n<pre><code>\r\nDim s As soapserver.suche\r\ns = New soapserver.suche\r\n<\/code><\/pre>\n<p>Dabei ist \u201esoapserver\u201c der Name, den wir beim Hinzuf\u00fcgen des Webservices angegeben haben, und \u201esuche\u201c ist der Name des Webservices, wie er dort hinterlegt ist:<\/p>\n<pre><code>\r\n$server-&gt;configureWSDL('suche');\r\n<\/code><\/pre>\n<p>Anschlie\u00dfend k\u00f6nnen die Methoden, die der Webservice zur Verf\u00fcgung stellt, genutzt werden.<\/p>\n<pre><code>\r\nDim r As Array\r\nr = s.Callsuche(\"Suchbegriff\")\r\n<\/code><\/pre>\n<p>Dabei ist mir aufgefallen, dass wenn die Methode genauso hei\u00dft wie der Webservice (hier also beide Male \u201esuche\u201c) der Methode ein <code>call<\/code> voranzustellen ist. Eine in diesem Webservice vorhandene Methode \u201esuche2\u201c w\u00fcrde man so aufrufen:<\/p>\n<pre><code>\r\nr = s.suche2(\"Suchbegriff\")\r\n<\/code><\/pre>\n<p>Die Ergebnisse k\u00f6nnen nun weiter verarbeitet werden:<\/p>\n<pre><code>\r\nDim i As Integer\r\nFor i = 0 To UBound(r)\r\n    MsgBox(r(i))\r\nNext\r\n<\/code><\/pre>\n<h3>Fazit<\/h3>\n<p>Mit <acronym title=\"Visual Basic\">VB<\/acronym>.net ist die Nutzung von Webservices so einfach wie die Nutzung lokaler Objekte. Damit ist ein Arbeiten nat\u00fcrlich sehr angenehm.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Die Nutzung unseres SOAP-Servers mit Visual Basic .net ist eine ziemlich einfache Angelegenheit.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[45,14,15,22,16,4,12,194],"class_list":{"0":"post-38","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"hentry","6":"category-allgemein","7":"tag-menue","8":"tag-php","9":"tag-soap","10":"tag-vbnet","12":"tag-visual-basic","13":"tag-webservices","14":"tag-windows"},"_links":{"self":[{"href":"https:\/\/joergnapp.de\/blog\/wp-json\/wp\/v2\/posts\/38","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/joergnapp.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/joergnapp.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/joergnapp.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/joergnapp.de\/blog\/wp-json\/wp\/v2\/comments?post=38"}],"version-history":[{"count":0,"href":"https:\/\/joergnapp.de\/blog\/wp-json\/wp\/v2\/posts\/38\/revisions"}],"wp:attachment":[{"href":"https:\/\/joergnapp.de\/blog\/wp-json\/wp\/v2\/media?parent=38"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/joergnapp.de\/blog\/wp-json\/wp\/v2\/categories?post=38"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/joergnapp.de\/blog\/wp-json\/wp\/v2\/tags?post=38"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}