.NET frameworks is nice indeed. I like it, and I am a Delphi "integralist".
Unfortunately, someone in MS decided that interface name prefix 'I' is good
but class name prefix ('T' or 'C') it is not. This decreases immensely code
clarity.
C# chaps have a case-sensitive solution: they uncapitalize the instance
names, e.g. graphics = new Graphics
Very readable indeed! Not to mention the problem if the instance is visible
outside the assembly (.NET in general is NOT case-sensitive).
Delphi would have the solution: type equivalence, e.g.

type
  TGraphics = System.Drawing.Graphics;
var
  Graphics: TGraphics;

but manually rename all framerwork types is not an option.
Fortunately, using reflection it is quite easy to develop a tool that
inspects an assembly and generate the type definitions automatically.

PrefixIt! Basic usage.
1. Load an assembly, lists of namespaces and types are presented.
2. Sometimes MS dispersed a namespace over different assemblies. Merge
   these assemblies with the first one. It is also possibile to merge
   automatically all assemblies in a folder (this operation may take
   a very long time).
3. Unckeck any namespace and or type that you want to exclude from the
   elaboration.
4. Generate the type definition units. For any namespace <N> an <N>.T.pas
   unit is generated.
5. Copy the generated units where your project can find them.
6. Inside your units add to uses referring namespace <N> uses referring
   namespace <N>.T (uses referring namespace <N> may still be necessary to
   get access to interfaces and for the code generated by the form designer).
   System namespace is implied, so you have only to add a uses to System.T
7. Now inside your units you can use the 'T' prefixed names.

PrefixIt! More info
Default behaviour of PrefixIt! is:
 a. Prefix normal class names with prefix 'T'
 b. Prefix exception class names with prefix 'E' and remove the
    'Exception' postfix if present
 c. For COM classes inside interop assembly remove the 'Class' postfix if
    present
 d. Prefix value type but enumerated (record) names with prefix 'R'
 e. Prefix enumerated type names with prefix 'T'
 f. Generate units named <N>.T
The prefixes can be changed and point b and c can be disabled using
Options dialog. If class prefix is set to '' generated units are
named <N>.P
Using options dialog it is also possible to set a special prefix / name
for selected namespace / type.
Options include also the namespaces and types that must not be included
in the generated units and are saved in PrefixIt.xml file inside the program
directory. The default for it is as below.

<?xml version="1.0"?>
<TOptions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ClassPrefix>T</ClassPrefix>
  <RecordPrefix>R</RecordPrefix>
  <EnumeratedPrefix>T</EnumeratedPrefix>
  <ExceptionPrefix>E</ExceptionPrefix>
  <RemoveExceptionPostfix>true</RemoveExceptionPostfix>
  <RemoveClassPostfix>true</RemoveClassPostfix>
  <KnownTypes>
    <anyType xsi:type="TKnownType">
      <NETName>System.Object</NETName>
      <DelphiName />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownType">
      <NETName>System.Void</NETName>
      <DelphiName />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownType">
      <NETName>System.__ComObject</NETName>
      <DelphiName />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownType">
      <NETName>System.String</NETName>
      <DelphiName />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownType">
      <NETName>System.Decimal</NETName>
      <DelphiName />
      <Exclude>true</Exclude>
    </anyType>
  </KnownTypes>
  <KnownNamespaces>
    <anyType xsi:type="TKnownNamespace">
      <Name>AXLib</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>DATALib</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>OLE32Lib</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>SHDocVw</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.com.ILWrappers</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.com.JCW</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.com</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.dll</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.jdbc.odbc</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.lang</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.util.InputMethod</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.util</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.vjsharp.beans.editors</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.vjsharp.com</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.vjsharp.cor</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.vjsharp.debug</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.vjsharp.lang</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.vjsharp.object</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.vjsharp.security</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.vjsharp.struct</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.vjsharp</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.vjsharp.text</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.vjsharp.util</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.vjsharp.win32</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.app</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.ax.JCW</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.ax</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.core</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.data.adodb.JCW</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.data.adodb</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.data.dsl.JCW</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.data.dsl</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.data.JCW</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.data.rds.JCW</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.data.rds</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.data</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.data.ui</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.html.event</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.html.JCW</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.html.om.JCW</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.html.om.shdocvw.JCW</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.html.om.shdocvw</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.html.om.shdocvw.WebBrowser</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.html</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.io</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.ole32.JCW</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.ole32</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.ui</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.util</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.wfc.win32</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>com.ms.win32</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.applet</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.awt.datatransfer</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.awt.event</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.awt.image</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.awt</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.beans</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.io</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.lang.reflect</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.lang</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.math</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.net</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.security.acl</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.security</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.sql</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.text</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.util</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>java.util.zip</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>Microsoft.CSharp</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>Microsoft.IE</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>Microsoft.JScript</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>Microsoft.JScript.Vsa</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>Microsoft.VisualBasic.CompilerServices</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>Microsoft.VisualBasic</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>Microsoft.VisualBasic.Vsa</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>Microsoft.VisualC</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>Microsoft.VJSharp</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>Microsoft.Vsa</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>Microsoft.Vsa.Vb.CodeDOM</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
    <anyType xsi:type="TKnownNamespace">
      <Name>Microsoft_VsaVb</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>
  </KnownNamespaces>
</TOptions>

Excluded types correspond to nodes with this format.

    <anyType xsi:type="TKnownType">
      <NETName>[full .NET name]</NETName>
      <DelphiName />
      <Exclude>true</Exclude>
    </anyType>

Types with custom names correspond to nodes with this format.

    <anyType xsi:type="TKnownType">
      <NETName>[full .NET name]</NETName>
      <DelphiName>[custom name]</DelphiName>
      <Exclude>false</Exclude>
    </anyType>

Excluded namespaces correspond to nodes with this format.

    <anyType xsi:type="TKnownNamespace">
      <Name>[full .NET name]</Name>
      <Prefix />
      <Exclude>true</Exclude>
    </anyType>

Namespaces with custom prefixes correspond to nodes with this format.

    <anyType xsi:type="TKnownNamespace">
      <Name>[full .NET name]</Name>
      <Prefix>[custom prefix]</Prefix>
      <Exclude>false</Exclude>
    </anyType>

D9, that is D2005, changes the unit/namespace relation. This will probably
require an alteration of the generated unit names.








