Introducció

El desenvolupament web amb Delphi permet crear aplicacions web robustes i eficients utilitzant les capacitats del llenguatge Object Pascal i les eines proporcionades per l'entorn de desenvolupament integrat (IDE) de Delphi. En aquest tema, explorarem les eines i les tècniques necessàries per desenvolupar aplicacions web amb Delphi.

Continguts

  1. Introducció a les Tecnologies Web en Delphi
  2. Configuració de l'Entorn per al Desenvolupament Web
  3. Creació d'un Projecte Web amb Delphi
  4. Desenvolupament de la Lògica del Servidor
  5. Interfície d'Usuari Web
  6. Connexió amb Bases de Dades
  7. Desplegament d'Aplicacions Web

  1. Introducció a les Tecnologies Web en Delphi

Delphi ofereix diverses tecnologies per al desenvolupament web, incloent:

  • WebBroker: Un marc lleuger per a la creació d'aplicacions web basades en CGI, ISAPI o NSAPI.
  • DataSnap: Permet la creació de serveis de dades de múltiples capes que poden ser consumits per aplicacions web.
  • RAD Server: Una plataforma per a la creació de serveis RESTful i aplicacions web modernes.

  1. Configuració de l'Entorn per al Desenvolupament Web

Instal·lació de Delphi

Assegura't de tenir instal·lada la versió més recent de Delphi. Pots descarregar-la des del lloc web oficial d'Embarcadero.

Configuració del Servidor Web

Per desenvolupar aplicacions web, necessitaràs un servidor web. Pots utilitzar servidors com Apache o IIS. A continuació, es mostra com configurar Apache:

  1. Descarrega i instal·la Apache des del lloc web oficial.
  2. Configura Apache per treballar amb Delphi:
    • Edita el fitxer httpd.conf per afegir el suport per a CGI.
    • Assegura't que el directori CGI estigui configurat correctament.

  1. Creació d'un Projecte Web amb Delphi

Pas 1: Crear un Nou Projecte WebBroker

  1. Obre Delphi i selecciona File > New > Other.
  2. A la finestra de diàleg, selecciona WebBroker Application.
  3. Tria el tipus de servidor (CGI, ISAPI, etc.) i fes clic a OK.

Pas 2: Configurar el Projecte

  1. Configura les propietats del projecte segons les teves necessitats.
  2. Afegeix els mòduls necessaris per gestionar les sol·licituds HTTP.

Exemple de Codi

unit WebModuleUnit1;

interface

uses
  System.SysUtils, System.Classes, Web.HTTPApp;

type
  TWebModule1 = class(TWebModule)
    procedure WebModule1DefaultHandlerAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  WebModule1: TWebModule1;

implementation

{%CLASSGROUP 'System.Classes.TPersistent'}

{$R *.dfm}

procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  Response.Content := '<html><body><h1>Hello, World!</h1></body></html>';
  Handled := True;
end;

end.

  1. Desenvolupament de la Lògica del Servidor

Gestió de Sol·licituds HTTP

Utilitza els mòduls de WebBroker per gestionar diferents tipus de sol·licituds HTTP (GET, POST, etc.). Pots definir diferents accions per a cada tipus de sol·licitud.

Exemple de Gestió de Sol·licituds POST

procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  if Request.Method = 'POST' then
  begin
    // Processar dades del formulari
    Response.Content := '<html><body><h1>Data Received</h1></body></html>';
  end
  else
  begin
    Response.Content := '<html><body><h1>Unsupported Method</h1></body></html>';
  end;
  Handled := True;
end;

  1. Interfície d'Usuari Web

Generació de Contingut HTML

Pots generar contingut HTML dinàmicament des del servidor utilitzant Delphi. Això et permet crear interfícies d'usuari web personalitzades.

Exemple de Generació de Formulari HTML

procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  Response.Content := '<html><body>' +
                      '<form method="POST" action="">' +
                      '<label for="name">Name:</label>' +
                      '<input type="text" id="name" name="name">' +
                      '<input type="submit" value="Submit">' +
                      '</form>' +
                      '</body></html>';
  Handled := True;
end;

  1. Connexió amb Bases de Dades

Utilització de DataSnap

DataSnap permet connectar-se a bases de dades i proporcionar serveis de dades a les aplicacions web.

Exemple de Connexió a una Base de Dades

procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
  Conn: TSQLConnection;
  Query: TSQLQuery;
