Я строю некоторые бизнес-объекты для нового проекта, и мне интересно, будет ли лучше иметь код доступа к данным как часть приложения или оставить его позади службы. Я видел, как Джефф Этвуд хвалил идею использовать веб-сервис снова и снова ... это не для веб-приложений, но я думаю, что с помощью WCF я могу добиться того же.
Я знаю, что есть несколько областей, которые нужно оценить при принятии такого решения, каждое из которых имеет свои плюсы и минусы, и по большей части я чувствую, что у меня есть контроль над компромиссами каждого из них, поскольку они касаются нашего продукта, кроме в области исполнения.
Например, есть код для кэширования объектов ... и это прекрасно работает при прямом доступе к SQL, потому что объекты кэшируются на отдельных машинах, но недостатком является то, что каждый из них должен запрашивать базу данных. С другой стороны, службе нужно только один раз запросить базу данных, а затем распределить объекты, но будет ли служба распределять эти объекты быстрее / медленнее, чем клиентам, которые сами получат доступ к базе данных.
Если это будет медленнее, то, возможно, мне придется написать дополнительный код на стороне клиента, такой как объекты кэширования, которые они получают из службы. Нагрузка на БД неплохая, так как каждый клиент получает к ней доступ напрямую, поэтому я не знаю, стоило ли это дополнительных усилий. Но если он будет очень быстрым, тогда мне будет проще управлять проблемами, связанными с распределением объектов.
Я надеюсь, что я не буду здесь генералом, и я могу попытаться улучшить этот вопрос в случае необходимости, но я считаю, что это в значительной степени передает то, что я пытаюсь задать.