Delphi Clinic C++Builder Gate Training & Consultancy Delphi Notes Weblog Dr.Bob's Webshop
Dr.Bob's Delphi Notes Data Abstract Delphi for .NET Developer's Guide
 Dr.Bob on Chrome Cross-Linking
Dr.Bob's Chrome Shines section is all about the RemObjects Chrome language for .NET and Mono.

Building .NET applications or assemblies usually means binding to one specific version of the .NET Framework, which means it's not always possible to use an assembly or application on another version (or on the Compact Framework or Mono for example).
In order to support developers who want to target different versions of the .NET Framework (including the CF or Mono), Chrome offers a feature called Cross-Linking, where you can use the compiler under .NET 1.1 or 2.0 but still link against alternative CLR assemblies.
Note that if you use for example .NET 1.1-specific classes or methods, then you will benefit from compile-type checking and an error message telling you the feature is not available under CF, when compiling against CF. In general, the Chrome compiler will tell you if it cannot resolve such things (with a compiler error, not a runtime error later - you are really binding to the specified version of the CLR).
Also note that this means that you may have to insert a few IFDEFs here and there, but can produce a single-source code base that can be compiled against multiple versions of the CLR (so you can write once, deploy many times - wait... where did I hear this before? ;-)

Chrome on Mono
Note that this doesn't mean that the Chrome compiler itself is limited to just being used on .NET 1.1 or .NET 2.0 (inside Visual Studio), you can also use the Chrome command-line compiler. For example on Mono, as the following screenshot illustrates:

Dr.Bob says... Dr.Bob Says...
I'm very impressed by the ability that Chrome offers me to run on one .NET Framework version, and still link against different CLR platforms - including .NET 1.1, .NET 2.0, the Compact Framework as well as Mono. This will allow me to develop in one stable development environment (whether that's .NET 1.1, 2.0 or Mono) and still be able to deploy for other CLR platforms at will.


This webpage © 2004-2010 by Bob Swart (aka Dr.Bob - www.drbob42.com). All Rights Reserved.