Updated Delphi for .NET preview available for download

By: John Kaster

Abstract: Registered users of Delphi 7 can now download an update to the Delphi for .NET preview

Included in the download are a new compiler, new run-time, and experimental VCL for .NET source files. The 11.1MB download is available from the Delphi registered users site.

The following readme.txt provides important details about this preview update. In particular, the section about rebuild.bat should be read. Personally, I strongly recommend running rebuild.bat after the preview installation completes, just to make sure the units match your version of the .NET runtime.

Note! This readme has also been slightly modified to provide clickable links to the referenced web pages, and correct and direct links to all currently available Delphi for .NET preview newsgroups. Be sure to refresh your newsgroup list periodically, as we may be adding VCL newsgroups for the preview in the near future.

Enjoy, and see you on the newsgroups!



          Delphi for Microsoft .NET Preview
                   Release Notes


=======================================================

This file contains important supplementary and late-
breaking information that may not appear in the main
product documentation. We recommend that you read this
file in its entirety.

=======================================================
CONTENTS

* LICENSE AND DISTRIBUTION INFORMATION
* LATE BREAKING NEWS CONCERNING .NET FRAMEWORK SERVICE PACK 2
* SUPPORTED PLATFORMS
* PRODUCT INSTALLATION 
* NOTES AND ISSUES               - *UPDATED*
* NEW FEATURES AND KNOWN ISSUES IN THE DELPHI FOR .NET PREVIEW UPDATE
* PRODUCT INFORMATION ON THE WEB - *UPDATED*

=======================================================
LICENSE AND DISTRIBUTION INFORMATION

* LICENSE contains information on licensing allowances
  and limitations for this product and other Borland
  software that is bundled with it.

* DEPLOY contains information about redistributing your
  applications.

  The two files listed above, along with this file,
  are installed in your main product directory
    (default: C:\Program Files\Borland\Delphi for .NET Preview).
    
=======================================================
LATE BREAKING NEWS CONCERNING .NET FRAMEWORK SERVICE PACK 2

As delivered, the Delphi for .NET Preview is 
supported only on the .NET Framework with Service Pack 1.

Once you have Service Pack 2 installed, you must rebuild the 
precompiled units shipped with the Preview release.

Borland has included a batch file to perform 
the rebuild:

* Open a command prompt window, and change to your 
  Preview installation directory.
  (default: C:\Program Files\Borland\Delphi for .NET Preview)

* rebuild.bat is in the source directory under
  the Preview installation.  CD to that directory and 
  execute the command:
  
  rebuild
  
* The batch file will rebuild the precompiled units
  in the units directory. It will also copy the rebuilt
  units over to the aspx\units directory.

* During the rebuild there will be several "Identifier Redeclared"
  errors when Borland.Delphi.System.pas compiles. 
  This is a known issue. The output of the compile will be 
  correct, and there is no need to attempt to fix these errors.
  
=======================================================
SUPPORTED PLATFORMS:

The .NET Framework SDK, and the Delphi for .NET Preview 
are supported on the following platforms:

Windows NT 4, Service pack 6a or higher.
Windows 2000 (SP2 recommended)
Windows XP Professional


The Delphi for .NET Preview will install on some platforms 
where the full .NET Framework SDK is not supported 
(Windows XP Home Edition, for example). However, 
the Delphi for .NET Preview is only supported on those
platforms where the full .NET Framework SDK is supported.


The Delphi for .NET Preview installation does not install
the .NET Framework SDK on your system. If you do not have
the SDK installed you can download it from the Microsoft web site:

http://msdn.microsoft.com/netframework/downloads/howtoget.asp

Remember: You must download the whole SDK, not the smaller runtime.

=======================================================
PRODUCT INSTALLATION:

If the Delphi for .NET Preview is installed prior to the
.NET Runtime, an additional step must be performed
manually once the .NET Runtime has been installed.

After installing the .NET Runtime, you must copy the 
contents of the aspx\Framework directory to the .NET Runtime
installation directory.

The three files that must be copied from the aspx\Framework
directory are:

dccasp.exe
dccil.cfg
rlink32.dll

The destination directory is:

<Windows directory>\Microsoft.NET\Framework\<version>

Where:
<Windows directory> is your Windows installation directory.
<version> is v1.0.3705, for the .NET Runtime version 1.0.

The installer will copy these files for you automatically
if the .NET Runtime has already been installed.

NOTE: The dccil.cfg configuration file in the 
aspx\Framework directory is used by dccasp.exe, even 
though its base name is different. The command-line 
compiler, dccil.exe, has its own configuration file
in the bin directory.
 
=======================================================
NOTES AND ISSUES - *UPDATED* 

This release of the Delphi for .NET Preview compiler and 
RTL will not be installed with the main Delphi 7 product, and 
it is not meant for use in production applications.

The following are the RTL units included with the Preview:


