Wrox Programmer Forums
Go Back   Wrox Programmer Forums > C# and C > C# 1.0 > C#
|
C# Programming questions specific to the Microsoft C# language. See also the forum Beginning Visual C# to discuss that specific Wrox book and code.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the C# section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
 
Old February 11th, 2007, 12:38 AM
Registered User
 
Join Date: Feb 2007
Posts: 2
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via Yahoo to kiran.mahamkali
Default How the dll hell problem has been solved in .NET

HI friends

 i'm new to this forum and as well as this group too.can anybody please tell me how the DLL HELL problem has been solved in .NET platform.?

kiran mahamkali
 
Old February 11th, 2007, 05:37 AM
Friend of Wrox
 
Join Date: Jun 2003
Posts: 453
Thanks: 0
Thanked 1 Time in 1 Post
Send a message via AIM to Ankur_Verma Send a message via MSN to Ankur_Verma
Default

It has been solved in the form of smartly designed assemblies.
DLLs and COM components had versioning issues. Like old DLLs would be replaced with new ones by installers resulting in breaking the apps still working with older ones more so as new ones are not always backward compatible. Installers are also reported at times to have replaced a new DLL with an old one as developers wont pay attention to setting the versions correctly and checking them while installation.

COM components addressed some of the issues by introducing guidelines on versioning and contract (the exposed interface, unlike exposed functions in DLLs) that was to be kept unchanged across different versions of the same component. Change in the contract would often mean a different component rather than a different version of the same component. Components where uniquely identified with GUIDs which were kept in registry. But it brought new irregularities to the equation like information of the newer components being borrowed by the old ones or internal changes (while keeping the contract unchanged) breaking the clients. Plus registration was always a privileged task and to get it done in single setup was hardly ever straightforward especially when the task had to be entrusted to someone else.

These and many more such issues were collectively known as DLL Hell.
Assemblies have been smartly designed combining what was good in DLLs and Components and filtering out the bad. They keep all the information about them plus a way to uniquely identify them (by public key tokens) within them. The magic lies in the fact that everything that’s capable of running on its own on the framework is an assembly. So both client and server (library) are assemblies, and self describing while the library assembly states very specifically the permissions it needs to function properly, clients/users that can use it and its identity (public key token), the client assembly very specifically stats what version of which assembly (identifying it with the public token key) it seeks. With all the info residing within the assembly (and not anywhere outside it like in registry), installing/un-installing it is often as simple as copying/deleting it. Uninstalling a COM Component wont necessarily remove its info from the registry (which would often be borrowed by other versions), but an uninstalled assembly leaves no stains behind. More then one version of the same assembly can coexist on the system without clashes (unlike traditional DLLs). Assemblies have many more advantages, like there are designed to be temper proof, etc.

Regards
Ankur
 
Old May 3rd, 2007, 10:12 AM
Registered User
 
Join Date: May 2007
Posts: 2
Thanks: 0
Thanked 0 Times in 0 Posts
Default

Hi
I am new here.Can u tell me the benifits of using the sqlmembershipprovider in 2.0







Similar Threads
Thread Thread Starter Forum Replies Last Post
What Is dll Hell ? Bhalchandra VB Components 2 December 18th, 2006 03:23 PM
DLL Hell huanglanjing Access VBA 2 December 7th, 2006 11:13 AM
Problem accessing a .dll component in asp.net page ng4123 ASP.NET 1.0 and 1.1 Basics 5 May 10th, 2006 07:31 AM
SOLVED - beginners problem - scrrun.dll ? Olive Oyl Classic ASP Basics 1 January 15th, 2004 02:45 PM
Problem reusing the Existing VB 6 DLL in ASP.NET francis VS.NET 2002/2003 3 July 11th, 2003 03:21 PM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.