Советы по использованию ASP.net WebForms или MVC - PullRequest
5 голосов
/ 15 января 2010

У меня есть общедоступный хобби-сайт, который посещает около 3000 уникальных посетителей в день, написанный на классическом ASP, который нуждается в модернизации и редизайне. Я столкнулся с осознанием того, что обновление до ASP.net - это лучший способ реализовать функции, которые слишком сложны в ASP для любителя (использование RSS-каналов, аутентификация и профили пользователей), но которые я очень хочу получить застрял, как только я прошел редизайн / модернизацию.

Но я был парализован неуверенностью относительно того, какой путь выбрать: Web Forms или MVC - плюс тот факт, что всегда есть какой-то новый релиз, готовящийся к запуску, кажется, что стоило бы потратить на улучшение кривая обучения. Поэтому я часами читаю о WebForms, затем читаю что-то, что говорит мне, что мне лучше подумать о MVC, затем читаю о MVC и задаюсь вопросом, действительно ли это соответствует тому, что я пытаюсь сделать.

Ни один из учебных пособий и начальных сайтов действительно не говорит о том, что хорошо работает для сайтов, которые являются традиционными старыми статическими информационными сайтами (не каталогами или пользовательским контентом).

Мой сайт содержит около 75% статических информационных страниц, которые редко меняются. Однако сценарии ASP необходимы в пользовательском интерфейсе на всех этих страницах - динамически или случайным образом выбирая элементы дизайна (например, фотографию заголовка) или предоставляя конкретную боковую панель в зависимости от дня года или случайным образом.

У меня есть такие сценарии, как сценарий для случайного выбора и отображения одного из 30 изображений заголовков для страницы, сценарий для отображения текста и ссылок в зависимости от того, какой это день года, сценарий, который позволяет мне объявить определенное ключевое слово для поиска как релевантное содержанию для конкретной страницы и предварительно загруженное в качестве текста в поле ввода поиска при загрузке страницы.

Для большинства остальных страниц они предназначены для отображения данных. Некоторые из них представляют собой небольшие наборы записей (информация типа альманаха о том, что важно в этот конкретный день года), и я сохраняю его и извлекаю из переменной Array на самой странице. Другие извлекают информацию из базы данных Access, которая изменяется достаточно редко, поэтому я никогда не задумывался о том, чтобы реализовать функциональность CUD в режиме реального времени на сайте (а также необходимые роли и аутентификацию для ее защиты), но просто обновляю базу данных в автономном режиме и загружаю ее, чтобы отправить изменения в режиме реального времени. .

С ASP.net мне было бы хорошо перейти на SQL Server и создать живые страницы администрирования. Мне не нужно придерживаться Access.

Но я больше привык к написанию необработанного HTML и CSS, и я нахожу, что WebForms (особенно Viewstate и события / обратные ссылки) сложно осмыслить концептуально. Даже если он больше подходит для статической страницы в файловой системе с некоторым серверным кодом, к которому я привык.

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

Что бы вы порекомендовали? Должен ли я вытащить все статические страницы в базу данных и обработать их через представление статьи в MVC?

Я не профессиональный разработчик - так что дело не в том, что будет лучше всего смотреться в моем резюме. Я просто ищу то, что (а) будет иметь наименьшую кривую обучения для кого-то, пришедшего из встроенных выражений VBScript в классическом ASP, и (б) что лучше всего подходит для того, что делает мой сайт, и (в) позволяет мне иметь некоторый контроль над оценкой. и CSS.

Ответы [ 7 ]

7 голосов
/ 15 января 2010

Обязательно переходите на MVC, особенно если вы чувствуете себя более комфортно, как HTML / CSS парень. Обратная передача не дает никаких преимуществ для сайта, который в значительной степени статичен, и вам понадобятся месяцы, чтобы осознать жизненный цикл страницы (мне еще предстоит встретиться с разработчиком, который был мастером жизненного цикла после 6 месяцев кодирования на нем. )

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

Я не согласен с идеей, что в MVC все извлекается из базы данных - это немного не относится к архитектуре. Я кодировал 100% статические сайты в MVC-фреймворках и мне это понравилось:)

Мое эмпирическое правило имеет тенденцию к этому: «MVC для веб-сайтов, веб-формы для корпоративных веб-приложений - возможно».

4 голосов
/ 15 января 2010

MVC хорошо подходит для того, что вы делаете.

Вполне нормально иметь статичные представления, если это необходимо. Взгляните, например, на то, что сгенерировано шаблоном MVC File-> New Project.

Учитывая, что вы уже привыкли писать HTML / CSS и обе платформы будут представлять собой кривую обучения, я определенно рекомендую MVC. Я думаю, вы найдете, что MVC соответствует требованиям A и C гораздо лучше, чем WebForms (и оба удовлетворяют требованиям B).

2 голосов
/ 15 января 2010

Из моего опыта перехода от ASP к ASP.NET и ASP.NET MVC легче перейти с ASP на ASP.NET MVC. Тем не менее, кривая обучения не так просто Пожалуйста, прочитайте и следуйте http://nerddinnerbook.s3.amazonaws.com/Intro.htm и после прочтения посмотрите, что нового в версии 2, например:

weblogs.asp.net / ScottGu / Архив / 2010/01/10 / жерех-нетто-2 MVC-сильно-типизированных HTML-helpers.aspx

Это станет RAD для опытных разработчиков!

2 голосов
/ 15 января 2010

Учитывая ваш опыт, я предлагаю вам использовать ASP.NET MVC. Поскольку вы знакомы с HTML и CSS, вам придется привыкнуть к шаблону MVC, который занимает меньше недели. Кроме того, MVC лучше и быстрее просто отображать данные и поддерживает кэширование вывода, поэтому вы можете кэшировать статические страницы и достигать потрясающей скорости. Кроме того, нет проблем в том, что можно смешивать их - у вас могут быть страницы WebForms и элементы управления там, где они вам нужны.

0 голосов
/ 15 января 2010

Я бы также порекомендовал вам использовать ASP.NET MVC, так как вы довольно хорошо знакомы с HTML / CSS. Также с помощью таких функций, как маршрутизация, вы можете упорядочить структуру веб-сайта. Кроме того, ваш сайт становится намного более предсказуемым для посетителей из-за URL.

Пример:

www.domain.com/hobbies/photography
0 голосов
/ 15 января 2010

Прежде всего, вам действительно нужно убедиться, что перезапись стоит усилий. По моему опыту, переписывание занимает гораздо больше работы, чем ожидалось, и имеет длительный срок окупаемости. Это не означает, что они не должны быть сделаны, это означает, что должны быть действительно веские причины, чтобы начать. Упомянутые вами функции могут быть легко реализованы в классическом ASP за считанные секунды. Устаревшее приложение - это бои, напуганные твиками, исправлениями и скрытыми функциями. Переписать, как правило, означает потерять эти годы опыта. Все зависит от соотношения текущих функций / новых функций.

Во-вторых, если вы собираетесь переписать, вы также можете проверить технологии помимо asp.net. Сайт, который вы описываете, кажется, очень ориентирован на контент, который может лучше соответствовать django, чем asp.net mvc. Удачи на вашем сайте.

0 голосов
/ 15 января 2010

Используйте то, что наиболее продуктивно, если вы знакомы с веб-формами и вам нравится модель, управляемая событиями, вы всегда можете посмотреть MVP (Model-View-Presenter) .

ASP.NET MVC действительно отлично, и для меня это повышает производительность.

...