Desktop приложение для хранения текстовой информации

Всем привет! Меня зовут Алексей, я являюсь .NET разработчиком. Это моя первая статья на Хабре. Время от времени возникает необходимость где-то записывать различные вырезки из статей, инструкции, сниппеты с кодом и т. д. Раньше приходилось хранить все это в отдельных файлах в системе, но со временем их становилось все больше, и я начал забывать, что и где находится. Однажды возникла идея разработки Desktop приложения на WPF для удобного хранения текстовой информации в одном месте, чтобы можно было ее систематизировать и быстро находить.

Начал разработку в 2022 г. и продолжаю ее по сей день в свободное от основной работы время. На данный момент приложение имеет довольно неплохой функционал, оно получилось удобным и удалось реализовать практически все что требовалось на момент задумки. Приложение называется Data Organizer и предназначено для работы в ОС Windows.

Интерфейс

Интерфейс выполнен по принципу Master–detail, где в левой части экрана находится иерархический список папок и документов, напоминающий проводник в ОС Windows, а в правой, представление выбранного в списке документа. В данный момент реализованы следующие типы документов:

  • Простой текст — обычный текстовый документ с возможностью подсветки синтаксиса;

  • Форматированный текст — аналог документа docx;

  • Электронная таблица — аналог документа xlsx;

  • Набор данных — документ в виде набора карточек, позволяющих разделять информацию по категориям с порциями текста.

В планах добавить возможность хранения документов PDF.

Главное окно приложения - редактор

Главное окно приложения — редактор

В настройках можно изменить параметры цветовой темы приложения, выбрать русский или английский язык интерфейса.

Настройки приложения

Настройки приложения

Есть места, где локализация только английская, это диалог подключения к базе данных (очень много текста нужно перевести), в представлении документов с форматированным текстом и электронных таблицах для которых используются компоненты от Telerik (нужно будет найти время чтобы заняться этим).

Возможности

Есть возможность перетаскивать объекты в любое место в списке с помощью Drag-and-drop, а также с помощью клавиатуры комбинациями Alt+Up/Down в пределах папки.

Реализован поиск объектов как по названиям и тэгам (тэги служат для обобщения объектов в списке), так и по содержимому документов (в данный момент поиск по содержимому применяется к документам с простым и форматированным текстом).

Есть возможность экспорта всех данных в один XML или JSON файл, или в физические файлы, где каждому документу соответствует один файл на диске с учетом иерархии папок в списке. По такому же принципу реализован и импорт данных в приложение.

Присутствует история просмотров содержимого документов и история копирования содержимого.

Так же есть шифрование содержимого папки в списке.

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

Есть еще много чего и в будущем я постараюсь сделать более полное описание.

Хранение данных

По умолчанию приложение использует для хранения данных локальную базу данных SQLite, создаваемую и находящуюся рядом с исполняемым файлом, но есть возможность подключения через специальный диалог к другой базе SQLite, а так же к MySQL, Oracle, PostgreSQL, SQLServer.

Подключение к базе данных

Подключение к базе данных

Публикация

Приложение компилируется в портативную сборку, включающую в себя целевую платформу .NET 8, для удобства переноски на съемном носителе. Систему своими файлами и записями не засоряет, все необходимые для работы файлы, создает в папке рядом с исполняемым.

Заключение

Я хочу поделиться своим приложением бесплатно со всеми желающими. Возможно, кому-то оно будет так же полезным. Так как занимаюсь его разработкой в одиночку, я был бы очень благодарен за обратную связь (для этого можно использовать диалог «Техническая поддержка» в самом приложении). Буду рад предложениям по доработкам, улучшению, замечаниям, добавлению новых функций, выявленным багам и т.д.

Приложение находится в открытой папке на Яндекс диске и доступно по ссылке: https://disk.yandex.ru/d/jeUJ8m7PJYRu4g или qr-коду:

Ссылка на открытую папку с приложением

Ссылка на открытую папку с приложением

Я пытался найти действующий, не заблокированный на территории России ресурс для размещения скомпилированной сборки Data Organizer, но не удалось, если кто-нибудь сможет подсказать о существовании такого, буду очень благодарен.

© Habrahabr.ru