InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Delphi Prism 2010 Offers Improved .NET Development

Posted by Abel Avram on Sep 01, 2009

Sections
Development
Topics
IDE ,
.NET
Tags
Delphi ,
Delphi Prism

Delphi Prism 2010 comes with major new features like better compatibility with the Delphi language, AOP, support for dynamic typing, and touch features like Range Enum Types, Read-only classes and support for negative low bounds in arrays.

Delphi Prism 2010 is Embarcadero’s solution for Delphi developers to create .NET applications. Delphi Prism needs .NET Framework 3.5 or 4.0 to run but it can generate assemblies targeted for any .NET version starting with 1.1. If Visual Studio Professional 2008 is already installed on the PC, the Delphi Prism installer will integrate Prism into it. Integration with VS 2010 does not work yet but it is likely to work when VS 2010 will be released or soon afterwards. If VS 2008 is not already installed, Delphi Prism will install the VS Shell and it will run inside it. VS Shell is a VS IDE without any language plug-ins.

Delphi Prism applications can be targeted for .NET/Windows or Mono/Linux or Mac, but VCL.NET has been deprecated and is no longer available in Prism. VCL.NET applications could be ported to VCL for Win32, development being continued in Delphi 2010. The Delphi and Oxygene languages are very similar but not 100% compatible. Applications can be ported between the two environments with some changes.

Delphi Prism 2010 contains the following new features:

Major Compiler Features
  • RemObjects Cirrus: AOP for Oxygene
  • Standard Aspects Library for RemObjects Cirrus (shipping as Tech Preview)
  • Unmanaged Exports
  • Generic Type Variance
  • Volatile fields
  • CLSCompliantAttribute support and compiler warnings
  • New LINQ Query Expressions operators Skip, While, Take and Take While
Minor Compiler Features
  • Unquote expression support (mainly to support Cirrus)
  • $DELPHICOMPATIBILITY compiler directive and project option
  • Runtime range checking
  • Range Enum Types (e.g. "type Ten = 1..10;")
  • Read-only classes
  • Support for negative low bounds in Array Types
Other New Features
  • CodeDom enhancements to support OxygeneInterface, OxygenePartial and OxygeneEmpty tags in UserData
  • Pre/Post build events
  • Debug options: Remote Machine
  • Custom "Add Reference" pane for adding Mono assembly references
  • New Monobjc Template and Monobjc libraries deployed with Delphi Prism
  • Updated setup to install the latest Mono 2.4
  • Added Internet Pack as an integrated part of setup
  • Integrated F1 help based on an offline copy of the documentation wiki
  • Added templates for ASP.NET Web projects

Developers can also build DataSnap 2010 client applications.

Delphi Prism’s wiki boasts with language features not available yet in C#, but the wiki might be outdated considering new features coming in .NET 4.0:

Delphi Prism comes in two editions: Professional and Enterprise, the later providing InterBase and Blackfish SQL connectivity, DataSnap .NET support and Blackfish SQL deployment for 5 users.

No comments

Watch Thread Reply

Educational Content

New-age Transactional Systems - Not Your Grandpa's OLTP

John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

Cool Code

Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

Collaboration: At the Extremities of Extreme

Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

Yesod Web Framework

Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

Transactions without Transactions

Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

Attila Szegedi on JVM and GC Performance Tuning at Twitter

Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.