420 likes | 773 Views
WEB. Web-Services in Visual FoxPro 9.0. deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast. Teil 10: Arbeiten mit WebServices. Mittwoch, 19.10.2005, 16:00 – 17:00 Uhr
E N D
WEB Web-Servicesin Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast
Teil 10: Arbeiten mit WebServices • Mittwoch, 19.10.2005, 16:00 – 17:00 Uhr • Beschreibung: Gerne wird Visual FoxPro für die schnelle Anwendungsentwicklung von Desktop-Applikationen oder von Client/Server-Applikationen verwendet. Aber auch die Erstellung von WebServices stellt mit dieser leistungsfähigen Entwicklungsumgebung keinerlei Problem dar! Die schnellen Datenbank- und Stringfunktionen erlauben die leichte Erstellung von performanten Diensten für eine verteilte Anwendung.
Rainer Becker • dFPUG • Online-Angebote • Loseblattsammlung • VFP-Entwicklerkonferenz • VFP-Lokalisierung • Framework Visual Extend • MVP, MCP, ISV • Wizards & Builders GmbH
Wie bekomme ich VFP ? • Update von 6.0, 7.0, 8.0 sowie VS 97 • Nicht von VFP 5.0 oder früher • Internationale und US/Canada-Version • Preisunterschied durch Dollarverfall • Technisch identisch • Kein Support / Marketingbudget für US-Version in BRD • dFPUG bietet exklusiv „Deutsche Version“ • Benutzeroberfläche, Berichtsdesigner, Werkzeuge
Vortragsthemen • Verwendbare WebServices • Aufrufen von WebServices • Begriffe, Versionsgeschichte • Vorbereitungen • SOAP-Toolkit • IIS-Konfiguration • Diverse weitere Hinweise • Andere Möglichkeiten
Vorbemerkungen • Vorbereitend wird immer ein COM-Server benötigt • siehe WebCast 9 Arbeiten mit COM-Server • bitte zuerst erfolgreich einen COM-Server erstellen… • und ggf. ein paar WebServices einfach mal aufrufen… • Die Aufruflogik im Internet ist grundsätzlich unter-schiedlich! Deshalb sind Geschäftsobjekte nur bedingt geeignet & separate COM-Server oft besser! • WebServices müssen streng typisiert sein, was bei COM-Server nur optional ist, ggf PRG-Datei separat • Für das Deployment wird immer ein Windows- WebServer im Internet benötigt…
Verwendbare WebServices • Statt einen WebService selbst anzubieten, kann man erstmal auch nur auf einen solchen zugreifen, z.B.: • FoxWiki (http://fox.wikis.com) • Universal Thread (http://www.universalthread.com) • ProFox (http://www.leafe.com) • FoxCentral (http://www.foxcentral.com) • Google, Amazon, eBay, FedEx, WhoIs, CurrencyConverter, BabelFish, Headline News • dFPUG-Portal (in Vorbereitung) • dFPUG-Forum (in Vorbereitung)
Client für WebServices • Interaktives Testen mit Taskpane • Einbindung in eigene Formulare: • Öffnen des Formulars • Öffnen der Toolbox • Drag & Drop der Klasse WebService auf das Formular • Anwählen der Klasse mit der Maus • Rechte Maustaste für Generatoren (Builder) • Aufruf des XML WebService Builders
Testen: • Parameter eingeben • Ergebnisse als XML • Ergebnisse in Grid
Soviel zum Aufruf von WS • Seit Visual FoxPro 8.0 gibt es umfangreiche Werkzeuge, die den Entwickler beim Aufruf eines WebServices unterstützen… • Bevor man einen eigenen WebService baut, ist es recht sinnvoll, sich das kurz einmal anzuschauen… • Allerdings ist das alleine schon ein Vortrag oder WebCast… • Details finden sich in diversen Artikeln sowie im Updatebuch zu Visual FoxPro 8.0!
Begriffserläuterungen • WSDL: Web Service Description Language • XML-Beschreibung der • WSML: Web Service Meta Language • COM-Referenz, siehe Programme\MSSOAP\SOAP.CHM • UDDI: Universal Description, Discovery, Integration • Verzeichnis von verfügbaren Webdiensten • SOAP: Simple Object Access Protocoll • SOA: Service Oriented Architecture
Versionsgeschichte • Einführung von WebServices in:Visual FoxPro 7.0 mit SOAP-Toolkit 2.0 • Aktuell: Visual FoxPro 9.0 mit SOAP-Toolkit 3.0 • Lifecycle-Support • Visual FoxPro 9.0 bis 2014 • SOAP-Toolkit bis 2013 (NUR für VFP!) • Weiterentwicklung auf Basis von INDIGO • kommt mit WinFX als AddOn für XP sowie in Vista • kapselt VFP-WebServices komplett in .NET
Sinnvolle WebServices in Apps • Beispiele aus dem Framework Visual Extend 9.5: • Posten von Nachrichten in Support-Forum • Senden von Fehlermeldungen in Fehlerdatenbank • Registrierung von Anwendern (Testversion) • Bestellung von Anwendern (Testverison auf Vollversion) • Download von Updates • Bei temporärer Nichtverfügbarkeit eines Internet-zugangs oder des WebServices alternativ eMail… • Für Taskpane kein WebService notwendig…
Vorbereitung des COM-Servers • Erstellungsoption: Multi-Threaded COM-Server • Mindestens1x OLEPUBLIC • 1 WebService jeOLEPUBLIC • Max. 1 Webservice
WebService-Erstellung • Projektinfo Servers: • Multi-Use • Project Name • Multi-Threaded und Multi Use: zwingend notwendig für Internet-Betrieb wg. Hauptspeicher!
WebService Publisher Wizard • Aufruf des WebService-Builders im Projekt • Kontrolle Pfadangabe • Ggf. Auswahl Klasse • Ggf. weitere Optionen
Eventuell erweiterte Optionen einstellen:Umstellung ASP ProjectHook Wsphook in _webservices Speichert unter FOXWS.DBF in _FOXCODE IntelliSense-Script erzeugen lassen Erweiterte Optionen
Virtuelle Verzeichnisse im IIS • Wird automatisch angelegt • Unterschied zwischen Pfad und virtuellem Verzeichnis UND Startzverzeichnis! • Kann leider hier nicht hinreichend behandelt werden
.WSDL (Description) .WSML (Meta/COM) Ggf. zusätzliche ASP-Seite wird direkt aufgerufen ProjectHook für Neugenerierung Ergebnisse des Builders
Anmeldung bei IntelliSense • Eintragen der Klasse unter Types / Web Services im IntelliSense- Manager
Ansprechen von WebServices • IntelliSense erzeugt entsprechenden Code: • und zeigt aufrufbare Methoden zur Auswahl an…
Was geht schief? • Mögliche Probleme (OLE-Fehlermeldungen): • bei Pfaden:Windows/System32(Runtime) • CD JUSTPATH(_VFP.ServerName) • Probleme mit SOAPISAP.DLL (installieren oder ASP)
Registrierung Listener (1) • Registrierung der SOAPISAP.DLL für performantere ISAPI-Listener: • Default-Website, Eigenschaften, Home Directory • Button Configuration • Auswählen der Endung .WSDL
Registrierung Listener (2) • Auswahl von C:\Program Files\Common Files\MSSoap\Binaries\soapisap.dll • Falls nicht sichtbar:INI usw. wählenund ändern • nicht auf XP…
Alternativer Aufruf: SOAP-Client • Statt Installation der Klassen von Visual FoxPro kann man auch direkt mit dem SOAP-Client zugreifen • Codebeispiel: lows = NEWOBJECT("MSSOAP.SoapClient30") lows.MSSoapInit("http://dlabsoftuh.homeip.net/webservices/dlabsoft.wsdl") ? lows.zeittest() • Wesentlich einfachere Zugriffsmöglichkeit!
Minimale Sicherheit einbauen • Internet Informationsdienste • Eigenschaften virtuelles Verzeichnis • Reiter Verzeichnissicherheit • Abschalten anonymer Zugriff • Einschalten Standardauthentifizierung • Erweiterung im Codebeispiel: lows.ConnectorProperty("AuthUser") = "username" lows.ConnectorProperty("AuthPassword")= "password"
Typdeklaration wichtig! • Korrekte Typdefinition für Parameter und Returnwert • Nur programmatisch vollständig möglich, siehe COM • FUNCTION getnews (ldDate as Date) as String • Neupublizierung über Wizard notwendig damit aus <message name='hwpclass.getnews'> </message> • die richtige Definition wird: <message name='hwpclass.getnews'> <part name='ldDate' type='xsd:dateTime'/> </message>
COM-Server indirekt aufrufen • Ggf. aus dem Programm den COM-Server aufrufen DEFINE CLASS MyCOMInterface AS Custom OLEPUBLIC FUNCTION MyMethod (MyParm AS String) AS String LOCAL o AS myclass o = CREATEOBJECT("myclass") RETURN o.MyMethod(MyParm) ENDDEFINE • Dadurch kann man COM-Server beliebig oft ändern, ohne den WebService neu publizieren zu müssen…
Neuerstellung: Freigabe der DLL • Computerverwaltung Restart IIS • oder: IISRESET auf dem DOS-Prompt • oder: KILL.EXE um DLL abzuschiessen
Es geht für manche Verwendungszwecke auch EINFACHER! In manchen Fällen reicht vielleicht auch eine einfachere Lösung: Hinweise auf diverse Beispiele auf http://afp.dfpug.de
Erstellen von AFP-Seiten • Verwendung von Visual FoxPro als Skriptsprache in HTML-Seiten mit Active FoxPro Pages (AFP/AFX): <% FoxPro-Code %> • Diverse Aufrufbeispiele auf http://afp.dfpug.de • Erzeugung von formatierten Tabellen mit Parametern • Rückgabe von RSS • Rückgabe von XML
Webanwendungen:VFX–AFX Wizard • Internet-Formulare per Mausklick! Voraussetzungen: • VFX 9.5 und VFP 9.0 SP1 • AFX • Ähnlich ASP, aber VFP basiert • IIS • FoxPro-Variante in AFX enthalten Skalierbarkeit: • über AFP für viele parallele User / Interneteinsatz
Querverweise (Artikel) • 02-16 Erstellen von Webdiensten mit Visual FoxPro • 06-15 Programmieren Sie Ihre Daten • 06-32 Suchen mit Webdiensten • 06-35 Veröffentlichen Ihres ersten Webdienstes 1 • 06-36 Veröffentlichen Ihres ersten Webdienstes 2 • 06-37 Veröffentlichen Ihres ersten Webdienstes 3 • 07-16 Websuche mit VFP und Google • 01-03 Arbeiten mit Web-Diensten in VFP7 (New18) • Erweiterungen bei COM und Webdiensten in VFP 8.0 • Whats New in Visual FoxPro 7.0 Chapter 15
Querverweise (Vorträge) • E-WRAP.PDF I wish I had a Web Service • D-SOAP Web Services mit VFP und SOAP • D-WEBS Sichere WebServices (Security) • E-SERV Using Web Services with VFP 7.0 • D-SERV Three-Tier Architektur & die Webservices von VFP7 • E-FATX Internet enabling Fat Client applications with XML • D-IUPD Internet-Features für 'alte' Applikationen • NET Chapter 12 XML Web Services • E-SERV Using SQL-Server XML Services
Weiterführendes Material • Visual FoxPro 9.0 • Updatebuch • Roadshow-CD • Lokalisierungs-CD • Visual FoxPro 8.0 • Updatebuch • Deutsche Hilfedatei • Online-Angebote der dFPUG • Forum, Portal, eNewsletter, Homepage, Wiki
Vielen Dank! Fragen an hotline@dfpug.de oder (besser) http://forum.dfpug.de Besuchen Sie unsere Webseiten: http://www.dfpug.de, http://portal.dfpug.de, http://forum.dfpug.de, http://newsletter.dfpug.de, http://devcon.dfpug.de, http://roadshow.dfpug.de, http://www.visualextend.de, http://www.linuxtransfer.de, http://www.visualfoxpro.de
Riddle of the day ? CHRTRAN(CHRTRAN('S6O1 W2S634G 5789', '6789', 'TIME()'), '12345','PAINT()')