Included RTL Units
-------------------------
- Borland.Delphi.Classes
- Borland.Delphi.contnrs
- Borland.Delphi.ConvUtils
- Borland.Delphi.DateUtils
- Borland.Delphi.Masks
- Borland.Delphi.MaskUtils
- Borland.Delphi.Math
- Borland.Delphi.StdConvs
- Borland.Delphi.StrUtils
- Borland.Delphi.SyncObjs
- Borland.Delphi.System
- Borland.Delphi.SysUtils
- Borland.Delphi.Types
- Borland.Delphi.TypInfo
- Borland.Delphi.VarConv
- Borland.Delphi.Variants
- Borland.Win32.ActiveX
- Borland.Win32.CommCtrl
- Borland.Win32.CommDlg
- Borland.Win32.Dlgs
- Borland.Win32.Imm
- Borland.Win32.IniFiles
- Borland.Win32.Messages
- Borland.Win32.MultiMon
- Borland.Win32.Registry
- Borland.Win32.ShellAPI
- Borland.Win32.UxTheme
- Borland.Win32.Windows
- Borland.Win32.WinSpool
- Borland.Win32.Winutils


The following are the VCL units included with the Preview:

Included VCL Units
-------------------------
- Borland.Vcl.ActnList
- Borland.Vcl.Buttons
- Borland.Vcl.Controls
- Borland.Vcl.Dialogs
- Borland.Vcl.ExtCtrls
- Borland.Vcl.Forms
- Borland.Vcl.Graphics
- Borland.Vcl.ImgList
- Borland.Vcl.Mask
- Borland.Vcl.Menus
- Borland.Vcl.Printers
- Borland.Vcl.StdCtrls
- Borland.Vcl.Themes

Note that experimental units are marked with 
the new "experimental" compiler directive. Experimental 
units should be considered highly unstable and will change 
in future updates.

Moreover, keep in mind that this is a preview release,
and even units not marked as experimental are subject to 
change prior to shipping the final product. You should
be careful not to introduce dependencies on the implementation
of any of the units shipped with this release.

More units are scheduled to appear in future updates to 
the Delphi for .NET Preview. Updates will be available on the 
Delphi Registered Users' web site:

http://www.borland.com/products/downloads/download_delphi.html


Please look in the Doc directory for additional 
information. The HTML document "Welcome.htm" gives an overview of .NET, 
CLR, the framework and how Delphi fits into the architecture.
The "GettingStarted.htm" document gives information on the directory
structure and basic compiler tips. 

Due to the nature of .NET's JIT compilation it is important
that you actually make calls to each method you use to see 
if it is functioning properly. The Welcome.htm file 
discusses some of the issues related to JIT compilation.

=======================================================
NEW FEATURES AND KNOWN ISSUES IN THE DELPHI FOR .NET PREVIEW UPDATE

** VCL Units **
- Some VCL units have been added to the Delphi for .NET Preview
  update. The following are issues related directly to the VCL:

    - TApplication.CreateForm has not been implemented yet. 
      You must explicitly create the form and assign it to
      Application.MainForm, as follows:

      Application.Initialize;        // As before
      Form1 := TForm1.Create(nil);   // New
      Form1.Position := poDefault;   // New
      Application.MainForm := Form1; // New
      Application.Run;               // As before

      NOTE: Application.MainForm has been changed to a read/write
            property to allow this. When CreateForm is implemented,
            Application.MainForm will revert to a read-only property.


    - The first statement in a component's initialization must be 
      the Parent assignment:

      with ComboBox1 do
      begin
         Parent := Self;
         Top    := 25;
         // More initialization of ComboBox1...
      end;

    - Assignments to ActiveControl should be done at the end of 
      form initialization:

      TForm1.Create(AOwner : TComponent)
      begin
         inherited;
         Color  := clBtnFace;
         Label1 := TLabel.Create(Self);
         with Label1 do
         begin
            Parent := Self;
            // Initialize Label1...
         end;

         // More initialization code...
         // ...

         ActiveControl := Label1;
      end;


    - The TransparentColor and AlphaBlend properties on forms are not implemented yet.

    - Class Registration has not been implemented. RegisterClass
      and RegisterClasses will throw an exception if you call them.

    - TBitBtn is not fully implemented, and should not be used.

    - The following classes and methods from Borland.Vcl.Graphics
      are unsupported in this release:

      - TBitmap.Mask method
      - TCanvas.BrushCopy method
      - TMetafile class
      - TIcon class
      - Palettes

    - Transparent images are not yet fully supported by the TImageList 
      class. 

    - Adding help to your application is not supported yet.

    - Help hints on controls is not supported yet.

    - Printer support has the following limitations:
      - AssignPrn is not implemented yet.
      - The Print method on TCustomForm does not work yet.
      - TPrintDialog, TPrinterSetupDialog, and TPageSetupDialog
        have not been implemented yet.

    - The BeforeDestruction and AfterConstruction methods are gone.
      On form objects, you must set OldCreatOrder to True to get
      an OnCreate or OnDestroy event. By default, OldCreateOrder 
      is set to False.

    - If you do not use the multiselect option with open and save dialogs,
      the value of the FileName property will be padded with null characters
      on the end. Use the Trim function in SysUtils to remove the null
      characters.

  The Demos\VCL\Shape directory under the product installation contains 
  a demonstration of using the VCL with the Delphi for .NET Preview.





** Language and Compiler: Known Issues and New Features **

