Delphi Prism for .NET – Visual Studio and Monobloc on Mac OS

Links relating to Delphi Prism.

Delphi Prism is the new .NET technology for Delphi users to replace the Delphi .NET IDE and language which had the significant disadvantage of always lagging behind MS Visual Studio .NET’s new frameworks. Instead, Delphi Prism comes bundled with MS Visual Studio Shell and runs within it so you can always be working the the latest MS .NET technology AND you get the advantage of being able to port to other platforms such as MacOS and Linux which MS .NET does not provide. Delphi Prism is based on RemObject’s Oxygene language (which has some nice features not found in Object Pascal or C#) and compiler rather than Delphi’s Object Pascal language.

RemObjects Software is licensing its Oxygene technology to Embarcadero for exclusive use as part of Prism.

Pros:

  • Oxygene/Prism Pascal code is more readable and has a nicer structure than C#, it’s less ambiguous (although,  C# is a big step forward from C and C++)
  • Prism is a complete superset of C# and then, Prism adds a whole slew of new features on top which make it a joy to work with such as  “future” types, “async” blocks and expressions and “parallel” loops which will really help writing  multi-threaded and multi-core apps.
  • “Microsoft is adding infrastructure to leverage multiple threads in .NET 4.0, called the “Parallel Framework”, or “PFX”. The PFX is really just a bunch of classes and functions you can call, but for Prism we went the extra mile to integrate these concepts into the language. So for example, you can now declare a variable to be of a “future” type – which means it will behave very much like a normal variable of a given type, except for one thing: it’s value will be calculated at some point in the future, possibly on a different thread.”
  • potential to port apps to MacOS and Linux via Mono, and perhaps to Apple’s iPhone. Delphi Prism applications will execute on Mono for the Mac, or on Mono for Linux.
  • option of using RemObject’s full multi-tier database access solution using Data Abstract for .NET.
  • Delphi Prism can be targeted to link against any version of the .NET Framework from version 1.1 up.
  • some support to assist migrating Delphi apps:
    • support for Datasnap technology including dbExpress connectivity for ADO.NET
    • client support for DataSnap, enabling Prism clients to talk to Delphi/Win32 Midas/DataSnap servers
    • Blackfish SQL database engine
    • Delphi Win32 RTL for Delphi Prism provided by ShineOn
    • Oxidizer command line tool to convert Delphi .pas files to Delphi Prism and create an Oxygene project leaving you with only small changes to make a migrated Prism project compilable.
    • the structure and syntax of the languages is pretty similar thus, the vast majority of Delphi-style code will work in Prism
  • new versions are likely to be synchronised with new versions of MS .NET framework / Visual Studio and will be managed by the RemObjects team independently but liaising with, the Codegear Delphi Win32/Win64 team.

Cons:

  • there is no backward compatibility with Delphi’s VCL.NET
  • it means Delphi for .NET (Object Pascal Delphi)  is now a dead technology (Delphi 2007 will be the last product to feature it) as is Delphi .NET WinForms (this was deprecated with last product to use it being Delphi 2006), BU Prism will have its own WinForms as well as WPF.
  • although Prism is a Pascal based language (“Visual Studio Pascal”) it is not Object Pascal nor C#, and many will prefer the “security” of the C# standard.
  • maths differences – unlike DWin32, if you divide an integer by an integer you will always get an integer – not a floating number as with Win32!
  • if you want C#/VB.NET functionality as well, you need to buy MS Visual Studio 2008 Professional or later as the supplied MS Visual Studio Shell does not include these components. You can run Visual Studio Express side by side with Delphi Prism on the same machine, but they cannot be integrated into the same IDE without VS 2008 Pro.
  • “Delphi Prism will compile against the Compact Framework (CF) assemblies. However, there is no design-time support as the Compact Framework designers are closely integrated with the C# and VB.NET personalities of Visual Studio and not available for use by other language plug-ins”
  • all the problems of MS .NET:
    • DLL hell scenario of multiple massive .NET frameworks required to be installed on users’ computers
    • overly complex object model and language making for buggy bloatware
    • much slower development time than with native Delphi Win32
    • inline assembly code isn’t supported by Delphi Prism (or .NET for that matter)

Embarcadero’s Delphi Prism page Delphi Prism wiki

Bitwisemag.com’s interview on Prism

History of Prism, Oxygene, Chrome and Rem Objects:

  • RemObjects Software was founded in summer of 2002.
  • Its first product was RemObjects SDK 1.0 for Delphi, the company’s remoting solution which is now in it’s 5th version
  • In late 2003 RemObjects expanded its product portfolio to add Data Abstract for Delphi, a multi-tier database framework built on top of the SDK
  • Chrome 1.0 was released in mid-2005, providing support for .NET 1.1 and .NET 2.0
  • Chrome 1.5 was shipped in Nov 2005 when .NET 2.0 shipped.
  • Chrome ’Joyride’ which added official support for .NET 3.0 and 3.5 was released in 2007 and included Sequences and Queries (aka LINQ)
  • Borland sells Codegear (and thus Delphi, C++Builder, JBuilder, 3rdRail (Ruby on Rails) and Delphi for PhP) to Embarcadero in May 2008.
  • Oxygene 3.0 was released in May 2008, dropping the “Chrome” name.
  • CodeGear’s Delphi Prism was announced in Oct 2008 – in effect, the latest version of Chrome/Oxygene.

No comments yet.

You must be logged in to post a comment.

No trackbacks yet.