Безопасно ли переходить на использование ASP.NET MVC при создании корпоративных решений? - PullRequest
11 голосов
/ 22 апреля 2009

Прежде чем я укажу на одну из этих "VS." вопросы как ниже ...

... пожалуйста, позвольте мне заявить, что я не ищу сравнения.

Вот некоторые из моих проблем, ответы на которые мне нужны:

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

По правде говоря, StackOverflow - это продукт, подобный Google, и ASP.NET MVC может быть для этого идеальным решением. Но я застрял в разработке программного обеспечения в категории приложения вашей компании .

альтернативный текст http://stuffthathappens.com/blog/wp-content/uploads/2008/03/simplicity.png

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

Спасибо.

Ответы [ 4 ]

4 голосов
/ 23 сентября 2010

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

Поскольку я больше всего чувствую себя комфортно с VS / C # /. Net, дилемма заключалась в том, выбрать ли ASP.NET WebForms или ASP.NET MVC2 - в отличие от вас, мой единственный фон был с Windows Forms (WinForms) и немного WPF. Поэтому мне пришлось исследовать (и попробовать) как WebForms, так и MVC.

Так же, как и вы, я понял, что мое приложение не будет ни похожим ни на Google, ни на Apple, но ваше стандартное корпоративное приложение с тысячами кнопок и блоков и т. Д. Веб-формы показались бы самыми быстрыми, но сложными для тестирования и трудно поддерживать на долгосрочной основе. У MVC, казалось, была намного более крутая кривая обучения, но после ее создания тестирование и техническое обслуживание были бы быстрыми.

Я возился с веб-формами только неделю, поэтому не могу это прокомментировать. Но MVC - определенно все, чего я ожидал.

Да, это крутая кривая обучения. Понятия, которые были новыми для меня:

  • Модель-Вид-Контроллер (MVC)
  • Разделение концернов (SoC)
  • Связывание моделей
  • Модульное тестирование и тестирование управляемой конструкции (TDD)
  • Насмешка и глушение
  • Внедрение зависимостей (DI)

Книги, которые помогли мне больше всего, были:

Мне также пришлось освежить свои HTML, CSS и Javascript.

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

В идеальном мире написание приложения MVC должно выполняться двумя людьми. Один человек, пишущий основной код, и второй человек, пишущий пользовательский интерфейс и представления (HTML, CSS, Javascript.) Хотя все это можно сделать самостоятельно. (что я сейчас и делаю ...)

Однако я столкнулся с некоторыми затруднениями, разворачивающимися на Enterprise. Внутренне моя компания работает под управлением Windows Server 2003 и IIS6. К сожалению, мы не смогли заставить приложение правильно развернуться на IIS6 при использовании Virtual Pathing. (Все ссылки на и в CSS-файлах не работают.) Если вы планируете развертывать MVC, я бы порекомендовал использовать IIS7 или выше. MVC предположительно работает на IIS6, но требует, чтобы ваш ИТ-отдел был готов выяснить, как заставить его работать.

Редактировать: Я только что понял, что никогда не отвечал прямо на ваши вопросы. Здесь идет:

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

  2. Да, сообщество довольно хорошо развито и растет. Вы получите много хороших ответов от StackOverflow, а также подфорума MS ASP.NET MVC.

  3. У меня нет личного опыта кодирования WebForms, но я кодировал множество приложений WinForms и чувствую, что это заняло у меня приблизительно. В 3 раза больше, чтобы построить это приложение MVC. Первоначальные инвестиции - это не так уж и сложно, но регулярное обслуживание и усовершенствования, по-видимому, идут ОЧЕНЬ быстрее, особенно с ростом приложения ... Так как у вас, похоже, есть команда программистов, это может произойти быстрее для вас, ребята, поскольку вы, вероятно, можете разделиться обучение / рабочая нагрузка.

  4. Опять же, нет никакого предыдущего опыта работы с WebForms, но я могу вам сказать, что когда я изучал ASP.NET MVC, были времена, когда я пытался понять, что происходит, потому что у меня не было предыдущего ASP .NET фон. (Пример: членство и поставщики ролей - мне недавно пришлось написать свой собственный код. Мальчик был таким забавным ...) С другой стороны, у меня не было никаких «старых способов ведения дел» (или WebForms), чтобы отучиться или. Если у вас есть команда людей, влюбленных в PostBack / CodeBehind, вы можете поспорить, что MVC поначалу покажется ужасно странным. Но, надеюсь, ваша команда увидит преимущества, которые приносит MVC, и полностью ее использует.

О, и следует отметить, что вы можете смешивать MVC и WebForms. Это не предложение «все или ничего». Хотя, если бы я был на вашем месте, я бы постарался охватить MVC как можно больше и использовать веб-формы только там, где это явно имеет смысл.

Хорошо, надеюсь, это поможет ...: -)

4 голосов
/ 22 апреля 2009

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

Однако я вполне способен работать с интерфейсными технологиями (HTML и Javascript), и мне не нравится HTML, который генерирует фреймворк WebForms и Microsoft ajax. Если вы и / или ваша команда такие, вам это понравится. Однако, если вы гордитесь своими глубокими знаниями об иерархии событий или любите простоту UpdatePanels, вы, вероятно, обойдетесь против изменений.

С документацией все в порядке, в любом случае достаточно для того, чтобы хорошо жить. Вот несколько видео, чтобы подогреть аппетит: http://videos.visitmix.com/MIX09/T49F http://videos.visitmix.com/MIX09/T50F http://videos.visitmix.com/MIX09/T44F

Вот ваша документация: http://www.asp.net/mvc/

Для получения дополнительной информации первая глава книги asp.net mvc 1.0 находится в сети и может быть загружена бесплатно. Смотрите блог ScottGu здесь: http://weblogs.asp.net/scottgu/archive/2009/03/10/free-asp-net-mvc-ebook-tutorial.aspx

И полный код главы можно найти здесь: http://www.codeplex.com/nerddinner

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

Во всяком случае, как я уже сказал, это мои предварительные выводы. Мне еще предстоит решить действительно волосатую проблему.

1 голос
/ 22 апреля 2009

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

0 голосов
/ 22 апреля 2009

Интересно, что ваш вопрос сосредоточен все на ваших проблемах, а не на каких-либо преимуществах. Вы задали себе вопрос «почему»? Если вы чувствуете, что можете успешно работать с WebForms, зачем переходить на MVC? Что в MVC оправдывает риски? Если бы вы платили за проект, что бы вы сделали?

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

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