Я не верю, что две стороны на самом деле так далеко друг от друга. Мне кажется, что двухуровневый подход заключается в том, чтобы уделять больше внимания презентации и желать, чтобы услуги выполняли тяжелую работу. Сервисы, вероятно, все еще будут иметь другой уровень доступа к данным, так что это еще один трехуровневый подход. Это также то, что мы предпочитаем в моей работе, потому что внесение изменений в сервисы часто не требует никаких изменений для потребителей, при условии, что мы поддерживаем тот же интерфейс.
Однако, несмотря на все сказанное, я думаю, что это должно быть намного ниже в списке приоритетов, о которых нужно беспокоиться. Многоуровневый подход не поможет вам сам по себе. Важно то, как эти уровни построены. Я чувствую, что для всех гораздо важнее договориться о методах кодирования. Такие вещи, как внедрение зависимостей, разделение проблем, инверсия управления, модульное тестирование, насмешки и т. Д. Эти вещи гораздо важнее, чем забота о количестве уровней. Уровни будут следовать естественным образом, как только они будут на месте.