2010-12-04 6 views
13

Ich bin mit Delphi herumspielen. Die meisten meiner Desktop-Entwicklung erfolgt in .NET, und eingebettete Systeme mit C. Ich habe einige Web-Entwicklung in RoR & Python (Django, CherryPy) Ich bin daran interessiert, einen Riss bei einem Projekt, das ein Web-Service sein würde (REST oder SOAP) mit einem nativen Client und einem Web-Client.Was sind die aktuellen Entscheidungen für Delphi Web & Web Service Entwicklung

Da ich vor kurzem neu inspiriert wurde, um Delphi zu lernen, bin ich neugierig, welche Möglichkeiten es gibt, den Web Service und Web Client mit Delphi zu erstellen. Der größte Teil der Delphi-Dokumentation ist ein wenig altmodisch, aber bisher habe ich diese Auswahl gefunden:

  • DataSnap
  • WebSnap
  • WebBroker
  • IntraWeb
  • Daten Zusammenfassung und RemObjects SDK von RemObjects

Ich habe den Eindruck, dass WebSnap tot ist, aber die anderen Technologien werden noch entwickelt. Gibt es eine Anleitung, welche Technologie untersucht werden soll?

p.s. Mir ist klar, dass Delphi keine sehr populäre Wahl für Web-Entwicklung ist, aber ich bin neugierig, es zu versuchen, seit ich Spaß daran habe, die VCL zu lernen.

+0

DataSnap und Data Abstract sind Datenzugriffs-Frameworks anstelle von Web-Entwicklungs-Frameworks. Sie können sie in einer Intraweb-, WebBroker- oder WebSnap-Anwendung verwenden, sie enthalten jedoch keine webspezifischen Funktionen. – LachlanG

+0

Habe ich Recht, wenn ich denke, dass DataSnap und/oder DataAbstract in der Lage wäre, einen Webservice zu erstellen?Es stellte sich heraus, dass DataSnap als Framework für die Erstellung von REST-Services beworben wurde, aber vielleicht missverstanden. Wenn dem so ist, scheint es, als würden diese die Service-Seite meines Projekts füllen. – gbc

+0

ähnliche Frage: http://stackoverflow.com/questions/3793112/what-web-application-framework-for-delphi-is-recommedified – mjn

Antwort

4

RESTful serverseitige Methodenaufrufe als ISAPI-DLL gehostet oder verwenden Sie einfach die Indy HTTP Server-Komponente. Es ist wirklich eine ziemlich einfache und leistungsfähige Annäherung und lässt Sie schnell ohne eine große Lernkurve beginnen.

+0

Ich mag diesen Ansatz auch. Es ist einfach, aber flexibel und hat nicht viele Abstraktionsschichten. In vielen Fällen ist es gerade genug. – Runner

+0

Ich meinte den ISAPI-Ansatz. Sie können dieses Ereignis Indy HTTP verwenden, um die ISAPI zu hosten oder einfach Apache oder IIS zu verwenden. – Runner

+2

... aber Sie müssen alle RESTful-Mechanismen von Hand codieren, d. H. Alle XML/JSON-Generierung/Parsing durchführen, da das Indy-HTTP-Serverziel darin besteht, HTTP-Seiten zu bedienen. Es klingt besser für mich, sich auf ein höheres Framework zu verlassen, basierend auf Indy, wenn du willst. –

2

Wir haben ein Web-Frontend für unsere Delphi-Server-App in Delphi Prism/ASP.NET geschrieben. Es funktioniert hervorragend und ermöglicht es uns, unsere Delphi-Sprachkenntnisse in einer .NET-Umgebung zu nutzen.

+0

Danke für den Vorschlag. Ist Ihre Delphi-Server-App in nativem Win32-Delphi mit nur einem ASP.Net-Frontend geschrieben oder ist das Ganze ein Prism-Projekt? – gbc

+1

