well, microsoft is not taking part for any of the 2 options.
If on Visual Studio you encapsulate a field using "refactor->Encapsulate Field..." for
private string _myVar
and
private string myVar
both of them generates a propery like this
public string MyVar
{
get { return myVar; }
set { myVar = value; }
}
So for microsoft it's the same :-) It's only a question of reaching an agreement with the development team so everyone uses the same approach.
Normally I never use private fields except very specific situations. I encapsulate private fields with protected properties. Better for inheritance and more clear IMHO.