СКМ для ASP.net - PullRequest
       6

СКМ для ASP.net

0 голосов
/ 04 ноября 2008

В рамках моего общего обзора практики разработки я смотрю, как лучше упростить и автоматизировать наши практики веб-разработки на ASP.net.

На данный момент наш процесс идет примерно так:

  1. Конструктор создает интерфейс в виде статического HTML / CSS на сетевом ресурсе. Это настраивается, пока не подписано. (например, http://myserver/acmesite_design)
  2. После выхода разработчик вступает во владение и копирует внешний интерфейс HTML / CSS в новый каталог на том же сервере (например, http://myserver/acmesite_development)
  3. Несколько разработчиков работают над локальной копией до завершения проекта.
  4. Разработчик публикует код на внешнем общедоступном сервере, чтобы клиент мог просмотреть / подписать его.
  5. Изменения, сделанные локально на основе отзывов.
  6. Повторная публикация на внешнем сервере.
  7. Подпись
  8. Разработчик публикует на общедоступном общедоступном сервере

Что идет не так? Много вещей!

  1. Контроль версий & ndash; это, безусловно, является обязательным и вводится
  2. Ошибки конфигурации & mdash; много-много раз, есть специфические для среды пути и переменные (такие как имена БД, каталоги для загрузки изображений, пути веб-сервера и т. д. и т. д.), которые неправильно копируются из локального в промежуточное состояние и т.д. *

Я уверен, что у меня под контролем №1. Как насчет управления конфигурацией? Кто-нибудь советует, как лучше всего управлять структурой приложений в приложениях asp.net, чтобы минимизировать подобные проблемы?

Ответы [ 4 ]

1 голос
/ 16 ноября 2008

Вы правильно поняли самую важную часть. Используйте контроль версий. Subversion - хороший выбор.

Я обычно храню конфигурацию вместе с сайтом; при кодировании сайта на основе PHP у меня есть файл с именем config.php-dist. Если вы хотите, чтобы сайт работал вообще, вам придется копировать + редактировать все необходимые параметры (это позволяет избежать хранения паролей в управлении версиями). Файл -dist должен иметь разумные значения по умолчанию.

Загрузка каталогов должна быть относительной, если это возможно; на самом деле все каталоги должны быть относительными. У меня нет опыта работы с ASP.net, но если это что-то вроде PHP, то текущим каталогом всегда является каталог запрашиваемого файла. Если вы направите все запросы через один файл (например, index.asp), то это можно найти даже программно. Или вы можете найти его программно, используя эквивалент dirname(____FILE____) в вашем файле конфигурации.

Я также рекомендую установить IIS (или любой используемый вами веб-сервер) на всех рабочих станциях разработки (включая дизайнеров). Облегчает жизнь, так как никто не может наступить друг другу на пальцы ног. Для этого нужно просто добавить тестовые хосты в файл hosts (\ windows \ system32 \ drivers \ etc \ hosts iirc) в дополнение к добавлению сайта в локальный IIS. Это хорошо работает с контролем версий (извлечение, добавление сайта в IIS и hosts-файл, редактирование, редактирование, редактирование, фиксация).

1 голос
/ 11 ноября 2008

Я обнаружил, что использование SVN, NAnt и NUnit с Cruise Control.net решает многие проблемы, которые вы описываете. Я думаю, что это хорошо работает для небольших групп, и все это бесплатно. Просто нужно научиться ими пользоваться.

CruiseControl.net поможет вам собрать сборки и непрерывную интеграцию.

Используйте NAnt или MSBuild для создания различных сборок среды (DEV, TEST, PROD и т. Д.).

http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET

0 голосов
/ 10 ноября 2008

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

0 голосов
/ 04 ноября 2008

Одна вещь, которая действительно помогает, - это следить за тем, чтобы ваши пути были относительно, где вы можете, и централизовать их там, где вы не можете, поэтому, когда я работал с ASP.Net, я обычно использовал web.config для хранения любых данных конфигурации и пути, которые не могут быть найдены программно. Весьма возможно программно найти информацию, например, путь к текущему приложению, через объект Request. Стоит посмотреть подробнее о том, что среда делает доступной для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...