PDA

View Full Version : Dll Or Assembly File



choobin84
دوشنبه 28 آبان 1386, 21:49 عصر
چرا نباید DLL ها رو Dll صدا بزنیم و فقط باید بگیم اسمبلی فایل.
اینو توی بیشتر تایپیک هایی که در مورد Dll یا شاید هم اسمبلی فایل دیده بودم. متاسفانه دلیلش عنوان نشده بود.

mohammad272005
چهارشنبه 30 آبان 1386, 00:14 صبح
مطمئن نیستن منظور شما رو خوب درک کرده باشم.
توی Reflection، به هر فایلی که حاویه کد NET. باشه اصطلاحالا اسمبلی گفته میشه. معمولا کسایی که با reflection آسنایی داره یا کسایی که از دیگرون شنیدن از این کلمه استفاده می کنن.

hassan razavi
چهارشنبه 30 آبان 1386, 02:27 صبح
ابتدا تعریفی از اسمبلی :

What is a .Net 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.

There are two kind of assemblies in .NET; private and shared. Private assemblies are simple and copied with each calling assemblies in the calling assemblies folder. Shared assemblies (also called strong named assemblies) are copied to a single location (usually the Global assembly cache). For all calling assemblies within the same application, the same copy of the shared assembly is used from its original location. Hence, shared assemblies are not copied in the private folders of each calling assembly. Each shared assembly has a four part name including its face name, version, public key token and culture information. The public key token and version information makes it almost impossible for two different assemblies with the same name or for two similar assemblies with different version to mix with each other.

An assembly can be a single file or it may consist of the multiple files. In case of multi-file, there is one master module containing the manifest while other assemblies exist as non-manifest modules. A module in .NET is a sub part of a multi-file .NET assembly. Assembly is one of the most interesting and extremely useful areas of .NET architecture along with reflections and attributes, but unfortunately very few people take interest in learning such theoretical looking topics.

hassan razavi
چهارشنبه 30 آبان 1386, 02:33 صبح
فرق بین اسمبلی و Win DLL :

What are the differences between a .NET Assembly, a Windows DLL and a COM Component?
A Windows DLL contains library code to be used by any program running on Windows. A DLL may contain either structured or object oriented libraries.

COM (Component Object Model) is the component model based on the object oriented design, which means that the components represented by the COM component exists in the form of classes and objects implementing a standard specification defined by COM. COM components can be used by any program running on Windows Operating System; be it is written with VB, C++, Java or even some .NET compliant language like C# and VB.NET.

Dot NET assembly is the component standard specified by the .NET. Hence, dot net assemblies are understandable to only Microsoft.NET and can be used only in .NET managed applications.

hassan razavi
چهارشنبه 30 آبان 1386, 02:35 صبح
فرق بین اسمبلی قابل اجرا و اسمبلی class library :

What is the difference between an executable assembly and a class library?
An executable assembly exists as the .exe file while a class library exists as the .dll file. Executable assembly represent executable applications having some entry (e.g., Main() method in C#). A class library, on the other hand, contains components and libraries to be used inside various applications. A Class library can not be executed and thus it does not have any entry point.

اَرژنگ
چهارشنبه 30 آبان 1386, 15:11 عصر
http://barnamenevis.org/forum/showthread.php?t=78768&#post395441