Безопасно ли прыгать на платформе ASP.NET MVC при создании корпоративных решений?

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

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

Некоторые из моих проблем, которые мне нужны для ответов, включают:

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

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

alt text http://stuffthathappens.com/blog/wp-content/uploads/2008/03/simplicity.png

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

Спасибо.

Ответ 1

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

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

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

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

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

  • Model-View-Controller (MVC)
  • Разделение проблем (SoC)
  • привязка к модели
  • Тестирование устройств и тестирование (TDD)
  • Издевательствование и обрезание
  • Инъекция зависимостей (DI)

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

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

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

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

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

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

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

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

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

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

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

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

Ответ 2

Я могу ответить на половину вашего вопроса. Я только что попал в 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 может потребоваться немного больше времени (хотя у меня нет доказательств этого), но я думаю, что поддержка, поддержка, исправление ошибок и усиление займет намного меньше времени, Таким образом, с небольшими авансовыми инвестициями, я думаю, вы больше не сможете окупить эти усилия.

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

Ответ 3

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

Ответ 4

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

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