/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Windows >> Linux
Fra : Harald


Dato : 03-01-04 18:32

Hej

Jeg skal lavet et program der til at starte med skal kører på en windows
2000 maskine, senere skal det flyttes over på en linux maskine UDEN gui. Så
progarmmet skal lavet som et konsol (eller hvad det nu hedder) program.
Det skal kun være et minimalt bruger sammenspil, computeren skal bare stå og
kører uden skærm, tastatur og mus, og kun en gang i mellem skal en teknikker
ind og kikke på programmet.
Det skal benyttes:
dbExpress til en MySQL database
seriel kommunikation til en RS-232 port
TCP forbindelse til en anden maskine
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.

Hvad skal jeg kikker efter i delphi for at lave et sådan konsol program?
Er der noget jeg skal huske på for at kunne konvertere programmet så let så
muligt til linux når den tid kommer?

Programmet har ikke adgang til databasen døgnet rundt så jeg regner med at
lager data lokalt i ini filer da det kun er få data.

Jeg bruger Delphi 7 pro.

Mvh
HK



 
 
Lars B. Dybdahl (03-01-2004)
Kommentar
Fra : Lars B. Dybdahl


Dato : 03-01-04 19:01

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/

Harald (03-01-2004)
Kommentar
Fra : Harald


Dato : 03-01-04 21:22

"Lars B. Dybdahl" <Lars@dybdahl.dk> skrev i en meddelelse
news:3ff7035e$0$127$edfadb0f@dread11.news.tele.dk...
> 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.

Jeg har hørt om de mange problemer der er med dbExpress men nu har jeg brugt
det et stykke tid sammen med MySQL både via LAN og WAN og har ikke en eneste
gang oplevet problemer. Det har måske noget at gøre med at jeg _kun_ bruger
TSQLConnection og TSQLQuery og har sat AutoClone til false.


> > 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.

Ok


> > 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

> 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.

Det problem løser jeg ganske enkelt ved at sige at der kun må benyttes
Intel/AMD eller lign. 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.

Jeg troede faktisk at Kylix var meget brugt men hvis der er mulighed for at
det er på vej ud så vil jeg da droppet det og er så i øvrigt glad for at jeg
ikke har brugt en masse til på at sætte mig ind i det.
Jeg vil helt sikket kikke på FreePascal som jeg allerede har hentet og
installeret. Jeg har vel ret når jeg siger at FreePascal er fin nok til
mindre programmer men hvis man skal lave et større program med masser af
forme skal man over i noget Delphi eller lign.

Du skriver at Delphi kun udgør 25% af Borlands omsætning og den falder, du
mener vel ikke at Delphi også er i risiko zonen, for hvad skal man så
benytte?

Mange tak for det grundige svar.

Mvh
HK



Lars B. Dybdahl (04-01-2004)
Kommentar
Fra : Lars B. Dybdahl


Dato : 04-01-04 11:03

Harald wrote:
> Jeg har hørt om de mange problemer der er med dbExpress men nu har jeg
> brugt det et stykke tid sammen med MySQL både via LAN og WAN og har ikke

Det største problem jeg oplevede var desværre i det første projekt. Alt så
ud til at virke 100% perfekt på udviklingsstadiet, men efter at have sendt
boksene med softwaren ud til kunderne kom der efter en måneds tid nogle
klager over datatab. Vi fik maskinerne ind og kiggede på det, prøvede
forskellige ting, og fandt så ud af, at i meget sjældne tilfælde blev data
simpelthen ikke skrevet til databasen.

Jeg benyttede et separat modul til al data interface, og benyttede mig
udelukkende af SQL statements - ikke noget med live/bidirectional queries
eller lign. Da jeg så udskiftede dbExpress med IBExpress (jeg brugte
Firebird som server), uden at ændre i koden der gemte data, holdt problemet
op... om det samme gælder MySQL ved jeg ikke, jeg siger bare, at du skal
holde øje med problematikken.

> Det problem løser jeg ganske enkelt ved at sige at der kun må benyttes
> Intel/AMD eller lign. processorer.

Samme her

> Jeg har vel ret når jeg siger at FreePascal er fin nok til
> mindre programmer men hvis man skal lave et større program med masser af
> forme skal man over i noget Delphi eller lign.

Nej - Lazarus projektet har GUI design, og det ser på mig ud som om at de
har gjort det bedre end Kylix.

> Du skriver at Delphi kun udgør 25% af Borlands omsætning og den falder, du
> mener vel ikke at Delphi også er i risiko zonen, for hvad skal man så
> benytte?

Delphi genererer omsætning, men:
- Microsoft har nu adgang til Borlands patenter og har købt Anders Hejlsberg
- Anders Hejlsberg designede Nascom Pascal, Compas Pascal, PolyPascal, Turbo
Pascal, Borland Pascal og Delphi 1-2-3-4-5. Nu designer han Microsoft
".net", og han gør det ret godt.
- De fleste af Delphi's fordele frem for Visual Studio er nu blevet
indbygget i Visual Studio.net, og efter at have prøvet Visual C#, er jeg
imponeret over hvor lille forskellen er til Delphi.
- Delphi 7 var sidste udgave, der kunne bruges til Win32 platformen - Delphi
8 inkluderer ikke support for Win32 (men inkluderer vistnok en kopi af
Delphi 7, ligesom Delphi 2 inkluderede en version af Delphi 1)

Da Delphi i fremtiden går over til .net platformen, deres komponenter osv.,
kan jeg se, at stort set kun selve sproget er eneste forskel til C#. Og når
kun sproget er til forskel, så får Delphi det svært i fremtiden.

Hvis man vil se, hvor langt C# er kommet, så prøv at få en C# programmør til
at vise dig, hvordan man designer en webside applikation ligesom man i
Delphi designer en TForm... det er stort set på samme måde. Klik-klik-klik,
og så har man en database web app. Det minder meget om de specielle
komponenter i Delphi, bortset fra at der ikke er memory leaks m.v., og at
det rent faktisk bruges ude i verden.

Fremtiden har tre betydningsfulde platforme:
- Java
- .net
- Linux (diverse processorer)

Kylix laver ikke kode til nogen af disse, Delphi laver til .net, og Borland
tjener absolut flest penge på Java platformen. Da det også koster penge at
skaffe og holde styr på sine kunder, vil de nok fokusere mest på at skaffe
Java kunder, derefter .net kunder, og mindst interesse vil de have i at
skaffe Linux-platform kunder.

Lars.

--
Freelance programmør
Delphi brugergruppen DAPUG: http://dapug.dk/
Delphi oversættelsesværktøjer: http://dxgettext.sf.net/

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste