What is Assemblies and types

Assemblies are two types
They are Shared assembly and private assembly.
shared assemblies are shared among multiple applications and they are stored in Global Assembly Cache.
Private Assemblies implies to a single application and they are stored in the root directory of the application.

GAC:
===
GAC is used to store assemblies and to share them between multiple applications. IN the shared system, the names of the assemblies should be unique as it can be accessed by all applications. The newer versions of the component should also have unique names. These can be achieved by using a strong name for the assembly. A shared assembly is placed in the GAC folder that is reserved for shared assemblies.

GACUtil:
=======
Global assemblies will be registered in C:\windows\Assembly as
GAC(Global Assembly Cache) using a tool called GACUtil. Once
it is registered, any application can refer for that
assembly to that path.