I think it is the de facto standard for VS (of course the default Arduino IDE is used most).
However, I think some advanced features (like breakpoint if I recall right) is only temporarily for free and you have to pay later for a subscription.
Note however, that debugging/breakpoints are not used often anyway since mostly it's more realtime controlled than PC applications.
If you need breakpoints etc. probably the easiest is to make stubs for some libraries and first develop the application not using Arduino and later use the Visual Micro plugin. [Update: it seems breakpoints are possible with vMirco, I never got them to work though].