Как я могу быстро создавать приложения с помощью ASP.NET MVC?

Мне было предоставлено небольшое количество времени (~ 80 часов для начала), чтобы заменить существующую базу данных Access на полномасштабную SQL + Web-систему, и я перечисляю свои параметры. Я хотел бы использовать ASP.NET MVC, но я не уверен, как эффективно использовать его с моим коротким расписанием.

Для бэкэнд базы данных я буду использовать Linq для SQL, поскольку это продукт, который я уже знаю, и могу быстро что-то с ним работать.

Есть ли у кого-нибудь опыт использования ASP.NET MVC таким образом и может поделиться некоторыми сведениями?

Изменить: Причина, по которой меня интересовала ASP.NET MVC, заключается в том, что я знаю (на 100% подтверждено), что после этого первого раунда будет больше работы, и я бы так как мои работы по техническому обслуживанию должны быть как можно более легкими. По моему опыту приложения Webforms имеют тенденцию ломаться от повторного обслуживания, несмотря на дисциплину.

Может быть, есть средняя почва? Насколько сложно было бы мне, скажем, создать приложение с помощью Webforms, а затем перенести его в MVC позже, когда у меня будет больше времени для проекта?

Изменить 2: Дальнейший опыт: приложение Access, которое я заменяю, используется в какой-то мере всеми в здании, а так как оно было обновлено с Access 98 до 2003, он ежедневно терпел крах, вызывая часов потери производительности, поскольку людям приходится повторно вводить данные с момента последней резервной копии. Это является причиной небольшого количества времени - это критическая бизнес-функция, и они не могут позволить себе постоянно вводить данные ежедневно.

Ответ 1

На самом деле нет хороших ответов.

Я был бы очень удивлен, если бы вы могли воссоздать нетривиальное деловое приложение в новом формате (в Интернете) за любой "короткий" промежуток времени (если вы не измеряете "короткое" ) на 6 месяцев.

ASP.NET MVC предоставляет (передает вниз) наиболее доступное соглашение с любым начинающим веб-проектом.

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

Если бы это был я, я бы сделал три вещи:

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

  • Скажите ему, что он может сделать это быстрее (ASP.NET) или быстрее (ASP.NET MVC).

  • Позвольте ему сделать звонок.


Личный Добавление. Я использовал ASP.NET и ASP.NET MVC для веб-приложений. MVC только лучше. Не быстрее, а лучше. Это сделало веб-разработку "весело" снова для меня.

Ответ 2

MVC не является средой разработки RAD.

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

MVC 2 разрешает некоторые из них, включая HTML-помощники на основе модели, такие как Model.EditorFor(), но пока этого недостаточно. Нет быстрого кода сетки. Paging? Вы переворачиваете свой собственный пейджер. Ajax? Напишите свой JQuery.

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

Ответ 3

Простой веб-приложение + сжатый график = веб-формы ASP.NET.

Комплексное веб-приложение + сжатое расписание = ASP.NET MVC.

Я обнаружил, что по мере того, как сложность веб-приложения увеличивается линейно, сложность приложения webforms увеличивается экспоненциально. После того, как вы начнете писать свои собственные серверные элементы управления (НЕ пользовательские элементы управления, поскольку они все еще относительно просты), что может потребоваться для более сложного пользовательского интерфейса, вам необходимо иметь глубокое знание всего жизненного цикла страницы, того, как работает viewstate, и других скрытые части веб-форм, которые абстрагируются от вас.

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

Личный опыт. Я преобразовал относительно сложный веб-сайт с использованием настраиваемых элементов управления сервером в ASP.NET MVC и сократил кодовую базу пополам. Я также резко уменьшил сложность кода.

Единственное предостережение, которое у меня есть, это то, что ajax проще сделать с помощью ASP.NET AJAX. Поэтому, если вы собираетесь разработать веб-приложение, которое в значительной степени опирается на ajax, тогда веб-формы могут просто превзойти MVC.


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