begin
  Conn := TSQLConnection.Create(nil);
  try
    Conn.DriverName := 'MySQL';
    Conn.Params.Values['HostName'] := 'localhost';
    Conn.Params.Values['Database'] := 'testdb';
    Conn.Params.Values['User_Name'] := 'root';
    Conn.Params.Values['Password'] := 'password';
    Conn.Open;

    Query := TSQLQuery.Create(nil);
    try
      Query.SQLConnection := Conn;
      Query.SQL.Text := 'SELECT * FROM users';
      Query.Open;

      Response.Content := '<html><body><table>';
      while not Query.Eof do
      begin
        Response.Content := Response.Content + '<tr><td>' + Query.FieldByName('name').AsString + '</td></tr>';
        Query.Next;
      end;
      Response.Content := Response.Content + '</table></body></html>';
    finally
      Query.Free;
    end;
  finally
    Conn.Free;
  end;
  Handled := True;
end;

  1. Desplegament d'Aplicacions Web

Preparació del Servidor

Assegura't que el servidor web estigui configurat correctament per executar aplicacions CGI o ISAPI.

Desplegament de l'Aplicació

  1. Compila el projecte en Delphi.
  2. Copia els fitxers generats al directori del servidor web.
  3. Configura el servidor web per reconèixer i executar els fitxers CGI o ISAPI.

Exercicis Pràctics

Exercici 1: Crear una Pàgina Web Simple

Crea una aplicació WebBroker que mostri una pàgina web amb un missatge de benvinguda.

Exercici 2: Formulari de Submissió

Crea un formulari HTML que permeti als usuaris enviar el seu nom i mostri un missatge de benvinguda personalitzat.

Exercici 3: Connexió a una Base de Dades

Crea una aplicació que es connecti a una base de dades i mostri una llista d'usuaris en una taula HTML.

Solucions

Solució a l'Exercici 1

procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  Response.Content := '<html><body><h1>Welcome to My Web Application</h1></body></html>';
  Handled := True;
end;

Solució a l'Exercici 2

procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
  if Request.Method = 'POST' then
  begin
    Response.Content := '<html><body><h1>Hello, ' + Request.ContentFields.Values['name'] + '!</h1></body></html>';
  end
  else
  begin
    Response.Content := '<html><body>' +
                        '<form method="POST" action="">' +
                        '<label for="name">Name:</label>' +
                        '<input type="text" id="name" name="name">' +
                        '<input type="submit" value="Submit">' +
                        '</form>' +
                        '</body></html>';
  end;
  Handled := True;
end;

Solució a l'Exercici 3

procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
var
  Conn: TSQLConnection;
  Query: TSQLQuery;
begin
  Conn := TSQLConnection.Create(nil);
  try
    Conn.DriverName := 'MySQL';
    Conn.Params.Values['HostName'] := 'localhost';
    Conn.Params.Values['Database'] := 'testdb';
    Conn.Params.Values['User_Name'] := 'root';
    Conn.Params.Values['Password'] := 'password';
    Conn.Open;

    Query := TSQLQuery.Create(nil);
    try
      Query.SQLConnection := Conn;
      Query.SQL.Text := 'SELECT * FROM users';
      Query.Open;

      Response.Content := '<html><body><table>';
      while not Query.Eof do
      begin
        Response.Content := Response.Content + '<tr><td>' + Query.FieldByName('name').AsString + '</td></tr>';
        Query.Next;
      end;
      Response.Content := Response.Content + '</table></body></html>';
    finally
      Query.Free;
    end;
  finally
    Conn.Free;
  end;
  Handled := True;
end;

Conclusió

En aquest tema, hem explorat les bases del desenvolupament web amb Delphi, incloent la configuració de l'entorn, la creació de projectes web, la gestió de sol·licituds HTTP, la generació de contingut HTML, la connexió amb bases de dades i el desplegament d'aplicacions web. Amb aquests coneixements, estàs preparat per començar a desenvolupar aplicacions web robustes i eficients amb Delphi.

Curs de Programació Delphi/Object Pascal

Mòdul 1: Introducció a Delphi/Object Pascal

Mòdul 2: Estructures de Control i Procediments

Mòdul 3: Treballant amb Dades

Mòdul 4: Programació Orientada a Objectes

Mòdul 5: Funcions Avançades de Delphi

Mòdul 6: Desenvolupament d'Interfícies Gràfiques amb VCL i FMX

Mòdul 7: Desenvolupament Web i Mòbil

Mòdul 8: Millors Pràctiques i Patrons de Disseny

Mòdul 9: Projecte Final

© Copyright 2024. Tots els drets reservats