Actually, What is .NET Assembly? I browsed over the net and I not able to understand the definition. pls..explain about the .NET assemblies. Thanks..
See this:
In the Microsoft .NET framework, an assembly is a partially compiled code library for use in deployment, versioning and security
MSDN has a good explanation:
Assemblies are the building blocks of .NET Framework applications; they form the fundamental unit of deployment, version control, reuse, activation scoping, and security permissions. An assembly is a collection of types and resources that are built to work together and form a logical unit of functionality. An assembly provides the common language runtime with the information it needs to be aware of type implementations. To the runtime, a type does not exist outside the context of an assembly.
Wikipedia has to say:
In the Microsoft .NET framework, an assembly is a partially compiled code library for use in deployment, versioning and security. There are two types: process assemblies (EXE) and library assemblies (DLL). A process assembly represents a process which will use classes defined in library assemblies. .NET assemblies contain code in CIL, which is usually generated from a CLI language, and then compiled into machine language at runtime by the CLR just-in-time compiler. An assembly can consist of one or more files. Code files are called modules. An assembly can contain more than one code module and since it is possible to use different languages to create code modules it is technically possible to use several different languages to create an assembly. Visual Studio however does not support using different languages in one assembly.
If you really did browse it would help if you'd clarify what you don't understand
Assemblies
When you compile an application, the MSIL code created is stored in an assembly . Assemblies include both executable application files that you can run directly from Windows without the need for any other programs (these have a .exe file extension), and libraries (which have a .dll extension) for use by other applications.
In addition to containing MSIL, assemblies also include meta information (that is, information about the information contained in the assembly, also known as metadata ) and optional resources (additional data used by the MSIL, such as sound files and pictures). The meta information enables assemblies to be fully self - descriptive. You need no other information to use an assembly, meaning you avoid situations such as failing to add required data to the system registry and so on, which was often a problem when developing with other platforms.
This means that deploying applications is often as simple as copying the files into a directory on a remote computer. Because no additional information is required on the target systems, you can just run an executable file from this directory and (assuming the .NET CLR is installed) you ’ re good to go.
Of course, you won ’ t necessarily want to include everything required to run an application in one place. You might write some code that performs tasks required by multiple applications. In situations like that, it is often useful to place the reusable code in a place accessible to all applications. In the .NET Framework, this is the Global Assembly Cache (GAC) . Placing code in the GAC is simple — you just place the assembly containing the code in the directory containing this cache.
In more simple terms: A chunk of (precompiled) code that can be executed by the .NET runtime environment. A .NET program consists of one or more assemblies.
physical collection of Class, interface, enum etc which is in IL code. Which can be .EXE or .DLL file .EXE is executable file and .DLL can dynamically used in any .net Supported language.
Assembly is the smallest unit of deployment of a .net application.It can be a dll or exe.
There are mainly 2 types to it: 1. Private Assembly: The dll or exe which is sole property of one application only. It is generally stored in application root folder
- Public/shared assembly: It is a dll which can be used by multiple applications at a time. A shared assembly is stored in GAC i.e Global Assembly Cache. Sounds difficult....? naa.... GAC is simply c:\Windows\Assembly Folder where u can find the public assemblies/dlls of all the softwares installed in your PC.
There is also a third and least known type of an assembly: Satellite Assembly a Satellite Assembly contains only static objects like images, and other nonexecutable files required by the application.
Hope this helps the readers!