Avatar of marc

by marc

New Betas!

April 24, 2014 in Data Abstract, Elements, RemObjects C#

Hi everyone.

Over the past weekend, we shipped major new beta builds for, well, just about every single one of our products.

 

On the Elements front (Oxygene and RemObjects C#) we’ve also shipped the first beta for the May 2014 update, which will be a minor bug-fix update, but has a lot of significant improvements nonetheless. Check out the change log for details. (Of course, before that, the April update with version 7.1 is imminent and has been in gamma and locked down for a while; we expect that to ship as RTM this week.)

 

For our ROFX products, including Data Abstract and RemObjects SDK, I know that many of you are looking forward to the major new “DA8” (and RO8) release. Well, last week’s beta is the first publicly available beta off that development branch, and will give you a first peek at what’s coming in DA8. It’s far from feature complete, but there’s a lot of new and exciting stuff already there, from new features to support hosting Relativity in AWS, over better asynchronous APIs for Delphi and .NET (all the other, newer platforms already had pretty nice async APIs to begin with), to our all-new and very extensive PCTrade2 sample suite. From improved DA SQL client support in DA/Delphi, over Amazon DynamoDB Session Manager support, to our new Login Provider infrastructure. But there’s still more to come.

As part of the new DA8, we’ve also been doing a lot of “spring cleaning”, bringing the codebase (especially for the older and more mature products for Delphi and .NET) up wit the times, and removing some old cruft that as accumulated over the years as the frameworks evolved. Please refer to the change logs (available on beta.remobjects.com and in the Beta app), as well as the ROFX Beta forum on Talk for details.

Oh, I should mention that this beta also includes support for the just-released Delphi XE6, and the same goes for the new Hydra 4 gamma build that is available, as well.

We’ll be publishing more regular semi-weekly beta updates for ROFX (much like we always do for Elements) as we prepare for the first “DA8” release to launch officially in May.

We’re very excited about this next release, and the team has been very busy. We hope you’ll like what you’ll see — and please let us know in the comments, in the beta forum, or via email to info@.

Avatar of marc

by marc

Heartbleed

April 14, 2014 in non-tech

Heartbleed

The Heartbleed vulnerability found in OpenSSL last week has everyone worried, and rightfully so. So of course we did an investigation and wanted to let you know the status of how Heartbleed has affected us and, by extension, you as our customers.

In short, it hasn’t, and everything should be safe.

Our servers run a combination of Windows Server, Linux, and even Mac OS X Server. Thankfully, we found none of our server software to be running OpenSSL versions that were affected by Heartbleed. On top, our customer-facing http://secure.remobjects.com website is running on Microsoft IIS (using ASP.NET and Oxygene) and thus not using OpenSSL to begin with. This is the site that all logins (including for direct website login, but also for Single-SignOn to services such as Talk, or for license downloads from within products) go through, as well as all payment information when you place orders. (On an unrelated note, we want to point out that we never store your payment information. It is passed through to the merchant as you place an order, but your credit card details are not retained by us.) We have received no information from our back-end merchant services provider to indicate they have been affected by Heartbleed.

Our Products are not directly affected by Heartbleed either. Only RemObjects SDK for Cocoa used OpenSSL under the hood until about two years ago, but the library was used only for purposes of the “AES Encryption Envelopes” feature, which does not cover the surface area of the Heartbleed exploit. In addition, RemObjects SDK for Cocoa was migrated away from OpenSSL to Apple’s CommonCrypto library about two years ago, so any applications built with recent versions of RO/Cocoa does not leverage OpenSSL at all.

Standalone RemObjects SDK or Data Abstract Servers implemented in .NET and running over HTTPS using Microsoft’s or Mono’s HTTPS base implementation (pretty much the standard/default if you are running a .NET based RO/DA server and did not go out of your way to hook up a custom SSL layer) are not affected by Heartbleed. Neither are applications hosted in Microsoft’s IIS web server and using Microsoft’s SSL/TLS stack.

That said, if you are deploying RemObjects SDK or Data Abstract servers via HTTPS, we still recommend that you review the parts of your tool stack that fall outside of RemObjects SDK and Data Abstract itself. For Example, Delphi’s Indy libraries optionally use OpenSSL to implement SSL/TLS functionality, so depending on what version of Indy you are using, and what version of OpenSSL you are using with it, your application might be affected by Heartbleed. The same may be the case if you are hosting RO/DA service applications on a web server such as Apache that might be using OpenSSL under the hood.

We will continue to be on the lookout, and keep you informed if any new information arises.

Avatar of marc

by marc

Data Abstract, RemObjects SDK and Hydra “Spring 2014” Releases

March 31, 2014 in .NET, Cocoa, Data Abstract, Delphi, Hydra, Java

On Friday, we released the latest updates to our Data Abstract and RemObjects SDK products for all five platforms, as well as for Hydra. Like always, a whole bunch of fixes and improvements across the product lines are gathered together in this release.

For Data Abstract and RemObjects SDK, this is also our last planned release for the 7.0 product version, as we prepare for a major new product cycle — codenamed DA8 — starting with our summer release in May. As such, this update focuses mainly on bug fixes and smaller enhancements (of which there are many).

The new release also includes official support for use with our recently released RemObjects C#, including project templates and IDE improvements to let you build .NET, Cocoa and Java apps with RO/DA using our C# implementation, as well as building managed hosts and plugins for Hydra.

As always, the new update is free for all users with an active subscription, and available on the customer portal. Our free 30-day trial downloads have also been updated to the new version.

If your subscription has elapsed, then now is a great time to renew. Renewing will not only give you access to the new 7.0 update, but also access to the beta versions of DA8 that will become available over the course of April, as well as the first (and future) DA8 or RO8 releases throughout the year.

If your previous subscription ended a while ago, you will be happy to hear that we recently updated our online shop to automatically grant “amnesty renewals”. That means you can be assured that your renewed license will always cover the current product and at least six months of future updates from your renewal date.

If you have or are considering getting a Suite subscription, remember that the Suites for .NET, Cocoa and Java now also include RemObjects C# — so you get been more value at the same great price as before (and you can always up-renew from RO or DA to the Suite, of course).

But enough talk, i’m sure you’re anxious to try out the new bits. We’re happy to have this new set of updates out to you now, and we’re extremely excited about what we have coming for DA8 and RO8 this summer and beyond.

yours,
marc hoffman
Chief Architect

Avatar of marc

by marc

Using iOS 7.1 SDK with RemObjects C# or Oxygene

March 11, 2014 in Elements, Nougat

As you’ve probably seen, iOS 7.1 is out — and with it, a new SDK. Anxious to use iOS 7.1 with RemObjects C# or Oxygene? No problem. our Importing a New or Beta SDK for Use with Elements for Cocoa article on the wiki explains how to do it:

Launch FXGen by right-clicking CrossBox:

Once you have downloaded/updated to Xcode 5.1 from the App Store, find the Xcode.app in in your /Applications folder and drag it into the app:

Select iOS 7.1 from the dropdown:

Click “Start Import”

FXGen will run a for a short while, and then you have .fx files for the iOS 7.1 SDK you can use. Just copy them to the “C:\Program Files (x86)\RemObjects Software\Elements\Nougat\SDKs” folder in your PC or VM, and you’re off running.

Of course these same steps will also work for importing beta SDKs (which we won’t be able to tell you about, because of NDAs) – for example when Apple starts seeing iOS 8.0 or the next version of OS X later this year. This way, you can start working with the cool new stuff right away — without having to wait for anyone to create wrappers for you.

It goes without saying that now that iOS 7.1 is officially out, our next release (and Friday’s upcoming beta) will include the .fx files for iOS 7.1 out of the box.

Enjoy,
marc

Avatar of marc

by marc

Announcing Elements: Oxygene 7 and RemObjects C#

March 2, 2014 in Uncategorized

Dear readers,

we’ve shipped some pretty significant releases this past weekend that i wanted to take a moment to talk to and update you about.

First, and probably most interesting to our existing users, we shipped version 7 of Oxygene. This is a pretty significant new release of our Oxygene language and toolchain, with many cool new features that we are very excited about. As always, you can find an overview of What’s New and a Full Change Log on our website, but i also want to go into some of the improvements in more detail.

Most exciting to me, personally, is the introduction of LINQ for the Cocoa and Java platforms. LINQ has always been one of the modern language features on .NET that i found really helpful, because it brings a clean structured way to working with filtering, sorting and otherwise manipulating lists of objects — in a type-save manner. With Oxygene 7, this feature, and most standard LINQ query operations, are now available across all three platforms. This means that you can now use LINQ syntax to sort or filter NSArrays on Cocoa for example.

One example i saw mentioned just yesterday that i would never have thought of is to use LINQ to find a particular view in your Cocoa app:

var wideView := (from v in view.subViews where v.frame.width > 300).FirstOrDefault

As you can see, LINQ is useful in many areas, not just when working with what we traditionally think of as “data”.

But LINQ is not the only item where we have updated the language to bring the platforms closer together. Multi-part method names, originally introduced because “we kinda needed them” for Cocoa are now available on all platforms. Many of you (and many of us) really liked this feature as a regular language syntax, and we saw no reason to hold it back to be Cocoa-only — so you can now write expressive and readable APIs for your classes, regardless of platform. We’ve also unified support for Iterators, the notify keyword and anonymous classes across all platforms, and added a bunch of standard attributes commonly used on .NET across platforms, via Aspects.

If you read between the lines, you gather that cross-platform is a big theme for this release, so we’ve also added a new Cross-Platform Compatibility Mode to the compiler. By default, Oxygene is strict about platform differences — when you write code for .NET, it tries to be a good .NET citizen; if you write for for Android, it is a good Java citizen instead. Turning on the Cross-Platform Compatibility Mode option (which can be done per-project or per-file), this dynamic changes. The compiler will be more lenient, and let it slide if you use a syntax feature needed on one platform, but not on the other. For example, you might want to mark a file as weak for Cocoa, and the compiler will simply ignore that keyword on .NET. The compiler will also be more helpful in letting you know when you write code that won’t be cross-platform. This way, when you’re set to build for .NET and write shared code, you’ll get early warnings if a language feature you are using might be problematic on Cocoa or Java, for example.

Finally, there’s the big one: Sugar. Sugar has been in the works for a while, and finally is being included as “version 1.0” officially in this release. What is Sugar? Sugar is a library of cross-platform classes that you can use on your code, so that you can share it across all three platforms. All three platform — .NET, Cocoa and Java — provide their own versions of basic types, from strings over dictionaries to XML processing, HTTP requests or file system access. Code that uses those APIs will often be platform-specific, without needing to be. Sugar provides a way to write base “business logic” code for your applications that can be easily shared between different platforms — for example if you are writing the same app for iOS, Android and Windows Phone. And it does this in a smart way (using mapped classes under the hood) that comes with no runtime overhead, even when crossing from platform-specific code into shared code and back.

These are the four whoppers, but there’s a lot more good stuff in Oxygene 7 that we think you’ll love. And as always, Oxygene 7 is of course a free update to all users with an active subscription.

But that’s not all!

Introducing RemObjects C#

In addition, we’ve also shipped a brand new product based on the same tool chain as Oxygene — a sister project to Oxygene, so to speak, and that product is called RemObjects C#.

You may have heard us talk or hint about RemObjects C# before under the code name “Hydrogene”, and that code name really illustrates well what RemObjects C# is in relation to Oxygene: It’s an implementation of the C# language for Cocoa, Java (and of course .NET), based on all the principles that make Oxygene great. In essence it is “Oxygene for people who’d rather use C#”.

RemObjects C# has all the things that make Oxygene great — a unified language and tool set that allows you to compile for the .NET CLR, for the Java JVM and for Cocoa’s Objective-C Runtime. It has the same great editor features — from our inline errors to Fix-Its. It has our Visual-Studio integrated debugging support for Java and Cocoa. It uses our CrossBox toolchain for deploying, running and debugging your applications on your Mac, your iOS or Android devices or the emulators/simulators right from Visual Studio. The only thing that’s different is the language itself.

RemObjects C# is a 100% true and ECMA—spec conform implementation of the C# language that millions of developers already use to build .NET apps. Except — like its sister product Oxygene — that language is now available to target the other development platforms as well.

Leaving the language aside, Oxygene and RemObjects C# will, from now on, evolve in parity, because they use all the same technologies under the hood (including even the most parts of compiler, except for the language front-end). So RemObjects C#, despite being a brand new product, immediately builds upon over a decade of experience and work that went into the underlying toolchain. And moving forward, 90% of the work we invest in the product will benefit both languages.

Which Language to Choose?

We approach the development of the two languages slightly different and that might influence that decision.

Oxygene has always been “our” language. Ever since we started off in 2003 with a language that already then provided vast improvements over the “standard” Object Pascal implementation in Delphi, we’ve been driving and improving Oxygene aggressively. As a result, Oxygene is one of the most powerful, versatile and expressive mainstream development languages out there today. And we will continue in that fashion — Oxygene will evolve, and get better and better

C# is a language designed by Microsoft, and well-defined in an ECMA specification. For our implementation, we tried to stay as close to that specification as we could (and only extend it in clean, tasteful and spec-conform ways, where really necessary). We will continue developing RemObjects C# in that fashion — we will evolve it as the official C# language evolves, but we will not be adding our own language features to it, just because we think they’d be neat language features. We feel that C# is not ours to evolve.

So if you’re already die-hard Oxygene (or Pascal) fan, and you want a language that’s advancing quickly and embracing new language features that enhance your development experience often, you will most likely want to stick (or start with) Oxygene. If you’re already a C# developer (or generally prefer other C-based languages) and/or not a big fan of Pascal, then RemObjects C# is the language for you.

Of course you don’t necessarily have to choose at all. You can use Oxygene and RemObject C# together. In fact, because both languages are built on the same back-end compiler, you can even use them together in the same project.

Ways to get Oxygene or RemObjects C#

As already mentioned, Oxygene is of course a free update, if your subscription is active as of March 1 — and if it’s not, now is as good a time to renew as ever.

Similarly, RemObjects C# is of course available at no extra charge to all customers with an active Suite subscription for the appropriate platforms (i.e. .NET, Cocoa or Java). If you’re a Suite subscriber, you should see new “Elements” SKUs for download on your licensed downloads page — these will install both Oxygene and RemObjects C#.

We also have the following purchasing options available.

For new users:

  • Oxygene is available at $699 per user, including all platforms — same as it has always been.
  • RemObjects C# is also available at $699 per user, including all platforms — in other words: same as Oxygene, just a different language.
  • The bundle of Oxygene and RemObjects C# is available at $999 per user, including all three platforms and both languages.

For current Oxygene users:

  • If your Oxygene subscription expired, or expires soon, you can renew at $499 for another year of upgrades to Oxygene.
  • If you want to add RemObjects C# to the mix, you can renew both for $699. Only $200 extra, and you get a whole new language — we think that’s a pretty sweet deal. Also, both Oxygene and RemObjects C# will get the same new renewal date — so if your current Oxygene subscription is still good for a while, that’s an extra benefit for renewing early.
  • Finally, if you just want to add RemObjects C# to your existing Oxygene license (and with the same renewal date), you can do that for just $399 (but really, the previous item at $699 is the better value, no matter your current subscription status).

The first two of thee options are also available to all customers of Prism XE3 or later, who currently enjoy a complimentary license extension to Oxygene for .NET from us as part of their SA coverage.

We’ve also recently made two adjustments to our online store (which also has been completely revamped and improved) that might benefit you:

First, if your subscription has expired more than 6 months ago, the store will now automatically apply what we call “amnesty renewal” when you purchase a renewal. Amnesty renewal makes sure that you always get at least the current release and six months of free updates from the purchase date. This holds true even if your previous subscription expired years ago.

Second, we’ve improved our volume discount program, so that you now start saving on multi-user license purchases for as little as 2 users. Volume discounts start at 5% (for two to five users) but can go all the way up to 30%. Our shop will handle all of that for you automatically.

That’s it for now

I think that’s it, for now (probably more than enough, wouldn’t you say? ;).

As you can probably tell, we are very excited by this new release — both with the new features added to Oxygene 7 (which, i should have mentioned, are all available to RemObject C# as well) as well as the brand new RemObjects C#.

We hope you enjoy them, too — and that if you’re not already a customer, you’ll grab the free 30-day trial and take the products for a spin. (It goes without saying that the RemObjects C# trial works well alongside your licensed copy of Oxygene as well.)

Oh, and last but not least: Scotty has created an awesome set of Getting Started videos for RemObjects C# (and similar videos for Oxygene are coming soon). Make sure to check them out!

Yours,
marc hoffman
Chief Architect

Avatar of marc

by marc

Announcing the Oxygene “January 2014″ Update

February 5, 2014 in Elements

Ahh, it feels like forever since i have written one of these, with the holidays and a long-overdue vacation in January. But it’s really just been a little over six weeks, and the time has come again:

Last friday, we shipped the latest update for Oxygene. The January 2014 release is a minor bugfix release for our 6.x compiler line, versioned as 6.1.61.1441. While it contains no major new features over what we shipped in November, it does have a wide range of fixes across all areas of the product, and is a recommended update for all users (of course ;)).

January 2014 also marks the last update for our 6.0 compiler line, and with that, the last release with Oxygene standing alone. We’re hard at work to finalize “Elements 7.0”, our next major release coming around the end of February – and with that release, not only does Oxygene get a major version bump again, it will also gain a sibling: our new Hydrogene language (which we’ll start talking a lot more about over the next few weeks).

But first things first: The January 2014 release is of course, as always, a free update for all users with an active subscription. You can find it for download in your Licensed Downloads area, as well as on the public Trials page. It (optionally) includes the still-new Visual Studio 2013 IDE.

If your subscription has lapsed, there has never been a better time to renew than now to get both the new release and everything we have planned for the next year (and beyond). As always, you can renew your Oxygene license for a mere $499 per user. And we also have a special “up-renewal” that lets you renew Oxygene and add Hydrogene, for only $699.

If you’re a Prism user, abandoned by Embarcadero, chances are you might be entitled to extended Oxygene for .NET releases from us. Check our Prism FAQ for details, or contact us if you have questions.

January 2014 is a great release – and we’re even more excited about what we have in store for you for the rest of the year. Let us know what you think!

Enjoy!

Avatar of Scotty

by Scotty

Setting Up For Android Development with Oxygene

January 9, 2014 in Android, Cooper, Elements, Uncategorized, Visual Studio

The purpose of this article is to help you set up Oxygene ready to develop Android applications. It assumes you have already installed Oxygene, but will walk you through installing the Java and Android SDKs, as well as setting up a virtual Android device and configuring your physical device for development. If you have already been developing for Android using another platform or have already set these things up independently, you do not need to read this article.

Android is an operating system for devices such as mobile telephones and tablet computers developed by the Open Handset Alliance led by Google. Application development is focused on targeting the specialized Dalvik Virtual Machine (VM), which is a mobile-optimized VM similar to the Java VM. Oxygene ships with templates for creating Android projects, and produces both native Java JAR files and the Android APK file necessary for deployment to an Android device.

The Pre-Flight Check

Each time you create an Android project with Oxygene, it will do a ‘pre-flight check’ to ensure that it can locate the things it needs, notably the JDK and the Android SDK.

Java Pre-Flight Check

If you’ve installed them into custom locations and it fails to find them, this gives you an opportunity to specify the installation folders by selecting the “Manually Specify The JDK Path” link from the dialog.

Java SDK Paths

Java SDK

Oxygene requires version 6.0 or later of the Java Development Kit (JDK) to be installed. For Windows, we recommend installing the “x86″/”i586″ release of version 7 JDK.

If you have not yet installed the JDK, you can download it from here.

Installing the JDK simply involves downloading the installer and running it, accepting all the defaults.

Install JDK

Once the JDK is installed, click Retest on the Pre-Flight Check dialog. If all has gone well, the dialog should change to report that the Android SDK is missing.

Android SDK

To create Android applications, Oxygene requires the Android SDK to be installed, in addition to the JDK.

If the JDK is installed, but not the Android SDK, the Oxygene pre-flight check will report this.

Android Pre-Flight Check

Download The Android SDK

The Android SDK can be downloaded here.

For Windows, we recommend using the .exe installer available under the “SDK Tools Only” section that is displayed when you expand the “Download for Other Platforms” area of the SDK download page , as it will automatically register the Android SDK with the system so that Oxygene can find it.

Android SDK Download

NOTE: If you download the .zip version of the SDK and manually extract it, you will need to manually configure the path to the Android SDK in the IDE options, as described further down on this page.

NOTE: If the Android SDK installer complains that the JDK cannot be found, that may be because you have the x64 version of the JDK installed (see above). Simply install the x86 (i.e. 32-bit) as well to solve this problem.

Once you have downloaded the Android SDK Installer, run it and accept all the defaults.

Android SDK Installer

After installing the Android SDK, setup will automatically offer to launch the Android SDK Manager. Leave this checked.

Android SDK Installer Finished

The SDK Manager

In the SDK Manager, check to install the “Android SDK Platform-tools” and at least one API version (usually the newest) and click “Install Packages” to install.

Android SDK Manager

In the subsequent dialog you will need to accept any licenses that apply and press “Install” again.

Android SDK Manager License

You should periodically run the SDK Manager to check for any updates to the tools and platforms.

Android Virtual Devices

When the tools and platforms are all installed, you might want to create an Android emulator, also known as an Android Virtual Device or AVD. This will allow you to test your application, in case you don’t have an actual device (or don’t want to use your device for development).

AVD’s are created from the Android Virtual Device Manager, which is accessible from either the SDK Manager by choosing Tools – Manage AVDs or by starting the AVD Manager program directly or from the Oxygene Visual Studio tool bar.

Launch AVD Manager From Visual Studio

The AVD Manager

The first time you launch the AVD Manager there will be no configured AVD’s.

Android Virtual Device Manager

Create an AVD

To create a new AVD, click the “New” button. You will need to give the emulator a name. The AVD manager is pretty strict about what characters you can use in an AVD name, but will warn you when you use invalid characters.

Define a Device

The quickest way to set up an AVD is to emulate an actual device the DVD Manager already knows about. If you select the Device drop down, it will offer you a number of different Google devices it can emulate along with a set of generic devices.

AVD Device Selection

If one of these predefined devices match the type of device you are targeting, then simply select it from the list.

If none of the devices in the list match the device you wish to target, you can set up all the fields in the AVD manager manually. For a full list of settings check out the AVD Hardware Options Documentation.

Select an API

You will also need to select the API level for the Target field. You can choose any installed API level, for example Android 4.4 – API Level 19.

AVD Target Selection

Device Memory

When you choose a predefined device it will set the RAM setting for the AVD to match the actual device. In practice, this number may be too high to properly emulate and you could get a warning.

AVD Memory Warning

In this case, you will probably need to adjust the RAM setting to something more appropriate. (What’s appropriate will depend on the amount of memory in your development machine.)

Save The Device

Once the AVD is defined, click OK to save it. You will be shown a dialog confirming all the settings that will be used to create the AVD.

Save Setting Dialog

On clicking OK, the new AVD should now appear in the list of available AVD’s. If the AVD seems to be fully configured correctly, it will have a tick next to it in the list.

AVD in List

Test The Device

Once you have created an AVD, you can run it by selecting it in the list and clicking the “Start” button.

You will be presented with some launch options where you can simply click OK unless you need to change something.

AVD Launch Options

The AVD will then begin to start.

AVD Start Progress

After a few seconds, a blank emulator screen will appear. From this point, depending on the spec of your development machine, it could take several minutes for your device to appear in the emulator.

AVD In The Emualtor

Testing Your AVD Setup

Now you are ready to test your setup. Leave the device running. From within Oxygene, start a new Android Application Project.

New Android Project

This will create a very simple Android Template Application. Click the “Start” button on the Visual Studio tool bar and Oxygene will build your project and deploy it to the emulator where you should be able to see it running.

New Android Project Running In Emulator

Setting Up An Actual Device

AVD’s are great for testing your application on devices you don’t own. If you do however own a device, you can test your application right on the device itself. In many ways this is preferable to using an AVD, as you get to see exactly how it will run and perform.

Enable USB debugging on your device

Before you can debug an Android application on your device, you need to enable it for USB debugging.
On Android 4.0 and newer, you need to go into Developer Options and turn it on.

NOTE: On Android 4.2 and newer, Developer options are hidden by default. To make them available, go to Settings > About phone or Settings > About Tablet and tap Build Number seven times.

Once turned on (if necessary) you can find Developer options in Settings > Developer options.

Android 4.4 Developer Options

If your device is running Android 3.2 or older, you can find the Developer options under Settings > Applications > Development.

Install USB Drivers For the Device

In order to connect to an Android device to test your applications, you need to install the appropriate USB driver. This page on the Android Developers website provides links to the web sites for several original equipment manufacturers (OEMs), where you can download the appropriate USB driver for your device. However, this list is not exhaustive for all available Android-powered devices. The page also gives information on how to install the driver once you have it.

Running Your App On The Device

Once the USB driver is installed for your device, make sure the device is connected to your machine. From Oxygene you can then choose to debug your application on your device by selecting your device from the Crossbox area of the Visual Studio tool bar.

Select Android Device

The first time you run your application from within Oxygene on your device, a dialog will appear asking for permission.

You Are Ready To Go

That’s it. You are now set up and ready to begin developing Android applications using Oxygene.

Good Luck!

Avatar of Anton

by Anton

Winter has come

December 23, 2013 in .NET, Data Abstract

By the time this blogpost will be published, the Winter 2013 release of Data Abstract will already become available. I feel that I should talk about several important features made available in it, and about a few things that will soon fade in oblivion.

So the new features first.

Private Schema tables access. Local Data Adapters (both dataset-based and DA LINQ ones) are now allowed to access Schema tables that aren’t marked as ‘public’ and thus aren’t accessible by remote clients. There is no need anymore to write additional code to access these tables using local data adapters or from Schema scripts.

Data Abstract for Portable Class Library (aka DA/PCL). Yes, this release contains a (limited) port of Data Abstract to Portable Class Library. You can now build one Class Library and then reuse it in Silverlight, Windows Phone or Windows Store application.

Unfortunately the dreaded Technical Debt monster arose and strikes from the back so the PCL library has some limitations on the desktop .NET Framework. The problem is that the RemoteLinqDataAdapter class is located in differently named assemblies in desktop .NET and in all other platforms (namely RemObjects.DataAbstract.Linq.dll and RemObjects.DataAbstract.dll). Introducing the .Linq assembly back-when was a good (and the only) way to introduce DA LINQ without breaking support of .NET 2.0. And an additional assembly wasn’t an issue until a need to create portable set of assemblies arose.

I can say that we plan to provide improve this to more seamlessly support all four .NET platforms (i.e. Windows Phone, Windows Store (WinRT), Silverlight AND desktop .NET) in the next release of Data Abstract. Stay tuned ;)

Important note: Up to this release, non-desktop Data Abstract assemblies had a platform name suffixes in their names (f.e. RemObjects.DataAbstract.Silverlight.dll or RemObjects.DataAbstract.WinRT.dll). Since this release these suffixes exist no more, so ALL assemblies have the same name.

And now to the stuff now considered obsolete.

Data Abstract provides two binary data adapters: BinDataAdapter and Bin2DataAdapter. The former one, BinDataAdapter data adapter, is now considered obsolete and will go away in the next major releases. We have Bin2DataAdapter data adapter that serves the same purpose, is way more advanced and feature-full and, unlike the BinDataAdapter, is supported by Data Abstract on platforms other than .NET and Delphi. The only reason we still shipped BinDataAdapter this long was backwards compatibility. Yet it is time to finally take a step forward and leave this obsolete data adapter behind. So, in the unlikely case that you are still using this data adapter, you really should to consider to switch to the Bin2DataAdapter data adapter. There’s no downside.

Also we have a set of ASP.NET components provided in the RemObjects.DataAbstract.Web.dll. This entire .dll will be removed in the next major release, and has been marked as obsolete. The reason behind this is that the very approach implied by these components is outdated and based on an old model of using ASP.NET. Mixing the UI (ie .aspx code) and data access results in dirty code and errors that can be detected only at runtime, thus resulting in a nightmare while supporting such apps. Believe me, I know. So if you are not using the RemObjects.DataAbstract.Web, then there is no need to worry. If you do then I’d strongly suggest you to either move to the properly layered architecture, where UI has no data access code and/or to take a look at the Data Abstract for JavaScript. It allows to create modern and robust UI and is shipped together with Data Abstract for .NET.

That’s all for now.

Still stay tuned – soon I’ll show you some exciting new features of RemObjects SDK and Data Abstract.

Avatar of marc

by marc

Reminder: Get Oxygene for .NET as part of your RAD Studio SA

November 20, 2013 in Elements, Oxygene

Hi.

i just wanted to shoot out a reminder that if you purchased “Support & Maintenance”, a.k.a Software Assurance (SA) for RAD Studio XE3 from Embarcadero, you are entitled to updated releases of Oxygene for .NET for the duration of your SA period.

Embarcadero might be telling you (if they say anything at all, that is) that Prism is discontinued or dead, but nothing could be further from the truth.

Prism has always been just a rebranded version of our Oxygene for .NET product. And while Embarcadero might no longer be delivering it to you (in spite of happily taking your SA money), Oxygene is alive and well, of course, and we here at RemObjects have decided to honor the full SA periods and provide you with the latest updates to Oxygene for .NET for the duration of your SA period – on our own dime.

What do you need to do?

Two simple things:

  1. Register an existing XE3.2 (or XE3.1 or XE3, if you never received the others) serial number with us at remobjects.com/oxygene/registerserial.
  2. Contact us at sales@remobjects.com with details about your SA contract, most importantly its coverage period, and (if not obvious from your name or email address) the username you created in Step 1.

We’ll update your account with access to the latest release of Oxygene for .NET covered by your SA period (which may include future releases, too), and get back to you, ASAP.

Caveats

As i mentioned above, we’re doing this on our own dime, so we need to set some cut-off date, or else we’d be shipping free Oxygene to everyone, forever, and not be able to pay our salaries.

Our official cut-off date for the above offer is April 23, 2013. On that date, Embarcadero announced RAD Studio XE4, which officially no longer included Prism.

If you purchased RAD Studio XE3 with DA, or renewed SA for RAD Studio before that date, you qualify for the above deal. If you renewed after this date, your previous SA period has already been fully covered, and your new SA period is for XE4 and does not, i’m sorry to say, include Prism anymore.

That said, if you purchased or renewed RAD Studio SA after the above-mentions date and feel in any way that you were misled or that the lack of Prism in your new purchase was mis-represented (and i’m only bringing this scenario up because we had countless people contact us with that exact concern), please email us anyway, and we will try and find a fair solution.

Our #1 goal is that every Prism customer gets a fair deal and does not feel cheated out of the product they paid for.

Full Oxygene

If you don’t have SA, or your SA has expired, of course there’s always the option (and we’ll love you for it) of just going and renewing to the full Oxygene product from us.

Not only does this give you a fresh year of updates to Oxygene for .NET, but it also gives you access to the other two platform editions, letting you build fully native no-compromise apps for iOS, Mac, Android and Java.

And if your SA is still active (and/or extended via the above offer), renewing will add an extra year on top of your current SA period – essentially giving you more than a year of updates for all three platforms.

  • If you have an extended license with us: Renew for $499 to add a year of Oxygene for .NET, Cocoa and Java, on top.
  • If you don’t have a current/non-expired subscription: Cross-grade for $599 for a fresh year of updates.(You can also cross-grade if you own any version of Delphi or any past version of Prism.)

In Summary

We’re very excited about Oxygene, what we have done with it over the past year, and what we have planned moving forward. We’re also very thankful for your patronage, and we hope that you love working in Oxygene as much as we do (and as much as we love creating it), and we look forward to what 2014 will bring, with you on board.


Party Time!

Avatar of marc

by marc

Announcing the Oxygene “October 2013″ Update

November 4, 2013 in Elements, iOS, Nougat

Dear readers,

we may be a day late and into November with this announcement, but we’d like you to know that the “October 2013″ update for Oxygene has been made available earlier this week.

What’s New

The October update is mostly a bug-fix release, but it also includes a couple of rather significant new features on the Cocoa front.

Most importantly, this release officially introduced 64-bit ARM support for the Apple A7 chip in the new iPhone 5S and the new iPads that came out today. Last month we laid a lot of the groundwork with 64-bit compiler support, but now [you can build](http://wiki.oxygenelanguage.com/en/Architectures_(Cocoa) your apps for your devices in 64-bit mode, as well. Very exciting.

We have also started officially shipping .fx files for the new Mac OS X 10.9 “Mavericks”, and we’ve extended the Cocoa compiler to support the new “instancetype” feature introduced/mainstreamed for Objective-C by the iOS 7 and OS X Mavericks SDK.

And of course there are a good 100 additional fixes and improvements in this update, across all three platforms.

How to get Oxygene 6.1.57

As always, this release is a free update to all active subscribers, and can be downloaded now.

If your subscription has elapsed, now is a great time to renew to get access to the latest release and all the good stuff we have cooking for the near future.

Oxygene for Prism Customers

Remember that Oxygene 6.1 is also the first release that is no longer available from Embarcadero under the Prism brand, and it will not accept Prism XE3.2 serial numbers. But as a reminder: we are committed to honoring SA contracts Embarcadero might have sold you with the promise of Prism coverage (i.e. before April 23, 2013). Please email sales@remobjects.com with your SA details, and we’ll sort you out with ongoing access to Oxygene for .NET for the remainder of your SA period. (You can read more about this here).

Of course, if you do not have SA, or if you want to take advantage of Oxygene on the Cocoa and Java/Android platforms as well, you can always renew or cross-grade to the full Oxygene package at any time.

More to Come

2013 is drawing to a close, but we’re not done yet. We’ve got one whopper of a release planned for the end of this month (and lots of cool stuff are coming in 2014 as well). So make sure stay up to date with your subscription.

Happy coding!