Wednesday, November 20, 2024

The .Net Framework and oops in .Net

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

Day three of theory of computation

 1. Non-deterministic Finite Automata (NFA)   Unlike a DFA, an NFA allows a machine to explore multiple paths simultaneously.   Definition: ...