Inicio > Delphi > DelphiMVCFramework; Framework REST para Delphi

DelphiMVCFramework; Framework REST para Delphi

viernes, 23 de octubre de 2020 Dejar un comentario Ir a comentarios

La verdad es que cuesta definir DelphiMVCFramework en pocas palabras para colocarlas en el título de esta entrada. He optado por definirlo como un “Framework REST” para Delphi, aunque es más que eso; En la página del proyecto se define como:

Delphi framework which provides an easy to use, scalable, flexible RESTful, JSON-RPC and ActiveRecord framework for Delphi developers.

DMVCFramework services can be compiled as console application, Windows Service, Linux daemon, Apache module (Windows and Linux) and IIS ISAPI (Windows).dmvcframework_logo

Personalmente creo que es una buena opción (junto con DataSnap) tanto para proyectos nuevos a desarrollar, como para dotar a los proyectos actuales que tenemos en Delphi, de una “puerta de entrada” a interactuar con otros lenguajes, pensando en font-ends web y aplicaciones móviles.

Iré añadiendo los enlaces a las entradas de la serie:

Entrada 1: DelphiMVCFramework; Framework REST para Delphi
Entrada 2: DelphiMVCFramework; Primeros pasos
Entrada 3: DelphiMVCFramework; Acciones básicas (GET, POST, PUT y DELETE)
Entrada 4: DelphiMVCFramework; Soporte para ActiveRecord

Actualmente estoy evaluando este software, me perece muy interesante y la idea es aprovechar para mostrar algunas de sus posibilidades en el blog.

El proyecto es OpenSource y está alojado en Github. Actualmente funciona con Delphi para versiones 10 Seatle y superiores.

https://github.com/danieleteti/delphimvcframework/

Además hace poco que Daniele Teti ha publicado la guía oficial de la que ya hablé en la última entrada del blog. Actualmente está disponible en inglés, en portugués/brasileño y traduciéndose al Español (gran noticia por cierto) y que está al 20%.

DESCARGA E INSTALACIÓN

La “puesta en marcha” para empezar a trabajar con DMVC (a partir de ahora me referiré al Framework así para abreviar) es bastante sencilla y simple. En apenas 5 minutos podemos tenerlo funcionando y ejecutando algún ejemplo que nos devuelva resultados.

Desde la página de Github descargamos el proyecto (actualmente en la versión 2.3 “boron”) o clonar el repositorio vía Git.

Si optamos por descargar el ZIP, basta con descomprimirlo en un directorio y tendremos una estructura de carpetas similar a esta:

image

Compilamos los tres paquetes e instalamos el último, que es el que corresponde a la parte visual. No incluye componentes, pero si un par de asistentes para generar proyectos y units.

image

CREANDO EL PRIMER PROYECTO

Una vez compilados los paquetes, podemos usar el asistente para generar nuestro primer proyecto. Seleccionamos File/New/Other y escogemos “DelphiMVCFramework Project”.

Esto abrirá el Wizard y bastará para nuestra primera prueba con aceptarlo con los valores que nos propone.

image

Nos permite cambiar el nombre para las 2 units que nos va a crear automáticamente. (1)

Nos permite cambiar el puerto por defecto para nuestro servidor de prueba. (2)

Nos permite seleccionar que el asistente cree algunas acciones y métodos de ejemplo para tenerlos disponibles en el proyecto. (3)

EJECUTAR EL PROYECTO

Si intentamos ejecutar el proyecto, obtendremos un error debido a que nos faltan algunas librerías.

Aquí hay una documentación básica del proyecto, “La guía de puesta en marcha en 5 minutos”, que ya nos avisa de este problema. La solución es añadir estas carpetas a las opciones del proyecto o a las opciones del entorno.

C:\DMVC\sources
C:\DMVC\lib\dmustache
C:\DMVC\lib\loggerpro
C:\DMVC\lib\swagdoc\Source

Una vez hecho esto el proyecto compila y ejecuta sin problemas. Al arrancarlo nos aparece una ventana como esta, que nos indica que el servidor está en marcha:

image

