Сколько времени занимает портирование сайта Webforms на MVC? - PullRequest
3 голосов
/ 23 февраля 2012

Сколько времени занимает перемещение веб-сайта, созданного с использованием веб-форм, на веб-сайт, созданный с использованием MVC?

У меня есть существующий веб-сайт, созданный с использованием веб-форм asp.net, но это немного раздражает. Я хочу использовать много javascript и ajax, но webforms делает это немного сложным. Он пытается сделать для меня слишком много, и, следовательно, мешает работать, когда я хочу делать то, чего он не ожидает.

Таким образом, я привык использовать только событие Page_Load и полностью игнорировал все элементы обратной передачи - когда мне нужно иметь дело с отправкой форм, я обрабатываю это вручную из события Page_Load с помощью Request.Form["ElementName"] , но большую часть времени я использую javascript.

Я слышал, что с asp.net MVC гораздо приятнее работать, поэтому я думаю перенести свой сайт на это. Учитывая, что я пишу runat="server" только для стандартных элементов HTML, которые мне нужно заполнить данными с помощью .innerHTML =, сколько времени мне потребуется, чтобы перейти на MVC? Или это глупая идея - попытаться сделать это?

Ответы [ 4 ]

6 голосов
/ 23 февраля 2012

ну, как вы, наверное, догадались, это настолько широкий вопрос, что было бы почти невозможно дать совет по вашему индивидуальному сценарию, не видя масштаб существующей кодовой базы.Тем не менее, существует множество смягчающих факторов, о которых вы можете подумать о перемещении функций по частям, таких как:

  • можно ли разбить существующую функциональность на отдельные сегменты
  • для существующего сайта все еще требуются все текущие функции
  • есть ли новые функции, которые я мог бы внедрить исключительно в mvc
  • нужно ли мне расширять объектную модель - EF code-first может дать огромное преимущество через mvcscaffolding

Прелесть asp.net в том, что вы можете смешивать и сочетать веб-формы и mvc вместе, таким образом, вы можете отказаться от функциональности по мере необходимости.Конечно, сейчас на веб-сайте mvc так много ресурсов, что будет легко начать работать быстро, поэтому я уверен, что вы добьетесь успеха.

Я думаю, вам действительно понравитсяmvc - это опыт без возврата .

[edit] - в Интернете есть несколько интересных ресурсов, которые обсуждают сочетание веб-форм и mvc.однако, окончательным для меня должен быть Скотт Хансельманс с давних времен.до сих пор в Mvc3, как это было тогда:

http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx

также:

http://www.aspnetmvcninja.com/general/mixing-asp-net-mvc-and-webforms

1 голос
/ 23 февраля 2012

Желание улучшить свой код и свои навыки никогда не бывает глупым ходом!

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

После этого вы можете переходить к функциональности по мере необходимости.

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

Лично,Что бы вы ни делали, начните с малого и просто и, если можно, по крупицам.

1 голос
/ 23 февраля 2012

Короткий ответ, здесь невозможно сказать.

Длинный ответ, зависит ...

Это зависит от того, сколько сайтов вам нужно переписать, сложности сайта и вашей архитектуры.

Если вся ваша логика в коде файлов, у вас будет долгий путь.Если ваша архитектура разделяет ответственность с использованием сервисов и абстракции, намного проще.

Если бы мне пришлось пройти этот шаг, я бы посмотрел на портирование кода по крупицам.Я сделал это с JSF и Spring MVC, и, похоже, это можно сделать и с .Net.

http://weblogs.asp.net/rajbk/archive/2010/05/11/running-asp-net-webforms-and-asp-net-mvc-side-by-side.aspx

0 голосов
/ 23 февраля 2012

Это должен быть переписан, а не порт. Сайты MVC создаются совершенно иначе, чем сайты WebForms.

MVC не основан на жизненном цикле запросов ASP.NET. Нет никакого кода позади; бизнес-логика вызывается из классов контроллера; данные инкапсулируются в моделях, которые затем передаются в представления. Это совершенно другой зверь из ASP.NET.

И имейте в виду: как только вы переключитесь на MVC, вы никогда не вернетесь в старый мир ASP.NET! : -)

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...