Лучший способ постепенно преобразовать существующий сайт ASP.NET в MVC

Имейте в виду, что для меня это в новинку и, возможно, я пропустил что-то важное.

У меня есть существующий веб-сайт на основе веб-приложения ASP.NET. Сейчас я использую ASP.NET MVC для новых разработок и намерен постепенно заменить большую часть страниц страницами на основе MVC.

У меня есть две проблемы:

1) Мне нужно менять страницы постепенно, потому что я не могу конвертировать все сразу. 2) По возможности следует сохранить существующие URL-адреса (физических файлов).

На мой взгляд, у меня есть следующие возможности:

1) Создайте новое веб-приложение MVC в корне веб-сайта, а затем включите в него существующие страницы HTML / ASPX / ASMX / ... Таким образом, маршруты всегда относительно корня веб-сайта.

2) Измените существующие Global.asax, Web.config, Default.aspx (и так далее), чтобы включить обработчик MVC для маршрутизации, а затем опубликуйте мое приложение MVC во вложенной папке.

Каков самый простой способ сделать это, и я что-то упускаю?

Спасибо, Лоран


person LBugnion    schedule 17.10.2008    source источник


Ответы (4)


Как и вы, я решаю ту же проблему. Несколько вещей, с которыми я столкнулся, я опубликовал здесь https://stackoverflow.com/users/84825/mouffette и в основном они связаны с НАСТРОЙКОЙ. Лучше всего запустить новый проект MVC и сравнить файлы и структуру с существующим приложением ASP.NET. Если сомневаетесь, просто переходите по строкам и через файл web.config, и в конце концов вы его получите ;-)

После того, как у вас заработала сантехника, вы можете сосредоточиться на MVC, и он просто работает бок о бок.

Эти ссылки также помогли:

http://media.wiley.com/assets/1539/15/professionalaspnet35mvc_chapter13.pdf http://aspnetmvcbook.s3.amazonaws.com/aspnetmvc-nerdinner_v1.pdf

и вы уже нашли лучший сайт ... stackoverflow.

person Mouffette    schedule 30.04.2009

У Скотта Хансельмана есть хорошая запись в блоге, в которой обсуждается, как объединить MVC с веб-формами и другими технологиями ASP.NET. http://www.hanselman.com/blog/PataSideBySide.

person Jason Stangroome    schedule 17.10.2008

Это действительно зависит от состояния вашего существующего веб-приложения. Если это в основном просто бизнес-логика, встроенная в ваш код программной части, то вам, вероятно, лучше переписать. Если у вас есть действительно приличное разделение кода моделей объектов данных и бизнес-уровня от кода позади, то вы впереди в этом переходе. К сожалению, на этот вопрос действительно сложно дать краткий ответ, и он является довольно субъективным, исходя из вашего текущего состояния.

«Классический сайт ASP.Net» - странно слышать.

person Chris Conway    schedule 17.10.2008

Думаю, вопрос сформулирован неправильно, потому что я не это имел в виду.

Я имею в виду: как я могу интегрировать страницы на основе MVC в существующий «классический» сайт ASP.NET (да, я знаю, это звучит странно :)). В конечном итоге я заменю весь контент (и если это означает переписывание некоторых страниц, пусть будет так), но я хочу уже добавить новый контент на основе MVC.

Я нашел руководство о том, как создавать новые приложения MVC и даже о том, как интегрировать в них новый контент на основе веб-форм, но гораздо меньше о постепенном переносе приложения на MVC.

Я нашел эту ссылку http://blog.eworldui.net/post/2008/05/ASPNET-MVC---Living-in-a-Web-Forms-World.aspx

Это многообещающе, но звучит как слишком много работы.

В частности, я ищу шаги по добавлению нового содержимого на основе MVC в существующее приложение ASP.NET, при этом сохраняя работу старого содержимого, как раньше.

person LBugnion    schedule 17.10.2008
comment
Вы можете просто запустить дочерний сайт под MVC. - person leppie; 17.10.2008
comment
Я пробовал это, но это не работает так, как хотелось бы. В частности, перепутаны все относительные ссылки. У вас есть опыт и рекомендации по этому поводу? - person LBugnion; 18.10.2008