Total Pageviews

Wednesday, December 29, 2010

How .Net Assemblies work

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.

An assembly is a different name for the executable files in .Net. A .NET executable is actually the source code of an IL (Intermediate Language) program

Just in time compiler in .net is---

When a .net assembly is executed, u r actually calling the CLR (common language runtime ) to compile the assembly into native code (IL) called the JIT.

In .NET, every assembly starts with something called a manifest that contains metadata (data about data) telling the CLR what it needs to know to execute the assembly instructions.

Assemblies can be static or dynamic. Static assemblies can include .NET Framework types (interfaces and classes), as well as resources for the assembly (bitmaps, JPEG files, resource files, and so on). Static assemblies are stored on disk in portable executable (PE) files. You can also use the .NET Framework to create dynamic assemblies, which are run directly from memory and are not saved to disk before execution. You can save dynamic assemblies to disk after they have executed.

You can run different versions of the same assembly with same name but different version side by side.
An Asssembly can be a private or shared.
If an assembly is to be shared among several programs then it need to be shared in GAC. To put an assembly in GAC, it should have a strong name.

Assembly Manifest

Every assembly, whether static or dynamic, contains a collection of data that describes how the elements in the assembly relate to each other. The assembly manifest contains this assembly metadata. An assembly manifest contains all the metadata needed to specify the assembly's version requirements and security identity, and all metadata needed to define the scope of the assembly and resolve references to resources and classes. The assembly manifest can be stored in either a PE file (an .exe or .dll) with Microsoft intermediate language (MSIL) code or in a standalone PE file that contains only assembly manifest information.
http://visualbasic.about.com/od/usingvbnet/a/asmnet01_2.htm

No comments:

Post a Comment