Я сравниваю это с Java, где вы можете запустить свой сервер приложений в режиме отладки, а затем подключить свою IDE к серверу. И вы можете изменить свой код «на лету», не перезагружая сервер. Пока ваши изменения не влияют на сигнатуры методов или поля, вы можете просто перекомпилировать класс, и сервер приложений (контейнер сервлетов) перезагрузит класс.
Я полагаю, это невозможно в ASP.NET, поскольку все классы упакованы в сборки, и вы не можете выгружать / перезагружать сборки, не так ли?
Поэтому, когда у вас есть страница .aspx и сборка, развернутая в GAC, и изменения вашего кода программной части необходимо повторно развернуть сборку и сбросить IIS. В частности, я говорю о приложениях Sharepoint, и я не уверен, нужно ли вам делать iisreset для частных сборок, но я думаю, что вы тоже.
Итак, лучший способ отладки aspx-страниц с кодом позади, я думаю, было бы избавиться от кода позади на время активной отладки и перейти на страницу, а затем, когда он более или менее работает, переместите его обратно в codebehind. (Это применимо только для страниц приложений в Sharepoint, на страницах сайта не допускается встроенный код)
Как вы подходите к отладке приложений ASP.NET, чтобы сделать ее менее трудоемкой?





And you can change your code "on the fly" without restarting the server
Вы можете сделать это с помощью ASP.net, если вы создаете проект веб-сайта (в отличие от проекта веб-приложения). Используя проект веб-сайта, вы можете публиковать изменения кода программной части без необходимости обновлять что-либо на сервере, а сервер выполняет за вас работу по компиляции всех изменений кода. См. здесь для получения дополнительной информации об этом.
Это также должно решить ваши трудности с развертыванием сборки в GAC. Поскольку сервер обрабатывает все компиляции для проектов веб-сайтов, вам не придется повторно развертывать какие-либо сборки при изменении файлов.
Да частные сборки НЕ требуют сброса IIS. Поэтому вам нужно просто добавить новую версию xcopy в каталог Bin приложения и обновить страницу (например, с помощью события сборки VS post, как это сделал я). Но есть некоторые компромиссы. Вам следует снизить уровень доверия в файле web.config приложения:
<system.web>
...
<trust level = "WSS_Medium" originUrl = "" />
...
</system.web>
Кстати. Я не предлагаю так разворачивать. Это просто обходной путь для удобной продолжительности цикла записи-тестирования-отладки.
-1: вы не объясняете последствия этого для безопасности или изменения в поведении при развертывании в среде SharePoint с более строгим уровнем доверия.
Если вы используете находятся с помощью GAC, вы можете, по крайней мере, использовать iisapp.vbs /a "App Pool Name" /r вместо iisreset (быстрее переработать один пул приложений, чем перезапустить IIS).
Из блога Мэтт Смитс о том, как получить отладку F5 с помощью sharepoint. Очень крутой трюк.
Во-первых, разработайте на компьютере с SharePoint. Предпочтительно это означает запуск Windows Server 2003 на Virtual PC или VMWare. Это позволит вам развертывать и отлаживать код SharePoint напрямую, вместо того, чтобы копировать файлы между серверами и использовать удаленный отладчик.
Используйте надстройку VS, чтобы упростить процесс развертывания и отладки. Я использовал WSPBuilder, но думаю, что есть и другие. В WSPBuilder есть команды для развертывания решений, их упаковки как WSP и присоединения отладчика к локальному процессу IIS. Это не позволит вам добавлять / удалять сборки на лету, но вы можете устанавливать точки останова и запускать код через окно Immediate в VS.
В зависимости от того, как сконфигурирован ваш производственный сервер, обычно рекомендуется разрабатывать сервер с настройками полной / надежной безопасности, включая запрещение блоков кода в файлах ASPX. Это немного усложняет отладку, но снижает количество неприятных сюрпризов, которые вы получите, когда ваш код, наконец, будет развернут в производственной среде.
Используйте платформу автоматического тестирования (NUnit) для написания интеграционных тестов. Это не сработает для всех, но, конечно, это зависит от того, что вы тестируете.
Если у вас также установлен TestDriven.NET, вы можете запускать отдельные тесты с отладчиком. Это было полезно.
WSPBuilder Extensions имеет ярлык «развернуть в GAC», к сожалению, у меня он никогда не работает. Но это действительно быстрый способ кодировать-> компилировать-> тестировать.
Если вы не используете WSPBuilder Extensions, вы можете вместо этого открыть командную строку и запустить
gacutil / u yourassemblynamegoeshere gacutil / я yourdllgoeshere.dll
Если вы делаете это часто, вы можете поместить это в событие после сборки или в пакетный файл. Кроме того, мне неясно, нужен ли gacutil / u (чтобы сначала удалить DLL).
Кажется, вы пытаетесь сказать Sharepoint: «Когда я начинаю отладку в Visual Studio, используйте версию библиотеки DLL, которая была скомпилирована в каталоге проекта / bin / debug, вместо версии библиотеки DLL, которая зарегистрирована в GAC ". Я не решил эту проблему, но вот как я отлаживаю Sharepoint.
На машине разработчика установлены Win2008, IIS 7, MOSS 2007, VisStudio 2008 и WSP Builder. Внутри VS2008 добавлена кнопка для присоединения к процессу w3p.exe, HOWTO Андрея прикрепить к w3p
В файле решения есть два проекта:
.
* Первый проект - это .WSP, который развертывает все страницы приложения, включая DLL. Используйте пункты меню WSPBuilder для обработки создания и развертывания .WSP.
* Второй проект предназначен для DLL за страницами.
Если вы хотите, чтобы DLL регулярно копировалась в GAC, добавьте событие после сборки в проект DLL, которое копирует из / bin / Debug в GAC.
Но сейчас я обнаружил, что только что перекомпилировал решение и затем развернул .WSP с помощью пунктов меню, а затем запустил отладчик с помощью кнопки. На большинство моих проектов у меня уходит F-клавиша, 3 щелчка и около минуты, но я полагаю, что это могло бы быть быстрее.
Я думаю, вы пропустили ссылку "здесь"? И будет ли это работать с SharePoint?