Si ahora arrancamos nuestro navegador con la siguiente URL:

http://localhost:8080/api

Deberíamos ver una página como esta:

image

Esto nos indica que el servidor está funcionando correctamente.

Hasta aquí esta entrada, básica y de introducción a DelphiMVCFramework; Para ilustrarla aquí tenéis un video corto que muestra todo el proceso.

Os adjunto el link al proyecto de ejemplo.

Un saludo y hasta la próxima.

5/5 - (2 votos)
Categories: Delphi Tags:
  1. jueves, 29 de octubre de 2020 a las 20:14 | #1

    Buenas al instalarlo me da un error en la siguiente linea:
    lNullableTDateTime := TDateTime(aValue.AsExtended);

    [dcc32 Error] MVCFramework.ActiveRecord.pas(2271): E2089 Invalid typecast
    [dcc32 Fatal Error] dmvcframeworkRT.dpk(51): F2063 Could not compile used unit ‘MVCFramework.ActiveRecord.pas’

  2. viernes, 30 de octubre de 2020 a las 08:07 | #2

    @BERTHGENIS
    Hola.
    He compilado el proyecto en varias versiones de delphi sin problemas.
    ¿Qué versión de delphi estás utilizando?
    Revisa que estén compilando el package correspondiente a la versión de Delphi que estás utiliazando.
    También puedes probar a descargar otra versión desde el repositorio.

  3. Rolphy Reyes
    martes, 22 de diciembre de 2020 a las 19:43 | #3

    Saludos.

    Tengo ese mismo error, la versión es Delphi Berlin Update 2.

  4. miércoles, 23 de diciembre de 2020 a las 08:12 | #4

    @Rolphy Reyes
    Hola Rolphy.
    Te comento lo mimo que al anterior usuario.
    Intenta descargar otra versión del repositorio, a veces la ultimas Builds o versiones pueden tener algun problema de este estilo.

  5. Rolphy Reyes
    miércoles, 23 de diciembre de 2020 a las 14:28 | #5

    @Germán Estévez
    Hola Netfali!
    Hice eso y aún falla; incluso el wizard dice 3.2.2 (nitrogen).

    Publique varios post en el grupo de Facebook, a ver si alguien puede comentar.

    El error lo resolví, cambiando:
    lNullableTDateTime := TDateTime(aValue.AsExtended);
    por:
    lNullableTDateTime := TDateTime(aValue.AsVariant);

    No sé si esa sería la corrección adecuada, con eso compila y se instala sin mayores inconvenientes.

  6. Alberto
    jueves, 8 de abril de 2021 a las 20:38 | #6

    Hola, Netfali.

    ¿Cómo puedo generar un archivo dll isapi a partir de un proyecto mvc framework?

    Saludos

  7. viernes, 9 de abril de 2021 a las 07:29 | #7

    @Alberto
    Hola Alberto.
    No hay mucha documentación, pero tienes algo aquí referente a ISAPI:
    https://danieleteti.gitbooks.io/delphimvcframework/content/chapterdeploy_iis.html

    En lo personal no he desarrollado un módulo ISAPI en DMVC. Debería ser igual que uno estandard de Delphi.

  8. Carlos Gimenez
    miércoles, 25 de octubre de 2023 a las 16:23 | #8

    Hola soy nuevo en programación y en Delphi. Tengo que hacer una aplicación y me hablaron de DataSnap. He leído que es preferible DMVC framework.. Cual seria tu opinión y/o consejo al respecto??

  9. martes, 7 de noviembre de 2023 a las 16:50 | #9

    @Carlos Gimenez

    Hola Carlos.
    Como he comentado en las entradas del blog, DMVC Framework me ha gustado mucho y lo veo muy sencillo de utilizar. No creo que haya una respuesta válida para todos los proyectos, habría que evaluar las necesidades.
    Si tu servidor es propio, es posible que para grandes volúmenes Datasnap pueda ser más eficiente. Para pequeños proyectos tal vez optaría por DMVC.
    De todas formas con datasnap tampoco tengo mucha experiencia como para dar referencia «serias».

    Un saludo.

  1. Sin trackbacks aún.