9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330

Несколько приложений и общая БД. Направьте в правильную сторону

04.12.2023, 13:18. Показов 1206. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго дня!

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

Но сейчас вопрос вот такой.
Как вообще правильнее это сделать?

Я так понимаю, нужно сервисы с базой данных создать в отдельном приложении API?

Допустим я создаю ASP NET API приложение (допустим MyAPI), и всю работу переношу туда.

То теперь всем приложениям нужно добавлять работу с API сервисом через http протокол?

Из плюсов вижу, что одно приложение будет только работать с БД, и всё.

А вот из минусов нужно создавать полностью работу с api, с учётом того, что API может быть недоступен и т.д.
То есть кода будет намного больше.
Постоянно нужно будет преобразовывать объекты в json и наоборот, что увеличит нагрузку на пк.
Дополнительные настройки для API подключения в самих приложениях-клиентах.

А так же нужно как-то следить за тем, что сервис MyAPI будет запущен.



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


Объясните на сколько это вообще правильная идея?
И как в таком случае обновлять обновлять приложение-сервер API MyAPI?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.12.2023, 13:18
Ответы с готовыми решениями:

Направьте на правильную оптимизацию
Лет десять назад делал сайты на Джумле - там запускал роботов - и они, за две недели, помещали мне сайт в хорошее место поисковика по...

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

3 задачи по статистике) направьте в нужную сторону формулами пожалуйста)
Имеются следующие данные о заработной плате рабочих предприятия: Номер Базисный период Отчетный период Средняя заработная плата,...

23
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
05.12.2023, 21:24
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от BeginnerCoderCS Посмотреть сообщение
В windows не хочется докер ставить, тем более что если докер стоит, то VirtualBox не работает.
любая виртуализация конфликтует между собой. Грубо говоря для виртуальных машин можно поставить только что-то одно: VMware, virtual box или HyperV. Вместе работать не будут. Также будут конфликтовать всякие андроид-студии и прочие штуки запускающие эмуляторы, так как они тоже используют внутренню виртуализацию CPU, и на дефолтных системах она не умеет в "кучу разных решений" (хз почему, но это так).



Цитата Сообщение от BeginnerCoderCS Посмотреть сообщение
Допустим одно приложение регистрирует пользователей в БД, другое выгружает статистику этих данных и т.д.
Эпическая херня. Сори, но по другому я назвать это не могу. Это как вместо заменить сверло -- покупать новую дрель.

У меня всё больше ощущение что вам на самом деле нужно просто написать одно нормальное клиент-серверное приложение и все ваши вопросы "магическим" способом решатся.
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
05.12.2023, 21:43
Цитата Сообщение от Wolfdp Посмотреть сообщение
Эпическая херня
Так а почему нет? Есть какая-то [наследная] база, к ней есть какой-то API для какого-то десктопного клиента. Потом возникают какие-то мелкие задачи по интеграции (в обе стороны) с другими сервисами, под каждую из которых реализуется свой маленький сервис с одним-двумя методами. Далее, надоедает права напрямую в базе править, реализуется отдельным сервисом API управления правами и к нему отдельный десктопный (и/или веб) клиент (админка, по сути).

Вроде, вполне обычная ситуация. Ну не пихать же вообще весь API в один сервис. Да и часть логики самого десктопного приложения вполне может обособляться в полноценные отдельные приложения (как декстопные, так и веб), реализованные поверх той же БД (или группы БД), но со своими API и своими клиентами.
0
9 / 6 / 3
Регистрация: 10.01.2020
Сообщений: 330
05.12.2023, 22:21  [ТС]
Цитата Сообщение от Wolfdp Посмотреть сообщение
любая виртуализация конфликтует между собой.
Именно поэтому, но я и не спрашивал, а написал утвердительно.
Ну и вообще docker для линукса, и не фиг его в win городить ))