Лично, если бы я чувствовал, что приложение предназначено для MVC, я бы не тратил время на его разработку в ASP.NET. Но тогда я получил преимущество от прохождения начальной кривой обучения. Что было не так уж плохо ИМХО. У меня было больше проблем с изучением всех HTML и HTML-форм, которые ASP.NET не позволяла мне учиться.

Ответ 4

С этим крайним сроком я считаю, что более удобно использовать ASP.Net Webform. После этой первой фазы с большим количеством времени/бюджета вы можете начать разрабатывать новые части своего приложения, используя MVC, поскольку они могут сосуществовать.

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

Этот вопрос с 2009 года был бы приятным, если бы автор дал некоторые отзывы о своем решении.

EDIT: просмотрите http://mvcscaffolding.codeplex.com/, если вам все еще нужен RAD, используя asp.net MVC.

Ответ 5

Как только вы начнете работать с MVC, это довольно быстро, но для этого требуется некоторое время: a) учиться и b) создавать набор полезных бит кода.

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

Если ваш пользовательский интерфейс должен быть действительно простым, вам может понравиться динамические данные ASP.net.

Ответ 6

Вы также можете посмотреть, как Entity Framework привязывается к вашей базе данных, это создаст ваши модели, которые будут использоваться с MVC. Но, как сказал jfar, под коротким смертельным давлением, пойдите для того, что вы знаете лучше всего!

Ответ 7

ASP.Net MVC хорош, но....

Если вы еще не разработали систему, использующую ASP.Net MVC, то ее использование в проекте с коротким сроком является риском.

Если ваше приложение является "простым" CRUD-приложением, я бы пошел с динамическими данными: http://www.asp.net/dynamicdata/ (Пэдди просто избил меня до этого)

Если ваша система действительно большая, вы можете рассмотреть службы SharePoint Access http://blogs.msdn.com/access/archive/2009/10/21/net-developer-blogs-about-access-2010.aspx

Ответ 8

Эволюционная разработка программного обеспечения

Из опыта я ручаюсь за это - он как я программирую, он работает независимо от технологии.

Вкратце: сделайте то, что говорит вам ваше чувство кишки (код что-то), измените, когда вы обнаружите ошибки/пропуски, и когда это сработает, все готово (но для документации).

Ответ 10

Оба фреймворка вносят свой вклад в решение, но WebForms автоматизирует некоторые задачи, связанные с функциональностью пользовательского интерфейса, такие как подкачка данных, сортировка, постоянство состояния или постоянное сохранение данных и многое другое, НО... если вы действительно садитесь и говорите: хорошо, что мне нужно делать?... дизайн, навигацию, моделирование, настоящее, а затем выяснить, как показать макет, как подключиться к данным, как принести данные, как связать их с пользовательским интерфейсом, как рисовать, сортировать и, наконец, редактировать, действительно поместить свой ум вниз и сравнить techinques в каждой структуре, которая выполняет все это, вы будете знать, что MVC более естественна и ориентирована на команды. Вам нужны такие инструменты, как EF Code First, CSS framework, такие как Bootstrap и jQuery, применяют такие методы, как IoC, SoC, Layering и т.д. И используют, например, Automapper для выполнения скучного stuf, но независимо от того, сколько вещей вам придется учитывать, это будет всегда быть более легким, естественным и прямым, чем знать всю конфигурацию многочисленных элементов управления и менеджеров, которые требуются WebForms. Кроме того, если ваш проект является ERP с возможностями CMS, где... вы знаете:-) Во всяком случае, современные шкуры требуют адаптироваться в современных тенденциях, и MVC - всего лишь хороший хозяин, который поможет вам использовать их без сюрпризов. Я написал много кода WebForms, но я больше не трогаю его. Итак, конечная точка заключается в том, что в 2014 году со всеми этими инструментами и фреймворками, MVC не медленнее, а наоборот, но требует первоначального, малого для меня эффекта, чтобы собрать некоторые ресурсы и заблокировать несколько методологий.