About RemObjects C#

Native C# for iOS, Android, Mac, Java and .NET.

RemObjects C# takes the C# programming language you already know and brings it to the worlds of native Java, Android, Mac and iOS development. RemObjects C# lets you target all platforms truly natively. Whether you are developing for iOS, the Mac, Android, Windows or Windows Phone – you will be working directly with each platform's native APIs and frameworks, and using the platform's native UI widgets. No unnecessary abstractions, and no lowest-common-denominator UI.

The RemObjects C# Frameworks
One of the tenets of RemObjects C# is that it does not abstract away the different runtime environments it supports, but instead embraces each platform, according to RemObjects' philosophy on native development. The result is a development experience that is virtually identical on the language level, but provides full access to the capabilities of each underlying framework and generates truly native applications on each of the platforms.

.NET and Mono
On .NET (and its open source Mono counterpart), RemObjects C# works directly against the assemblies provided by the framework or by third parties. The RemObjects C# developer sees the same classes and types that are visible to Visual C# or Visual Basic .NET and the output generated by the RemObjects C# compiler are 100% pure .NET assemblies as well, virtually indistinguishable from those created using other .NET languages.

RemObjects C# developers have access to the full range of framework APIs, such as the .NET base classes, WPF, WinRT, System.XML, Sytem.Data, and so on, as well as to any and all third party or open source libraries written in Visual C#, Visual Basic .NET or Oxygene and RemObjects C# itself.

RemObjects C# also has full support and language integration for platform features such as LINQ, ADO, the Parallel Framework, and more.

Applications created with RemObjects C# for .NET, especially servers and command line utilities, can (when using the right set of APIs) seamlessly run on both Windows (using .NET or Mono) and Mac OS X and Linux (using Mono) with the same executable.

Cocoa, Cocoa Touch and the Objective-C Runtime
When creating applications for Mac and iOS with RemObjects C# for Cocoa, developers once again have full access all the Objective-C-based frameworks that make up the development environment – from base libraries such as Foundation, over AppKit/UIKit, to all the feature-specific frameworks like GameKit, CoreData, you name it. In addition, RemObjects C# also provides full access to the non-object-oriented CoreFoundation level and base C RTL, where needed.

The RemObjects C# language has even been extended to make Objective-C's "multi-part" method names intuitive and natural to use in a Pascal environment – both when calling exisitng APIs and defining your own classes – and has also been expanded with other features that make it fit in well with the platform, such as support for Automatic Reference Counting.

External open source and third party libraries, such as RemObjects' own Data Abstract for Cocoa, are fully accessible as well.

Just as on the other platforms, the output generated by the RemObjects C# compiler is a fully native executable for the Objective-C runtime, all but indistinguishable from those created using actual Objective-C. And libraries or frameworks created using RemObjects C# can be seamlessly consumed by regular Objective-C developers as well.

Java and Android
RemObjects C# for Java works directly against the frameworks and class libraries provided by the platform; RemObjects C# projects directly reference .jar files and have full access to the classes and types defined in them. The classes you define yourself and that make up your code are true Java classes, and are compiled to .jar files indistinguishable from those created by a Java compiler.

For Dalvik, which is Google's variation of the Java runtime as used in Android, RemObjects support full integration with the toolchain to provide final Android executables - using the same sets of tools and conversions that a Java Language app would go through, but all fully integrated into the RemObjects C# build and deploy cycle.

The language has been extended with new features to make it integrate well with its new surroundings. Anonymous Interface Implementations, for example, make it easy to provide event-handlers and callbacks, Java platform style.