Проекты веб-сайта ASP.NET являются по сути медленными при компиляции, или у меня могли быть более глубокие проблемы?

Я нашел этот сценарий на этот сайт , и это, кажется, работает вполне хорошо.

  1. Копия по Вашему .git каталогу к Вашему веб-серверу
  2. На Вашей локальной копии, измените свой .git/config файл и добавьте свой веб-сервер как удаленное:

    [remote "production"]
        url = username@webserver:/path/to/htdocs/.git
    
  3. На сервере, замена .git/hooks/post-update этот файл (в ответе ниже)

  4. Добавляют доступ на выполнение к файлу (снова, на сервере):

    chmod +x .git/hooks/post-update
    
  5. Теперь, просто локально продвиньте к своему веб-серверу, и он должен автоматически обновить рабочую копию:

    git push production
    

11
задан Cᴏʀʏ 15 July 2009 в 16:28
поделиться

5 ответов

Мои наблюдения были такими же: для создания проектов веб-сайтов требуется больше времени, чем для проектов веб-приложений. Думаю, я нашел некоторую информацию о том, почему, проверьте это: http://msdn.microsoft.com/en-us/library/aa730880 (VS.80) .aspx

Найдите «Итеративная разработка». Это говорит о проектах веб-сайтов по сравнению с проектами веб-приложений:

По умолчанию Visual Studio полностью компилирует проекты веб-сайтов, когда вы запускаете или отлаживаете любую страницу. Это сделано для выявления ошибок времени компиляции в любом месте сайта. Однако полная сборка сайта может значительно замедлить итеративную разработку процесс, так что обычно рекомендуется изменить сборку вариант проекта для компиляции только текущая страница при запуске или отладке.

4
ответ дан 3 December 2019 в 10:44
поделиться

Сначала прочтите это сообщение в блоге Советы по оптимизации производительности сборки во время разработки для веб-сайтов в Visual Studio 2005

Основные замечания:

  • Не отключайте пакетную компиляцию
  • Используйте компиляцию на стороне сервера
  • Переместите файлы App_Code в отдельный проект библиотеки классов
  • Проверьте наличие конфликтующих зависимостей
  • Отключите AutoToolboxPopulate в параметрах конструктора Windows Forms.
  • Отключить проверку для редактирования HTML.

Другой вариант, который может помочь вам, - это переключение на RAM-диск: Запуск разработки с RAM-диска - опции и продукты

Если это не поможет, возможно, разделите ваш большой WAP на несколько может сократить время компиляции. К сожалению, эта стратегия требует от вас отказаться от разработки на Cassini. Вместо этого вам придется использовать IIS в качестве хоста: Использование нескольких проектов веб-приложений (WAP) в одном решении

3
ответ дан 3 December 2019 в 10:44
поделиться

Возможно, это не идеально, но вы можете разделить свои проекты на несколько решений. Например, вы можете взять пользовательские элементы управления и поместить их в решение A, а остальные проекты в решение B. Затем скомпилировать элементы управления в решении A и указать ссылку на них из решения B, что должно помочь сократить время компиляции

0
ответ дан 3 December 2019 в 10:44
поделиться

Один факт, который большинство разработчиков упускает из виду в веб-проекте ASP.NET, - это количество классов в папка App_Code .
Чем больше классов вы добавите в него, тем дольше будет время компиляции.

Из Обзор компиляции ASP.NET на MSDN :

ASP.NET создает сборку для каждого каталог приложения (например, App_Code) и один для основного каталог. (Если файлы в каталоге находятся в разных программах языки, затем отдельные сборки будут созданы для каждого языка.)

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



Другое дело, что я из вашего сообщения заметили, что у вас 18 не связанных с веб-сайтом проектов.
Я думаю, что это слишком много, потому что думайте об этом так.

Когда начинается компиляция веб-проекта, компилятор ASP.NET должен связать 18 отдельных файлов DLL.
Если эти проекты можно объединить для уменьшения количества библиотек DLL, это может также помочь.

С точки зрения ремонтопригодности, иметь 18 проектов немного чрезмерно, если для этого нет ДЕЙСТВИТЕЛЬНЫХ веских причин.
Я бы посоветовал просмотреть проекты и объединить их.

Надеюсь, это поможет.

1
ответ дан 3 December 2019 в 10:44
поделиться

Веб-сайт или веб-проект, производительность должна быть аналогичной после фазы компиляции. Если проблема заключается в низкой производительности сразу после развертывания нового набора кодов, быстрый способ, который я могу придумать, - это предварительно опубликовать сайт. (см. ссылку http://msdn.microsoft.com/en-us/library/1y1404zt (VS.80) .aspx )

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

0
ответ дан 3 December 2019 в 10:44
поделиться
Другие вопросы по тегам:

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