# meloong-git/meloongcore architecture

> Architecture diagram of the GitHub repository meloong-git/meloongcore, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/meloong-git/meloongcore
- Repository: https://github.com/meloong-git/meloongcore

## Overview

MeloongCore is a reusable .NET utility library with an optional WPF companion, rather than a standalone end-user application. Its user-to-result flow is consumers calling shared APIs for common data, file, task, and worker operations; WPF consumers additionally initialize and use UI helpers. The tree and sampled source support these capability areas, but no README overview or complete call graph was provided, so connections between unsampled utility modules are omitted.

Main entry points: [`Wpf/General/Dialogs.cs`](https://github.com/meloong-git/meloongcore/blob/master/Wpf/General/Dialogs.cs) (File dialogs), [`Shared/Utils/FileUtils.cs`](https://github.com/meloong-git/meloongcore/blob/master/Shared/Utils/FileUtils.cs) (File operations), [`Shared/General/Progress.cs`](https://github.com/meloong-git/meloongcore/blob/master/Shared/General/Progress.cs) (Progress tracking), [`Shared/Utils/DirectoryUtils.cs`](https://github.com/meloong-git/meloongcore/blob/master/Shared/Utils/DirectoryUtils.cs) (Directory operations)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_shared["Shared utilities"]
  node_init["Shared initialization<br/>[Main.cs]"]
  node_extensions["Extensions"]
  node_general["General types"]
  node_file["File operations<br/>[FileUtils.cs]"]
  node_directory["Directory operations<br/>[DirectoryUtils.cs]"]
  node_paths["Path operations<br/>[PathUtils.cs]"]
  node_crypto["Cryptography"]
  node_web["Web utilities<br/>[WebUtils.cs]"]
  node_otherutils["Other utilities"]
end

subgraph group_async["Progress and workers"]
  node_progress["Progress tracking<br/>[Progress.cs]"]
  node_worker["Redoable worker<br/>[RedoableWorker.cs]"]
  node_rateworker["Rate-limited worker"]
end

subgraph group_wpf["WPF helpers"]
  node_wpfinit["WPF initialization<br/>[Main.cs]"]
  node_tooltip["Modern tooltips"]
  node_dialogs["File dialogs<br/>[Dialogs.cs]"]
  node_converters["Value converters<br/>[ValueConverters.cs]"]
  node_wpfgeneral["WPF extensions"]
  node_wpfutils["Windows utilities<br/>[WindowsUtils.cs]"]
end

node_consumer(("Library consumer"))

node_consumer -->|"initializes"| node_init
node_consumer -->|"calls"| node_extensions
node_consumer -->|"uses"| node_general
node_consumer -->|"calls"| node_file
node_consumer -->|"calls"| node_directory
node_consumer -->|"calls"| node_paths
node_consumer -->|"calls"| node_crypto
node_consumer -->|"calls"| node_web
node_consumer -->|"calls"| node_otherutils
node_consumer -->|"tracks work"| node_progress
node_consumer -->|"starts work"| node_worker
node_consumer -->|"limits calls"| node_rateworker
node_consumer -->|"initializes UI"| node_wpfinit
node_wpfinit -->|"initializes"| node_tooltip
node_consumer -->|"uses"| node_tooltip
node_consumer -->|"opens dialogs"| node_dialogs
node_consumer -->|"binds values"| node_converters
node_consumer -->|"uses"| node_wpfgeneral
node_consumer -->|"calls"| node_wpfutils
node_worker -->|"updates"| node_progress
node_progress -->|"throttles updates"| node_rateworker
node_file -->|"creates directories"| node_directory
node_file -->|"normalizes paths"| node_paths
node_dialogs -->|"checks paths"| node_directory
node_dialogs -->|"formats paths"| node_paths
node_dialogs -->|"uses extensions"| node_extensions

click node_init "https://github.com/meloong-git/meloongcore/blob/master/Shared/Main.cs"
click node_extensions "https://github.com/meloong-git/meloongcore/tree/master/Shared/Extensions"
click node_general "https://github.com/meloong-git/meloongcore/tree/master/Shared/General"
click node_file "https://github.com/meloong-git/meloongcore/blob/master/Shared/Utils/FileUtils.cs"
click node_directory "https://github.com/meloong-git/meloongcore/blob/master/Shared/Utils/DirectoryUtils.cs"
click node_paths "https://github.com/meloong-git/meloongcore/blob/master/Shared/Utils/PathUtils.cs"
click node_crypto "https://github.com/meloong-git/meloongcore/blob/master/Shared/Utils/CryptographyUtils.cs"
click node_web "https://github.com/meloong-git/meloongcore/blob/master/Shared/Utils/WebUtils.cs"
click node_otherutils "https://github.com/meloong-git/meloongcore/tree/master/Shared/Utils"
click node_progress "https://github.com/meloong-git/meloongcore/blob/master/Shared/General/Progress.cs"
click node_worker "https://github.com/meloong-git/meloongcore/blob/master/Shared/General/Worker/RedoableWorker.cs"
click node_rateworker "https://github.com/meloong-git/meloongcore/blob/master/Shared/General/Worker/RateLimitedWorker.cs"
click node_wpfinit "https://github.com/meloong-git/meloongcore/blob/master/Wpf/Main.cs"
click node_tooltip "https://github.com/meloong-git/meloongcore/blob/master/Wpf/Controls/ModernTooltipService.cs"
click node_dialogs "https://github.com/meloong-git/meloongcore/blob/master/Wpf/General/Dialogs.cs"
click node_converters "https://github.com/meloong-git/meloongcore/blob/master/Wpf/General/ValueConverters.cs"
click node_wpfgeneral "https://github.com/meloong-git/meloongcore/tree/master/Wpf/Extensions"
click node_wpfutils "https://github.com/meloong-git/meloongcore/blob/master/Wpf/Utils/WindowsUtils.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_init,node_extensions,node_general,node_file,node_directory,node_paths,node_crypto,node_web,node_otherutils toneBlue
class node_progress,node_worker,node_rateworker toneAmber
class node_wpfinit,node_tooltip,node_dialogs,node_converters,node_wpfgeneral,node_wpfutils toneMint
class node_consumer toneIndigo
```

## Components

### Shared utilities

- [Shared initialization](https://github.com/meloong-git/meloongcore/blob/master/Shared/Main.cs): `Shared/Main.cs`
- [Extensions](https://github.com/meloong-git/meloongcore/tree/master/Shared/Extensions): `Shared/Extensions`
- [General types](https://github.com/meloong-git/meloongcore/tree/master/Shared/General): `Shared/General`
- [File operations](https://github.com/meloong-git/meloongcore/blob/master/Shared/Utils/FileUtils.cs): `Shared/Utils/FileUtils.cs`
- [Directory operations](https://github.com/meloong-git/meloongcore/blob/master/Shared/Utils/DirectoryUtils.cs): `Shared/Utils/DirectoryUtils.cs`
- [Path operations](https://github.com/meloong-git/meloongcore/blob/master/Shared/Utils/PathUtils.cs): `Shared/Utils/PathUtils.cs`
- [Cryptography](https://github.com/meloong-git/meloongcore/blob/master/Shared/Utils/CryptographyUtils.cs): `Shared/Utils/CryptographyUtils.cs`
- [Web utilities](https://github.com/meloong-git/meloongcore/blob/master/Shared/Utils/WebUtils.cs): `Shared/Utils/WebUtils.cs`
- [Other utilities](https://github.com/meloong-git/meloongcore/tree/master/Shared/Utils): `Shared/Utils`

### Progress and workers

- [Progress tracking](https://github.com/meloong-git/meloongcore/blob/master/Shared/General/Progress.cs): `Shared/General/Progress.cs`
- [Redoable worker](https://github.com/meloong-git/meloongcore/blob/master/Shared/General/Worker/RedoableWorker.cs): `Shared/General/Worker/RedoableWorker.cs`
- [Rate-limited worker](https://github.com/meloong-git/meloongcore/blob/master/Shared/General/Worker/RateLimitedWorker.cs): `Shared/General/Worker/RateLimitedWorker.cs`

### WPF helpers

- [WPF initialization](https://github.com/meloong-git/meloongcore/blob/master/Wpf/Main.cs): `Wpf/Main.cs`
- [Modern tooltips](https://github.com/meloong-git/meloongcore/blob/master/Wpf/Controls/ModernTooltipService.cs): `Wpf/Controls/ModernTooltipService.cs`
- [File dialogs](https://github.com/meloong-git/meloongcore/blob/master/Wpf/General/Dialogs.cs): `Wpf/General/Dialogs.cs`
- [Value converters](https://github.com/meloong-git/meloongcore/blob/master/Wpf/General/ValueConverters.cs): `Wpf/General/ValueConverters.cs`
- [WPF extensions](https://github.com/meloong-git/meloongcore/tree/master/Wpf/Extensions): `Wpf/Extensions`
- [Windows utilities](https://github.com/meloong-git/meloongcore/blob/master/Wpf/Utils/WindowsUtils.cs): `Wpf/Utils/WindowsUtils.cs`

### Other components

- **Library consumer**

## Connections

- Library consumer → Shared initialization: initializes
- Library consumer → Extensions: calls
- Library consumer → General types: uses
- Library consumer → File operations: calls
- Library consumer → Directory operations: calls
- Library consumer → Path operations: calls
- Library consumer → Cryptography: calls
- Library consumer → Web utilities: calls
- Library consumer → Other utilities: calls
- Library consumer → Progress tracking: tracks work
- Library consumer → Redoable worker: starts work
- Library consumer → Rate-limited worker: limits calls
- Library consumer → WPF initialization: initializes UI
- WPF initialization → Modern tooltips: initializes
- Library consumer → Modern tooltips: uses
- Library consumer → File dialogs: opens dialogs
- Library consumer → Value converters: binds values
- Library consumer → WPF extensions: uses
- Library consumer → Windows utilities: calls
- Redoable worker → Progress tracking: updates
- Progress tracking → Rate-limited worker: throttles updates
- File operations → Directory operations: creates directories
- File operations → Path operations: normalizes paths
- File dialogs → Directory operations: checks paths
- File dialogs → Path operations: formats paths
- File dialogs → Extensions: uses extensions
