In addition to providing several options for creating servers (link), RemObjects SDK also provides a rich range of client systems and devices that you can target to write applications that communicate with these servers.
First, RemObjects SDK comes in distinct editions for three major development platforms, each of them covering several target operating systems or devices. Every edition is designed from the ground up to fit the paradigms of the development platform it targets, but they are also implemented to be fully wire compatible, meaning that /any/ client can communicate with a RemObjects SDK server, regardless what development tool it was written for, or what type of device it is running on.
Secondly, and as somewhat of a fallback option, RemObjects SDK servers support open standards such as SOAP Web Services or the more lightweight XML-PRC and JSON messaging protocols that allow them to be reached by clients not implemented using RemObjects SDK. So whether you need a client application for a platform not supported by RO yet or simply want to allow third parties to write their own clients to talk to your servers without having to license RemObjects SDK, your servers are still open and accessible.
RemObjects SDK for .NET is a fully managed implementation of the RemObjects SDK framework. While the most common use of the .NET edition is creating rich UI clients for the Windows operating system, it offers many other possibilities as well.
RO/.NET is fully supported and regularly tested on Mono, the open source implementation of the .NET runtime. Through Mono, RemObjects SDK applications can be written to run on Linux, Mac OS X and several other more exotic platforms supported by Mono. In many cases, this can be done with a lot of code reuse, allowing developers to target Windows/.NET, and then leverage Mono to reach other platforms, with little or no extra effort.
RemObjects SDK for .NET also allows creating clients for embedded devices running Windows CE or mobile phones and devices powered by Windows Mobile, through the use of the .NET Compact Framework, a subset of the full .NET Framework. Like Mono, the CF is explicitly supported and tested for. Support for WinRT and Metro applications on Windows is also provided.
Also supported is the creating of rich browser plugins with Silverlight, as discussed further below.
RemObjects SDK for Xcode is a native implementation of the RemObjects SDK client infrastructure using Objective-C and the OS X Foundation framework that allows developers to integrate RemObjects SDK client functionality into their Mac and iPhone/iPad applications.
Like the other editions, RemObjects SDK for Xcode follows the paradigms of its target platform. The API follows Objective-C language and Cocoa framework conventions, while at the same time maintaining familiarity for developers experienced with one of the other editions of the SDK.
A single-source library drives both the Mac desktop implementation as well as the code running on iOS mobile devices, allowing developers to share their non-UI client code between the two variations of the OS X platform as well.
The oldest and most mature edition, RemObjects SDK for Delphi, allows developers using Embarcadero’s Delphi development environment to write native Windows clients using the rich component library and infrastructure provided by Delphi. Like its sister editions, RO/Delphi is written from the ground up to fit into its environment, in this case the VCL and Object Pascal Language.
The Delphi Edition also supports creating applications for Linux using Free Pascal, the open source Delphi-compatible Object Pascal compiler, and Mac via FireMonkey, although we recommend using our Xcode-based tool chain (above) for truly native Mac and iOS development.
The newest edition to the family, RemObjects SDK for Java, is a 100% Java-based implementation of the RemObjects SDK client infrastructure for use on Android and other Java-powered platforms.
You can use RO/Java to create cross platform GUI applications for Windows, Mac and Linux using Swing; for Mac applications using Apple's Java/Cocoa bridge, as well as for Android, Blackberry and other platforms; you can also create cross-platform command line clients and daemons, or integrate RO client connectivity with Java Applets, Java Server Pages, Tomcat, and other Java-based appplication services.
The different editions of RemObjects SDK discussed above also provide extensive options for accessing server functionality from web applications, be it inside the browser or on the back-end web server.
As hinted above, RemObjects SDK for .NET also supports the creation of browser applications using Silverlight. Silverlight provides a rich, flash-like client UI that can run in browsers on Windows, Mac OS X and (through Moonlight, an open source implementation of Silverlight by the Mono team) Linux.
Silverlight is a small subset of the full .NET Framework as it runs on desktop computers, but RO/.NET encapsulates those differences and allows the same communication paradigms from the desktop applications to be used in Silverlight clients.
...and Any Other Platform You Like
The four sections above cover the different options for creating clients that are provided “out of the box” by RemObjects SDK – but it does not end there. No matter how thorough our coverage of different platforms and devices is (and we are continuously investigating new platform options, such as with the newly added edition for OS X), there will always be more options out there.
That is why RemObjects SDK servers, in addition to our own and preferred high-performance communication options, all support open standards such as SOAP Web Services. Using SOAP, your RemObjects SDK servers are accessible from virtually any platform and device out there.
Whether your platform is simply not supported by RO yet, or third parties are writing code to access your servers and you do not want to require them to use RO, these clients can still communicate with your servers. There might be certain downsides to using SOAP instead of writing clients using a supported edition of RemObjects SDK - such as slower performance and less flexibility, but what counts is that the communication can be made in the first place.
And because RemObjects SDK servers support what we call Smart Services (link), they can be made fully accessible by SOAP, without having to give up the benefits of RemObjects SDK’s own communication channels, when the client is written using RO.