Marcel van Beuzekom
Eén van de nieuwe technieken die we tegenkomen in Delphi 6
is 'Web Services'. Dit artikel legt je uit wat Web Services zijn, hoe je een
server kunt maken en wat een client moet doen om met zo'n Web Service te
communiceren.
Wat zijn Web Services?
Web Services zijn objecten die gebruikt kunnen worden via een netwerk,
bijvoorbeeld internet. Web Services zijn platform onafhankelijk en
programmeeromgeving onafhankelijk. Een object geschreven in de ene taal kan dus
worden gebruikt in de andere taal. Het platform waar de server en client op
draaien is niet van belang.
Het kan zijn dat deze beschrijving je erg bekend voorkomt, het zou namelijk
ook een beschrijving van COM/DCOM kunnen zijn. Wat is er dan nieuw? Eigenlijk
niets! DCOM is alleen nooit helemaal geworden wat het zou moeten zijn, namelijk
een platform onafhankelijk systeem. Een ander nadeel van DCOM is dat het een
protocol is naast de standaard protocollen zoals http, pop news enzovoort.
Verder vereist DCOM nogal wat administratie en registratie in het netwerk, op
zich niet vreemd omdat bij DCOM de beveiliging door het besturingssysteem
gebeurd. Kortom, DCOM is zeer goed in wat het moet doen, maar multi platform is
het nooit geworden. Web Services belooft dat wel te bereiken.
Waarom zou Web Services nou wel het succes kunnen worden waar dat bij DCOM
niet helemaal lukte? De technieken die Web Services gebruiken zijn: SOAP,
HTTP, GET/POST, MIME en XML. Kortom, het is een verzameling van bestaande
technieken in plaats van een compleet nieuwe techniek. Er hoeft dus weinig te
worden geconfigureerd op de server (publiceren is voldoende) en op de client.
Ook firewalls hoeven niet speciaal te worden aangepast omdat Web Services over
standaard HTTP draaien.
Een andere mogelijke succesfactor is het feit dat het World Wide Web
Consortium heeft vastgelegd waaraan een webservice moet voldoen. Het verleden
heeft bewezen dat dat nog geen garantie is dat iedereen zich aan die standaard
houdt, denk maar aan de HTML uitbreidingen die zowel Microsoft als Netscape
verzonnen zonder dit in een standaard vast te leggen. Maar de standaard is er en
die is door een onafhankelijke partij vastgelegd.
Overigens worden SOAP en
Web Services vaak door elkaar gebruikt, dat is niet helemaal terecht. SOAP is
één van de protocollen die gebruikt kan worden voor Web Services, maar dat zou
net zo makkelijk een ander protocol kunnen zijn. Borland houdt het voorlopig bij
SOAP, wij sluiten ons daar maar bij aan.
WSDL
De standaard van W3C beschrijft onder andere dat er een Web Services
Description Language (WSDL) moet zijn. Een WSDL is een XML-document waarin
wordt beschreven wat de mogelijkheden van een Web Service zijn, het 'contract' naar
de buitenwereld. Ook hier zie je weer een overeenkomst met COM: de WSDL van een
Web Service is vergelijkbaar met de interface van een COM object.
Zonder op alle details in te gaan: er zijn dus een aantal afspraken waaraan we ons moeten houden voordat we
een Web Service kunnen gaan bouwen. Maar gelukkig zijn wij
...
Marcel van Beuzekom
Na de eerste blik op Delphi 6 wordt het nu tijd om de
component palette eens wat beter te gaan bekijken. Welke nieuwe componenten
hebben we er bij gekregen en waar zijn uitbreidingen in gemaakt?
TValueListEditor
De ValueListEditor is een grid waarin de gebruiker op een eenvoudige manier
variabelen en hun waarden kan wijzigen of toevoegen. Vaak wordt data in een Na
manier in stringlists opgeslagen, nu kan deze data ook worden gepresenteerd en
gewijzigd. De kolommen heten standaard Key en Value, maar de
titels kunnen ook worden aangepast of verwijderd. Ook kan worden ingesteld of de
gebruiker alleen de waarde mag wijzigen, of ook de naam kolom. Via de
(public) property ItemProps kan vervolgens worden ingesteld h??e de gebruiker de
waarde mag wijzigen, bijvoorbeeld met een editmask, maar ook een lijstje met
keuzemogelijkheden is mogelijk.
TLabeledEdit
De naam LabeledEdit zegt het eigenlijk al: een label en een edit in één.
Van de label kan worden opgegeven waar deze, relatief aan de edit, moet komen
staan. Verder maakt dit component dankbaar gebruik van de mogelijkheid om
properties van een gekoppeld component te kunnen wijzigen: de properties van het
label component hoeven niet opnieuw te worden gepublished, alleen het publishen
van het component voldoet, de object inspector doet de rest.
TColorBox
Een populair component in de third party libraries, al was het alleen maar
omdat het er zo leuk uitziet: een combobox om een kleur te selecteren. Nu dus
ook standaard in Delphi.
TActionManager
Sinds Delphi 5 zijn Actions niet meer weg te denken uit een gestructureerde manier
van programmeren.
...
Marcel van Beuzekom
In de persberichten
die Borland naar buiten bracht
v????r het uitbrengen van Delphi 6 werd het al duidelijk: we moeten weer een
hele verzameling nieuwe termen leren. Sommige termen bestonden al, maar waren
nieuw in combinatie met Delphi (Soap, XML, WSDL, XSL), andere termen waren helemaal
nieuw (BizSnap, WebSnap, DataSnap, dbExpress). Maar, wat is er
nou eigenlijk nieuw in Delphi 6? Volg de serie artikelen op NLDelphi en je bent
helemaal klaar voor de overgang.
De installatie
Bij de
installatie wordt de stijl meteen duidelijk, Borland heeft deze keer gekozen
voor blauw en strak.
We
kunnen uiteraard kiezen voor Delphi 6, maar ook de andere programma's die we
van Delphi 5 al kennen zijn er allemaal nog. De installatie heeft ook weer een
optie om alleen de registry instellingen te installeren en bij de installatie
wordt gevraagd of de bestandtypes gekoppeld moeten worden aan Delphi 6. Handig
als je 6 alleen installeert om te testen en 5 nog nodig hebt voor je dagelijkse
werkzaamheden.
Na de installatie wordt je, bij het opstarten van Delphi, meteen
de mogelijkheid geboden om jezelf te registreren. Uiteraard kun je deze
registratie ook later uitvoeren. Meer informatie hierover vind je bij de
links onderaan dit artikel.
De IDE
Na het opstarten
valleen meteen een aantal dingen op, onder andere de tabs onderaan de code
editor: Code en Diagram. Klik je op diagram dan krijg je een Diagram Editor
zoals je die al van de Delphi 5 datamodules kent maar
...
Marcel van Beuzekom
Delphi 6 belooft ons met dbExpress een snelle toegang tot databases zonder al
te veel overhead bij de installatie. Het grootste probleem van Delphi database
applicaties moet dan voorbij zijn: de uitgebreide installaties. Maar ook zonder
Delphi 6 zijn er mogelijkheden om zonder de BDE je database te benaderen. Delphi
zelf heeft bijvoorbeeld Interbase Express en ADO. Maar je kunt ook de Zeos Database
Objects gebruiken.
Introductie
ZDO bestaat uit een set componenten voor toegang tot Interbase, MySQL,
PostGreSQL, Microsoft SQL en Oracle. Voor iedere database kan worden gekozen
of deze rechtstreeks via de ZDO API wordt aangeroepen of meer op de Delphi
manier: via componenten. Voor iedere database zijn er de volgende componenten:
Omdat de Query en Table componenten erven van TDataSet kunnen we ze beide
gebruiken zoals we gewend zijn. De DataSource kan worden gekoppeld aan de Query
of Table en alle data-aware componenten zullen gewoon werken. ZDO is Open Source en
wordt geleverd voor Delphi 3, 4 en 5.
Installatie
Na het downloaden van ZDO moet het zip-bestand worden uitgepakt. Alle source
en de benodigde packages staan
...
Marcel van Beuzekom
Borland heeft onlangs de release van Interbase 6.0 Server Edition (SE)
aangekondigd. Hiermee voldoet Borland aan de belofte dat Interbase, naast een
Open source editie, ook de ondersteuning van Borland zal blijven houden. Door
Interbase ook in een betaalde versie uit te brengen kan Borland door blijven
gaan met het testen van bestaande versies en tevens door blijven ontwikkelen aan
nieuwe functionaliteit.
Is dit het einde van de Open source versie van Interbase?
Nee, integendeel. Borland heeft toegezegd dat de Open source versie gewoon
blijft bestaan. Borland heeft de afgelopen maanden gebruikt om de bestaande
versie te testen en heeft veel bugs gevonden en opgelost. Zoals het er nu naar
uitziet zullen deze oplossingen
...
Als je Interbase 6 lokaal gebruikt kan het zijn dat je programma regelmatig hangt.
Dit ligt aan het feit dat lokaal gebruik van Interbase en multi threading niet goed samen werkt. Je kunt dit oplossen door Interbase te laten 'denken' dat het om een netwerkverbinding gaat door LocalHost: voor het bestand te zetten. In plaats van c:\IBData\Test.gdb zet je dus LocalHost:c:\IBData\Test.gdb. ...
De ontwikkelaars van Firebird (een uitgebreidere Interbase) hebben een fout
gevonden in de beveiliging van Interbase. Veel programmeurs bouwen in software
die ze schrijven een 'achterdeur' in de beveiliging in zodat ze zelf altijd
toegang hebben tot deze software. Dit blijkt ook bij Interbase het geval te
zijn.
Als je de berichten leest zou je bijna denken dat Interbase opeens vol
met beveiligingslekken zit. Zo erg is het gelukkig allemaal niet. Het is wel
belangrijk dat je de patch van Borland installeert. Let op:
...
Nog een stukje vanuit mijn kant dan... het is maar een klein stukje hoor, je bent waarschijnlijk zelf al wel verder gekomen. Nog geen rekening gehouden
flabber Today, 14:30met de hulp van Flabber een eigen unit gemaakt (met enkel de open close functie)
Hiermee kan ik het device openen en sluiten op zowel 32 / 64 bit
RichMemo heeft geen notie van wat er in de richedit dll gebeurd met een tabel. Dus het enige dat ik me voor kan stellen is een karakter onder de tabel
rvk Today, 11:53een klein opzetje dan, niet gechecked:
type PFT_HANDLE = ^TFT_HANDLE; TFT_HANDLE = pointer; TFT_STATUS = ULONG;
Hallo allemaal,
Ik zet via RTF-code een tabel op Richmemo. De tabel bestaat uit één kolom. Deze kolom
heeft een breedte van X cm
FTDI 64 bit invalid handle
Lekker bezig,
Christian Today, 15:18Heb even een test gedaan warbij ik in de originele code de handle heb vervangen door de TFT_Handle = pointer.
Hierna