What is a satellite assembly?
Asked Answered
D

2

54

What is a satellite assembly, and when should they be used?

Disrespectful answered 13/12, 2008 at 18:57 Comment(0)
G
50

A definition from MSDN says something like this: "A .NET Framework assembly containing resources specific to a given language. Using satellite assemblies, you can place the resources for different languages in different assemblies, and the correct assembly is loaded into memory only if the user elects to view the application in that language."

This means that you develop your application in a default language and add flexibility to react with change in the locale. Say, for example, you developed your application in an en-US locale. Now, your application has multilingual support. When you deploy your code in, say, India, you want to show labels, messages shown in the national language which is other than English.

Satellite assemblies give this flexibility. You create any simple text file with translated strings, create resources, and put them into the bin\debug folder. That's it. The next time, your code will read the CurrentCulture property of the current thread and accordingly load the appropriate resource.

Goutweed answered 13/12, 2008 at 19:13 Comment(1)
Any actual way to test this? Maybe even change Windows settings as long as it doesn't change the display language?Khartoum
S
10
  1. A satellite assembly is a compiled library (DLL) that contains “localizable” resources specific to a given culture such as strings, bitmaps, etc.

  2. You are likely to use satellite assemblies when creating a multilingual UI application. They are used to deploy applications in multiple cultures, with 1 satellite assembly per culture (default behavior)

More here: http://blogs.msdn.com/b/global_developer/archive/2011/07/22/introduction-to-satellite-assemblies.aspx

Spearmint answered 21/1, 2014 at 16:30 Comment(1)
How do they behave when no satellite assembly for the user's culture is found?Gabriel

© 2022 - 2024 — McMap. All rights reserved.