Ответ на этот вопрос «Нет». Это не навязывает «плохой дизайн». Это просто конкретный инструмент в вашем наборе инструментов, и он предназначен для решения конкретной проблемы. Вы говорите как кто-то, кто пытается взять молоток и использовать его, чтобы просверлить отверстие, и сказать: «Почему эта штука не делает хорошую дыру в моей стене?» Ммм .. Потому что это молоток. Он предназначен для другой работы ...
Большая часть наших навыков как разработчиков заключается в том, чтобы найти правильный инструмент для работы. Silverlight и RIA имеют свое применение, но они не волшебная серебряная пуля.
Я думаю, что вы смотрите на технологию с неправильными целями. И я говорю это как парень, который является большим поклонником TDD, MVC и т. Д. Я написал свою долю приложений, которые используют DTO, репозитории, слои, абстракции и т. Д. Я также написал довольно много Silverlight и RIA за последние несколько месяцев.
Энтони хорошо сказал: Silverlight и RIA созданы для того, чтобы «устранить повторения и позволить разработчикам быстро наладить работу». Я не думаю, что Silverlight и RIA предназначены для гигантских корпоративных приложений с множеством бизнес-логики, спрятанной в виртуальной машине, где вам нужно модульное тестирование и TDD для управления процессом ... Это неправильный инструмент для этой работы.
Я решил посмотреть на некоторые из моих ViewModels в некоторых недавних проектах в Silverlight. Вот что я обнаружил: все, что я делаю на ВМ, в значительной степени делегирует то, что Silverlight уже делает для меня: привязка данных, наблюдение за изменениями свойств, запрос контекстов данных, сохранение изменений в контексте данных, проверка сущностей и уведомление GUI и т. Д. .
Silverlight и RIA уже выполняют эти задачи для меня. Я просто делегирую звонки! Если бы я написал модульный тест, я бы тестировал Silverlight и RIA - не моя логика домена! Мне не нужно тестировать фреймворк - я предполагаю, что MS знает, что они делают.
Если у вас достаточно сложности для того, чтобы гарантировать DTO, средства отображения данных, уровни обслуживания и т. Д. ... Тогда вам, вероятно, нужно подумать о чем-то другом, кроме Silverlight и RIA. Знаешь что я говорю?
Правильный инструмент для работы человека. Выберите правильные инструменты.