ASP.NET MVC, подходящий для сложного веб-приложения?

Идея очень похожа на @Vuplex, но может использовать os.path.commonprefix для удаления лишнего кода для сравнения двух серий

import os
numlist = list(map(int,input.split(',')))
answer = []
fib_series = [0,1,1,2,3,5,8,13]
answer = []
i = 0
while i < len(numlist):
    if not numlist[i]:
        answer.append(os.path.commonprefix([fib_series,numlist[i:]]))
    i += 1
print(answer) #[[0, 1, 1, 2, 3], [0, 1, 1, 2, 3, 5]]
7
задан vikingben 28 July 2014 в 16:59
поделиться

5 ответов

Потребуется несколько недель для перехода на новую технологию или "образ мыслей".

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

Например, я сам взял под свой контроль проект, который имеет более чем 3 300 файлов в одном только 'веб-' проекте (плюс 11 блоков поддержки). Одна вещь, которую я проектирую, состоит в том, как MVC решительно сократит количество физических файлов вниз приблизительно к 310 или около этого. Как? Поскольку я переезжаю от, "вот одна страница. Вот другая страница". к "вот функция, я хочу реализовать" образ мыслей.

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

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

Теперь, что касается "никаких веб-элементов управления", поскольку Вы упомянули: снова, это призывает к другому образу мыслей. Существует HtmlHelper, который используется для основного рендеринга и кодирования. Я использую то же понятие с абстрактным классом под названием MyProjectHelper, который представляет мои "функции" на страницу (functions=code).

Например, я всегда создавал Управление сервером для своего DisplayNames в прошлом. Это позволило мне управлять способом, которым DisplayName показали, особенно с переключателем к Подключению Facebook и другим вещам. С MVC я больше не использую "управление сервером", но "функцию" на ViewModel для рендеринга того текста: CollegeProjectViewModel. RenderDisplayName (). Так как это - только часть уровня UI, это представит Привязку по мере необходимости с любыми опциями, которых я желаю (конечно, краткий обзор наследован CollegeProjectViewModel, который берет на "основном" текстовом рендеринге).

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

17
ответ дан 6 December 2019 в 06:15
поделиться

Среди многих преимуществ для использования MVC удаление пожирателя ресурсов состояния отображения.

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

На обороте этого, быть в поисках.NET v4.0, который позволит Вам управлять состоянием отображения на уровне управления вместо только на уровне страницы. Это сделает MVC еще менее приемлемый в целом.

2
ответ дан 6 December 2019 в 06:15
поделиться

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

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

1
ответ дан 6 December 2019 в 06:15
поделиться

Я пришел из веб-разработки (как и вы), с 1,0 до 3,5 , Когда я обнаружил MVC (CTP), мне потребовалось около 6 месяцев, чтобы убедить моих сверстников (и моего босса), что это путь.

Некоторые из моих аргументов:

  1. Полный контроль над HTML
  2. TRUE AJAX (вместо панели обновления)
  3. Возможность экспоненциально увеличить jQuery
  4. Без VIEWSTATE
  5. Разделение интересов
  6. .. и .. (барабанная дробь) ... более быстрое развитие

Хотя # 6 немного субъективен, но я попытался доказать это путем создания прототипов. Для своего прототипа я создал простое веб-приложение для панели мониторинга, используя веб-форму и asp.net mvc. Я показал результат своим сверстникам и моему боссу, а также сложность построения и обслуживания каждого из них. В конце, Мы переносим нашу основную методологию с веб-формы на MVC.

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

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

TRUE AJAX также довольно сложен в веб-форме. UpdatePanel играет свою роль, но у вложенных панелей обновлений есть и свои проблемы.

Для меня и моих сверстников, все сводится к возможности контролировать наш HTML / code / AJAX - вместо того, чтобы автоматически генерировать 90% фреймворком, но нам нужно потратить много времени и усилий, чтобы получить остальные 10%.

ASP.NET MVC, в сочетании с jQuery и вашей предпочтительной средой бизнес-уровня или ORM чрезвычайно эффективны. На сегодняшний день мы выпустили 3 рабочих выпуска с ASP.NET MVC, и все они работают хорошо - черт возьми, посмотрите на stackoverflow.com (он использует MVC, кстати).

1
ответ дан 6 December 2019 в 06:15
поделиться

Я работал над проектом MVC в моей последней компании в течение 6 месяцев (мы использовали сборки CTP и, в конечном итоге, бета-сборки). Поначалу это было весело и захватывающе, и казалось, что мы действительно что-то поняли. Как и многие разработчики .NET, мы устали от дырявых абстракций веб-форм.

Однако со временем мы начали сомневаться в своем решении. На разработку пользовательского интерфейса ушло около 80% + нашего времени. Нам пришлось создать весь наш интерфейс с нуля. Половину времени казалось, что мы изобретаем велосипед заново. Большая часть нашего Rich UI пришла из JQuery в сочетании с Custom HTML Helpers, которые было интересно разрабатывать, но требовало много времени.

Были и другие проблемы, с которыми мы столкнулись, например, необходимость сопоставления DTO-подобных объектов с нашими бизнес-объектами ( получен из репозитория, поддерживаемого NHibernate) в представления. И наши контроллеры, которые, по-видимому, должны были быть легкими и простыми в обслуживании, становились все более загроможденными, и мы постоянно спорили о правильном способе реализации наследования контроллеров.

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

- ОБНОВЛЕНИЕ -

Использовал его в прошлом месяце для работы над очень маленьким проектом, и пока все идет гладко. Работать с ними намного проще, чем с версиями CTP, которые я использовал год назад. В настоящее время я ищу собственное решение для сложных " Тем не менее, динамические данные относились ко мне должным образом, и я как бы разрываюсь между 2.

- ОБНОВЛЕНИЕ 2011 -

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

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

Тем не менее, динамические данные относились ко мне должным образом, и я как бы разрываюсь между 2.

- ОБНОВЛЕНИЕ 2011 -

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

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

- ОБНОВЛЕНИЕ 2011 -

После нескольких проектов MVC разного размера за последний год или около того, я стал в некоторой степени новообращенным. Все настоящие проблемы, которые у меня были с ним, в основном были решены в последних версиях (2 и 3), особенно те, которые касаются проверки модели и привязки к представлениям и из них.

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

- ОБНОВЛЕНИЕ 2011 -

После нескольких проектов MVC разного размера за последний год или около того, я стал в некоторой степени новообращенным. Все настоящие проблемы, которые у меня были с ним, в основном были решены в последних версиях (2 и 3), особенно те, которые касаются проверки модели и привязки к представлениям и из них.

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

особенно те, которые имеют дело с проверкой модели и привязкой к представлениям и от них.

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

особенно те, которые имеют дело с проверкой модели и привязкой к представлениям и от них.

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

8
ответ дан 6 December 2019 в 06:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: