Вот некоторые хорошие моменты @ Энди, и вкратце остановимся на том, что он сказал:
Я делаю то же самое прямо сейчас. Поскольку у меня достаточно всеобъемлющий бизнес-уровень, я смог проделать большую работу (за пару недель), и за это время мне пришлось добавить только одну функцию в этот бизнес-уровень. Это важно, потому что это уменьшает количество требуемого тестирования. Это также облегчает любое оставшееся тестирование, поскольку легче сравнивать выходные данные старой версии приложения с новой версией.
Одна модель, которая действительно помогла достичь этого, была модель фасада. Я построил слой WCF, который расположен поверх бизнес-уровня, и с помощью шаблона фасада я могу вернуть результаты, которые больше подходят для нового интерфейса silverlight, без вмешательства в бизнес-уровень.
Скорее всего, ваш новый пользовательский интерфейс будет иметь совершенно иную архитектуру, чем версия ASP.NET. Вы сможете добиться более четкого разделения между пользовательским интерфейсом, кодом и данными. Часть кода ASP.NET, которым я очень гордился, выглядит позитивно сложным рядом с аналогичным кодом Silverlight. Будьте готовы расколоть свой старый код и исключить эти бизнес-правила из кода, стоящего сразу за:)