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: [email protected] [mailto:[email protected]] 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: [email protected] [mailto:[email protected]] 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: [email protected] [mailto:[email protected]] 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: [email protected] [mailto:[email protected]] 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
_______________________________________________ NZ Borland Developers Group - Delphi mailing list Post: [email protected] Admin: http://delphi.org.nz/mailman/listinfo/delphi Unsubscribe: send an email to [email protected] with Subject: unsubscribe
