Microsoftが示しているのは、「外から見える」、つまりPublic/Protected/Friendにおける命名規則だけ。
だから以下のものは全てそれが前提の一般論。

.NET標準では、静的フィールドのみハンガリー表記法を使用、それ以外のプロパティやメソッドのパラメータでは禁止。
ただしフィールドを直接外部に出すかわりにプロパティでラップすることを推奨。
//というが、フレームワークにあるいろんなパブリックフィールドを見てもハンガリー表記法使ってるのは滅多に見あたらない。
明記されていないが.NET Frameworkを見る限り定数もプロパティと同じ表記法。
先頭大文字、以降単語の先頭ごとに大文字を使用。メソッドパラメータだけは名前の先頭小文字。

イベントハンドラデリゲートはEventHandler、イベントパラメータクラスはEventArgsを継承させた上でEventArgsをサフィックスにする。
属性クラスはサフィックスAttributeをつける。例外クラスはサフィックスException。
インターフェイスはプリフィックスIをつける。
列挙体名に特別なプリフィクスなどはつけない。組み合わせ可能な列挙体は複数形にする。

ぐらい。
つまり外から見えるのにはハンガリー表記法を使うな、Pascal記法(大文字開始)を使えと。

外から見えないのについては、チームや企業レベルでのコーディング規約を今更変更させるのは難しいからか、
好きにしろってことじゃないかね。
実際mscorlib.dllの色々なクラスを見てみても統一なんか取れてない。
ハンガリー表記法使ってたりm_プリフィクスが幅をきかせてたり_プリフィクスだったり。