- Known issues with constructors:

  - In your Create method, you must call the inherited constructor
    first, before making any assignments to class members.

      constructor TMyClass.Create;
      begin
        inherited Create;  // This must be first.
        // Now you can assign to class members.
      end;

  - When calling the inherited constructor of a CLR base class, call
    inherited, not inherited Create.

      constructor TMyClass.Create;
      begin
        inherited; // Call inherited when your base
                   // is a CLR class.
        
      end;

  - Named constructors (i.e. constructors not named "Create") are not 
    working in this release. Currently you must name your constructor "Create".
    This issue will be resolved in a future release of the compiler.

  - when a constructor in a base class is hidden by a constructor having a
    different signature in a derived class, the compiler will not produce an 
    error if you call the constructor matching the signature in the base class.
    Instead, the compiler will generate code to call the constructor of the 
    base class.

      type
      TBase = class
      public
        constructor Create;
      end;

      TDerived = class(TBase)
      public
        constructor Create(X: Integer);
      end;

      var
        d : TDerived;

      begin
         d := TDerived.Create; // This produced a compiler error with dcc32.
                               // It will not produce an error with dccil. 
                               // TBase.Create will be called instead.
         // ...
      end.

    This issue will be resolved in a future release of the compiler.

- Lvalue casting in assignment statements is - by design - no longer allowed. 
  You can cast an rvalue, but not an lvalue.

    var
      w : Word;
      i : Integer;

    begin
        w       := 1;
        Word(i) := w;          // No longer allowed by the compiler.
        i       := Integer(w); // OK.
    end.


- Pascal file handling routines such as AssignFile, Reset, Rename, Erase, etc.)
  are not implemented.
     
- Debugging in the Microsoft Debugger is supported (see Doc\GettingStarted.htm),
  however, source line numbers shown in the debugger might not always match
  the actual execution position.

- You no longer have to rebuild the Borland.Delphi.System unit 
  to import CLR namespaces. When a Delphi source file refers to a
  namespace with no corresponding dcuil file, the compiler will
  attempt to import that namespace from the list of assemblies 
  specified with the -lu command-line option.

- You no longer have to list every referenced assembly in the 
  -lu command-line option. When the compiler imports a 
  CLR assembly, and that assembly references another assembly,
  the compiler will import the referenced assembly automatically.

- For example, if your application uses assembly X, and assembly X
  references assembly Y, you only need to specify assembly X 
  at the command line:

  dccil -m MyApp.pas -luX

  Previous releases of the Preview compiler required that both
  assemblies be specified.

- The compiler now searches for referenced assemblies on the unit search path,
  followed by the CLR framework directory.  The compiler no longer 
  searches the system path for assemblies.

- You can use a full path (including file extension) in the -lu command line
  option to specify an assembly that does not reside on the unit search path
  or in the CLR framework directory.

- Class method support in class helpers.

- Class references are now polymorphic (class reference type determined by the
  type of the runtime instance, not the type of the variable)

- DCUs now record and check the file times of assemblies they reference.

- New compiler keywords: sealed (prevents creation of descendant
  classes) and final (prevents descendants from overriding a 
  virtual method).

- New visibility specifiers: class private and class protected are added to 
  support CLR private and protected scope. See the file
  LanguageChanges.htm for more information. 

- class static methods, class properties and fields, and class constructors are added. 
  See the file LanguageChanges.htm for more information on these new scope specifiers.

- Untyped var parameters are supported. See the file LanguageChanges.htm
  for more information.

=======================================================
PRODUCT INFORMATION ON THE WEB - *UPDATED*

The following Borland Web-based resources provide a 
continuous stream of news, product information, updates, 
code, and other materials.


Code Central
------------

The CodeCentral Repository is a free, searchable
database of code, tips, and other materials of interest
to developers. For details and registration
information, visit

 http://codecentral.borland.com/


The Borland Web site
--------------------

Borland Software Corporation home page:
  http://www.borland.com

Sample Delphi for .NET Applications, including ASP.NET:
  http://dotnet.borland.com

Borland Developer Network articles relating to Delphi and .NET:
  http://bdn.borland.com/delphi/platforms/dotnet

Delphi home page:
  http://www.borland.com/delphi/

Delphi developer support and updates:
  http://www.borland.com/devsupport/delphi/

Delphi 5 and previous updates:
  http://www.borland.com/devsupport/delphi/downloads/

Delphi documentation site:
  http://www.borland.com/techpubs/delphi

Newsgroups:
  news://newsgroups.borland.com/borland.public.delphi.netpreview.non-technical
  news://newsgroups.borland.com/borland.public.delphi.netpreview.aspnet
  news://newsgroups.borland.com/borland.public.delphi.netpreview.clr
  news://newsgroups.borland.com/borland.public.delphi.netpreview.compiler
  news://newsgroups.borland.com/borland.public.delphi.netpreview.rtl

Worldwide offices and distributors:
  http://www.borland.com/bww/

FTP site (anonymous access):
  ftp://ftp.borland.com


=======================================================
Copyright © 2002 Borland Software Corporation.
All rights reserved.

This is the end of the readme.


Server Response from: ETNASC03