---
title: "Assemblies in .NET"  
description: "In simple words, an assembly is smallest deployable unit in .net framework. We can define an assembly is a compiled code library use for deployment, v"  
author: "Anonymous User"  
published: 2011-03-12  
updated: 2014-09-18  
canonical: https://www.mindstick.com/blog/131/assemblies-in-dot-net  
category: ".net"  
tags: [".net"]  
reading_time: 2 minutes  

---

# Assemblies in .NET

In [simple words](https://www.mindstick.com/forum/161071/what-is-mongodb-and-explain-it-in-simple-words), an assembly is smallest deployable unit in .net framework. We can define an assembly is a [compiled](http://en.wikipedia.org/wiki/Compiler) code library use for [deployment](https://www.mindstick.com/articles/325966/process-of-application-development-and-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](http://en.wikipedia.org/wiki/List_of_CLI_languages), and then compiled into [machine language](http://en.wikipedia.org/wiki/Machine_language) at [runtime](http://en.wikipedia.org/wiki/Run_time_(computing)) by the CLR just-in-time compiler.

##### On the basis of execution an assembly is of two types

1. .exe -- Which is known as self executable assembly.

2. .dll -- Which is known [as dynamic](https://www.mindstick.com/forum/12679/change-event-not-work-as-dynamic-as-expected) link library.

3. .netmodule – This is other types of assembly which is used to create modules of different-2 language which can be further added in main program. Example of such type [application](https://www.mindstick.com/articles/12824/calculator-application-in-android) is that suppose we want to create a module through VB.NET and another module is created in VC#.NET then finally we can merge these two module in main program which have a main method. That program either VB.NET or VC#.NET. In this process we use concept of .netmodule.

##### On the basis of accessing an assembly is of two types

1. Private assembly -- When we reference private assembly to any application then that application creates a separate copy of that assembly.

2. Shared assembly – Shared assembly are deployed in GAC ([Global Assembly](https://www.mindstick.com/forum/158570/what-is-the-global-assembly-cache-gac-and-how-is-it-used-in-dot-net) Cache) folder and application do not make separate copy of these assembly.

##### On the basis of file assembly is of two types

1. [Single File](https://www.mindstick.com/forum/161633/how-do-you-merge-multiple-text-files-into-a-single-file) Assembly

2. Multi File Assembly.

With Respect to Number of Resources an assembly of two types

1. Static Assembly -- It uses fixed resources

2. Dynamic Assembly – It support dynamic creation of resources or files at runtime programmatically.

---

Original Source: https://www.mindstick.com/blog/131/assemblies-in-dot-net

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
