FAQ.Net — программа для заметок, написанная под Windows на языке C# (.NET Framework 2.0).
История началась с того, что нужна была портативная программа для хранения накопленных знаний (копий статей из интернета, ссылки на статьи, SQL-запросы, программный код, пароли и т.д.), с возможностью быстрого поиска и редактирования документов. За основу интерфейса FAQ.Net был взят интерфейс из CHM-формата (файл справки или руководство о программе).
Так как я специализируюсь на базах данных, то решил все документы хранить в БД, используя встроенную СУБД — SQLite. Создал таблицы и написал интерфейс для работы с БД.

Многие программисты до сих пор создают заметки в текстовых документах, сохраняя их на компьютере и со временем теряют их местонахождение. Теперь, с помощью FAQ.Net все накопившиеся документы, можно хранить в одном месте, не опасаясь за их утрату.
В приложении FAQ.Net имеется возможность резервного копирования БД.



Я уже много лет пользуюсь FAQ.Net и аналогов с таким удобным и быстрым поиском не находил.

Приложение работает под Windows XP (если установлен .NET Framework 2.0) и выше.

Интерфейс приложения FAQ.Net


Приложение FAQ.Net состоит из трех областей:

  1. панель поиска и навигации по документам
  2. название раздела или выбранного документа
  3. список документов или редактируемый документ

Вкладка «Разделы»


На вкладке «Разделы» создается иерархический список разделов, которые можно перемещать, изменять или удалять (в двух вариантах: удаление вместе с содержимым и с переносом содержимого в другой раздел).

Поиск


Поиск работает сразу по всем документам, операцией LIKE встроенной СУБД SQLite. При поиске документа можно учитывать несколько условий поиска, добавив специальные символы (|| — операция ИЛИ, && — операция И). Символ "%" означает искать любые символы.

Я думал, что такой способ поиска будет медленным, но протестировав LIKE на базе размером более 2Гб удивился его быстроте.

Хранение и редактирование документов




Все документы хранятся в RTF-формате в БД, в одном единственном файле с именем «FAQ.sqlite», который находится рядом с exe-файлом приложения (FAQ_Net.exe).
Документы можно распечатать, имеется предварительный просмотр.
Можете вставлять изображения в документы.

Вкладка «Избранное»


На вкладке «Избранное» отображаются документы, которые пользователь помечает в области документа, нажав на пиктограмму с изображением звезды (Добавить в избранное).

При нажатии на «Добавить в избранное» документ появляется наверху в панели «Избранное». При отжатии кнопки «Добавить в избранное» документ удаляется из списка в панели «Избранное».

Вкладка «Журнал»


На вкладке «Журнал» отображаются 50 последних документов, отсортированных по дате создания в порядке убывания (самые свежие вверху списка).

Поиск и замена слов внутри документа


Для поиска внутри документа, необходимо нажать Ctrl+F (для замены слов нажмите Ctrl+H). После этого, внизу появится панель поиска и замены текста.

Что дальше?


  1. В дальнейшем список форматов буду расширять. Планирую добавить возможность хранения, поиска и редактирования HTML-формата, а также XLSX-формат.
  2. Для программистов будет удобным добавление функции подсветки синтаксиса для выделенного текста.
  3. Добавлю функцию автоматического обновления приложения.
  4. Улучшить дизайн компонентов.
  5. На вкладке «Разделы» отделить панель списка документов от панели содержимого документа, чтобы список документов не скрывался при открытии документа.
  6. Внести возможность создавать ссылки на другие документы внутри приложения.
  7. Написать API чтобы хранить и обрабатывать HTML-документы при парсинге сайтов.
  8. Сделать приложение FAQ.Net кроссплатформенным.
  9. Список пожеланий можете дополнять сами в комментариях или в группе ВКонтакте (см.ниже).

Кому будет полезна программа заметок FAQ.Net?


Приложение FAQ.Net можно применять людям различных профессий и статусов. Рекомендую использовать приложение для заметок FAQ.Net: программистам, студентам и преподавателям.

Был рад поделиться своей разработкой. Надеюсь Вам была интересна статья и программой для заметок FAQ.Net будут пользоваться.

Скачать Windows приложение FAQ.Net (бесплатно):

(x64) yadi.sk/d/sq3g4NOD3Zt7ZY
(x86) yadi.sk/d/NKXeyUWH3Zt8PQ

Группа ВКонтакте

