Недавно мне пришлось разработать рабочий процесс SharePoint, и, честно говоря, я нашел этот опыт самой болезненной задачей программирования, с которой мне когда-либо приходилось решать. Одна большая проблема, с которой я столкнулся, - это проблемы, с которыми я столкнулся, когда мне пришлось пройти через это в отладчике.
Есть статья о том, как отлаживать рабочий процесс SharePoint здесь, в которой рассказывается, как устанавливать точки останова и т. д. Это включает в себя копирование файла .pdb в GAC вместе с файлом .dll, содержащим ваш рабочий процесс. Вы должны сделать это из командной строки (или пакетного файла), потому что Windows Explorer не позволяет вам просматривать соответствующий подкаталог c: \ windows \ assembly.
Однако, если вы сделаете это, в следующий раз, когда вы попытаетесь развернуть рабочий процесс из Visual Studio, он пожалуется, что не может быть развернут, потому что «файл не может быть подписан», и если вы попытаетесь скопировать новую версию dll в GAC, он сообщает вам, что файл .dll заблокирован.
Я обнаружил, что иногда вы можете обойти это, выполнив iisreset, но в других случаях вам нужно перезапустить Visual Studio, и были частые случаи, когда мне даже приходилось перезагружать компьютер, потому что какая-то загадка процесс заблокировал файл. С другой стороны, когда я не использую отладчик, все работает нормально.
Кто-нибудь знает более простой способ отладки рабочих процессов, чем этот?





Команда SharePoint в настоящее время работает над расширениями MOSS для VS 2008, которые позволят использовать этот тип функциональности. Это было доступно в VS 2005 с расширениями MOSS, но должно запускаться в Windows Server с полной установкой MOSS и правильным набором разрешений.
Одна вещь, которая действительно могла бы помочь, - это если бы группа SharePoint предоставила интерфейсы для сервисов рабочих процессов SP, необходимых для запуска рабочих процессов SP. Это позволит вам имитировать эти интерфейсы и запускать рабочие процессы за пределами собственно SP. AFAIK, вы не можете сделать это сегодня.
Я лично считаю, что SharePoint чрезвычайно болезненно развиваться ... не только с рабочими процессами, но и в целом. Я понимаю административные преимущества и продуктивность конечных пользователей, но для Joe .NET Developer это довольно ужасный опыт.
Что касается ускорения сброса IIS, у Эндрю Коннелла есть несколько советов. http://www.andrewconnell.com/blog/archive/2006/08/21/3882.aspx
Это уменьшило время сброса моего IIS с 10+ секунд до менее чем 2 секунд.
Я не уверен, что вам нужно передавать файл pdb в GAC. (По крайней мере, исправление, которое я собираюсь описать, отлично подходит для отладки веб-частей SharePoint в VS2005, которые имеют аналогичную проблему.)
Есть флажок, отмеченный «Включить только мой код (только управляемый)» в Инструменты -> Параметры -> Отладка; если вы снимите этот флажок, Visual Studio с радостью загрузит ваши pdb из папки bin \ Debug, в которой они были созданы. Наверное. Во всяком случае, не помешает попробовать ...
Когда я начал использовать WSPBuilder, у меня стало намного быстрее разрабатывать решения SharePoint в целом (не только рабочие процессы). WSPBuilder имеет надстройку Visual Studio под названием WSPBuilder Extensions, и, на мой взгляд, расширения WSPBuilder работают лучше, чем печально известный Инструменты Windows SharePoint Services 3.0: расширения Visual Studio 2008, версия 1.2. Благодаря меню WSPBuilder развертывание / обновление / удаление решения осуществляется одним щелчком мыши!
Ознакомьтесь с STSDev на CodePlex, созданном такими MVP SharePoint, как Тед Паттисон, Эндрю Коннелл, Скот Хиллиер и другими.
STSDEV is a proof-of-concept utility application which demonstrates how to generate Visual Studio project files and solution files to facilitate the development and deployment of templates and components for the SharePoint 2007 platform including Windows SharePoint Services 3.0 (WSS) and Microsoft Office SharePoint Server 2007 (MOSS). Note that the current version of the stsdev utility only supports creating projects with the C# programming language.
Кит
Хорошо, WSPBuilder - отличный инструмент для развертывания вашего решения на производственных или тестовых машинах.