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
- Introducció a les Tecnologies Web en Delphi
- Configuració de l'Entorn per al Desenvolupament Web
- Creació d'un Projecte Web amb Delphi
- Desenvolupament de la Lògica del Servidor
- Interfície d'Usuari Web
- Connexió amb Bases de Dades
- Desplegament d'Aplicacions Web
- 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.
- 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:
- Descarrega i instal·la Apache des del lloc web oficial.
- 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.
- Edita el fitxer
- Creació d'un Projecte Web amb Delphi
Pas 1: Crear un Nou Projecte WebBroker
- Obre Delphi i selecciona File > New > Other.
- A la finestra de diàleg, selecciona WebBroker Application.
- Tria el tipus de servidor (CGI, ISAPI, etc.) i fes clic a OK.
Pas 2: Configurar el Projecte
- Configura les propietats del projecte segons les teves necessitats.
- 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.
- 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;
- 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;
- 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;
- 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ó
- Compila el projecte en Delphi.
- Copia els fitxers generats al directori del servidor web.
- 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
- Introducció a Delphi i Object Pascal
- Configuració de l'Entorn de Desenvolupament
- Primera Aplicació Delphi
- Sintaxi i Estructura Bàsiques
- Variables i Tipus de Dades
Mòdul 2: Estructures de Control i Procediments
- Declaracions Condicionals
- Bucles i Iteració
- Procediments i Funcions
- Abast i Durada de les Variables
- Gestió d'Errors i Depuració
Mòdul 3: Treballant amb Dades
- Arrays i Cadenes
- Registres i Conjunts
- Tipus Enumerats i Subrang
- Gestió d'Arxius
- Accés a Bases de Dades
Mòdul 4: Programació Orientada a Objectes
- Introducció a la POO
- Classes i Objectes
- Herència i Polimorfisme
- Interfícies i Classes Abstractes
- Gestió d'Excepcions en POO
Mòdul 5: Funcions Avançades de Delphi
- Generics i Col·leccions
- Multifil i Programació Paral·lela
- Desenvolupament Basat en Components
- Biblioteca d'Execució de Delphi (RTL)
- Tècniques Avançades de Depuració
Mòdul 6: Desenvolupament d'Interfícies Gràfiques amb VCL i FMX
- Introducció a VCL
- Creació de Formularis i Controls
- Programació Basada en Esdeveniments
- Introducció a FireMonkey (FMX)
- Desenvolupament Multiplataforma amb FMX
Mòdul 7: Desenvolupament Web i Mòbil
- Desenvolupament Web amb Delphi
- Serveis RESTful
- Desenvolupament Mòbil amb Delphi
- Desplegament d'Aplicacions Mòbils
- Integració amb Serveis Web
Mòdul 8: Millors Pràctiques i Patrons de Disseny
- Organització del Codi i Documentació
- Patrons de Disseny en Delphi
- Tècniques de Refactorització
- Proves Unitàries i Desenvolupament Basat en Proves
- Optimització del Rendiment