MAUI Commander
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Stepan Pilipenko cf49d8217b delete builder service 2 weeks ago
Platforms правка фокуса 2 weeks ago
Properties first 4 weeks ago
Resources .net 10 3 weeks ago
.gitignore цвет текста 3 weeks ago
App.xaml rename and fix buttons 4 weeks ago
App.xaml.cs правка создания 3 weeks ago
AppShell.xaml правка создания 3 weeks ago
AppShell.xaml.cs правка создания 3 weeks ago
CommanderApp.csproj .net 10 3 weeks ago
CommanderApp.slnx .net 10 3 weeks ago
FileOperations.cs рефакторинг 3 weeks ago
FileSystemItem.cs move focus 3 weeks ago
FileSystemService.cs рефакторинг 3 weeks ago
GlobalXmlns.cs rename and fix buttons 4 weeks ago
IFileOperations.cs рефакторинг 3 weeks ago
IFileSystemService.cs рефакторинг 3 weeks ago
IKeyboardService.cs рефакторинг 3 weeks ago
IPanelManager.cs рефакторинг 3 weeks ago
IPathHelper.cs рефакторинг 3 weeks ago
KeyboardService.cs рефакторинг 3 weeks ago
LICENSE Initial commit 4 weeks ago
MainPage.xaml скролл 3 weeks ago
MainPage.xaml.cs флаг для открытия директорий 2 weeks ago
MauiProgram.cs delete builder service 2 weeks ago
PanelManager.cs рефакторинг 3 weeks ago
PathHelper.cs рефакторинг 3 weeks ago
README.md рефакторинг 3 weeks ago

README.md

Файловый менеджер на .NET MAUI

Разработчик: Пилипенко Степан Андреевич (2025 год)


Введение

Цель работы

Разработка кроссплатформенного файлового менеджера с использованием современной технологии .NET MAUI, обеспечивающего эффективную работу с файловой системой на различных операционных системах.

Актуальность

В современном мире с ростом мобильных устройств и разнообразием операционных систем возрастает потребность в кроссплатформенных решениях. Файловые менеджеры остаются одним из наиболее востребованных типов приложений, а возможность их работы на разных платформах из единой кодовой базы значительно сокращает затраты на разработку и поддержку.

Выбор технологий

.NET MAUI как основная платформа

Обоснование выбора:

  1. Единая кодовая база - возможность разработки для Windows, macOS, Android и iOS из одного проекта
  2. Производительность - нативная компиляция и прямой доступ к API платформ
  3. Современный UI - поддержка последних стандартов пользовательского интерфейса
  4. Экосистема .NET - богатая библиотека компонентов и инструментов
  5. Поддержка Microsoft - долгосрочная поддержка и активное развитие платформы

Преимущества перед альтернативами

  • По сравнению с Electron: меньший расход памяти, лучшая производительность
  • По сравнению с Flutter: интеграция с экосистемой .NET, знакомый язык C#
  • По сравнению с нативной разработкой: сокращение времени разработки в 2-3 раза

Архитектура решения

Многослойная архитектура

┌─────────────────────────────────────────┐
│             Presentation Layer          │
│              (MainPage.xaml)            │
└─────────────────────────────────────────┘
┌─────────────────────────────────────────┐
│              Business Logic             │
│          (Сервисы, Менеджеры)           │
└─────────────────────────────────────────┘
┌─────────────────────────────────────────┐
│              Data Access                │
│        (FileSystemService, etc.)        │
└─────────────────────────────────────────┘

Ключевые компоненты

1. Presentation Layer

  • MainPage.xaml - основной пользовательский интерфейс
  • Две панели для навигации по файловой системе
  • Панель инструментов с основными операциями

2. Business Logic Layer

PanelManager
  • Управление состоянием панелей
  • Навигация и выделение элементов
  • Координация между левой и правой панелями
FileOperations
  • Копирование файлов и директорий
  • Перемещение элементов
  • Удаление и создание папок
  • Открытие файлов
KeyboardService
  • Обработка клавиатурных сокращений
  • Кроссплатформенная поддержка горячих клавиш
  • Навигация с помощью WASD

3. Data Access Layer

FileSystemService
  • Абстракция над файловой системой
  • Получение содержимого директорий
  • Кроссплатформенные пути
PathHelper
  • Работа с путями файловой системы
  • Определение домашней директории
  • Кроссплатформенные операции с путями

Принципы проектирования

1. Инверсия зависимостей (DIP)

public interface IPanelManager
public interface IFileOperations
public interface IKeyboardService

2. Принцип единственной ответственности (SRP)

Каждый сервис отвечает за конкретную функциональность

3. Интерфейс-ориентированное программирование

Легкая замена реализаций и тестирование

Функциональные возможности

Основные операции

  1. Навигация - просмотр файловой системы через две панели
  2. Копирование (F5) - копирование файлов и папок между панелями
  3. Перемещение (F6) - перемещение элементов между панелями
  4. Создание папок (F7) - создание новых директорий
  5. Удаление (F8) - удаление файлов и папок
  6. Быстрая навигация - переход в домашнюю директорию

Управление с клавиатуры

  • WASD - навигация по файлам
  • Space/Enter - открытие файлов и папок
  • F5-F8 - операции с файлами
  • H - переход в домашнюю директорию

Кроссплатформенность

  • Поддержка Windows и macOS
  • Единый код для разных платформ
  • Адаптация к особенностям файловых систем

Технические особенности

Обработка файловых операций

public async Task<bool> CopyAsync(string sourcePath, string targetPath)
public async Task<bool> MoveAsync(string sourcePath, string targetPath)
public async Task<bool> DeleteAsync(string path)

Навигационная система

  • Рекурсивный обход директорий
  • Поддержка специальных элементов (".." для навигации вверх)
  • Оптимизированная работа с большими директориями

Пользовательский интерфейс

  • Интуитивная двухпанельная layout
  • Визуальное выделение активных элементов
  • Статус-бар с текущими путями

Результаты разработки

Достигнутые цели

  1. Создан полнофункциональный файловый менеджер
  2. Обеспечена кроссплатформенность (Windows/macOS)
  3. Реализованы все основные файловые операции
  4. Обеспечена высокая производительность
  5. Создан удобный пользовательский интерфейс

Производительность

  • Быстрая загрузка директорий
  • Эффективная работа с большими файлами
  • Минимальное потребление памяти

Качество кода

  • Чистая архитектура с разделением ответственности
  • Полная покрытие интерфейсами для тестирования
  • Современные практики C# и .NET

Заключение

Разработанный файловый менеджер демонстрирует эффективность использования .NET MAUI для создания кроссплатформенных приложений. Приложение успешно решает поставленные задачи и предоставляет пользователю удобный инструмент для работы с файловой системой на разных платформах.

Перспективы развития

  1. Добавление поддержки сетевых протоколов (FTP, SFTP)
  2. Реализация поиска по файловой системе
  3. Добавление предпросмотра файлов
  4. Поддержка плагинов и расширений
  5. Интеграция с облачными хранилищами

Выводы

Использование .NET MAUI позволило создать производительное кроссплатформенное приложение с минимальными затратами на разработку. Архитектура на основе сервисов и интерфейсов обеспечивает легкую расширяемость и поддерживаемость кода, что делает решение перспективным для дальнейшего развития.