Hier hat man eine tech-frage für non-tech Ich habe nicht Gelegenheit gehabt, dies vorher zu tun, so dass ich hoffe, dass jemand mich aufklären kann. Ich habe eine App in D7 gebaut, und es ist ziemlich komplex in seiner Funktionalität. Ist es möglich, die App wieder aufzubauen, um als Service zu laufen, würde das die Trennung der Benutzeroberfläche von der App benötigen. Danke, Bill William Meyer schrieb auf 4222010. gt ich habe nicht Gelegenheit gehabt, dies vorher zu tun, also I39m hofft, dass jemand kann kläre mich auf. Ich habe eine App in D7 gebaut, und es ist eher gt komplex in seiner Funktionalität. Ist es möglich, die App wieder aufzubauen, um gt als Dienst zu starten. Testing Non-Tech Ich habe nichts für drei Tage in dieser Gruppe gesehen - Q 01242014 15:15:19 1.19.1.372 Q39sBrokenToolBar Laufen auf TQ Quentin Correll schrieb: gt Ich habe nichts für drei Tage in dieser Gruppe gesehen Wie kann das du sein Antwortete auf einen Beitrag von Nick im Thread quotTest das bestquot heute. - Arno Arno, wie kann das sein Du hast auf einen Beitrag von Nick in Thread geantwortetTest das Bestquot heute. Merkwürdigerweise konnte ich posten. Ltggt Aber ich war nicht sicher, dass seit XN nichts zu tun hat, bis ich es getan habe. Delphi-Markt nicht vorhanden Es scheint, die Entwicklung Contracting-Markt für Delphi vertrocknet ist. Ist jemand, der Verträge findet, ist keine Beschäftigung, Vertragsarbeit. Gt gt Es scheint, dass der Entwicklungsvertragsmarkt für Delphi ausgetrocknet ist. Wo gibt es irgendwelche finden Verträge Nicht Beschäftigung, Vertrag Arbeit. Ja - Grüße Bruce McGee Glooscap Software gt gt gt Wo die USA. Gt gt Ja BTW, halten Sie mehr als 2 Personen beschäftigt Vollzeit gt gt Die USA. Nicht-Tech-Buchungen Abgelehnte Prüfung. Gestern wurden meine Beiträge an Nicht-Tech-Quoten eingegeben. quot - Q 04052012 09:16:20 XanaNews Version 1.19.1.278 Q39sBrokenToolBar Quentin, Testing. Gestern wurden meine Beiträge an die Nicht-Tech-Adresse abgelehnt. Es scheint, dass nur meine Antworten abgelehnt werden. - Q 04052012 09:19:30 XanaNews Version 1.19.1.278 Q39sBrokenToolBar Quentin, Testing. Gestern wurden meine Beiträge an die Nicht-Tech-Adresse abgelehnt. Es scheint, dass nur meine Antworten abgelehnt werden. Diese Antwort w. Delphi XE5 Hallo, gerade installiert XE5. Es gibt keine setuppaserver. zip Datei. Wo bekomme ich es Joe gt gt Hallo, gt gt Just installiert XE5. Es gibt keine setuppaserver. zip Datei. Gt gt Wo bekomme ich es gt gt Joe Just realisiert, dass seine die. pkg Datei. Delphi und Delphi für Es scheint, dass Delphi für ist langsamer als Delphi Win32 native applicationaiton. Ich würde gerne wissen, ist es wahr, alle Anwendungen ist langsamer als Win32 native applicationaiton oder es ist nur Delphi für nur. Ihre Informationen ist groß geschätzt, Inung Am 2011-06-21 18:20:17 0100, Inung Huang sagte: gt Es scheint, dass Delphi für ist langsamer als Delphi Win32 native applicationaiton. Gt würde ich gerne wissen, ist es wahr alle Anwendung ist langsamer als gt Win32 native applicationaiton oder es ist nur Delphi für nur. Wenn du den Code nur einmal in der Applikation betreibst, dann ja ja. D2009 Datasnap von Nicht-Delphi-Clients D2009 Datasnap befolgt alle Standards für den Aufruf von Nicht-Standard-Clients. z. B. PHP ruft D2009 Mittelstufe an. Danke CB Christopher Burke schrieb: gt D2009 Datasnap folgen alle Standards für den Aufruf von gt Nicht-Standard-Clients. JSON - basierend auf ECMAScript (JavaScript). Beifall Rob H -. Non-Tech mit einer Datei kopieren Frage Kann ich einfach nur kopieren oder backuprestore meine GW55 emailcalendaretc. Dateien auf einen anderen Server, wenn mein ursprünglicher Server abgestürzt ist oder I39m auf einen neuen Server umschalten Ich nehme an, ich müsste GW entladen, aber welche Dateien würde ich kopieren Danke. erklären. Du meinst die ganze PO oder was? Aufklären - Michael J. Bell Novell Support Connection Freiwilliger Sysop Autor von Guinevere (openhandhome) BITTE: E-Mail mich nicht privat, wenn nicht ausdrücklich gefragt. I39m ein Freiwilliger, kein Novell-Mitarbeiter Alle Meinungen und Ratschläge sind MINE alleine und NICHT Novell. Non-VCL ZIP Classcomponent wollte Hi, I39m auf der Suche nach einem ZIP-Klassenkomponenten, das keine VCL-Einheit verwendet. Es muss Unicode-Dateinamen unterstützen, aber ich kenne dort PLZ-Unterstützung in XE, aber das ist nicht genug. - Arno Garrels Auf 962012 10:33 AM, schrieb Arno Garrels: gt I39m auf der Suche nach einem ZIP-Klassenkomponenten, das keine VCL gt unitstuff verwendet. Es muss Unicode-Dateinamen unterstützen, aber ich kenne dort39s gt ZIP-Unterstützung in XE aber das ist nicht genug. Die meisten der Drittanbieter-Zip-Komponenten sind nicht-visuelle Komponenten, so dass sie sich auf die VCL verlassen. Abbrevia hat einige visu Serving-Datasets an (Nicht-Delphi) - Client Ich wäre Ihnen dankbar für einige Ratschläge auf dem besten Weg, um einen Delphi-Web-Service zu entwerfen, um mit einem Nicht-Delphi-Client zu interagieren. Der Plan ist, RAD Studio 2007 zu verwenden, um einen SOAP-Server zu schreiben, um Datasets zu und von einem entfernten Client zu übertragen. Das Kundenende ist Teil einer Website, die von einer anderen Partei erstellt wird. Die Datensätze enthalten Datensätze mit beiden einfachen Datentypen und BLOBs. Meine eigene Vorliebe wäre, den SOAP-Server als eine native WIN32-Anwendung zu schreiben, aber mein Eindruck ist, dass dies eine große Menge an benutzerdefinierten Serialisierungscode erfordert, um geschrieben zu werden. Verwenden von Zip in Delphi XE5, Beispiele überall Seit Jahren habe ich eine externe DLL zum Zippen von Datendateien zusammen in eine einzelne Zipfile verwendet. Die Autoren der Zip32.pas-Datei und der dazugehörigen DLL sind Theo Bebekis und Marcus Wirth und in der Akte gibt es Info-Zip. Die Quellen, die ich verwende, sind ab Januar 2000. Jedenfalls, da ich jetzt die alte Anwendung von Delphi7 auf XE5 umwandiere, möchte ich die integrierte Zip-Funktionalität verwenden, aber ich habe Schwierigkeiten, irgendwelche Beispiele zu finden, wie man System. Zip benutzt. Kann jemand hier auf ein funktionierendes Beispiel hinweisen, das Dateien in einen Reißverschluss packt, OHNE auch das Füllen im Original p. Delphi XE5 Hallo, während ich mit Delphi XE5 (neben ein paar seltsamen Sachen) übertroffen bin, gibt es 1 Ding, das ist wirklich nervig: das Non Stop Sanduhr in der IDE. Wenn ich auf ein Wort klicke, um auszuwählen: Sanduhr. Wenn ich den Cursor verschiebe 2 Räume: Sanduhr. Scrollen: Sanduhr. Beim Tippen ein paar Zeichen: Sanduhr. Und das ist wirklich die ganze Zeit. Die IDE friert und I39m verliert viel Zeit immer warten, um fortzufahren. Ich frage mich, warum Embarcadero keine Probleme macht. Ich entdeckte, dass das Abschalten von quotCode par ametersquot, quotTooltip Ausdruck Auswertung, q. Delphi XE2 - System. Zip Hallo Ich verwende derzeit die quotVCLZipquot 3. Komponenten, um Zip-Dateien zu generieren und zu manipulieren. Ich möchte meinen Code annehmen, um TZip von System. Zip zu verwenden, da VCLZip nicht mehr gepflegt ist und es keine offizielle Version für Delphi XE2 gibt. Ich vermisse Funktionen, um Dateien in einer vorhandenen Zip-Datei umzubenennen (oder zu entfernen). Kann mir jemand bitte einen Rat geben, wie dies mit System. Zip getan werden kann Danke für deine Hilfe Auf 162012 4:27 AM schrieb Ajoschi Roth: gt Ich vermisse Funktionen, um Dateien in einer vorhandenen Zip-Datei umzubenennen (oder zu entfernen). Gt Kann mir bitte jemand ein. Erstellen von nicht kopierbaren Download-Zip-Dateien in VS2008 Hallo, ich denke an den Verkauf von quothow toquot Videos von meiner Website, die ich autorisierten Benutzer zu laden erlaubt. Um sie jedoch zu verweigern, um sie an andere weiterzugeben (Gott bewahre), brauche ich einen Weg, um ihre Downloads zu beschränken, um auf nur say1, 2 oder 3 Maschinen nutzbar zu sein. Ich habe von DRM gehört, aber nicht sicher, wie es funktioniert, I39m Wndering, wenn VS2008 hat irgendetwas up it39s Ärmel, die ich verwenden kann. Alle Ideen, wie immer, dankbar geschätzt Paul VS hat keine solche Einrichtungen. Außerdem ist das Kopieren von Dateien immer möglich. DRM kann verhindern, dass Benutzer Dateien öffnen. For. Creating and Consuming Seifen-Services in Delphi. UPDATE Für ein komplettes Beispiel für den Aufbau eines RESTful JSON Service Clients mit Delphi und einem RESTful JSON Service mit PHP, schau mal meine 8220Brutally Roll Your Own Backend 8221 Video Serie Für jeden, der den nächsten Teil meiner Sprites Serie erwartet, entschuldige bitte die Verzögerung. It8217ll kommen, aber die Arbeit kommt zuerst Heute I8217d gerne zeigen Ihnen, wie Sie erstellen und verbrauchen SOAP-basierte Web-Services. Das ist eine häufige Frage von meinen Kunden, und so hat ich mich entschlossen, den Prozess hier zu schreiben. Bearbeiten: Delphi kann jeden SOAP-Dienst als Client verbrauchen, aber die serverseitigen SOAP-Dienste, die mit Delphi erstellt wurden, werden eher RPC-basiertes als Literal-Dokument sein. Dies kann zu Problemen führen, die Delphi SOAP-Dienste von einigen Clients verbrauchen. It8217s besonders schwierig mit Java-basierten Clients, die die Installation von älteren Bibliotheken erfordert. Es scheint wenig Verlangen bei Embarcadero zu sein, den SOAP-Server zu aktualisieren, aufgrund des Rückgangs der Popularität von SOAP zu Gunsten von JSONREST-basierten Diensten. Wenn Sie Dienste für die Nutzung von Java oder eine andere Entwicklungssoftware, die nicht mit RPCSOAP kompatibel ist, aufnehmen möchten, sollten Sie JSONREST-Dienste berücksichtigen, die mit den Datasnap - oder EMS-Technologien von Embarcadero erstellt werden können. - Edit endet. SOAP ist kurz für Simple Object Access Protocol. Das heißt, it8217s ein Protokoll, das es Ihrer Anwendung ermöglicht, auf 8216objects8217 zuzugreifen, dh Datenobjekte über ihre Eigenschaften und Methoden. Um das in mehr geradlinige Begriffe zu setzen, ist es ein Protokoll, mit dem Sie auf entfernte Daten zugreifen oder Remote-Prozeduren anrufen können. Dies ähnelt in vielerlei Hinsicht den RESTJSON-Diensten, die bis dahin vorher bekannt gemacht wurden, jedoch werden SOAP-Daten mit einem XML-Wrapper übertragen, meist über ein HTTP oder direktes TCPIP. Ein weiterer wichtiger Unterschied zwischen SOAP-Diensten und RESTJSON-Diensten besteht darin, dass SOAP-Dienste einem vordefinierten Vertrag entsprechen, der die vorhandenen Datenstrukturen und Methoden beschreibt. Dieser Vertrag wird in der WSDL-Datei (Web Services Definition Language) beschrieben. Hüten Sie sich, einige Seifentechnologie-Verkäufer vergessen, was der Buchstabe 8216S8217 in 8216SOAP8217 steht, benennt keine Namen. Erstellen eines SOAP-Dienstes. Ermöglicht die Erstellung eines SOAP-Dienstes mit Delphi. I8217m mit einer frühen Version von XE8, obwohl I8217ve verwendet diese Schritte mehr oder weniger unverändert seit Delphi 7, so sollte dies in jeder Version funktionieren. Das heißt, es gab ein großes Update auf diese Technologie in einer der früheren XE-Versionen, so dass am ähnlichsten zu meinem stepsscreenshots XE45 oder höher sein wird, aber Sie sollten wenig Schwierigkeiten in früheren Versionen haben. Starten Sie die Delphi IDE und wählen Sie 8220File New Other - gt Delphi Projects - gt Web Services - gt SOAP Server Application8221 (kann mit Delphi Rad Studio Version oder Edition variieren 8220Delphi Projects8221 Schritt muss möglicherweise weggelassen werden.) Der Assistent, der präsentiert wird, bietet Mehrere Optionen. Die häufigste Art, einen SOAP-Dienst zu hosten, ist ein Web-Server-Modul, wie z. B. eine 8220ISAPI Dynamic Link Library8221 für Microsoft8217s 8220IIS8221 Webserver. Hinweis: Beim Erstellen eines ISAPIs mit 32-Bit-Versionen des Compilers muss you8217ll eine Einstellung unter dem IIS-Anwendungspool ändern, um einen 32-Bit-ausführbaren Code auf einem 64-Bit-Server zu aktivieren. Setzen Sie Ihr Kompilierziel auf 64-Bit in modernen Versionen von Delphi, um dies zu vermeiden. Für die Zwecke dieser Anweisung, aber wir gehen, um zu wählen, um dieses Projekt in ein ISAPI-Projekt umzuwandeln, das I8217ll später demonstrieren wird. German: www. tab. fzk. de/de/projekt/zusammenf...ng/ab117.htm. Für jetzt gehen Sie vor und wählen Sie 8220Stand-alone-Anwendung aus.8221 Die nächste Stufe des Assistenten fragt Sie, ob Sie die 8220VCL8221 oder 8220FMX8221 8220Firemonkey8221 Frameworks hinter Ihrem Web Service Code verwenden möchten. There8217s wenig Unterscheidung zwischen 8220VCL8221 und 8220FMX8221 für nicht-visuellen Code auf der Windows-Plattform, so lasst uns auf gute alte vertrauenswürdige 8220VCL8221. Der nächste Schritt des Assistenten erlaubt Ihnen, die Portnummer auszuwählen, die Ihr eigenständiger ausführbarer Service ausführt. Wenn dieses Projekt später in eine IIS - oder andere Web-Server-Anwendung umgewandelt wird, wird der Port je nachdem, welcher Port der Webserver die DLL ausführt (normalerweise 808080443 für HTTP oder HTTPS). Daher ist die Port-Nummer, die wir hier auswählen, nicht zu viel, so lange es nicht mit einem anderen Service auf der gleichen Maschine zusammenstößt. Sie können dies mit der Taste 8220Test Port8221 testen. I8217m gehst zu Port 8080 zu halten, wenn du einen anderen Port selektierst, musst du irgendwelche url8217s anpassen, die ich dir später gebe. Nachdem du auf 8220Finish8221 aus dem Assistenten geklickt hast, wird Delphi zur Arbeit mit deinem SOAP-Server-Anwendungsprojekt arbeiten. Wenn it8217s in der Nähe fertig ist, wird es den folgenden Dialog präsentieren8230 Dieser Dialog fragt Sie, ob you8217d gerne einen 8220end-point8221 für Ihren Web-Service erstellen möchte, oder zumindest das, was it8217s in einigen anderen SOAP-Frameworks I8217ve aufgerufen hat. Solche Frameworks erlauben Ihnen in der Regel nur einen einzigen Endpunkt pro Service, zumindest ohne einige Konfiguration, aber Delphi erlaubt Ihnen, so viele wie Sie mögen. Für diesen Service, um überhaupt nützlich zu sein, müssen Sie mindestens einen hinzufügen, also gehen Sie vor und klicken Sie auf 8220YES8221. Der nächste Dialog ist, wo Sie den Service-Endpunkt benennen, den you8217re erstellen wird. In diesem Dialog haben Sie auch die Möglichkeit, einige Beispielmethoden hinzuzufügen, die standardmäßig deaktiviert werden. Vergewissern Sie sich, dass diese Option aktiviert ist, da wir die Beispielmethoden später verwenden werden. Delphi wird nun eine Service-Anwendung für Sie erstellt haben, und it8217s eine komplette Arbeits-Service mit einigen Beispiel-Methoden für Sie auch zu rufen. Bevor wir uns den Service anschauen, können wir einige Verzeichnisse einrichten und das Projekt speichern. Wir werden insgesamt drei verschiedene Projekte erstellen. Die erste, die wir gerade erstellt haben. Dies ist die serverseitige Anwendung. Eine Sekunde wird eine ISAPI-Version des gleichen Dienstes sein (seit ich versprach I8217d zeigen Ihnen wie). Die dritte wird eine Client-Anwendung sein, die den Dienst anrufen kann. We8217ll fügt alle drei zu einer Projektgruppe hinzu. Irgendwo auf deinem Datenträger (es ist sowieso egal wo, wo immer du deine Projekte beibehältest), folge das folgende Verzeichnisstruktur8230 Jetzt bist du wieder in der Delphi IDE select 8220File Save All8221 Speichern Sie die Dateien wie folgt8230 SoapServiceSampleServerunitsMyServiceIntf. pas SoapServiceSampleServerunitsMyServiceImpl. pas SoapServiceSampleServerformsFormUnit1. Pas SoapServiceSampleServerunitsWebModuleUnit1.pas SoapServiceSampleServerprojectsStandAloneService. dproj Achten Sie darauf, die Änderungen im Verzeichnis zu notieren, und dass I8217ve das Projekt umbenannt zu 8220StandAloneService. dproj8221 Der Zweck dieser Dateien ist wie folgt8230 MyServiceIntf. pas 8211 Der Schnittstellenteil Ihres Dienstes, der verwendet wird, um die WSDL zu generieren Datei. MyServiceImpl. pas 8211 Die Implementierung Ihres Dienstes. FormUnit1.pas 8211 Wird für die Bereitstellung einer Benutzeroberfläche für die eigenständige Dienstanwendung verwendet, ist dies bei der Umwandlung in ISAPI - oder Apache-Module nicht relevant. WebModuleUnit. pas 8211 Das Web-Modul beherbergt Ihre Service-Endpunkte (Interfaceimplementation) und Marschälle Anfragen an sie durch URL-Mapping. StandAloneService. dproj 8211 Die Projektdatei. Jetzt sind wir bereit, den Dienst zum ersten Mal in Aktion zu sehen. Gehen Sie voran und führen Sie die Anwendung. Du solltest das folgende sehen8230 Nicht die schönste aussehende Anwendung ist es Aber es muss nicht sein, denn diese Anwendung ist nur die eigenständige Service-Anwendung, die wir verwenden, um den Dienst zu debuggen. Klicken Sie auf die Schaltfläche 8220Start8221, um den laufenden Dienst zu starten (akzeptieren Sie alle Sicherheitswarnungen bezüglich der Firewall) und klicken Sie dann auf 8220Open Browser82218230 Hinweis: Wenn aus irgendeinem Grund Ihr Browser nicht geöffnet wird, was je nach Setup möglich ist, öffnen Sie einen Browser und Navigieren Sie zu localhost: 8080 Was Sie im Browser sehen können, ist eine HTML-basierte Schnittstelle zu Ihrem Service. Es gibt zwei Schnittstellen, die zum ersten Mal dein neuer Service-Endpunkt sind, und der spätere ist ein System generierter Endpunkt für Zwecke, die hier nicht zu vertiefen sind. Deutsch: www. tab. fzk. de/de/projekt/zusammenf...ng/ab117.htm. Englisch: www. tab. fzk. de/en/projekt/zusammenf...ng/ab117.htm Wenn du auf den Link 8216WSDL8217 rechts von 8216IMyService8217 klickst, sieht man eine große XML-Datei. Diese Datei ist die WSDL-Datei, die die Client-Anwendung verwenden wird, um die Fähigkeiten Ihres Dienstes zu entdecken. Beachten Sie die Änderung in der URL-Leiste, wenn Sie dies tun8230 You8217ll bemerken, dass 8216wsdlIMyService8217 wurde hinzugefügt, um die URL-String. Dies ist, wie wir adressieren die wsdl-Datei für eine bestimmte Service-Endpunkt-Schnittstelle, die wir erstellen, einfach anfügen 8216wsdlIltendpoint-namegt8217 an die Basis-URL. Die WSDL gibt Auskunft darüber, was Ihr Dienst ist, und welche Datentypen (Objekte) unterstützt es. Bevor ich fortfahre, eine Client-Anwendung zu schreiben, um diesen Service zu verbrauchen, I8217d möchte auf ein paar Dinge in der Oberfläche und Implementierungsdateien hinweisen. Gehen Sie voran und öffnen Sie 8216MyServiceIntf. pas8217 in der IDE. Näherung an der Unterseite der Datei, you8217ll sehen, dass diese Schnittstelle deklariert8230 Dies ist die Schnittstelle, die verwendet wird, um die WSDL-Datei zu erstellen, die die Fähigkeiten des Dienstes definiert. Etwas zu bemerken ist hier, dass die Aufrufkonvention für jede der unterstützten Methoden 8216sdtcall8217 ist. Das ist die Windows-Standard-Aufruf-Konvention, die auf unseren Service verhängt wird, durch die Annahme, dass wir ihn später in ein ISAPI-Modul umwandeln können. Es ist sicher, 8216stdcall8217 für Apache-Module und die eigenständige ausführbare Datei zu verwenden, und so hat die IDE diese Aufrufkonvention für alle Dienste übernommen. Don8217t vergessen, es in Ihre Schnittstelle und Implementierungsdateien einzuschließen, wenn you8217re das Schreiben Ihrer serverseitigen Methoden. Über der IMyService-Schnittstelle in dieser Datei sehen Sie einige Datentypen, die deklariert wurden8230 Einfache Datentypen, die auf die grundlegenden Delphi-Datentypen abbilden, benötigen keine spezielle Behandlung. Zum Beispiel sind 8216TEnumTest8217 und 8216TDoubleArray8217 beide einfache Datentypen und werden nach Bedarf auf die WSDL-Datei abgebildet. Klassen müssen jedoch von 8216TRemotable8217 abgeleitet werden, wie man hier mit 8216TMyEmployee sehen kann.8217 Ableitung 8216TRemotable8217 ist erforderlich, damit die Basisklasse 8216TRemotable8217 RTTI verwenden kann (Laufzeit-Typ-Information), um die Mitglieder der Nachkommen-Klassen zu lesen und sie zu machen 8216remotable8217 - is, sie können in Web-Streams serialisiert und entsalzt werden. Dies ermöglicht Ihnen, eine 8216TRemotable8217 Klasse zu Ihrem Service zu senden, oder erhalten Sie eine davon zurück. Nur veröffentlichte Eigenschaften können in den Stream geschrieben werden, und es gäbe wenig Punkt-Putting-Methoden auf diese Klassen, also benutze sie als einfache Datentransportklassen und schreibe Helfer, um mit ihnen zu arbeiten. Wechseln Sie nun zur Datei 8216MyServiceImpl. pas8217, um die Implementierung dieser Schnittstelle zu sehen. Beachten Sie, dass jede der Methoden eine entsprechende Methode in der Klasse 8216TMyService8217 hat, die die Schnittstelle 8216IMyService8217 implementiert. Jede dieser Methoden ist ein Stdcall, und sie tun jeweils nichts mehr als Echo die Daten, die die Rückkehr an den Anrufer. Sie können später mehr abenteuerliche Implementierungen ausprobieren, aber jetzt bleiben wir mit diesen Beispielmethoden, die vom Projekt-Assistenten generiert werden. Allerdings gibt es ein Problem Wenn Sie einen Blick auf die Beispielmethode 8216echoMyEmployee8217, die vom Assistenten generiert wird, sehen Sie, dass es ein 8216TMyEmployee8217 als it8217s Ergebnis erstellt, aber es kopiert nicht die Werte des Parameters 8216Value8217 in sie zum Echo. Wir müssen das aufblättern, also ersetzen Sie die Implementierung von 8216TMyService. echoMyEmployee () 8217 mit dem folgenden Code. Jetzt ist unser Service bereit für den Verbrauch und die Prüfung. Konsumieren eines Seifen-Service. Nun, da wir eine Dienstleistung zum Testen haben, können wir eine Client-Anwendung erstellen, um den Service zu konsumieren. Anstatt ein neues Projekt aus dem Hauptmenü zu starten, bauen wir es in der gleichen Projektgruppe wie das StandAloneService-Projekt. Auf diese Weise können wir sie beide gleichzeitig ausführen und auch debuggen. Im Projekt-Explorer klicken Sie mit der rechten Maustaste auf 8216ProjectGroup18217 und wählen Sie 8216Add Neues Project8217 - gt 8216VCL Forms Application8217 Jetzt können Sie das Projekt in unsere Verzeichnisstruktur speichern, wählen Sie 8220File Speichern Alll82218230 Speichern Sie die Dateien wie folgt8230 SoapServiceSampleClientformsformMain. pas (umbenannt von Unit2.pas) SoapServiceSampleClientprojectsSOAPClient. Dproj (umbenannt von Projectltxgt. pas) SoapServiceSampleSoapGroup. groupproj (umbenannt von ProjectGroup1.groupproj) Ab diesem Zeitpunkt können wir mehrere Projekte (Server und Client-Seite) öffnen, indem wir die Datei 8216SoapGroup. groupproj8217 öffnen. Nun, um unseren Web-Service zu konsumieren, müssen wir die WSDL-Datei in unsere Client-Anwendung importieren. Um dies zu tun, sollte der Service laufen, also im Projektmanager doppelklicken Sie auf 8216StandAloneService8217, um ihn als Standardprojekt einzustellen (markiert). Führen Sie nun das Projekt mit der Option 8220Run ohne debugging8221 aus. It8217s wichtig, dass Sie dies wählen und nicht die 8220Run mit debugging8221 Option, denn während die IDE Debugging eine Anwendung es won8217t erlauben Ihnen, eine andere laufen. Dies wird später noch wichtiger, wenn wir gleichzeitig die StandAloneService - und SOAPClient-Projekte ausführen möchten. We8217ll immer ein Debugging ein, während das Ausführen der anderen ohne Debugging. Klicken Sie auf die Schaltfläche Start, um sicherzustellen, dass der Dienst läuft und verfügbar ist. Verlassen Sie diesen Vorgang und zurück in die IDE, doppelklicken Sie auf das Projekt 8216SOAPClient. exe8217 im Projektmanager, um es als Standard festzulegen. Nun, Kopf bis zu 8220File Neue Andere - gt Delphi-Projekte WebServices WSDL Importer8221 (kann mit Delphi Rad Studio Version oder Edition variieren 8220Delphi Projects8221 Schritt muss möglicherweise weggelassen werden.) Fügen Sie im Import-Assistenten die URL der WSDL für die Schnittstelle (Endpunkt), die Sie aus dem Dienst importieren möchten. Lassen Sie die anderen Optionen, es sei denn, Sie wissen, dass you8217re mit einem Proxy, und klicken Sie auf Weiter. Auf den nächsten Assistenten klicken Sie einfach auf den nächsten und lassen Sie den Assistenten Sorgen um die SOAP-Versionierung für Sie8230 Die nächste Assistent-Seite bietet einen Schuss von Optionen, die Sie anpassen können, um die Art und Weise ändern, dass der WSDL-Parser funktioniert. Damit können Sie WSDL-Dateien importieren, die in ihren Implementierungen variieren, für die Interoperabilität mit anderen SOAP-Frameworks, einschließlich Microsofts WCF Framework zum Beispiel. Da wir mit einem Delphi SOAP Service arbeiten, müssen wir irgendwelche dieser Einstellungen ändern, also einfach auf 8216Finish8217 klicken. Die Delphi IDE hat nun eine neue Einheit erstellt, die sie 8220IMyService18221 8211 I8217m nicht als Fan dieser Namenskonvention benannt hat (mit einem 822018221) und wir können das Gerät umbenennen zu 8220IMyService8221, da es bereits einen Bezeichner namens 8220IMyService8221 innerhalb des Gerätes gibt. So können wir diese Datei als 8220unitIMyService. pas8221 in 8220SoapServiceSampleClientunitsunitIMyService. pas8221 speichern. Wir haben jetzt alles, was wir innerhalb der Client-Anwendung benötigen, um den Service anzurufen, den wir früher geschrieben haben, aber wir haben keine UI für unsere Anwendung. Lets bauen ein. In der IDE wechseln Sie zu formMain und löschen zwei TGroupBox-Steuerelemente und ein TButton-Steuerelement aus der Werkzeugpalette. Setzen Sie die Eigenschaft 8216Caption8217 jedes Gruppenfelds, um 8220Request8221 bzw. 8220Response8221 zu lesen. Setzen Sie auch die Schaltfläche 8216Caption8217 Eigenschaft zu lesen 8220Echo8221 In jedem Gruppenfeld, legen Sie drei 8216TLabel8217 Steuerelemente, zwei 8216TEdit8217 Steuerelemente und eine 8216TSpinEdit8217 Steuerung, wie folgt8230 angeordnet (beachten Sie Ihre Bearbeitungsfelder können Text, wo meine nicht, don8217t Sorgen darüber.) Jetzt müssen wir die Eigenschaft 8216Caption8217 von jedem der Etiketten innerhalb des Anforderungsfeldes setzen, um 8216First Name8217 zu lesen. 8216Last Name8217, 8216Salary8217 beziehungsweise. Wiederholen Sie das gleiche für die Etiketten in der Antwortbox. Möglicherweise müssen Sie die Größe und die Position der Bedienelemente anpassen, damit alle Etiketten gut passen. Nun legen wir die Eigenschaft 8216Name8217 von jedem der Bearbeitungs - und Spin-Edit-Steuerelemente fest. Für diejenigen, die in der Anforderung Feld we8217ll Namen sie 8216edtReqFirstName8217, 8216edtReqLastName8217 und 8216spedReqSalary8217 jeweils. Für diejenigen in der Antwort-Box we8217ll Namen sie 8216edtResFirstName8217, 8216edtResLastName8217, 8216spedResSalary8217. Setzen Sie auch die Eigenschaft 8216Text8217 für jedes der Bearbeitungsfelder auf einen leeren String. Schließlich doppelklicken Sie auf die Schaltfläche, um it8217s 8216OnClick8217 Handler einzustellen, und fügen Sie den folgenden Code8230 hinzu. Denken Sie auch daran, unitIMyService zur Verwendungsliste des Hauptformulars hinzuzufügen. Jetzt können Sie diesen Service testen. Ihr 8216StandAloneService. exe8217 Server sollte immer noch im Hintergrund laufen, aber wenn es isn8217t ist, gehen Sie und machen es das Standardprojekt im Projektmanager und schlagen Sie die 8220Run ohne debugging8221 Schaltfläche. Don8217t vergessen, auf it8217s 8220Start8221 Button zu klicken, und dann wieder auf die IDE und setze 8216SOAPClient. exe8217 als Standard-Projekt wieder. Führen Sie das SOAPClient. exe-Projekt aus und Sie werden mit dem folgenden8230 vorgestellt. Gehen Sie voran und geben Sie Ihren Vornamen, den Nachnamen und eine beliebige Nummer für ein Gehalt in der Gehaltsbox unter Anfrage ein. Anmerkung: I8217ve klemmte die Gehaltsbox zu ganzzahligen Werten nur für Bequemlichkeit, weil ich beschlossen habe, die 8216TSpinEdit8217 Steuerung für dieses Beispiel zu verwenden. Klicken Sie auf die Schaltfläche 8216Echo8217. Wenn alles gut gegangen ist, solltest du das folgende sehen8230 Aufregendes isn8217t es Wenn du auf diese Schaltfläche geklickt hast, wurden die Werte im Request-Feld verpackt und an die Server 8216echoMyEmployee8217-Methode verschickt, die sie in eine Antwort kopiert und zurückgesandt hat. Das Ergebnis wurde dann in die Antwortbox entfaltet. Sie haben einfach Ihren SOAP-Service angerufen, herzlichen Glückwunsch. Dies ist, wo Sie brechen sollten von diesem Lesen und gehen Experiment mit der 8216echoMyEmployee8217 Methode anspruchsvoller, oder vielleicht neue Methoden von Ihren eigenen hinzufügen. Als Nebennote können Sie neue Schnittstellen (Endpunkte) hinzufügen, indem Sie das Serverprojekt als Standardprojekt festlegen und dann 8220File New Other - gt Delphi Projects - gt Web Services - gt SOAP Server Interface8221 und nach dem Assistenten auswählen. Wenn du mit neuen Schnittstellen experimentierst, neue Methoden und mache den Service irgendwelche alten Dinge, die du magst, komm zurück und sehe, wie man es in ein ISAP verwandelt, das du für die Installation in einen IIS-Server verpacken kannst. Aufbau eines ISAPI-SOAP-Dienstes für IIS. Zu Beginn dieses Beitrags habe ich versprochen, dass I8217d Ihnen zeigen, wie Sie Ihren Web-Service von der eigenständigen Service-Datei, die wir aufgebaut haben, an ein ISAPI-Plugin für IIS-Server übertragen können. Also hier ist es Öffnen Sie die 8216SoapGroup8217 Projektgruppe, die wir früher erstellt haben, und klicken Sie im Projektmanager mit der rechten Maustaste auf 8216SoapGroup8217 und wählen Sie 8216Add New Project8217 Jetzt wählen Sie 8220Delphi Projects - gt WebServices - gt SOAP Server Application8221 Wir haben diesen Assistenten bereits bei der Erstellung eines SOAP-Dienstes durchgemacht Als eigenständiger Service. Diesmal aber wählen wir 8220ISAPI Dynamic Link Library8221 von dieser Seite des Wizard8230 Führen Sie den Rest des Assistenten aus, wie wir es früher getan haben, bis Sie zu diesem Dialog kommen8230 Diesmal klicken Sie auf 8220NO8221, da wir bereits eine Schnittstelle im eigenständigen Projekt haben Wir wollen importieren Jetzt vor dem Speichern Ihres neuen Projektes, klicken Sie mit der rechten Maustaste auf 8216WebModuleUnit1.pas8217 im Projektmanager und wählen Sie 8220Remove From Project8221. Seien Sie sicher, dass Sie dies aus dem neuen Projekt entfernen und nicht das unter 8220StandAloneService. exe8221 Es werden zwei Dialoge angezeigt, die zuerst fragen, ob Sie das Modul aus dem Projekt entfernen möchten, klicken Sie auf 8220YES8221 Der zweite Dialog fragt, ob Sie möchten Um das Modul zu retten, haben wir schon eins in einem anderen Projekt, das wir planen zu importieren. So sagen Sie diesen Dialog 8220NO8221 Nun, da das Modul entfernt ist, gehen Sie vor und wählen Sie Alle speichern. Sie kennen den Bohrer, speichern Sie die Projektdatei als 8220SoapServiceSampleServerprojectsISAPIService. pas8221 Sie haben jetzt ein ISAPI-Projekt, aber es tut nichts, hat keine Module, um Anfragen an Services zu vermarkten, und keine Dienste, um sie zu marschieren. Also müssen wir diese Dinge aus unserem bisherigen eigenständigen Projekt importieren. Klicken Sie im Projektmanager mit der rechten Maustaste auf Ihr Projekt 8220ISAPIService. dll8221 und wählen Sie im Menü die Option 8220Add8221 aus. Navigieren Sie zu 8216SoapServiceSampleServerunits8217 und wählen Sie alle drei Dateien aus. Sobald Sie auf 8220Open8221 klicken, sehen Sie, dass die drei Dateien aus dem Projekt 8216StandAloneService. exe8217 jetzt auch Teil des Projekts 8216ISAPIService. dll8217 sind. Als wichtiger Hinweis. Das Webmodul und die Schnittstellen werden nun zwischen den beiden Projekten geteilt. Dies bedeutet, dass Sie das 8216StandAloneService. exe8217-Projekt innerhalb des IDE-Debuggers verwenden können, um Ihren Dienst zu testen, bevor Sie die Datei 8216ISAPIService. dll8217 auf Ihren IIS-Server hochladen. Sollten Sie Schnittstellen zu einem Projekt hinzufügen, sollten Sie die 8220Add8221-Option verwenden, die wir oben verwendet haben, um sie in den anderen zu importieren, und natürlich wissen Sie, dass alle anderen Änderungen an diesen Quelldateien beide Projekte beeinträchtigen. Klicken Sie mit der rechten Maustaste auf 8220ISAPIService. dll8221 und wählen Sie 8220Build8221 aus dem Menü, das auftaucht. Sobald das Gebäude komplett ist, gehen Sie und werfen Sie einen Blick in 8220SoapServiceSampleServerprojectsWin32Debug8221 und you8217ll sehen eine Datei mit dem Namen 8220ISAPIService. dll8221 Dies ist effektiv die DLL, die you8217ll wollen, um auf Ihrem IIS-Server hochladen. In der Vorgabe ist dies jedoch eine 32-Bit-DLL und wurde mit dem Debug-Build-Profil erstellt. Moderne IIS-Server sind 64-Bit-Server, also geh zurück in die IDE und füge das 64-Bit-Ziel und ein Release-Build-Profil zu deinem Projekt hinzu. That8217s es Sie haben einen SOAP-Dienst im Stand-alone - und IIS-Plugin-Formular und eine Client-Applikation, die zum Testen verwendet werden kann. So einfach warst du nicht in der Lage, meine Anweisungen oben aus irgendeinem Grund zu befolgen, I8217ve fügte die Projektdatei zu meinem öffentlichen Subversion Repository bei :: Edit: Der Subversion Server wurde stillgelegt. Ersetzte svn Link mit herunterladbarer Zip-Datei, hier herunterladen: SoapServiceSample
No comments:
Post a Comment