Причины иметь абсолютный путь в .NET - PullRequest
1 голос
/ 25 ноября 2008

Мы пытаемся решить, нужно ли всем разработчикам в конкретной команде использовать абсолютный путь для своей базы кода или приемлемы относительные пути.

Одна причина, по которой я могу думать об абсолютном пути, означающем, что у всех одинаковый путь, заключается в IIS и функциональных тестах. Наш функциональный тест asp.net использует Nunit и WatiN для запуска IE и прохождения различных сценариев. Чтобы они запускались отдельно от графического интерфейса Nunit, я должен проверить, работает ли Cassini, и если нет, запустить его. Это требует прохождения на физическом пути. Таким образом, только люди, использующие этот конкретный путь, могут выполнять функциональные тесты таким образом.

Существуют ли какие-либо факторы, способствующие достижению абсолютного (общего) пути?

Ответы [ 4 ]

2 голосов
/ 25 ноября 2008

Перейти с относительными путями. В самом деле. Подумайте о ветвлении вашего хранилища. Подумайте о настройке юнит-тестов. Подумайте о наличии отдельных сборок отладки и выпуска. Немного каламбур ... Все относительно.

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

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

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

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

Избегайте абсолютного пути, как чума. Они будут кусать вас так или иначе.

Проект с абсолютными путями, разбросанными по сторонам, всегда препятствует любой попытке автоматизировать сборку или принять любую разумную стратегию ветвления.

Самое первое решение, которое вы должны принять при создании абсолютного пути, то есть буква диска, должно подсказать вам, что это очень, очень плохая идея. Конечно, у всех есть диск C :. Ну ...

  • Я видел машины без установленного диска C:
  • Я видел, как ИТ-специалисты лгут о том, что каждая машина имеет диск D: или имеет доступ к сетевому диску P:
  • Я видел работу перезаписи переключателей репозитория, потому что это единственный способ получить работающую сборку
  • Я видел бесчисленные потерянные часы, пытаясь найти все места, где хранится абсолютный путь, когда им нужно было простое изменение

Не делай этого. Неважно, что нет.

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

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

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

Тем не менее, у меня часто было приложение, которое требовало абсолютного UNC-пути в качестве местоположения «отбрасывания» для загружаемых файлов (при размещении в веб-ферме). Я нашел это приемлемым, в конце концов, из-за отсутствия лучшего решения.

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