Project Settings and Project Structure

  1. Always build your projects with Warning Level 4 (see Figure E-1).

  2. Treat warnings as errors in the Release build (note that this is not the default of Visual Studio). Although it is optional, this standard recommends treating warnings as errors in Debug builds as well.

  3. Avoid suppressing specific compiler warnings.

  4. Always explicitly state your supported runtime versions in the application configuration file:

    <?xml version="1.0"?>
    <configuration>
       <startup>
          <supportedRuntime version="v2.0.5500.0"/>
          <supportedRuntime version="v1.1.5000.0"/>
       </startup>
    </configuration>
    The project Build pane

    Figure E-1. The project Build pane

  5. Avoid explicit custom version redirection and binding to CLR assemblies.

  6. Avoid explicit preprocessor definitions (#define). Use the project settings for defining conditional compilation constants.

  7. Do not put any logic inside AssemblyInfo.cs.

  8. Do not put any assembly attributes in any file other than AssemblyInfo.cs.

  9. Populate all fields in AssemblyInfo.cs, such as company name, description, and copyright notice.

  10. All assembly references should use relative paths.

  11. Disallow cyclic references between assemblies.

  12. Avoid multi-module assemblies.

  13. Avoid tampering with exception handling using the Exception window (Debug Exceptions).

  14. Strive to use uniform version numbers on all assemblies and clients in the same logical application (typically, a solution). Use the SolutionInfo.cs ...

Get Programming .NET Components, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.