PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kleine Tools mit SOAP - womit?


hadez16
2010-12-09, 14:19:17
Hallo,

ich habe zwar eine affinität zur Programmierung, bin aber kein eigentlicher entwickler, die letzten richtigen Programmiersachen stammen aus der Berufsschule (Borland Builder C++).

Ich behaupte aber, dass ich mich schnell in neues einarbeiten kann.

Nun würde ich gerne ein paar Helferlein (Windows-Apps) programmieren die SOAP-Requests an einen Webservice schicken und die Rückantwort auswerten.

Also die Webservices sind schon alle vorhanden und haben auch alle SOAP-Schnittstellen und die funktionen und alles kenen ich auch die ich aufrufen muss etc. ergo geht es hier nur um die SOAP-Client-Seite.

Nun meine Frage, mit welcher Sprache und/oder IDE ist es am komfortabelsten Tools zu bauen mit SOAP-kommunikation. Ich habe Erfahrung mit AutoIT was ja recht praktisch ist und ein paar SOAP-Beispiele hab ich auch schon gefunden. Mir sagte mal jemand, dass es mit C# sehr komfortabel wäre SOAP zu benutzen.

Könnt ihr mir Tipps geben?

Nochmal zusammenfassend: Die beste/komfortabelste/einfachste Art und Weise (ergo Sprache) um Tools mit GUI zu erstellen und via SOAP mit einem SOAP-Server zu kommunizieren.

Danke!!!

Gruß

Frucht-Tiger
2010-12-09, 14:44:54
Da es eine Windows GUI werden soll, wirst du mit C#/Visual Studio sowohl zu einem schnellen(was die Kommunikation mit Soap angeht) wie auch zu dem besten(was die native GUI betrifft) Ergebnis kommen. Das wäre also die ideale Wahl für dich. Google liefert dir hier abertausende Tutorials, Bücher gibt es auch unzählige, der Einstieg sollte also kein Problem darstellen.

Andere moderne Sprachen wie Java können natürlich auch sehr gut mit Soap Webservices arbeiten, bieten allerdings nicht die gleiche Qualität/Komfort in Sachen Windows Bedienoberfläche, laufen dafür aber auch unter Mac OS und Linux.

Edit: Zum Einstieg: lade dir die kostenlose Express Edition von Visual Studio herunter und erstelle anhand von Tutorials ein paar einfache GUIs. Wenn du mit C# warm geworden bist, mach dich an die Kommunikation mit den Webservices.

