[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