1. In the 2007 OM, the standard Windows Forms method MessageBox.Show() is used for showing message boxes.
2. Not that I know of. You might be able to temporarily switch to the view you want to print, print it, and then switch back before the method returns.
3. Yes, that looks right.
4. C# seems to be the more popular language and seems to be getting more attention from Microsoft as well, and you may find more code examples in C#, but it is relatively easy to convert between them and neither has any more functionality than the other.