The coding standards for native C++ and .NET (C# and VB.NET) programming used by the All-In-One Code Framework team is now available to everyone. The Microsoft All-In-One Code Framework project team writes code samples based on this guideline.
Download:
The coding standards are continuously evolving. If you discover a new best practice or a topic that is not covered, please bring that to the attention of the All-In-One Code Framework Project Group (onecode@microsoft.com). I look forward to appreciating your contributions. :-)
!
Table of Contents
1 Overview........................................................................................................ 1
1.1 Principles & Themes................................................................................. 1
1.2 Terminology................................................................................................. 1
2 General Coding Standards........................................................................ 3
2.1 Clarity and Consistency............................................................................ 3
2.2 Formatting and Style.................................................................................. 3
2.3 Using Libraries............................................................................................ 5
2.4 Global Variables.......................................................................................... 5
2.5 Variable Declarations and Initalizations.................................................. 5
2.6 Function Declarations and Calls.............................................................. 6
2.7 Statements................................................................................................... 8
2.8 Enums........................................................................................................... 8
2.9 Whitespace................................................................................................. 13
2.10 Braces.......................................................................................................... 14
2.11 Comments.................................................................................................. 15
2.12 Regions....................................................................................................... 23
3 C++ Coding Standards............................................................................. 25
3.1 Compiler Options...................................................................................... 25
3.2 Files and Structure.................................................................................... 26
3.3 Naming Conventions................................................................................ 27
3.4 Pointers....................................................................................................... 30
3.5 Constants................................................................................................... 31
3.6 Casting........................................................................................................ 32
3.7 Sizeof........................................................................................................... 32
3.8 Strings......................................................................................................... 33
3.9 Arrays........................................................................................................... 34
3.10 Macros......................................................................................................... 35
3.11 Functions.................................................................................................... 35
3.12 Structures.................................................................................................... 38
3.13 Classes....................................................................................................... 38
3.14 COM............................................................................................................... 44
3.15 Allocations.................................................................................................... 45
3.16 Errors and Exceptions................................................................................ 46
3.17 Resource Cleanup...................................................................................... 48
3.18 Control Flow.................................................................................................. 50
4 .NET Coding Standards.............................................................................. 54
4.1 Design Guidelines for Developing Class Libraries.............................. 54
4.2 Files and Structure...................................................................................... 54
4.3 Assembly Properties.................................................................................. 54
4.4 Naming Convensions................................................................................ 54
4.5 Constants..................................................................................................... 57
4.6 Strings........................................................................................................... 58
4.7 Arrays and Collections................................................................................ 59
4.8 Structures....................................................................................................... 61
4.9 Classes.......................................................................................................... 62
4.10 Namespaces................................................................................................. 65
4.11 Errors and Exceptions................................................................................. 65
4.12 Resource Cleanup....................................................................................... 68
4.13 Interop.............................................................................................................. 80
