ASP.NET MVC - это жизнеспособно для небольших веб-нарядов?

Я работаю на небольшой веб-сайт (пара программистов, пара дизайнеров). В настоящее время мы используем проекты веб-сайта ASP.NET - это упрощает сортировку программ на моей локальной машине, в то время как дизайнеры работают непосредственно на сервере разработки, а компиляция "на лету" позволяет им видеть любые изменения без необходимости компилировать и развертывать веб-сайт (и все связаны с SVN).

Я хотел бы начать использовать ASP.NET MVC практически для всех причин, которые делают его отличным от Webforms (логические URL-адреса, нет viewstate, больше контроля над html, модульное тестирование и т.д.), но не хотят сделайте процесс dev более сложным, поэтому:

  • Любые причины, по которым вы не можете устанавливать веб-сайты MVC в качестве проектов веб-сайтов вместо приложений, чтобы их не нужно было явно компилировать в процессе dev. (Наши "живые" веб-сайты все равно используют проекты веб-компиляции).
  • Будет ли это продолжаться модульное тестирование?
  • Есть ли другой способ позволить дизайнерам создавать сайты MVC так же, как в настоящее время? Примечание. Они используют Dreamweaver, поэтому сервер разработки Cassini не работает.

Может ли кто-нибудь посоветоваться с любым из вышеперечисленных (даже если бы я сказал, что мой процесс dev не имеет смысла..:)

Спасибо.

Ответ 1

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

  • Я так не думаю, и я думаю, что причина этого заключалась в том, чтобы разрешить развертываемые проекты ASP.NET MVC. Вы можете опубликовать приложение ASP.NET MVC прямо из Visual Studio 2008, даже если конечный сервер даже не знает о ASP.NET MVC, если у него есть ASP.NET 3.5 (с пакетом обновления 1, я думаю)
  • ASP.NET MVC - все об модульном тестировании, оно чрезвычайно гибко в этом вопросе, и даже некоторые из решений по разработке ASP.NET MVC основаны на разрешении пользователям unit test их кода. Скотт Гатри конкретно назвал модульное тестирование в последней версии ASP.NET MVC (бета) http://weblogs.asp.net/scottgu/archive/2008/10/16/asp-net-mvc-beta-released.aspx#six
  • Любые элементы управления, которые работают с ASP.NET WebForms, будут работать с ASP.NET MVC, если они не полагаются на обратную передачу. Если это произойдет, вы не сможете использовать этот элемент управления/код.

MVC - это проверенный шаблон дизайна для веб-сайтов, и даже тот, на который вы разместили свой вопрос, основан на ASP.NET MVC и был создан только несколькими людьми и в настоящее время поддерживается 1 (одним) человеком (в скором времени 2). В настоящее время я использую его для 3 частных проектов, и мне это нравится. Я видел свет, и я никогда не вернусь к WebForms.

Ресурсы

НТН!

Ответ 2

Раньше я был разработчиком ASP.NET. Недавно я начал работать с Django и сделал это с другим разработчиком удаленно через SVN. Я считаю, что MVC-фреймворки делают небольшие проекты еще проще, а более крупные проекты намного менее болезненны, чем oldschool ASP.NET.

Шаблоны намного проще управлять и стилировать, чем веб-элементы управления в ASP.NET. Разделение логики (вне методологии с использованием кода) упрощает работу более чем одного человека в разных частях сайта одновременно. Дизайн RESTful, ориентированный на действия, начинает приобретать гораздо больший смысл после того, как он достаточно долго справляется с проблемами жизненного цикла страницы ASP.NET. Кроме того, маршрутизируемая по URL-адресам маршрутизация и возможность делать обратный поиск означает меньшее количество жестко закодированных ссылок в вашем коде, его проще добавлять новые разделы на ваш сайт и т.д.

Чтобы ответить на некоторые из ваших вопросов:

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

Ответ 3

Этот сайт использует MVC. Я думаю, что команда, стоящая за StackOverflow, квалифицируется как небольшой магазин. Однако у них много опыта. Тем не менее, учитывая, сколько людей вовлечено (несколько) и количество серверов, да, это мало. И это работает очень хорошо, на мой взгляд.