Harald wrote:
> Det skal benyttes:
> dbExpress til en MySQL database
dbExpress har historisk virket ad pommern til. Det virker nemlig ikke 100,0%
af gangene, men kun 99,95%, og det er skidt, hvis man har tusinder af
requests. Men prøv dig frem og se, hvordan det går - du bør dog forberede
dig på evt. at skulle udskifte det med noget andet.
> seriel kommunikation til en RS-232 port
Dette håndteres forskelligt i Linux og Windows operativsystemerne. Min
erfaring under Linux er, at det er væsentligt bedre at gå direkte til Linux
API'et via Libc unit end at bruge andre komponenter ovenpå - hvorimod det
forholder sig omvendt på Windows - her bør man bruge komponenter ovenpå
Windows API'et.
Derfor er jeg gået over til at programmere RS232 i en separat unit, som er
forskellige for Linux og Windows. Det giver optimal stabilitet og bedste
fleksibilitet.
> Jeg regner med at lave et program hvor disse 3 ting kører i hver sin tråd
> for at undgå at hele programmet kan låse hvis data f.eks. kommer fra en
> langsom trådløs forbindelse eller via internet.
Her skal du under Windows passe på med, at du ikke benytter komponenter, der
ikke må ligge i en separat tråd.
> Hvad skal jeg kikker efter i delphi for at lave et sådan konsol program?
Licenser, udløbstid m.v. Vær opmærksom på, at:
- Kylix kun laver kode til Intel x86 platformen, og derfor ikke er rigtig
Linux kompatibel
- FreePascal ikke supporterer dbExpress (mig bekent)
- Kylix muligvis dør meget snart da Borland har minimal omsætning på denne
- At CLX ikke findes i Delphi 8 og fremefter
- At du ikke bruger Windows API kald noget sted, hvis du vil portere
- At fork() er en smartere måde at lave multithreadede programmer i Linux på
end at bruge TThread klassen, som man ville bruge på Windows
- At du seriøst skal overveje en "watchdog" funktion, der overvåger de tre
tråde. Især under debugging fasen kan den være god at have. Lav den evt.
som en fjerde tråd, hvorfra de andre tre tråde forkes.
- At du ikke bruger VCL, og helst heller ikke CLX, da CLX gør dig afhængig
af qtintf.dll filen.
- Hvis du agter at bruge FreePascal, så hold styr på processor
arkitekturerne mht. high/low byte i words osv. Det er ikke alle CPU'er, der
fungerer ligesom Intel/AMD processorer.
> Jeg bruger Delphi 7 pro.
Hvis du vil porte til Linux, og vil bruge FreePascal, vil jeg seriøst
anbefale dig at overveje også at bruge FreePascal på Windows.
Jeg har selv programmeret flere cross-platform projekter på Linux/Windows
med Kylix/Delphi, som bruger database, tcp-forbindelser og RS232 til
industrielt brug. Hvis jeg skulle starte forfra i dag, ville jeg
sandsynligvis vælge FreePascal eller et helt andet sprog (f.eks. python) i
stedet, da jeg ikke tror på Kylix's fremtid. Kylix er i version 3 stadigvæk
med Win32 kode og ikke omskrevet til ren CLX eller Linux, der er stadigvæk
ikke rapport generator værktøjer indbygget, og Borland ser også ud til at
have opgivet at sælge det som separat produkt.
Hertil kommer, at Delphi i forvejen udgør en lille andel af Borlands
omsætning (vistnok max 25% nu), og den falder. Kylix er et væsentligt
mindre produkt end Delphi, så den holdes vist kun i live for syns skyld.
Der er også problemer med at installere Kylix på nyere Linux distributioner
(herunder min udviklingsmaskine), så jeg regner ikke med nogensinde at
betjene Kylix IDE'en mere, men udelukkende bruge Kylix's kommandolinie
compiler. Og så er vi jo nede på et niveau, hvor FreePascal nok giver mere
mening.
Lars.
--
Freelance programmør
Delphi brugergruppen DAPUG:
http://dapug.dk/
Delphi oversættelsesværktøjer:
http://dxgettext.sf.net/