В этом случае перевод можно делать в два этапа - сначала переписать слой бизнес-логики, сделав его framework agnostic, и использовать вместо прибитых гвоздями компонентов фреймворка независимые библиотеки (или, как минимум, ввести слой абстракции), после чего переходить на другой фреймворк (тут, правда, окажется, что от фреймворка-то почти ничего и не надо, и смысла переходить уже нет =).
UPD: я совсем забыл задать главный вопрос: зачем?