Wednesday, September 26, 2012

What is Assembly and what is the different type of assemblies .Net?

Posted by Rahul Kharde at 8:19 AM

An assembly may be Public or Private. A public assembly is also called a Shared Assembly.” 

  • The .NET assembly is the standard for components developed with the Microsoft.NET. 
  • Dot NET assemblies may or may not be executable, i.e., they might exist as the executable (.exe) file or dynamic link library (DLL) file.
  • All the .NET assemblies contain the definition of types, versioning information for the type, meta-data, and manifest. The designers of .NET have worked a lot on the component (assembly) resolution.
Advantages of Assemblies
  1. In the case of DLLs if a DLL has to be shared with some other application, it has to be registered in that particular machine. But, In the case of assemblies there is no such type of registration required. Here we just need to do is to copy the assembly and put in the bin directory of the application that is going to use it.
  2. If we need to share a particular assembly with any other applications. we can do so by placing the assembly in the Global Assembly Cache (GAC). But before we going to do it we need to give a strong name to that assembly.Strong name is similar to GUID(It is supposed to be unique in space and time) in COM, components.Strong Name is only needed when we need to deploy assembly in Global Assembly Cache (GAC).Strong Names helps GAC to differentiate between two versions.Strong names use public key cryptography (PKC) to ensure that no one can spoof it.PKC use public key and private key concept.
  3. Another advantage of using ASP.Net assemblies is the ability to read the contents of an assembly. Each assembly has a manifest that has details about the assembly itself.
  4. The System.Reflection namespace has classes like Assembly which can be used to get the details of the assembly and with that it is also possible to load an assembly dynamically at runtime.

There are three types of assemblies in .NET
  • Private Assemblies
  • Public/Shared Assemblies.
  • Satellite Assembly
Private Assemblies

Is the assembly which is used by application only, normally it resides in your application folder directory.

There is no version constraint in private assembly.

If an assembly is copied in to the respective application in which we would like to use is known as local assembly. if any changes made to the copy that will not reflect the copies in other applications.

 Public Assemblies

  • It resides in GAC, so that anyone can use this assembly. Public assemblies are always share the common.
  • It has version constraint.
  • This public assembly is stored inside the global assembly cache or GAC.GAC contains a collection of shared assemblies.
  • If an assembly is copied into the global place and reference is used from all other applications then this is called public or global assembly..if we want to copy assembly in global place we have to create strong name by using sn.exe.
Satellite Assembly

Satellite assemblies are used to build multi-linguistic applications. Application which has built in supportive of more than one human readable language is known as multi-linguistic applications.
  • Satellite Assemblies doesn’t contain any Data
  • Satellite assembly is containing cultural information.
  • Satellite assembly mainly used for to display information based on the Cultural setting of browser or region.

Suppose you developed your application in an English (en-US) locale. Now, your application has multilingual support. When you deploy your code in different location, for example in India, you want to show text, label messages in the national language (local language) which is other than English.

Satellite assemblies give this flexibility. You create any simple text file with translated strings, create resources, and put them into the bin\debug folder. That's it. The next time, your code will read the CurrentCulture property of the current thread and accordingly load the appropriate resource.
Please refer below URL for Satellite Assembly

If you enjoyed this post and wish to be informed whenever a new post is published, then make sure you subscribe to my regular Email Updates. Subscribe Now!

Kindly Bookmark and Share it:



Tanika Co Valda on October 31, 2017 at 9:31 AM said...

This is an amazing blog,it gives very helpful messages to us.Besides that Wisen has established as Best Dot Net Training in Chennai. or learn thru ASP.NET Online Training . Nowadays Dot Net has tons of job opportunities on various vertical industry.

Coepd BA Trainings on July 10, 2018 at 2:02 AM said...

At Coepd (Center of Excellence for Professional Development) we practice Object-Oriented Programming concepts and mentor .Net Platform, C#.NET, ADO.NET which helps the attendees to build database-driven Web applications and Web Sites successfully. We also guide the attendees to develop web-based enterprise applications using ASP.NET and Visual Studio which comforts in developing the Web Services using .Net framework in Service-oriented Architecture. The Internship Program Also covers Frontend design technologies HTML, HTML5, CSS, CSS3, XML, Bootstrap, JQuery, Angular JS, and AJAX. Our collaborative ecosystem comprising of Partnerships with Software Companies enables real time software development life cycle experience.

Have any question? Feel Free To Post Below:


Popular Posts

Recent Comments

© 2011. All Rights Reserved | Help to understand .Net | Template by Blogger Widgets

Home | About | Top