and to spice things a bit , what is the best approach for globalization in Asp.net Mvc App
Globalization is about producing a map from strings or identifiers to translations in other languages, while Localization is about using that map to find the correct translation. Globalization happens during development, localization happens at runtime.
I'm not very experienced doing this with ASP.NET, but...
As for how, the most common approach I see is to have a dictionary per language per assembly (or per UI component), where the values are localized strings. The keys are typically readonly members on a static class or enum. There is often a convenience class whose members are the map from identifiers to localized messages.
The dictionaries are typically stored in separate files and in a format targeted to human translators.
More here: http://msdn.microsoft.com/en-us/library/aa478974.aspx