Ускорение разработки ASP.NET - PullRequest
4 голосов
/ 31 марта 2009

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

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

У кого-нибудь есть советы по ускорению / предотвращению перезапуска домена приложения, который происходит, когда что-то меняется в папке bin веб-приложения?

Ответы [ 3 ]

1 голос
/ 26 апреля 2011

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

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

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

Подключите следующие папки к вашему источнику управления (не всю папку DNN):

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

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

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

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

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

После возобновления производства убедитесь, что ваш пул приложений перезапускается в нерабочее время.

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

1 голос
/ 31 марта 2009

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

0 голосов
/ 22 марта 2011

Может быть, это поможет вам?

Ускорение времени сборки в ASP.NET

...