Как настроить среду разработки DotNetNuke с системой управления версиями?

Моя команда разрабатывает новое веб-приложение DotNetNuke и хотела бы знать, что рекомендуется для настройки среды разработки с контролем версий и автоматическими сборками? Мы хотели бы хранить исходный код DNN отдельно от исходного кода наших пользовательских модулей и расширений.

Шаблон скомпилированного модуля DotNetNuke для Visual Studio хочет, чтобы мы хранили исходный код в каталоге DesktopModules исходного кода DNN и выводили его в каталог bin исходного кода DNN. Это рекомендованная структура? Я бы предпочел хранить файлы в разных местах, но тогда становится труднее запускать и отлаживать локально, поскольку для каждого изменения требуется установка модуля. Кроме того, как автоматическая сборка должна вносить какие-либо изменения?

Как это устроили другие? Есть ли рекомендованная передовая практика?


person Joosh21    schedule 30.11.2009    source источник
comment
Полиция передового опыта не разработала руководящих принципов для этого. Я буду следовать тому, что предлагают люди DNN.   -  person Robert Harvey    schedule 01.12.2009


Ответы (3)


Обычно мы храним код модуля в папке под DesktopModules и строим в каталоге bin веб-сайта.

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

Автоматическое развертывание изменений в DNN несколько затруднено. Настоятельно рекомендуется иметь сценарий сборки, который упаковывает ваш модуль в устанавливаемую форму. Затем вы можете скопировать устанавливаемые пакеты в папку Install/Module веб-сайта и получить URL-адрес /Install/Install.aspx?mode=InstallResources, который установит все пакеты в этой папке.

person bdukes    schedule 30.11.2009

Для системы управления версиями я разрабатываю модули в собственном проекте. Он содержит код модуля, тестовый код, код поставщика данных (если применимо) и все остальное. Это проверяется в системе управления версиями, как и любой другой проект. Обратите внимание, что проект модуля не содержит ссылок на конкретный веб-сайт DNN, а ссылки DNN делаются в проекте на общий каталог «bin», который ссылается на вашу целевую сборку. Например, в папке с проектами у меня есть \ bin460, \ bin480, \ bin510, \ bin520 и т. Д. Каждая из этих папок содержит набор двоичных файлов для определенной версии DNN. Таким образом, вы можете строить с использованием конкретной версии, но тестировать с любой версией, которая вам нравится.

Проблема с контролем исходного кода модуля при установке dnn заключается в том, что иногда не весь код модуля легко изолировать в единственном родительском каталоге - не подходит для подхода с использованием модуля PA - нелегко перенести проект на другая версия DNN для разработки или тестирования - легко непреднамеренно создать элементы управления исходным кодом решения DNN, особенно с интегрированными решениями управления исходным кодом VS.

Этот подход быстро компилируется, потому что вы не пытаетесь скомпилировать весь проект. Для тестового развертывания у меня есть сценарий сборки, который копирует различные части модуля на целевой веб-сайт. Это можно сделать с помощью компиляции (свяжите скрипт сборки) или просто запустить после успешной компиляции в окне cmd. В моем сценарии сборки есть переключатель среды «target», поэтому я могу сказать «dnn520», чтобы развернуть сборку для моей тестовой установки dnn520. Обратите внимание, что вам необходимо вручную создать конфигурацию модуля, прежде чем это сработает, но это единовременное усилие, и вы можете использовать функцию экспорта для создания манифеста модуля .dnn.

Чтобы собрать пакет модуля, потратьте время на исчерпывающий сценарий, который возьмет различные части из исходного каталога и заархивирует их в установочный пакет. Сохраните все части в папке управления версиями и скопируйте их во временный каталог, затем запустите утилиту zip из командной строки (я использую старую версию pkzip), чтобы упаковать ее в устанавливаемый файл.

Преимущества этого подхода: - отделение кода модуля от установленного кода - простой способ сохранить только код модуля в системе контроля версий (не нужно исключать весь код веб-сайта) - возможность быстро тестировать модули в разных версиях dnn. - сценарий упаковки позволяет быстро и легко собрать новую версию модуля для установки, тестирования / развертывания

Недостатки: нельзя использовать волшебную зеленую кнопку «перейти» в VS (необходимо вручную подключить отладчик) - больше времени на настройку, чем при разработке на месте.

person Bruce Chapman    schedule 05.01.2010

В ответ на ответ bduke. Вы должны и не хотите создавать проекты в папке DesktopModules.

  1. Вот куда идет весь исходный код сайта из коробки.
  2. Здесь ваши модули будут «установлены», и, таким образом, если кто-то «обновит» или переустановит один, он будет перезаписан.
  3. Это может значительно усложнить обновление вашего приложения. Многие разработчики не понимают, что идея не трогать исходные файлы исходного кода для изменения их поведения. ПОТОМУ ЧТО он будет просто перезаписан при обновлении.

Если вы хотите создавать модули, создайте папку решения с именем Modules и поместите туда свои отдельные модули проекта.

  1. Если вы хотите их отлаживать, сделайте целевую точку вывода отладки в папку web \ bin.
  2. Если вы хотите их установить / развернуть. Создайте его в режиме выпуска и установите их через фильтр Module / Extension.
person Christopher Schoeder    schedule 05.12.2016
comment
Это должен быть ответ. Несколько раз я сталкивался с проблемой, когда люди не понимали концепции создания копии собственного модуля исходного исходного кода, если вам нужно что-то нестандартное. - person Christopher Schoeder; 17.01.2017