2010-12-04 42 views
13

Estoy jugando con Delphi. La mayor parte del desarrollo de mi escritorio se realiza en .Net y los sistemas integrados con C. He realizado algunos desarrollos web en RoR & Python (Django, CherryPy) Estoy interesado en analizar un proyecto que sería un servicio web (REST o SOAP) con un cliente nativo y un cliente web.¿Cuáles son las opciones actuales para Delphi Web & Web Service Development

Debido a que recientemente me han inspirado para aprender Delphi, me preguntan cuáles son las opciones para construir el servicio web y el cliente web con Delphi. La mayor parte de la documentación de Delphi es un poco anticuado, pero hasta ahora he encontrado estas opciones:

  • DataSnap
  • WebSnap
  • WebBroker
  • IntraWeb
  • resumen de datos y RemObjects SDK desde RemObjects

Tengo la impresión de que WebSnap está muerto, pero las otras tecnologías todavía se están desarrollando. ¿Hay alguna guía sobre qué tecnología investigar?

p.s. Me doy cuenta de que Delphi no es una opción tremendamente popular para el desarrollo web, pero tengo curiosidad por probarlo ya que me he estado divirtiendo aprendiendo el VCL.

+0

DataSnap y Data Abstract son marcos de acceso a datos en lugar de marcos de desarrollo web. Puede usarlos dentro de una aplicación Intraweb, WebBroker o WebSnap pero no le dan características específicas de la web como tales. – LachlanG

+0

¿Estoy en lo cierto al pensar que DataSnap y/o DataAbstract serían capaces de construir un servicio web?Parecía que DataSnap se anunciaba como un marco para la construcción de servicios REST, pero tal vez no entendí bien. Si es así, parece que esos llenarían el lado del servicio de mi proyecto. – gbc

+0

pregunta similar: http://stackoverflow.com/questions/3793112/what-web-application-framework-for-delphi-is-recommended – mjn

Respuesta

4

RESTful llamadas al método del lado del servidor alojadas como ISAPI dll o simplemente usan el componente Indy HTTP Server. Es realmente un enfoque bastante simple y poderoso y le permite comenzar rápidamente sin una gran curva de aprendizaje.

+0

También me gusta este enfoque. Es simple, pero flexible y no tiene muchas capas abstractas. En muchos casos es suficiente. – Runner

+0

Me refiero al enfoque ISAPI. Usted puede usar ese evento Indy HTTP para alojar el ISAPI o simplemente usar Apache o IIS. – Runner

+2

... pero tendrá que codificar todo el mecanismo RESTful a mano, es decir, realizar toda la generación/análisis XML/JSON, porque el objetivo del servidor Indy HTTP es servir páginas HTTP. Me parece mejor confiar en un marco de nivel superior, basado en Indy si lo desea. –

2

Tenemos una interfaz web para nuestra aplicación de servidor Delphi escrita en Delphi Prism/ASP.NET. Funciona de maravilla y nos permite aprovechar nuestras habilidades de lenguaje Delphi en un entorno .NET.

+0

Gracias por la sugerencia. ¿Está su aplicación de servidor Delphi escrita en Win32 Delphi nativo con solo una interfaz ASP.Net o es todo un proyecto de Prism? – gbc

+1

