Regarding C# naming for acronyms, if I was writing a library related to the Windows API is there any strong convention toward either WindowsApi or WindowsAPI or is it just p
It's all just personal (or organizational) preference. As long as you're consistent, you'll be ok.
The .NET Framework itself would use WindowsApi.
Its personal preference. But .NET would use WindowsApi. It is akin to the naming of TcpClient.
Take a look at FxCop too. It's a nice utility that will help with issues like this.
"Framework Design Guidelines" 2nd edition by Krzysztof Cwalina and Brad Abrams pp.40-42
3.1.2 Capitalizing Acronyms
DO capitalize both characters on two-character acronyms, except the first word of a camel-cased identifier.
System.IO
public void StartIO(Stream ioStream)
DO capitalize only the first character of acronyms with three or more characters, except the first word of a camel-cased identifier.
System.Xml
public void ProcessHtmlTag(string htmlTag)
DO NOT capitalize any of the characters of any acronyms, whatever their length, at the beginning of a camel-cased identifier.
Old question, new answer.
According to .NET 4 Capitalization Rules for Acronyms:
Do capitalize both characters of two-character acronyms, except the first word of a camel-cased identifier.
A property named
DBRateis an example of a short acronym (DB) used as the first word of a Pascal-cased identifier. A parameter namedioChannelis an example of a short acronym (IO) used as the first word of a camel-cased identifier.Do capitalize only the first character of acronyms with three or more characters, except the first word of a camel-cased identifier.
A class named
XmlWriteris an example of a long acronym used as the first word of a Pascal-cased identifier. A parameter namedhtmlReaderis an example of a long acronym used as the first word of a camel-cased identifier.Do not capitalize any of the characters of any acronyms, whatever their length, at the beginning of a camel-cased identifier.
A parameter named
xmlStreamis an example of a long acronym (xml) used as the first word of a camel-cased identifier. A parameter nameddbServerNameis an example of a short acronym (db) used as the first word of a camel-cased identifier.
I've heard that you should avoid abbreviations, so it would become WindowsApplicationProgrammingInterface, then.
More seriously (folks seem to be mis-reading the above, despite the quote below), this page says:
Any acronyms of three or more letters should be Pascal case, not all caps.
Since API is considered a well-known acronym, the name WindowsApi is the one to pick if you want to follow the guidelines.