Hydra applications consist of both plugins and hosts, both of which can be implemented using a variety of different development tools and UI frameworks that can be combined seamlessly. This page takes a look at the three different host platforms supported by Hydra 4; each type of host can use all the supported plugin platforms.
Probably the most common use case for Hydra today is a host application written in Delphi using the VCL and hosting plugins created either with the VCL as well, or using any of the other plugin platforms we support. Common reasons and scenarios for creating this type of applications include:
The desire to build a dynamic application that can be expanded with new functionality simply by adding additional plugins that conform to the same well-defined API (with or without taking advantage of the different plugin platforms).
The need to extend an existing Delphi VCL application with elements that are more easy or convenient to implement using other platforms, for example to leverage the rich UI capabilities of WPF, Silverlight or FireMonkey, or the technical benefits of .NET languages, when writing new code.
The ability to start a piecemeal port of a legacy Delphi application to .NET by first modularizing it, and then porting individual plugins to .NET, optionally concluded by a port of the host application itself.
»» VCL hosts can be created with Delphi 2009 and later, as well as with Delphi 7 for legacy support. Starting with Delphi XE2, hosts can support Win64 in addition to Win32.
Just as with the VCL for Delphi, WinForms is, to date, the prevalent framework for creating applications using the standard Windows user interface controls on the .NET platform. Reasons for turning your WinForms application into a Hydra host include:
Wanting to expand a WinForms app with user interface elements that are more easy or convenient to implement using WPF or FireMonkey, for example to add visually rich and stunning graphics for data visualization or other purposes.
Needing to reuse legacy business logic or forms implemented in Delphi, without the need to port over to a .NET-based language.
Providing a modular application that can be expanded dynamically with new functionality by adding additional plugins (whether purely based on WinForms or leveraging any of the other plugin platforms).
Having concluded a piecemeal port of a legacy Delphi application to the .NET platform by concerting the host application.
»» WinForms hosts can be created in Visual Studio 2010 using C#, Oxygene for .NET and Visual Basic.NET, as well as any other CLR-compliant language available for the .NET Framework.
FireMonkey is the new framework from Embarcadero in Delphi XE2 and later for creating rich vector-based user interfaces and 3D graphics, similar to .NET's Windows Presentation Foundation, using Win32 or Win64 Delphi code.
Reuse existing business logic or forms that use the VCL in your new FireMonkey application, which Delphi does not support out of the box.*
Create an extensible application that can load new functionality at runtime from plugins conforming to a common set of APIs defined by your app (whether they are all based on FireMonkey, or leverage other technologies as well).
Extend a FireMonkey application with elements that are more easy or convenient to implement using the .NET or Silverligght platforms, for example to leverage the technical benefits and advanced features of .NET languages such as Oxygene over unmanaged Delphi code.
»» FireMonkey plugins can be created using Delphi XE2 or later and are supported for both Win32 and Win64.
*Without Hydra, Delphi applications either use the VCL or FireMonkey, with no provison to mix the two technologies in the same project, let alone on the same form.