[DUG] What is your experience with oxygene?
David Brennan
dugdavid at dbsolutions.co.nz
Tue Apr 1 19:32:00 NZDT 2014
Thank you for the detail, very interesting. Not something that is directly
relevant to us presently but it is good to have a real life example of
single sourcing non GUI code between Delphi and Prism.
Cheers,
David.
From: delphi-bounces at listserver.123.net.nz
[mailto:delphi-bounces at listserver.123.net.nz] On Behalf Of Conor Boyd
Sent: Tuesday, 1 April 2014 3:20 p.m.
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] What is your experience with oxygene?
It's the same source under 2 compilers, so no "pre-processing" unless I'm
misunderstanding what you mean by pre-processing.
The syntax doesn't differ that much.
Enums need to be fully qualified.
We conditionally define certain bits of code or Uses clauses (based on
{$IFDEF WINDOWS} or {$IFDEF PRISM}).
E.g.
E.g. TSubClass = {$IFDEF PRISM}public{$ENDIF} class(TParent)
Or
private
// FProcessEvent is used to wake up this thread outside of its scheduled
wakeups
FProcessEvent : {$IFDEF PRISM} System.Threading.AutoResetEvent {$ELSE}
TSimpleEvent {$ENDIF};
Or
function GetClassName(AClass: TObject): string;
begin
if Assigned(AClass) then
Result := {$IFDEF
PRISM}AClass.GetType().Name{$ELSE}AClass.ClassName{$ENDIF}
else
Result := '[Unassigned]';
end;
Or
procedure TMySocketConnectionPool.DestroyConnection(const Connection:
TMySocketConnection);
begin
{$IFDEF PRISM}
locking FConnections do
begin
Connection.Disconnect;
FConnections.Remove(Connection);
end;
{$ELSE}
FInterlock.Acquire;
try
Connection.Disconnect;
FConnections.Remove(Connection);
finally
FInterlock.Release;
end;
{$ENDIF}
end;
We have created some networking classes which descend from classes within
the .NET System.Net.Sockets namespace for Prism compilation and from Indy
classes on the Win64 side, so we've had to work through a few low-level
networking issues that fell out of that.
Not sure we've come across too many other gotchas.
We have a proprietary binary "RPC"-like invocation protocol, and by having
the same classes compiled into both Win64 and .NET libraries, we can rely on
binary comms between our .NET webserver app and our Delphi app. Not saying
we wouldn't do things differently if we were starting now, but that's what
we use it for.
Cheers,
Conor
From: delphi-bounces at listserver.123.net.nz
[mailto:delphi-bounces at listserver.123.net.nz] On Behalf Of David Brennan
Sent: Tuesday, 1 April 2014 2:53 p.m.
To: 'NZ Borland Developers Group - Delphi List'
Subject: Re: [DUG] What is your experience with oxygene?
Out of curiousity what pre-processing do you do before compilation? Assuming
this subset also needs to be compiled in Delphi for other uses and keeping
in mind that the syntax differs between Oxygene and Delphi?
Regards,
David.
From: delphi-bounces at listserver.123.net.nz
[mailto:delphi-bounces at listserver.123.net.nz] On Behalf Of Conor Boyd
Sent: Tuesday, 1 April 2014 1:47 p.m.
To: NZ Borland Developers Group - Delphi List
Subject: Re: [DUG] What is your experience with oxygene?
We use Oxygene for compiling a subset of our Delphi source codebase in
Visual Studio into a .NET assembly to provide integration between a C# web
application and a Delphi data-munging backend.
Works well for that.
Haven't tried any mobile or other UI stuff with it.
From: delphi-bounces at listserver.123.net.nz
[mailto:delphi-bounces at listserver.123.net.nz] On Behalf Of Leigh Wanstead
Sent: Tuesday, 1 April 2014 11:31 a.m.
To: NZ Borland Developers Group - Delphi List
Subject: [DUG] What is your experience with oxygene?
Good morning,
What is your experience with oxygene? How is it compare to Delphi Xe5 with
mobile device for android and ios?
http://www.remobjects.com/elements/oxygene/
TIA
Regards
Leigh
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserver.123.net.nz/pipermail/delphi/attachments/20140401/a6874eac/attachment.html
More information about the Delphi
mailing list