2009-07-28 2 views
1

Dies ist eher eine Technologie-Stack-Frage.Wie bekomme ich eine Rails-Anwendung, um mit einem Webdienst zu kommunizieren, der einige C# -Logik umschließt?

Die C# -Logik ist bereits vorhanden/veraltet und ist intern eine App mit mehreren Computern/verteilten Geräten. Ich brauche ein Web-Interface für die Übersicht. Also habe ich mir einen Prototyp in Ruby On Rails angeschaut.

Jetzt ist mein Wissen ein Tag oder 2 alt hier ... so korrigieren Sie mich, wenn ich falsch liege. dort war etwas namens ActionWebServices (AWS) - die jetzt aus dem Kern distrib ist. ActiveResource hat seinen Platz in Rails 2.0 eingenommen. Sie können immer noch AWS erhalten, indem ein Juwel installieren tun ...

So suchen Sie in Active (Ares) (jedoch keine AWS Tutorial finden konnte): Jetzt Ares .. opinionated wird erwartet, dass die Ziel-Web-Service Beruhige dich, folge einem bestimmten Muster von URLs und akzeptiere XML als Eingabe

Jetzt ist meine Frage hier, was verwende ich, um den Wrapper-Web-Service zu implementieren?

  • Wenn ich Rails den Web-Service als auch zu tun .. Ich glaube, ich werde ein paar Ruby C# Interop Probleme haben (ist es möglich, selbst? Kann ich dies tun über die MS-impl IronRuby?)
  • Wenn ich den Web-Service mit einer MS-spezifischen Sache, z ASP.Net, Ares wird nicht damit reden. Können Sie die Ares-Einschränkungen irgendwie über ASP.Net erfüllen?

Verzeihen Sie meine allgemeine Ignoranz der Web-Welt .. und danke fürs Lesen.

+0

pikiert Und die Antwort kann nicht einfach ohne Angabe von Gründen ‚Ditch RoR für ASP.Net‘ - ich bin Bewertung der Durchführbarkeit von RoR – Gishu

Antwort

2

Ähm ... Webservice Prozess-Methoden mit Daten empfangen über die HTML-Aktionen (put, post, get, delete).

Sie sollten also Probleme mit Schienen/C# haben.

Und wenn Ihr C# webservice tut eine erholsame Schnittstelle zur Verfügung stellen, können Sie eine XML-Datei manualy und per Post über rubys http-Klasse erstellen:

http://ruby-doc.org/stdlib/libdoc/net/http/rdoc/classes/Net/HTTP.html#M000683

fe:

postdata = "<xml version=1.0><root><data1 value=1>asdasd</data></root></xml>" 

response = http.post('http://c-sharp-website.com/getdata', postdata) 

Wenn Sie den Webservice als Ruby on Rails-Anwendung erstellen möchten, müssen Sie weitere Informationen angeben, z wenn Sie von Ihrer Rails-Anwendung auf C# -Klassen zugreifen möchten.

EDIT:

Sie können C# -Bibliotheken mit Eisen Rubin verwenden: http://www.kevinblake.co.uk/using-c-net-libraries-within-ironruby/602/

+0

Ja die webservice nennen würde müssen bei einigen C# -Methoden ... untersuche ich den Link/den Pfad, den du angegeben hast. Vielen Dank.. – Gishu

0

Vielleicht nicht die richtige Antwort .. aber ich nahm den Weg des geringsten Widerstandes und es gelang ihm. Yay Rubin!

Zuerst habe ich einen Dummy Asp.net Xml Web-Service wie in this walkthrough gezeigt. Weniger Ärger mit meinem C# -Code zu sprechen.
Als nächstes fand ich this uber-blog post by Ryan Heath und es war alles bergab.

Sie schreiben eine kleine Ruby-Wrapper-Klasse wie diese, die die WSDL von den Parametern erhält, mit denen Sie sie säen. Es durchsucht die WSDL und dann können Sie Ihre Webmethoden als einfache Instanzmethoden aufrufen. Yay Rubin!

Weitere Details in my blog post in Fall sind Sie

Verwandte Themen