Виктор П.: почитайте про реализацию Dictionary. По сути, это хэш-таблица с ключами и некоторым массивом для хранения значений, которые занимают несколько больше места в памяти, чтобы избежать коллизий и поддерживать сложность доступа O(1).
Свич же - это просто набор меток и условных переходов. Конечно, он будет компактнее в памяти и быстрее выполняться (при малом количестве элементов), но читать и поддерживать его сложнее.
Сергей Пузин: Не могу согласиться без некоторых оговорок. Вы, как PM, будете отвечать за _весь_ продукт. Если вы представляете, как работает веб, то знаете, насколько тесно сплетен бэкенд с фронтендом. От пользователей вы не оторветесь, как ни крути (если, конечно, это не бэкенд b2b веб-сервисов), но при этом будете понимать работу приложения "от корней, до самых кончиков".
D' Normalization: Я могу ответить в вашем стиле: "Фронтенд - это на 90% логика выезжающих меню, кнопок, полей ввода и вывода данных, уже обработанных бэкендом" =)
Но это демагогия, истина где-то между.
Операции, требующие безопасности и серьезной работы с данными, т.е. основа любого SAAS, - это прерогатива бэкенда.
StanGrin: В контексте именно веб-приложения вью-модель может быть вполне-себе моделью. А его бизнес-логика будет состоять, скажем, из репозитория, который будет маппить DTO в местную вью-модель (которую будет получать ничего не знающий ни о каких DTO или доменных сущностях контроллер).