Цитата Сообщение от Wolfdp Посмотреть сообщение
Эпическая херня. Сори, но по другому я назвать это не могу. Это как вместо заменить сверло -- покупать новую дрель.
Странно конечно, но не вижу связи с заменой сверла и дрелью.
Если так, то по вашему мнению Excel, Word, Photoshop и т.д. должны быть не отдельными приложениями а одним общим клиент-серверным?
Ведь есть у меня папка с картинками (БД), из которой я вставляю сообщения в Excel и Word, и открываю для редактирования эти же картинки в Photoshop.
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
05.12.2023, 22:50
Цитата Сообщение от kotelok Посмотреть сообщение
Так а почему нет?
У меня стойкое ощущение что там проект на полсотни методов для api и с полдюжины форм. Грубо говоря -- не шибко большой, чтобы его распылять на отдельные. Плюс пользователи общие, т.е. можно регаться в каждом приложении под одной учеткой. Из этого делаю вывод что проще и правильнее будет сначала сделать добротный вменяемый монолит, и уже поняв на практике где есть смысл выносить в отдельные решения.

Честно говоря всё это -- обсуждение коня в вакуме. Есть задачи, когда монолит будет в тему. Есть задачи когда таки стоит даже без практически полученого фидбека заранее разнести по разным приложениям. Более того: что такое "разное приложение"? Тот же web api имеет такую шляпу как area. Какой-нибудь WPF клиент можно организовать так, что будут (не) подгружаться модули в зависимости от роли юзера. Технически всё это монолит, но построение модульное и упрощает в некоторой степени жизнь.

Добавлено через 20 минут
Цитата Сообщение от BeginnerCoderCS Посмотреть сообщение
Если так, то по вашему мнению Excel, Word, Photoshop и т.д. должны быть не отдельными приложениями а одним общим клиент-серверным?
Вот вам противоположный пример -- VisualStudio. На заре для free-редакций было разделение отельное приложение под desctop C#, отдельное под web и т.д. Сейчас всё слито воедино, оставив модули. Причем 99% не юзает и половины возможностей студии, например тот же git. Либо outlook -- календарь + почта. Можно и отдельно, но это два модуля, которые на работе юзают вместе в 99 случаев из 100.

Если говорить про серверную часть: там разделение/монолит может быть обусловленно 100500 причинами, все я их не опишу. Причем может быть ситуация когда для одного клиентского приложения подымается либо несколько копий (кластеризация) серверного приложения, либо разбивается на несколько серверных модулей, каждый из которых строго заточен под конкретную задачу (допустим есть api на asp.net core, но также статика выкинута вообще отдельным решением. По факту -- два сервака).

Из личного опыта: разделить монолит на несколько частей проще, чем объединять разные сервера общей логикой. Например вам придется кешировать данные. В рамках одного процесса это делается элементарно и надежно, в отличии от двух разных, которые ещё могут и физически быть разнесены очень далеко.

Исходя из этого, плюс тот факт что у вас очень "тривиальный вопросы" (что на водят на мысль неправильности некоторых решений) -- я предлагаю найболее щадящий подход "просто написать грамотное клиент-серверное приложение", который в дальнейшем принесет меньше боли и дает возможности сопровождения. Без детального вникания в вопрос "что это за приложения" -- я большего посоветовать не могу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.12.2023, 22:50

Django несколько баз данных и несколько приложений в проекте
Здравствуйте всем! По данному вопросу есть офф.документация и много других ссылок на эту тему, но полностью тема для меня так и не...

Какая общая структура/логика android-приложений типа сборников цитат, рецептов, анекдотов
Опишите, пожалуйста, общую схему построения android-приложений типа сборников цитат, рецептов, анекдотов и т.д С учетом, что все данные уже...

Общая база на несколько компьютеров
Сразу извеняюсь - не владею терминами 1С - буду рассказывать на пальцах. Есть сервер дома с 1С - тут пока и работаю (создаю...

Одна общая таблица истории или несколько ?
Добрый день, нужен совет как лучше поступить У меня есть 10 сущностей и у каждой есть к примеру по 10 состояний, и переход между...

Несколько приложений 1С
Добрый день! Почему тут три приложения и одно в тут C:\Program Files (x86)\1cv8t\common Чем они отличаются?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Опции темы

Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru