Introduction
Developed by Microsoft
- Supports building web, mobile, desktop, and enterprise applications
- Includes:
- Common Language Runtime (CLR)
- Framework Class Library (FCL)
- (.Net Framework) (web development)
- (.Net Framework) (data access)
- Windows Forms (desktop applications)
OOPS in .Net
object oriented programmming system
based on four pillars
- Encapsulation
- Inheritance
- Polymorphism
- Abstraction
DLL HELL -
DLL Hell is a term used to describe the problems and frustrations associated with managing and maintaining Dynamic Link Libraries (DLLs) in Windows-based systems.
Causes of DLL Hell:
1. Version Conflicts: Multiple applications requiring different versions of the same DLL.
2. DLL Overwriting: Newer or older versions of DLLs overwrite existing ones, breaking compatibility.
3. Missing DLLs: Required DLLs are not installed or missing.
4. Registry Issues: Incorrect or corrupted registry entries.
5. Dependency Issues: DLLs dependent on other DLLs or libraries.
Symptoms of DLL Hell:
1. Application crashes or failures
2. Error messages (e.g., "DLL not found" or "DLL version mismatch")
3. System instability or slowdowns
4. Difficulty installing or uninstalling applications
Types of DLL Hell:
1. Classic DLL Hell: Version conflicts and overwriting issues.
2. Shared DLL Hell: Multiple applications sharing the same DLL.
3. Private DLL Hell: Applications using private DLLs with conflicting versions.
Solutions to DLL Hell:
1. Side-by-Side (SxS) assemblies: Allows multiple versions of DLLs to coexist.
2. Windows Installer: Manages DLL dependencies and versions.
3. Assembly Manifests: Declares dependencies and versions.
4. Strong Naming: Unique identification for DLLs.
5. .NET Framework: Resolves DLL conflicts through assembly management.
6. DLL isolation: Using private DLLs or DLL redirection.
Prevention Strategies:
1. Use latest versions of DLLs.
2. Test applications for DLL compatibility.
3. Use dependency management tools.
4. Avoid shared DLLs.
5. Implement robust error handling.
Tools for Resolving DLL Hell:
1. Dependency Walker
2. Process Monitor
3. DLLViewer
4. Fusion Log Viewer
5. Windows Installer CleanUp Utility
DLL Hell has been significantly mitigated with the introduction of:
1. Windows Vista's User Account Control (UAC)
2. Windows 7's DLL management improvements
3. .NET Framework's assembly management
4. Windows 10's Universal Windows Platform (UWP)
No comments:
Post a Comment