Wir verwenden DataAbstract von RemObjects (http://www.dataabstract.com/). Es ermöglicht uns, den Server in nativem Delphi-Code zu schreiben und eine Verbindung zu ihm über praktisch jede von uns gewählte Methode herzustellen. Ihr Framework generiert automatisch alle Interface-Klassen für Ihren Server und Sie rufen einfach die Methoden auf, die es verfügbar macht. – norgepaul

+0

Ah, ausgezeichnet. Ich wusste nichts über DataAbstract. Ich werde das überprüfen! – gbc

3

WebHub ist ein weiteres gut etabliertes, wenn auch weniger bekanntes Drittanbieter-Delphi-Web-Framework.

3

Weitere Optionen, die verwendet werden können, um einen Webservices-Server zu erstellen, etwas ähnlich zu datasnap oder remobjects/dataabstract, sind unten aufgeführt. Ich habe vor Jahren mit kbmMW gearbeitet und es ist eine solide Bibliothek. Ich denke, beide kbmMW und RealThinCLient haben frei und/oder Open-Source-Versionen:

RealThinClient

kbmMW

5

Web Service Toolkit ist ein Web-Service-Paket für FPC, Lazarus und Delphi; "Web Service Toolkit" soll den Verbrauch und die Erstellung von Web Services durch FPC-, Lazarus- und Delphi-Benutzer erleichtern. Überprüfen Sie besser von Svn, wie die Version 0.5 tatsächlich veraltet ist.

+0

+1 für die Förderung von Open Source !! – ComputerSaysNo

+0

vielen Dank, ich hatte noch nichts von diesem gehört. – gbc

6

Sie könnten unsere Synopse SQLite3 Framework vielleicht zu Ihrer Liste hinzufügen.

Es gibt einige interresting Features:

  • ORM Ansatz zur Verwaltung Ihrer Daten (dDefinieren und Zugreifen auf Ihre Daten als reguläre Delphi-Klassen), sowohl auf Server- als auch auf Client-Seite - ähnlich wie bei ActiveRecord in RoR;);
  • Multi-tier architectured;
  • keine Datenbank oder DLL zu implementieren (verwendet Embedded SQLite, ohne externe DLL) - Sie können nicht einmal SQLite verwenden, aber eine einfache und schnelle In-Memory-Datenbank in reinem Delphi geschrieben (ich habe begonnen fork of Zeos, zu sein datenbankunabhängig);
  • Sehr optimierter HTTP/1.1-Multi-Thread-Server (aber Sie können über andere Protokolle oder sogar rein lokal innerhalb desselben Prozesses ohne Client/Server kommunizieren);
  • Datenübertragung verwendet Standard-JSON, so dass Sie die gleichen Daten entweder in einem Delphi-Client, einem AJAX-Client, erhalten können;
  • Client/Server ist RESTful und in sehr optimiertem Delphi-Code geschrieben (einige Teile wurden sogar in ASM nach Profiling geschrieben, für Geschwindigkeit und wenig Speicher);
  • Kann auch verwendet werden, um DataSnap-ähnliche Client-Server JSON RESTful Services zu definieren, wenn der REST-Ansatz nicht genug für Sie ist;
  • Vollständige Open Source, kompiliert und funktioniert von Delphi 6 bis XE (mit voller Unicode-Unterstützung für alle Versionen, weil es auf UTF-8 aus dem Motorkern basiert).
+0

Ich werde das definitiv anschauen. Danke, dass du es aufgezeigt hast, es ist ein anderer Rahmen, von dem ich noch nichts gehört habe. – gbc

+1

Update: viel Arbeit seit dieser Zeit. Sie können Dienste über Schnittstellen definieren. Und Sie können beliebige DB-Schichten (MS SQL, Oracle, OleDB) verwenden. Siehe http://mormot.net - es hat seinen Namen in mORMot geändert, da es jetzt nicht auf SQLite3 beschränkt ist. –

4

DelphiMVCFramework ist eine leistungsstarke auch für Website-Entwicklung https://github.com/danieleteti/delphimvcframework

DMVCFramework verfügt verwendet RESTful Rahmen

  • RESTful (RMM Stufe 3) konform
  • Fancy URL mit dem Parameter-Zuordnungen
  • Serverseitig generierte Seiten mit Moustache-Vorlagen
  • Messaging-Erweiterung mit STOMP und Apache ActiveMQ oder Apache Apollo (beta)
  • Kann in Lastenausgleich Umgebung mit Redis oder MySQL als State-Server
  • Integrated RESTClient
  • Arbeiten mit DelphiXE3 oder besser
  • Integrated verwendet werden Logging System
  • Es ist wirklich einfach zu bedienen. Sie können in wenigen Minuten produktiv sein!

Hier ist der DMVCFramework Developers Guide https://danieleteti.gitbooks.io/delphimvcframework/content/

Wenn Sie Unterstützung benötigen, die Gruppe mit mehr als 600 Benutzern https://www.facebook.com/groups/delphimvcframework/

ich die wichtigsten Entwickler sind offiziellen Facebook, aber es gibt mehr als 6 aktive Mitwirkende.

1

Dieser ist sehr alt, aber eine Menge Dinge haben sich geändert, ich selbst hatte Intraweb verlassen und ging zu UNIGUI, da es auf EXTJS basiert und einseitige Anwendungen erzeugt.