AlecWhite
2010-12-09, 14:48:09
Also wenn es dir nur um eine zusammenklickbare GUI geht, dann ist praktisch alles mit "Visual" im Namen zumindest einen Blick wert (ob nun Visual C# oder Basic oder was auch immer).

Für SOAP gibt es spezielle Bibliotheken für die jeweiligen Sprachen. SOAP ist ja kein Bestandteil einer Sprache, sondern nur eine Kommunikation via XML Sprache. Also, wenn von Haus aus nix dabei ist, gibt es da bestimmt irgend jemanden, der das implementiert hat.

Exxtreme
2010-12-09, 15:54:40
Also ich würde nicht unbedingt auf SOAP setzen. Ich glaube, selbst Microsoft sieht das Projekt mehr oder weniger als tot an. Habe vor paar Wochen was dazu gelesen.

Und wenn man vom C++-Builder kommt dann empfehlen sich die folgenden IDEs:

Monodevelop (http://monodevelop.com/) für Mono .NET
Visual Studio Express (http://www.microsoft.com/germany/express/products/windows.aspx) für Microsoft .NET, Basic, C#, C++
Netbeans (http://netbeans.org/downloads/index.html) für Java


Ach ja, auch in Java ist es möglich GUIs zu bauen, die sich von nativen GUIs nicht unterscheiden.

Monger
2010-12-09, 23:40:59
Also ich würde nicht unbedingt auf SOAP setzen. Ich glaube, selbst Microsoft sieht das Projekt mehr oder weniger als tot an. Habe vor paar Wochen was dazu gelesen.

Microsoft pusht ja derzeit stattdessen kräftig WCF (zum wiederholten Male). Ob sich das allerdings durchsetzt... nuja.

@topic: SOAP ist auch Bestandteil des .NET Standard Frameworks. Damit kann man also schon einiges tun, und es bieten sich somit natürlich die .NET Sprachen an.

hadez16
2010-12-10, 09:12:02
danke für die antworten,

ich werde mir Visual Studio C# express ansehen.

Ich hab schonmal wild gegoogelt und da wurde sowas erwähnt, dass man einen vorhandenen Webservice einbingen kann und man dann komfortabel einfach ihn als Klasse einbindet und die entsprechenden funktionen einfach aufrufen kann.

Oder sowas :)

ich werde forschen.

Nun ist es so, dass die Webservices es anbieten die Funktionen über SOAP 1.1, 1.2, über HTTP GET und HTTP POST aufzurufen und etwas zurück zu erhalten.

d.h. es würde auch ganz ohne SOAP gehen fällt mir gerade auf. Was wäre denn am einfachsten davon? HTTP GET sieht einfach aus :D

hadez16
2010-12-10, 10:35:44
ich hab mal auf die schnelle das VS Express aufgesetzt und mir ein Code-Beispiel aus dem Netz geholt für eine GET-Abfrage:


HttpWebRequest request;
HttpWebResponse response;
StreamReader sr;

request = (HttpWebRequest)HttpWebRequest.Create("URLEINFUEGEN");
request.Proxy = HttpWebRequest.DefaultWebProxy;
request.Method = "GET";
response = (HttpWebResponse)request.GetResponse();
sr = new StreamReader(response.GetResponseStream());
string html = sr.ReadToEnd();
sr.Close();
response.Close();


Jetzt krieg ich da ne Meldung wenn ich das ausführe:


Fehler beim Erstellen des Webproxys, der im Konfigurationsabschnitt system.net/defaultProxy angegeben ist.

Google findet nichts brauchbares :(

Monger
2010-12-10, 11:45:27
Ich schätze mal, du musst deinen Webserver wenigstens aufm LocalHost instanziieren, um ihn testen zu können. Sprich: URLEINFÜGEN mit "LOCALHOST" bzw. 127.0.0.1 ersetzen.

hadez16
2010-12-10, 12:10:28
Ich schätze mal, du musst deinen Webserver wenigstens aufm LocalHost instanziieren, um ihn testen zu können. Sprich: URLEINFÜGEN mit "LOCALHOST" bzw. 127.0.0.1 ersetzen.

ja in meinem Test ersetze ich das natürlich mit der URL die ich abfragen will.
Aber trotzdem geht es nicht.

Frucht-Tiger
2010-12-10, 14:40:51
Nimm die englische Version der Fehlermeldung: <<Klick>> (http://www.google.de/search?q=Error%20creating%20the%20Web%20Proxy%20specified%20in%20the%20%27system .net/defaultProxy%27%20configuration%20section.), da wird sicher eine Lösung dabei sein. Nimm am besten ein englisches Visual Studio, nach deutschen Fehlermeldungen lässt sich nur schlecht googlen und das ist essentiell wenn man am Ausprobieren ist, da man ständig über solche Sachen stolpert.

Gnafoo
2010-12-10, 16:42:35
Ich kenne mich mit dem Thema zwar nicht wirklich aus, aber SOAP müsste in VS eigentlich recht einfach gehen, wenn du eine WSDL-Beschreibung hast. Einfach im Projekt auf References -> Add Service Reference. Dort die URL der WSDL-Datei angeben auf Go klicken, einen Namespace angeben und okay.

Dann erstellt VS aus der Beschreibung entsprechende Klassen, die den gesamten Zugriff hinter einem netten Interface kapseln. Per Doppelklick auf die Referenz kann man sich die ganzen Klassen etc. im Object Browser ansehen.

Ich weiß allerdings nicht, ob die Express-Versionen das auch können.

Gast
2010-12-11, 00:18:35
Microsoft pusht ja derzeit stattdessen kräftig WCF (zum wiederholten Male). Ob sich das allerdings durchsetzt... nuja.


Das eine hat mit dem anderen rein gar nichts zu tun. Das ist ja auch der ganze Sinn und Zweck von WCF, die Logik vom Transportprotokoll zu trennen.

Monger
2010-12-11, 01:02:11
Das eine hat mit dem anderen rein gar nichts zu tun. Das ist ja auch der ganze Sinn und Zweck von WCF, die Logik vom Transportprotokoll zu trennen.
Hä? Sowohl SOAP als auch WCF abstrahieren vom eigentlichen Kommunikationsweg. Ob du in WCF jetzt Kommunikation im selben Prozess, auf dem selben Rechner oder irgendwo anders hin machst, bleibt sich relativ gleich. Das Protokoll ist da wie dort ziemlich transparent. Auch WCF kennt Datencontainer (aber eben auch deutlich mehr).

Gast
2010-12-11, 12:35:44
Hä? Sowohl SOAP als auch WCF abstrahieren vom eigentlichen Kommunikationsweg. Ob du in WCF jetzt Kommunikation im selben Prozess, auf dem selben Rechner oder irgendwo anders hin machst, bleibt sich relativ gleich. Das Protokoll ist da wie dort ziemlich transparent. Auch WCF kennt Datencontainer (aber eben auch deutlich mehr).

SOAP ist ein Format auf XML Basis!!!! WCF ist ein Kommunikationsframework, dass unterschiedlichste Endpunkt Protokolle verwenden kann. Ob das SOAP, JSon oder was auch immer ist.

hadez16
2010-12-13, 08:33:04
ich krieg schon eine Exception wenn ich nur eine leere Textbox in meine Form einfüge und einfach das Programm starte. Ohne dass ich irgendwas irgendwem zugewiesen habe.

Wenn ich schon zu anfang so gegen die Wand laufe ist die Lust weiter zu machen ganz groß.

http://www.abload.de/thumb/visualstudionh4z.jpg (http://www.abload.de/image.php?img=visualstudionh4z.jpg)

EDIT: lol sogar wenn ich ein blankes Form einfach starten will wirft er so eine komische Exception. Ich hab auch schon die Installation repariert ohne erfolg.

Gnafoo
2010-12-17, 04:26:28
Hm das ist sehr eigenartig. Eventuell Avira AntiVir installiert und dieses Problem?
http://social.msdn.microsoft.com/Forums/en/vsdebug/thread/8e842858-4d5e-4614-a770-820a5b104da7

Läuft das Programm, wenn man ohne Debugger startet?

DanMan
2010-12-17, 12:11:23
SOAP ist pfui wenn man sich nicht gerade damit wäscht. Machs nach dem REST Prinzip und spar das XML Rumgeeier.

Gnafoo
2010-12-17, 22:29:41
Damit hat er ja im Moment gar kein Problem.

Davon abgesehen geht das mit Visual Studio und einer Service-Referenz wirklich einfach, ohne dass man mit dem XML-Unterbau überhaupt etwas zu tun hat. Ich weiß zwar nicht, wie es mit REST aussieht, aber ich denke nicht, dass das viel einfacher sein wird.

PatkIllA
2010-12-17, 23:19:58
Der Screenshot der Codezeile ist recht uninteressant. Da ist Stacktrace bzw. die inner Exveptions wichtig. Ich hatte für die Oberfläche btw auf WPF gesetzt statt auf Forms. Und dann auch gleich eine englische Version, da man da sehr viel mehr Treffer bei Problemem landet.

hadez16
2010-12-21, 09:57:31
hallo nochmal!

Danke für die antworten nochmal...tatsächlich habe ich Avira Prof. installiert aber zum Zeitpunkt des Problems war mir das nicht bewusst, dass es damit zusammenhängen könnte.

Ich wollte nur mitteilen, dass ich Visual Studio verworfen habe (weils mich zuviel gefrustet hat wegen dem Problem da) und auf AutoIT umgeschwenkt habe.

Mit der Scite-IDE und den integrierten Tools, die sogar einen FormDesigner für AutoIT mitbringen, ist das was ich erreichen will wirklich leicht.

Aus der Community gibt es ein XML DOM Wrapper mit zig XML funktionen und ich bin von SOAP auf HTTP GET umgeschwenkt, da HTTP GET auch von dem abzufragenden Webservice unterstützt wird.

Ich bin wirklich begeistert von AutoIT!

Auch wenn ich bei AutoIT vielleicht 3 schritte machen muss wo ich im VS vielleicht nur 1 Schritt gebraucht hätte mag ich es sehr da ich damit noch was lerne z.B. umgang mit XPaths

DanMan
2010-12-21, 18:06:47
Aus der Community gibt es ein XML DOM Wrapper mit zig XML funktionen und ich bin von SOAP auf HTTP GET umgeschwenkt, da HTTP GET auch von dem abzufragenden Webservice unterstützt wird.
Du schickst per HTTP GET XML?

XPath ist sehr nützlich zu kennen, wenn man viel mit XML zu tun hat, ja.

hadez16
2010-12-21, 20:09:39
Du schickst per HTTP GET XML?

XPath ist sehr nützlich zu kennen, wenn man viel mit XML zu tun hat, ja.

nein ich schicke nen GET und krieg ne XML zurück :)