Hydra について

既存のプロジェクトのDelphiやWin32のネイティブコードを破棄することなく.NETプラットフォームに拡張

Hydra is an application framework that allows developers to create modular applications that can mix managed (.NET and Java) and unmanaged (Delphi and Island) code in the same project, creating a seamless user experience while combining the best technologies available from either platform.

Combining Delphi and .NET

Many Delphi developers consider migrating to the .NET platform, either to make use of its advanced development capabilities and better languages or to leverage new technologies such as the Windows Presentation Foundation or LINQ. At the same time, they are rightfully hesitant to leave the existing investment in their extensive Delphi code base behind.

Hydra from RemObjects, provided in one SKU for Delphi, .NET and Island, enables you to keep your investment in your existing native Delphi code base, while at the same time opening your applications to managed plugins. This allows new development to happen in .NET, for example using C#, Oxygene, Visual Basic.NET or any other language available for .NET.

At the same time, the existing code can be kept and maintained in Delphi, and both parts can contribute to what appears to the end user as a single, unified application.

This makes it possible to employ .NET technologies within your existing Delphi-based application frame. For example, you might decide to implement diagrams using the hardware-accelerated Windows Presentation Foundation (WPF) or FireMonkey. Or maybe you want to leverage technologies such as LINQ in your non-visual data processing code and show the results in your Delphi app.

Hydra is also helpful for migrating applications to .NET altogether, in a step-by-step fashion. Developers can start by modularizing their existing Win32 code base and extend it with .NET code or port selective modules over to .NET, where it makes most sense (for example those modules that still see most active development and would benefit most from using new, .NET-based development technologies).

Gradually, they can elect to port and replace the remaining modules (and even the host application) over time and at their own pace. They can keep working on the project in mixed-mode, or eventually migrate to a fully managed solution, once all parts are ported.

Combining Delphi and Island

Another interesting scenario is to extend a Delphi application with new code compiler using Elements' Island platform.

Using Island, Delphi developers can start extending their application with code written in Oxygene (which is similar to Delphi in style, but much more expressive and advanced) or C# and Swift, without giving up the benefit of being 100% unmanaged. Island code compiles CPU-natively to x64 or i386 assembly - just like Delphi - and does not require any runtime. But it still gives you all the breadth and language features of the more modern languages, along with the Elements RTL, and the Delphi compatibility class library (Delphi RTL).

Combining .NET and Island

Similarly, .NET developers will find it interesting to extend their existing .NET apps with native Island plugins - being able to use the exact same language they already use and love, whether it's C# or Oxygene.

Add some native code pieces to your application - for example an algorithm that has been fine-tuned to run in native code, or bits that access hardware and must run unmanaged - without having to learn a new language and/or steep down to C++.

Combining VCL and FireMonkey

FireMonkey, is a new framework for building rich 3D and vector-based graphical user interfaces using unmanaged Delphi code - comparable to what WPF offers on the .NET side. Unfortunately, VCL and FireMonkey don't mix well, so once again developers are asked to leave their existing investment in VCL application code behind to adopt the new technology.

Hydra provides a solution for this problem by allowing developers to integrate FireMonkey UI seamlessly with their existing VCL applications, or conversely add existing VCL user interfaces into new FireMonkey apps. FireMonkey code can even be used with VCL code compiled in different versions of Delphi.

And of course this works together with .NET and Silverlight plugins as well, letting you combine all of VCL, FireMonkey, WinForms, WPF and Silverlight in the same application, if necessary.

Inter-platform communication

Plugins and host created using different development platforms can communicate seamlessly using custom interfaces you can define, and Hydra's IDE integration in Delphi and Visual Studio lets you seamlessly port these interface definitions between the two platforms.

You can define your custom interfaces in Delphi code, and let Hydra's toolchain parse the code to generate the necessary interface definitions in C#, VB, Oxygene or any other .NET language. Or you can define your interfaces in .NET and let Hydra import them into your Delphi project.

Host and plugins can communicate using these interfaces without needing to be aware of the platform differences.