Классический ASP в ASP.NET MVC (C #) - PullRequest
8 голосов
/ 25 марта 2009

У меня есть приложение, которое я хочу (в конце концов) преобразовать в ASP.NET MVC. Я хочу сделать полное обновление службы (до ASP.NET), но хочу использовать текущие asp-компоненты для запуска текущей функциональности, чтобы я мог обновлять мелкие фрагменты, в то же время производя постепенные обновления до новой инфраструктуры. Этот сайт сильно зависит от библиотеки VB6, которая не очень развита, поэтому мы также захотим обновить ее в конечном итоге, потенциально заменив текущую функциональность веб-службами. Есть ли быстрое решение или эта задача 3 месяца + задача? Кроме того, я уверен, что раньше об этом думали, красота MVC в том, что я думаю, что есть способ справиться с этим, хотя я не уверен, с чего начать. Какой самый быстрый способ преобразовать это приложение (примерно через 40 часов), где я могу просто внести небольшие изменения в конфигурацию и заставить это работать в ASP.NET MVC?

Ответы [ 3 ]

7 голосов
/ 25 марта 2009

Краткий ответ ... Вы не можете. Различия между классическим asp и asp.net довольно существенны не только в синтаксисе, но и в общем дизайне. MVC - это не просто реализация, похожая на классический asp, хотя может выглядеть так. Любое преобразование потребует времени, мыслей и усилий, чтобы оно полностью заработало.

Хорошая новость заключается в том, что вы можете запускать их SxS, чтобы вы могли использовать классический asp-код, работающий на сайте, настроенном как сайт ASP.NET или ASP.NET MVC. Таким образом, с помощью некоторой клейкой ленты вы можете по кусочку соединить обновленное решение по частям.

3 голосов
/ 25 марта 2009

Перепишите свою библиотеку VB6 DLL как вызываемую COM-сборку .NET. Затем вы можете ссылаться на него как из ASP, так и из ASP.NET.

Надеюсь, большая часть тяжелой работы находится в библиотеках VB6. Если это так, вы можете начать миграцию страниц в ASP.NET MVC по своему усмотрению. Вы должны остерегаться межстраничного общения - таких как Session и Cookies. Куки-файлы будут работать, как есть, но вам нужно переместить Session во что-то общее для MVC и ASP, например Sql Server. К сожалению, для этого нужно переписать ваши сеансовые вызовы в ASP на что-то другое (возможно, снова обернуть COM вокруг компонента .NET). Однако поиск и замена должны помочь.

Что касается сроков и объема работы, это влечет за собой - это в значительной степени зависит от количества спагетти в вашем существующем приложении, от того, сколько логики в DLL и ASP и сколько страниц вы переносите. *

Я не думаю, что 40 часов - это разумное количество времени, чтобы освоиться с .NET, MVC и переписать, хотя я думаю, что 2-3 месяца могут быть.

2 голосов
/ 25 марта 2009

Я работаю над подобным проектом довольно давно; У нас было классическое приложение ASP, и мы хотели переместить его в ASP.Net (используя WebForms). Мы делаем это по частям, если мы добавляем новую страницу, мы делаем это в .Net и просто перенаправляем пользователя между файлами .asp и .aspx. Работа с MVC не должна отличаться.

Самая большая проблема, с которой мы столкнулись, была безопасность; Сайт требует входа в систему, и сессия, конечно, не разделяется между ними. Мы справились с этим, сохранив биты сеанса, о которых мы заботились, в таблице в базе данных и передав GUID через строку запроса (мы делаем это только один раз при входе в систему, затем удаляем запись из базы данных, чтобы уменьшить риски безопасности).

...