What are the differences between Namespace and Assembly in .NET?

Namespace and Assembly are two vital aspects of .NET.




Differences between them are tabulated below:

Namespace
Assembly
Namespace is the logical naming decided at design time by the developer. Scope for a particular type is defined at run time using Assembly.
Namespace contains set of unique names. Assembly contains code of the form MSIL ( Microsoft Intermediate Language)
Classes available in your program will be logically grouped together under a namespace. Logical units are physically grouped together as assembly.
Namespace can include multiple assemblies. An assembly can contain types belonging to different namespaces.
Namespace doesn't have any classification. Assembly can be classified as private assembly and public assembly. Private assembly is specific to a single application but shared/public assembly contains libraries which can be used by multiple applications.
Namespaces have to be mentioned in Project-Properties. Assemblies need not be explicitly specified. They are automatically described in metadata and manifest files.
Namespaces can be nested. For example:
namespace sampleApp1 {
namespace SampleApp2 {
class sampleClass {

}
}
}

Such nesting is not permissible in assemblies.
Namespace is the one which you directly specify in your code. A simple example for namespace is shown below:
namespace sampleNamespace {
class sampleClass {
public void displayMsg() {
Console.WriteLine("In sampleClass");
}
}
}
In this example, sampleNamespace is the namespace you have created and sampleClass is within the scope of this namespace.

Creating an assembly on your own is not as simple as you create a namespace. If you want to package the code shown as an example for the namespace into an assembly, then you have to follow the steps shown below:
" Generate a key file inside the same folder where you have placed the code by typing the following statement in the command prompt:
sn -k sampleKey.key
" Sign your code component with this key. Assume that your code component is named as sampleClass.cs. Now use the following command:
csc sampleClass.cs /t:library /a.keyfile:sampleKey.key
" Place your signed assembly inside GAC using AL Utility:
AL /i: sampleClass.dll
" Now create a code that accesses the code in your assembly:
Using System;
Using sampleNamespace;
public class testClass {
sampleClass obj = new sampleClass();
obj.displayMsg();
}
" To test if your assembly got created and to test if the above code is working, compile the above code using the following statement:
csc testClass.cs /t:exe /r:<path of your assembly>
" Now if you execute testClass.cs, you should get the following output:
In sampleClass

_______________________________________________________________________

Add to My Yahoo!


FREE Subscription

Subscribe to our mailing list and receive new articles
through email. Keep yourself updated with latest
developments in the industry.

Name:
Email:

Note : We never rent, trade, or sell my email lists to
anyone. We assure that your privacy is respected
and protected.

Visit .NET Programming Tutorial Homepage

______________________________________________________

Recommended Resource

| How do you prevent a class from overriding in .NET? | How are classes related to objects in .NET Application | How are Delegates different from Events in .NET? | How are system exceptions different from application exceptions in .NET? | How are Value Types different from Reference Types in .NET? | How can a finalize method be suppressed in .NET? | How can you call Stored Procedure in ADO.NET? | How can you force Dispose method to be called automatically in .NET? | How do you call a Base Class Constructor from Derived Class Constructor in .NET? | How do you connect your VB.NET application to SQL Server? | How do you implement Cloning in .NET? | How do you implement Façade Design Pattern in .NET? | How do you implement MVC Pattern in ASP.NET? | How do you install .NET Assembly in GAC? | How is shadowing different from overriding in .NET? | How to prevent a particular .NET DLL from being decompiled? | Illustrate Delay Signing Process of an Assembly in .NET? | What are Reference Types in .NET? | What are the advantages of C#? | What are the advantages of VB.NET? | What are the differences between Namespace and Assembly in .NET? | What are the similar features between class and structure in .NET? | What are Value Types in .NET? | What do you mean by mixed mode authentication in .NET? | What do you mean by Satellite Assembly in .NET? | What do you mean by shadowing in .NET? | What is CTS in .NET? | What is ILDASM in .NET? | What is Managed Code in .NET? | What is Manifest in .NET? | What is MSIL in .NET Framework? | What is the importance of finalize method in .NET? | What is the need for Visitor Pattern in C#? | What is the purpose of bindingRedirect tag in web.config file of .NET? | What is the purpose of CodeDom in .NET? | What is the purpose of dispose method in .NET? | What is the purpose of Ngen.exe in .NET? | What is the purpose of Strong Name in COM Components of .NET? | What is the purpose of virtual keyword in .NET? | What Object Oriented Principles can be incorporated in .NET Application? |


| Privacy Policy for www.dotnet-guide.com | Disclosure | Contact |

Copyright - © 2004 - 2017 - All Rights Reserved.