2009-03-31 3 views
4

Мы разрабатываем веб-приложения с использованием DotNetNuke в качестве основы и наших пользовательских модулей для обеспечения требуемой функциональности. Проблема заключается в том, что загрузка веб-сайта при внесении любых изменений в код занимает много времени. Я смотрю до 1 минуты для каждого перезапуска, что на самом деле очень медленно. Это приводит к очень медленному циклу разработки-перестройки.Ускорение разработки ASP.NET

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

Есть ли у кого-нибудь советы о том, как ускорить или предотвратить перезапуск appdomain, когда что-то меняется в папке bin веб-приложения?

ответ

1

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

+0

Мы используем проекты веба-приложения, так что каждый модуль должен быть предварительно скомпилированным. Однако я иногда замечаю, что IIS действительно восстанавливает страницы по какой-то причине. – Morri

+0

Если вы считаете от 30 до 50% 1 минуты намного быстрее, тогда вы правы. Тем не менее, 20 секунд все еще медленно, как черт. Дело в том, что есть много DLL, которые нужно перерабатывать - и каждый раз, когда вы посещаете новый модуль, выполняется дополнительная компиляция. –

1

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

DotNetNuke имеет много значимых DLL и VB-файлов, которые все должны быть переработаны, если все, что вы делаете, это изменение одной DLL. Если у вас есть 50 модулей DLL в вашем ящике, все 50 модулей DLL будут переработаны ASP.Net после следующего запроса приложения.

Вот мое предложение:

Hook вверх следующие папки для управления версиями (а не всю папку DNN):

  • бен (я предлагаю игнорируя все Dnn DLL, так что обновления идут гладко)
  • Portals_default \ Skins
  • Portals_default \ Контейнеры
  • JS
  • DesktopModu les (игнорировать Admin или любые встроенные модули)
  • изображений (игнорируйте основные изображения DNN, если хотите, или какие-либо из ваших собственных неуклюжих папок с изображениями, например тысячи фотографий клиентов)
  • (необязательно) CompanyName \ (где вы можете хочу сохранить другие .NET проектов, которые нуждаются в относительном доступе к DLL файлов в папке BIN)

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

Короткие кости (которые должны использовать только 1 или 2 объекта кожи, самое большее), а абсолютный минимум DLL (DNN Core + минимальный минимум) даст вам наилучшую скорость для разработки.

Когда ваш разработчик работает с целенаправленной разработкой одного модуля, он может обновлять те папки, которые он удалял из исходного элемента управления (svn здесь), завершить тестирование своего кода в контексте полного набора DLL/Skin, и он будет установлен.

Иногда это стоит того. Я не могу довести вас до нескольких секунд обработки ASP.NET, но я могу довести вас до 10-15 секунд.(при условии, что вы работаете на SSD)

Что касается возобновления производства, убедитесь, что ваш пул APP перерабатывается в нерабочее время.

Я посмотрел в, могут ли многоядерные расстановки как-то уменьшить это время перерабатывающего, но не вез (у меня есть открытый вопрос о ServerFault)

Смежные вопросы