Лично для меня откат немедленно является самым важным. Опять же, проекты сайтов очень сложны, когда дело доходит до отслеживания изменений.
хорошее подробное сравнение можно найти здесь . Я репродуцирую статью здесь.
1) Развертывание. Если вам нужно развернуть на месте, эта модель идеально подходит. Однако это не рекомендуется, поскольку вы демонстрируете свою логику в виде открытого текста. Таким образом, любой, кто имеет доступ к физическому серверу, может связываться с вашим кодом, и вы никогда этого не заметите. Вы можете попытаться создать предварительно скомпилированный веб-сайт, но в итоге вы получите много dll и почти неприкасаемых aspx файлов. Microsoft признала это ограничение и выпустила инструмент Web Deployment Project.
2) Вам необходимо отслеживать, что вы изменили локально и что вы загрузили на рабочий сервер. Там нет контроля версий. Visual Studio имеет инструмент Web Copy, но этот инструмент не помогает. Мне пришлось создать свой собственный инструмент, который отслеживал изменения на основе Visual Source Safe.
3) Когда вы нажимаете F5 для выполнения отладки, компиляция и выполнение всего проекта занимает всего 2 минуты. Конечно, вы можете присоединить отладчик к существующему потоку, но это не очевидное решение.
4) Если вы когда-нибудь попытаетесь сгенерировать элементы управления на лету, вы получите первое неразрешимое ограничение. Как ссылаться на другие страницы и элементы управления. Компиляция страниц и элементов управления происходит отдельно для каждого каталога. В лучшем случае вы получите сборку для каждого каталога, в худшем - каждая страница или элемент управления получат свою собственную сборку. Если вам нужно сослаться на другую страницу из элемента управления или другую страницу, вам нужно явно импортировать ее с помощью директивы @Reference.
Так что,
customControl = this.LoadControl ("~ / Controls / CustomUserControl.ascx") как CustomUserControl;
Тебе нужно,
Но что, если вы хотите добавить что-то действительно динамически и не можете поместить все соответствующие директивы @Reference? Или Что, если вы создаете серверный элемент управления, и у него нет файла ascx, поэтому у вас нет места для @Reference? Поскольку каждый элемент управления имеет свою собственную сборку, отражение практически невозможно.
Проекты веб-приложений, которые вновь появились в Visual Studio 2005 SP1. Они решают все проблемы, упомянутые выше.
1) Развертывание. Вы получаете только одну DLL на проект. Вы можете создавать распространяемые пакеты и повторяемые сборки. У вас могут быть версии и сценарии сборки.
2) Если вы изменили код, вы можете загрузить только одну DLL. Если вы сделали изменение aspx, вы можете загрузить только изменение aspx.
3) Выполнение занимает максимум 2-3 секунды.
4) Весь проект находится в одной сборке, что помогает ссылаться на любую страницу или элемент управления. Заключение. Для любой серьезной работы вы должны использовать проекты веб-приложений. Отдельное спасибо Рику Стрэлу за его замечательную статью «Компиляция и развертывание в ASP.NET 2.0.
»