Я знаю, что вы не захотите это слышать, но нет единого ответа на этот вопрос.Люди посвящают всю свою карьеру, пытаясь решить подобные проблемы.
Я работаю в авиационной отрасли, где у нас есть буквально тысячи киосков, терминалов, приложений для мобильных телефонов и т. Д. По всему миру, которые одновременно получают доступ к одной и той же базе данных.многие из них нуждаются в общении в реальном времени, несмотря на то, что они сидят за некоторыми самыми жесткими брандмауэрами ... и самыми слабыми сетями аэропортов ... вы когда-либо увидитеВ качестве очень грубого руководства я склонен раскрывать базу данных через веб-сервер, и через него все связывается.Для вещей в реальном времени я использую WebSockets (которые могут быть смоделированы с помощью длинного опроса, когда сеть не поддерживает это), но некритические вещи обычно могут обрабатываться с помощью базовых вызовов REST;обе эти технологии имеют достаточную поддержку JavaScript, что важно, когда (не если) вы в конечном итоге разрабатываете какие-либо компоненты веб-приложений.Вообще говоря, я держусь подальше от SOAP;если вы уже управляете обеими сторонами коммуникационного канала, то нет смысла добавлять дополнительную сложность, если у вас нет причин для этого.
Преимущество таких действий заключается в том, что вы получаете один проект, содержащий все вашимодели, которыми пользуются все ваши проекты, это, в свою очередь, приводит к превосходной безопасности типов и повторному использованию кода.Сериализация между вашими компонентами, как правило, обрабатывается для вас автоматически .NET, и очень просто подвергнуть слой базы данных стресс-тестированию в реальной среде.У вас также есть централизованная точка для ведения журнала и генерации отчетов, которую ваши клиенты захотят в какой-то момент (аналитика - это целое поле для себя).С другой стороны, добавление выделенного сервера добавляет дополнительную сложность и потенциальные точки отказа, и если вам придется размещать его локально, это усложнит ваши процедуры установки и, возможно, также конфигурацию сети ваших клиентов.
Это один ответ, есть еще много.И как только вы начинаете сталкиваться с такими проблемами, как загрузка сервера и избыточность, все становится очень «интересным» ...