Как сделать процесс из отладки ASP.NET приложения Sharepoint менее трудоемкий?

Проблема заключается в использовании функции aspect='equal', которая предотвращает растяжение подзаголовков до произвольного соотношения сторон и заполнение всего пустого пространства.

Обычно это будет работать:

import matplotlib.pyplot as plt

ax = [plt.subplot(2,2,i+1) for i in range(4)]

for a in ax:
    a.set_xticklabels([])
    a.set_yticklabels([])

plt.subplots_adjust(wspace=0, hspace=0)

В результате получается следующее:

Однако с aspect='equal', как в следующем коде:

import matplotlib.pyplot as plt

ax = [plt.subplot(2,2,i+1) for i in range(4)]

for a in ax:
    a.set_xticklabels([])
    a.set_yticklabels([])
    a.set_aspect('equal')

plt.subplots_adjust(wspace=0, hspace=0)

Это то, что мы получаем:

Разница во втором случае заключается в том, что вы вынули оси x и y иметь одинаковое количество единиц / пикселей. Так как оси по умолчанию меняются от 0 до 1 (т. Е. Перед тем, как вы рисуете что-либо), использование aspect='equal' заставляет каждую ось быть квадратом. Поскольку рисунок не является квадратом, пипло добавляет дополнительное расстояние между осями по горизонтали.

Чтобы обойти эту проблему, вы можете установить, что ваша фигура имеет правильное соотношение сторон. Мы собираемся использовать объектно-ориентированный интерфейс pyplot, который я считаю превосходным в целом:

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8,8)) # Notice the equal aspect ratio
ax = [fig.add_subplot(2,2,i+1) for i in range(4)]

for a in ax:
    a.set_xticklabels([])
    a.set_yticklabels([])
    a.set_aspect('equal')

fig.subplots_adjust(wspace=0, hspace=0)

Вот результат:

6
задан axk 28 August 2008 в 10:24
поделиться

8 ответов

Из блога Matt Smiths о том, как получить отладку F5 с sharepoint. Очень прохладный прием.

  1. Создайте проект веб-приложения в Visual Studio (Файл-> Новый-> Проект-> веб-приложение ASP.NET, не Файл-> Новый-> веб-сайт).
  2. Переместите .csproj и .csproj.user файлы, наряду с папкой Properties, в C:\inetpub\wwwroot\wss\virtualdirectories\, где имя или количество веб-приложения соответствующий сайту SharePoint, требуется отладить на.
  3. Присоедините проект к существующему решению (например, проект STSDEV).
  4. Набор как проект запуска (щелкают правой кнопкой по названию проекта, "Набор как Проект Запуска").
  5. Свойства проекта Access (щелкают правой кнопкой по названию проекта, "Свойствам"), и щелчок
  6. При установке "Servers" нажмите "Use IIS web server", затем введите URL в веб-приложение SharePoint, которое Вы хотите отладить на, например, http://mymachine:99.
5
ответ дан 8 December 2019 в 18:44
поделиться

Да приватные сборки НЕ требуют сброса IIS. Таким образом, Вы должны только, чтобы скопировать новую версию с помощью xcopy в Каталог bin приложения и обновить страницу (например, событием сборки сообщения VS, как я сделал). Но существует некоторая торговля offs. Необходимо уменьшить доверительный уровень в приложении web.config файл:

<system.web>
    ...
    <trust level="WSS_Medium" originUrl="" />
    ...
</system.web>

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

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

При использовании GAC можно, по крайней мере, сделать iisapp.vbs /a "App Pool Name" /r вместо iisreset (это более быстро для переработки пула отдельного приложения, чем перезапустить IIS).

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

Во-первых, разработайте на компьютере рабочий SharePoint. Предпочтительно, это означает рабочий Windows Server 2003 на Виртуальном ПК или VMware. Это позволит Вам развернуть и отладить код SharePoint непосредственно, вместо того, чтобы иметь необходимость скопировать файлы между серверами и использовать удаленный отладчик.

Используйте дополнение VS для упрощения процесса развертывания и отладки. Я использовал WSPBuilder, но я думаю, что там существуют другие. WSPBuilder имеет команды, чтобы развернуть решения, упаковать их как WSPs и присоединить Ваш отладчик к локальному процессу IIS. Это не позволит Вам добавлять/удалять блоки на лету, но можно установить точки останова и выполнить код через окно Immediate в VS.

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

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

Расширения WSPBuilder имеют, "развертывают на GAC" ярлык, к сожалению, он никогда не работает на меня. Но это - действительно быстрый способ кодировать-> компиляция-> тест.

Если Вы не используете Расширения WSPBuilder, можно вместо этого открыть командную строку и работать

gacutil/u yourassemblynamegoeshere gacutil/i yourdllgoeshere.dll

Если Вы часто делаете это, можно поместить его в событие постсборки или в пакетный файл. Кроме того, я неясен, необходим ли gacutil/u (для удаления DLL сначала).

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

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

Если Вам также установили TestDriven.NET, можно запустить отдельные тесты с отладчиком. Это было полезно.

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

И можно изменить код "на лету", не перезапуская сервер

Можно выполнить это с ASP.net при создании проекта веб-сайта (в противоположность веб-приложению Проект). Используя проект веб-сайта, можно отправить изменения для кодирования, не имея необходимость обновлять что-либо на сервере, и сервер делает работу компиляции для Вас на всех изменениях кода. Посмотрите здесь для большего количества информации об этом.

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

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

Кажется, что вы пытаетесь сделать, это сказать 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 клика и около минуты для большинства моих проектов, но я полагаю, что это может быть быстрее.

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

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