Комментарии (60)


  1. Smiz001
    07.10.2019 12:57

    Жаль на гите нет исходников.


    1. shmelev-1987 Автор
      10.10.2019 10:27

      Уже работаю над этим. Выложу в github, как все настрою.


      1. Smiz001
        10.10.2019 11:37

        Спасибо.


  1. kalapanga
    07.10.2019 12:58

    1) Не работают обе версии. При запуске — «Необрабатываемое исключение...» По кнопке «Продолжить» приложение запускается, но у версии x86 при этом напрочь «съезжает» интерфейс. Попытка создать раздел так же заканчивается «Необрабатываемым исключением...»
    Windows 7 Профессиональная, x64, Версия 6.1 (сборка 7601: Service Pack 1)

    2) Заинтересовал поиск «операцией LIKE встроенной СУБД SQLite» по RTF формату. Что и правда что-то найдёт? «FAQ.Net» на скриншоте — пример не интересный, кириллица интересует.


    1. alkoro
      07.10.2019 13:27

      По первому пункту подтверждаю — то же самое, x64 версия запускается с единичным исключением, но заметки не сохраняются. x86-версия запускается с кривым интерфейсом. Win7x64sp1


      1. shmelev-1987 Автор
        07.10.2019 17:21

        Проект компилировался под Windows 10. Попробую скомпилировать проект под Windows XP. Надеюсь это поможет. О доработках сообщу дополнительно. Спасибо за замечание о проблеме!


    1. kalapanga
      07.10.2019 13:58

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


    1. shmelev-1987 Автор
      07.10.2019 16:35

      Поиск с русскими символами работает без проблем. В БД хранится обычный текст и RTF (дублирование информации). Поиск выполняется по обычному тексту.


      1. kalapanga
        07.10.2019 17:14

        А, это другое дело. Такую реализацию я уже встречал, когда кроме rtf хранится plain-text именно для целей поиска.


  1. TiesP
    07.10.2019 13:07

    Ну думали прикрутить веб-интерфейс? К примеру для такого сценария: крутится простенький свой сервер и где-нибудь в дороге обращаешься к своим записям через веб-интерфейс.


    1. halted
      07.10.2019 13:10

      веб-морда очень актуально выглядит, на замену всяким мудреным Вики


    1. shmelev-1987 Автор
      07.10.2019 16:23

      Такая мысль есть, но опыт в разработке Web-приложений небольшой.


      1. DaMaNic
        08.10.2019 12:01

        Для начала посмотрите в сторону Keepass, 50% его полезности в том, что можно хранить базу данных на серверах, доступ по webdav к примеру, и тем самым легко записал на одном компьютере — открыл на другом, или даже смартфоне.


    1. UksusoFF
      07.10.2019 21:09

      А чем не устраивает гитхаб с мдками?


  1. pesp
    07.10.2019 13:15
    +1

    Под линуксом похожая программка Zim есть. Пользуюсь ей уже 2 года — стабильная, шустрая, ничего не шифрует и ни в какие мудреные базы данные не кладет, складывает записи с картинками прям в директорию. Очень удобная. Даже если все рухнет, свои записи откопаю и реанимирую.


    1. hjornson
      07.10.2019 13:29

      echo off
      set now=%TIME:~0,-3%
      set now=%now::=%
      set now=%now: =0%
      set now=%DATE:~-4%%DATE:~3,2%%DATE:~0,2%_%now%
      «d:\program\Far2\far.exe» /e «d:\!tempnotes\%now%»
      exit

      … в батник и вызов батника на горячие клавиши. А искать потом по каталогу с этими заметками можно чем угодно и где угодно.


    1. NeoCode
      07.10.2019 13:31

      Zim и под винду есть. Я частично перешел на zim c evernote, с тех пор как они начали что-то там ограничивать с количеством устройств. Заметки размещены на bitbucket, для синхронизации между компьютерами использую git.
      Заметки хранятся в простом текстовом формате — это как раз удобно для синхронизации через git.


    1. eumorozov
      07.10.2019 13:57

      Подобных программ — вагон и маленькая тележка под любую платформу. Многие с открытыми исходниками. Всегда в таких случаях думаю: почему бы автору не приложить усилия для улучшения уже существующей альтернативы?..


      Сам пользовался zim, но не нравилось, что используется не markdown для разметки. Уже привык всюду использовать markdown, некомфортно постоянно переключаться на другой язык.


      Потому сейчас использую vimwiki.


    1. CJay
      07.10.2019 19:37
      +1

      я же с zim перешел на QOwnNotes. Тот же markdown, но интерфейс приятнее.


      1. pmcode
        08.10.2019 06:34

        Тоже когда то пользовался QOwnNotes, потом перешел на VNote. Концепция та же, то сама утилита намного более продвинутая, потому что в отличие от QOwnNotes, автор использует QtWebEngine и смог в нормальное форматирование. Мне частенько приходится сохранять скриншоты, так вот VNote — просто единственный (из offine заметочников), кто умеет адекватно работать с картинками (вставка из буфера, ресайзинг, отслеживание удаления и т.д.).


        Имхо, вот эти 2 лучшее что есть из заметочников. zim — старый как говно мамонта и не умеет в markdown из коробки, все поделки на электроне — лютое УГ разной степени забагованности. Есть еще корявенький Outwiker с никаким UX и стильный MyTetra с UI для любителей Windows 95. Вообще, с заметочниками самая забавная ситуация — софта навалом, а выбирать не из чего.


    1. Aquahawk
      08.10.2019 16:51

      У меня под виндами zim сломался и начал глючить как только я занёс буквально 30 документов


  1. lair
    07.10.2019 13:23

    Я уже много лет пользуюсь FAQ.Net и аналогов с таким удобным и быстрым поиском не находил.

    … ну вот скажем OneNote. Он медленнее?


  1. a-tk
    07.10.2019 13:30

    > Сделать приложение FAQ.Net кроссплатформенным.

    Avalonia?


  1. Alexufo
    07.10.2019 13:50

    creat0r рассказал бы о своем опыте.


    1. creat0r
      11.10.2019 10:47

      Мой опыт разработки подобного ПО закончился примерно в 2007м :)
      Могу только сказать, что применение RichEdit-потомков с RTF в качестве формата сохранения — было не лучшей идеей уже тогда, 15 лет назад.


  1. edogs
    07.10.2019 14:09

    До сих пор используем winorganizer (очень древняя тулза), при чем даже покупную лицензию (в том смысле что сначала он только продавался, потом автор забил на это и вывалил ключ в паблик, так вот мы еще успели купить).
    Пробовали всякие evernote, onenote и т.д. — не зашло ни разу, наворочено и непредсказуемо по поведению. Для мелких заметок где надо облако их используем, но не более того.
    В winorganizer не хватает нескольких вещей, но то как сделано то что сделано — перевешивает.
    Если у автора получится нечто подобное (а вроде по статье на то похоже), то спрос вполне возможен (многих знакомых на winorg подсадили).


    1. gotch
      07.10.2019 15:09

      Notepad++ с представлением «Дерево» для чистого текста, и OneNote для графики. Но тоже, так себе решение.
      Сейчас для записок вообще GitHub стал популярен, как не удивительно.


    1. pesp
      07.10.2019 15:57
      +1

      Долгое время пользовался winorganizer. Эта была одна из немногих программ под win, что я купил. Но с переходом на линукс стала неактуальной.


  1. Stecenko
    07.10.2019 16:34

    MyTetra уже упоминали?



  1. smart_alex
    07.10.2019 17:26

    А есть ли подобные программы для заметок, которые умеют подсвечивать программный код?


    1. ZoRgSoft
      07.10.2019 18:08
      +1

      Я использую cherrytree www.giuspen.com/cherrytree
      Linux, Windows.


      1. smart_alex
        07.10.2019 18:29

        Большое спасибо — похоже это как раз то, что нужно.


    1. Taraflex
      07.10.2019 18:40

      del


    1. ASD2003ru
      07.10.2019 21:05

      Joplin, Boostnote
      Но в основе написания текста markdown


    1. Self_Perfection
      07.10.2019 21:13

      Вышеупомянутый zim имеет плагин для вставки текстовых сниппетов с подсветкой синтаксиса


  1. vanyas
    07.10.2019 17:32

    Программа выглядет как из начала 2000-х…


    1. NeoCode
      07.10.2019 23:45
      +1

      ИМХО именно так и должна выглядеть программа. Концепция стандартизированного унифицированного внешнего вида всех элементов UI на данной платформе — это очень хорошая концепция.



  1. lostmsu
    07.10.2019 18:06

    О. У моего первого проекта на C# был очень похожий интерфейс. Писал как раз когда .NET 2.0 вышел.


  1. ASD2003ru
    07.10.2019 20:59

    Лично пользуюсь Joplin умеет синхронизироваться да и markdown как то привычным стал.


  1. LoadRunner
    08.10.2019 09:50

    А почему выбран .NET Framework 2.0, а не 4.0?


  1. shmelev-1987 Автор
    08.10.2019 10:38

    Нужно было работать в WinXP


    1. LoadRunner
      08.10.2019 16:21

      Так есть же .NET Framework Client Profile 4.0 для Windows XP. Это всё лучше, чем вкорячивать 2.0 на Windows 10.


      1. shmelev-1987 Автор
        08.10.2019 16:31

        Спасибо за подсказку, попробую перевести на .NET 4.0


  1. FloorZ
    08.10.2019 12:09

    Если честно, все эти приложения для заметок — не удобны. Оно все равно теряется, при том сами приложения теряются тоже. При том потери заметок происходит чаще всего при смене устройства или длительного не использования оного. Да и уже как правило, хранить на устройстве что-то — банально не надежно сегодня. Все проекты по гитам разбросаны. Все заметки в трелло написаны. А устройства теряются, ломаются, я юзаю мобильник часто и т.д.

    Не удобно оно, да еще на десятке боюсь не заведется сразу.


  1. KReal
    08.10.2019 12:24

    Нет, LIKE в SQL это конечно очень хорошо, но прикрутить хотя бы Lucene.Net заняло бы полдня, а результаты бы вас приятно удивили! :)


    1. shmelev-1987 Автор
      08.10.2019 16:36

      С очень большими базами заметок не приходилось работать, поэтому не было необходимости использовать Lucene.Net.


  1. Bion007
    08.10.2019 15:40

    Есть еще Help & Manual www.helpandmanual.com/order.html Не бесплатный правда, но весьма мощный, кроме всего прочего позволяет генерировать документацию в различных форматах.


  1. unchase
    08.10.2019 17:09

    На мой взгляд, QOwnNotes наиболее продвинутый и удобный менеджер заметок.


  1. s_suhanov
    08.10.2019 19:04

    Многие программисты до сих пор создают заметки в текстовых документах, сохраняя их на компьютере и со временем теряют их местонахождение.

    Многие программисты уже научились пользоваться современными сервисами для этого (обычно они уже встроены в телефоны этих программистов).


    1. pprometey
      09.10.2019 05:07

      Вот именно. Тот же OneNote прекрасно для этого подходит.

      Я конечно извиняюсь за критику, но мне эта программа кажется жутким атавизмом.


      1. playermet
        10.10.2019 18:13

        Пробовал OneNote и множество альтернатив. Максимально неудобно. Сейчас использую flashnote, из критичного не хватает только табов, а по мелочи хотелось бы регулировку ширины текста в фуллскрине и внутренние ссылки.


  1. Zenitchik
    08.10.2019 19:58

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


    1. playermet
      10.10.2019 18:21

      Папочек с файликами как правило много, и файлики там в форматах разных, без общего поиска. А база всего одна, в облаке, и по ней работает глобальный поиск.

      А кроме того, можно использовать следующую киллерфичу: легковесность, автозагрузка, сворачивание/разворачивание на хоткей (например ctrl+shift+z). Лично у меня между возникновением необходимости что-то найти в заметках и моментом начала их чтения проходит не более 5-10 секунд. А если нужный узел уже виден в дереве при разворачивании то и того меньше.


  1. 1MK-Ultra
    09.10.2019 08:39

    Надо самому такое написать. Но, вот что я хочу сделать. База данных нужна будет только для индекса. Все остальные данные будут хранится где хранились, на винчестере! К примеру, появляется новый документ, (не важно в чём, Txt, rtf, doc, html, cpp, и т.д. Программа, висит в трее и спрашивает, в какой раздел это отнести? Затем он идексируется. Если нужно посмотреть заметку в txt или rtf, открывается во внутреннем редакторе, если в другом формате, открывается в том приложении, в котором этот документ создавался. :)
    И не нуждается эта программа в онлайн доступе с сервера. Человек просто хочет упорядочить все документы на своём жестком диске.


    1. shmelev-1987 Автор
      09.10.2019 16:40

      Между диском и базой очень часто могут быть расхождения. Нужно будет отслеживать при запуске приложения (или в фоне) все расхождения между данными в базе и файлами на диске


      1. 1MK-Ultra
        10.10.2019 08:06

        Это да. Скажем раз в сутки всё шерстить. Ну, и разумеется первый раз.


  1. LESHIY_ODESSA
    09.10.2019 17:31

    А я уже давно использую OutWiker, автор которой присутствует на Хабре и активно пишет статьи.


  1. DnAp
    10.10.2019 16:51

    Для меня стало откровением что VSCode с плагинами удовлетворяет моим потребностям.
    Доставляем плагин для тегов — vscode-nested-tags. И auto-git для синхронизации.
    Дальше просто пишем все в markdown файлах