У нас є веб-додаток, розроблений в класичному ASP, і воно розвивалося протягом 5 років до його теперішньої форми, яка містить 100 сторінок, величезну базу даних і більше 10000 активних користувачів, що проходять щонайменше понад 10 сторінок щодня.
Тепер ми хотіли оновити його до останньої версії .net. Спочатку ми думали переписати весь додаток, але, проаналізувавши сценарій, ми виявили, що це нежиттєздатний варіант, який також не пропонується багатьма експертами. Ми ще не визначилися, як це зробити в іншому випадку, але отримали кілька думок щодо того, як досягти переписування облич.
Варіант 1: Ми думали визначити основні модулі в цій програмі та переписати їх по черзі, розділивши додаток на різні шари, такі як база даних (існуюча), потім ділова логіка та представлення. Таким чином, нові розроблені модулі будуть додані до існуючої системи, а нові сторінки замінять старі сторінки в цьому конкретному модулі. У той же час ми можемо протестувати нові шари поряд зі старою системою та випустити їх, коли ми почуємо себе впевнено. Ми також думали розробити структуру API для бізнес-логіки, і це буде доступно для перегляду як зовнішньої програми.
Варіант 2: На даний момент ми зробили простий модуль і використовували його на класичній сторінці ASP через IFrame, хоча це було досить клопітно надсилати дані між класичним ASP та новою сторінкою в IFrame.
Це саме на етапі планування того, як нам слід досягти переписування всієї програми, не порушуючи базу користувачів.
Я хочу отримати погляди, думки та пропозиції інших програмістів щодо того, чи слід підходити до такого сценарію? якщо хтось стикався з подібним сценарієм, будь ласка, поділіться своєю думкою.
Також хотів би знати, що використання ASP.net MVC допоможе мені в цьому?
ОНОВЛЕННЯ : Дякую за обидві відповіді, що висловили свої погляди. Хочеться отримати більше вкладів щодо обох параметрів, зазначених вище, під час переміщення програми з класичного asp на asp.net або asp.net mvc. Було б дуже корисно для мене, якщо ви все зможете через ваші погляди, точки та думки щодо міграційної частини, а не з пункту вибору asp.net чи asp.net mvc.