@WhiteKeep
Как лучше хранить temp файлы?
И каковы бест практикс во внутренней структуре программы?
Хранить dll и pictures в своих отдельных папочках и exe в корне или всё в корень? Как тут обычно делают разработчики?
Буду очень благодарен если вы меня закидаете ссылками на материалы.(английским не брезгую)
Решения вопроса 1
@res2001
Встречал похожий более подробный документ где-то на сайте микрософта, но сейчас не нашел.
Если кратко:
1.программу ставить в «Program Files» в соответствии с платформой. Внутренняя структура исполняемых файлов и библиотек — на ваше усмотрение. Если вы используете кучу динамических библиотек, то есть смысл разнести их по подкаталогам. Если у вам только небольшая кучка — могут лежать в одном каталоге. Это на самом деле не важно и никому не интересно.
2.Общие настройки программы, которые распространяются на всех пользователей: в реестр в HKLM и/или в ProgramData.
3.Пользовательские настройки программы: в реестр в HKCU и/или в AppData.
4.Пользовательские временные файлы: в %TEMP%
5.Файлы проектов или сохранения: в %USERPROFILE%Documents
2
комментария
Ответы на вопрос 5
@Griboks
Самый сок — это кидать скрытые файлы кешей и архивов в системные папки на ssd без возможности переноса. А поскольку у вас Windows, то must-have для крутого разработчика — засорить реестр, контекстное меню и панель быстрого запуска.
Некоторые особо продвинутые ещё умудряются свои службы встроить под системным пользователем (якобы анти-читы, драйвера и в таком духе, но мы то знаем правду…).
Временные файлы лучше хранить в специальном каталоге для временных файлов. Но успешные компании предпочитают создавать свои скрыте файлы/каталоги без права пользователю на удаление. Некоторые гении предпочитают вовсе не хранить временные файлы, а каждый раз закачивать их из интернета (не зря же придумали кеш). Ещё лучше — выдавать ошибку без подключения к интернету, а весь интерфейс сделать удалённым через какой-нибудь electron.
Ну и конечно же всё остальное встраивается в exe, а сам exe шифруется. А то мало ли кто-то захочет иконку поменять без спроса или видео автозапуска удалит.
@Nipheris
MSIX-пакеты ставятся в другое место, а контейнеризованные приложения хранят данные немного в другой раскладке. Вот короткий обзор: https://docs.microsoft.com/en-us/windows/msix/desk…
Разбирайтесь с конкретной технологией (MSI vs MSIX), и всё найдете. И умоляю вас, не пытайтесь писать собственный установщик и самостоятельно копировать файлы в Program Files или куда там вы собрались. Ничем хорошим это не заканчивается, плюс убьёте кучу времени зря (ну если конечно вы не горите особым желанием это сделать, только тогда не показывайте никому).
@Drno
ProgramFiles — обычная папка, созданная по умолчанию для установки программ.
Темп файл лучше хранить в appdata — потом удалять.
Остальное не подскажу, не разраб. Но мне как пользователю удобно когда файлы проги разбиты на подпапки. Типа — bin,music,data… а exe в корне
@profesor08
@firedragon
Ищите на сайте msdn там описано все
Реестр в общем лучше не использовать
Настройки храните или в app.config или в базе SQLite
Насчёт файлов длл храните рядом с исполнимым файлом GAC лучше не использовать
Плагины и расширения в отдельной папке
Изображения и ресурсы тоже
