Online Eiffel Documentation
EiffelStudio

Advanced Options

Advanced dialog

Note: On Windows, the dynamic run-time is available only if you compile with the Microsoft Visual compiler.

.NET Options

Class and feature naming

The standard naming conventions for .NET and Eiffel are different. To accommodate this difference Eiffel Studio provides a number of options to the developer, allowing for consistent naming of classes and features within and between .NET systems. To illustrate this we shall consider a system using the EiffelBase library and focus on the CURSOR class. The base cluster is included in the project settings Cluster tab as shown below, where $ISE_EIFFEL is the environment variable pointing to the location of Eiffel on your hard disk.

The CURSOR class is located at '$ISE_EIFFEL\library\base\structures\cursors'.

No .NET naming guidelines

.NET naming guidelines

If 'Use recursive cluster names' is true then the full cluster name is pre-pended to the class name, so it thus becomes 'base.structures.cursors.CURSOR'.

The final scenario is where a namespace has been defined for the cluster in the Clusters tab of the Project Settings. In this situation the namespace overrides the name of the cluster. In the example below the namespace name 'MyBaseNameSpace' is used so the resulting name is 'MyBaseNameSpace.structures.cursors.CURSOR'.

Naming Scenarios

This table shows how the class name generation is affected by the naming options using the CURSOR class found in '$ISE_EIFFEL\library\base\structures\cursors' as an example.

Use .NET naming guidelinesUse cluster namesUse full cluster namesNamespace NameGenerated Name
nonono(empty)CURSOR
yesnono(empty)Cursor
noyesno(empty)base.CURSOR
yesyesno(empty)Base.Cursor
nonoyes(empty)structures.cursors.CURSOR
yesnoyes(empty)Structures.Cursors.Cursor
noyesyes(empty)base.structures.cursors.CURSOR
yesyesyes(empty)Base.Structures.Cursors.Cursor
nononoMyNameSpaceMyNameSpace.CURSOR
yesnonoMyNameSpaceMyNameSpace.Cursor
noyesnoMyNameSpaceMyNameSpace.CURSOR
yesyesnoMyNameSpaceMyNameSpace.Cursor
nonoyesMyNameSpaceMyNameSpace.structures.cursors.CURSOR
yesnoyesMyNameSpaceMyNameSpace.structures.cursors.Cursor
noyesyesMyNameSpaceMyNameSpace.structures.cursors.CURSOR
yesyesyesMyNameSpaceMyNameSpace.Structures.Cursors.Cursor