Assembly is primary building block of a application. Its is unit of deployment like DLL and EXE. Assembly is completely self-describing and its version able, reusable, self-describing deployment unit for types and resources. Assemblies is enforce the versioning and dependency rules defined by the application. And also provide the infrastructure to allow the runtime to fully understand the contents of an application.
Assembly is also described as, assemblies area assembled(compiled) o/p(output) of program which are used for easy stationing of an application. Its also resource collection that were used while building the application and assembly is also responsible for all the logical functioning of a application.
An assembly is a collection of files likes DLL and EXE, group of resources that help in creating a logical unit of functionality.
Assembly can be defined as, an assembly files either single or it may consist of the multiple files. In case of multi-file, In assembly there is one master module that’s contain the manifest while other assemblies are exist as a non-manifest modules.
There is several types of assemblies:-
1. Shared assembly
2. Private assembly
3. Satellite assembly
1. Shared assembly:- Shared assembly is offered by Microsoft for those components that’s must be disseminate. Its shared between multiple application to ensure reusability. Its placed in GAC.Shared assembly is also called strong name assemblies. Its copied to a single location usually in the Global assembly cache. In shared assembly all calling assemblies within the same application having same copy of the shared assembly that is used from its original location. Hence, shared assemblies are not copied in the private folders of each calling assembly. Shared assemblies has four part name including its face name, version, public key token and culture information. In shared assembly public key token and version information provide a great way that makes it impossible for two different assemblies with the same name or for two similar assemblies with different version.
2. Private assembly:- In private assembly its accessible by a single application. Private assembly is used directly by copy and pasting them into bin folder. Its unique by name and resides in application folder.
Its simple and copied with each calling assemblies in the calling assemblies folder.
There is no other name for private assembly.
3. Satellite assembly:-Its used to provide the support for multiple languages based on different cultures and are kept in different culture. Satellite assembly can be also named as public assembly.