I would like to ask you what is the best way to localize applications in .NET 2.0 and
how Microsoft do it in Vista?

well the recommended way in asp.net is to use .resx (resource files)files so for each page or usercontrol you would also have a corresponding resource file, in asp.net 2.0 you can also have application level resources. These are typically compiled into a .dll file and then you add a mechanism which tells the application which language or culture the application runs in. Heres a good video and some others about localization in ASP.NET 2.0


as to Vista, I dont know exactly although in XP and winforms you can also use resources and set the UI culture programatically