Utilizamos DataAbstract de RemObjects (http://www.dataabstract.com/). Nos permite escribir el servidor en el código Delphi nativo y conectarnos a él usando prácticamente cualquier método que elijamos. Su marco genera automáticamente todas las clases de interfaz para su servidor y simplemente llama a los métodos que expone. – norgepaul

+0

Ah, excelente. No sabía sobre DataAbstract. Lo verificare! – gbc

3

WebHub es otro bien establecido, aunque menos conocido marco web de Delphi.

3

Junte otras opciones que se pueden utilizar para construir un servidor de servicios web, algo similar a datasnap o remobjects/dataabstract, están a continuación. Hice un trabajo hace años con kbmMW y es una biblioteca sólida. Creo que tanto kbmMW y RealThinCLient tienen versiones gratuitas y/o de código abierto:

RealThinClient

kbmMW

5

Web Service Toolkit es un paquete de servicios web para FPC, Lázaro y Delphi; "Web Service Toolkit" está destinado a facilitar el consumo y la creación de servicios web por parte de los usuarios de FPC, Lazarus y Delphi. Es mejor que revises desde svn ya que la versión 0.5 está realmente desactualizada.

+0

+1 para promocionar código abierto !! – ComputerSaysNo

+0

muchas gracias, no había oído hablar de este. – gbc

6

Quizás podría agregar nuestro Synopse SQLite3 Framework a su lista.

Hay algunas características: interresting enfoque

  • ORM para gestionar sus datos (es decir,defina y acceda a sus datos como clases regulares de Delphi), tanto en el servidor como en el lado del cliente, similar a ActiveRecord en RoR;);
  • Multi-tier architectured;
  • no hay base de datos o dll para implementar (usa SQLite incorporado, sin dll externo) - incluso no puede usar SQLite, sino una base de datos en memoria simple y rápida escrita en Delphi puro (he comenzado un fork of Zeos, para ser base de datos independiente);
  • Servidor de múltiples subprocesos HTTP/1.1 muy optimizado (pero puede comunicarse a través de otros protocolos, o incluso de manera puramente local dentro del mismo proceso, sin ningún Cliente/Servidor);
  • La transmisión de datos utiliza JSON estándar, por lo que puede recibir los mismos datos en un cliente Delphi, ya sea un cliente AJAX;
  • Cliente/Servidor es RESTful y está escrito en código Delphi muy optimizado (algunas partes incluso se escribieron en asm después del perfilado, para uso de velocidad y poca memoria);
  • También se puede utilizar para definir DataSnap-like Client-Server JSON RESTful Services, si el enfoque RESTful no es suficiente para usted;
  • Full Open Source, compila y trabaja desde Delphi 6 hasta XE (con compatibilidad completa con Unicode para todas las versiones, porque está basado en UTF-8 desde el núcleo del motor).
+0

Definitivamente voy a ver esto. Gracias por señalarlo, es otro marco del que no había oído hablar. – gbc

+1

Actualización: mucho trabajo desde esta vez. Puede definir servicios a través de interfaces. Y puede usar cualquier capa de base de datos (MS SQL, Oracle, OleDB). Ver http://mormot.net - ha cambiado su nombre a mORMot, ya que no está limitado a SQLite3 ahora. –

4

DelphiMVCFramework es un marco REST alcance usada también para el desarrollo web https://github.com/danieleteti/delphimvcframework

DMVCFramework cuenta

  • REST (RMM Nivel 3) compatible
  • Fantasía URL con asignaciones de parámetros
  • páginas generadas del lado del servidor con plantillas de bigote
  • extensión de mensajería utilizando STOMP y ActiveMQ Apache o Apache Apolo (beta)
  • Puede ser utilizado en el entorno de equilibrado de carga utilizando Redis o MySQL como servidor de estado
  • Integrated RESTClient
  • Works con DelphiXE3 o mejor
  • Integrated Sistema de registro
  • Es realmente simple de usar. ¡Puedes ser productivo en minutos!

Aquí está la DMVCFramework Guía de Desarrolladores https://danieleteti.gitbooks.io/delphimvcframework/content/

Si necesita ayuda, no es el grupo oficial de Facebook con más de 600 usuarios https://www.facebook.com/groups/delphimvcframework/

Soy el desarrollador principal, pero hay más de 6 contribuyentes activos.

1

Este es muy viejo, pero muchas cosas han cambiado, yo mismo había dejado Intraweb y había ido a UNIGUI, ya que está basado en EXTJS y produce aplicaciones de una sola página.

Cuestiones relacionadas