Как я могу разделить один визуальный студийный проект на несколько проектов? - PullRequest
2 голосов
/ 26 апреля 2011

Сейчас у меня есть одно решение ASP.NET с одним проектом. Проблема, с которой я сталкиваюсь, заключается в том, что несколько разработчиков работают над разными частями проекта, которые выпускаются в разное время. Из-за этого мой менеджер проекта думает, что мы можем разделить проект на несколько dll вместо одной dll, чтобы мы могли обновить только те модули, которые нужно обновить.

1. Является ли разделение проекта на несколько проектов (несколько dll) правильным способом решения этой проблемы?

2. Если да, то как мне это сделать? Могу ли я просто скопировать соответствующие файлы aspx / cs в новый проект, удалить их из старого и собрать? Как насчет мастер-страниц, CSS, Javascript и пользовательских элементов управления, мне нужно будет скопировать их вместе или на них можно ссылаться в «основном» проекте? Нужно ли внести некоторые изменения в IIS или я могу просто скопировать aspx из нового «подпроекта» в корень «основного» проекта (по сути, там, где сейчас находятся файлы aspx)?

3. Если нет, то как лучше решить мою проблему?

Спасибо за вашу помощь

Редактировать (чтобы добавить немного ясности):

Прямо сейчас наша структура выглядит примерно так (подразумевается сокращение и выделение кода):

MasterPage.master
styles.css
SplashPage.aspx
Page.aspx    
AnotherPage.aspx
a_MasterPage.master
a_Page.aspx
a_AnotherPage.aspx
b_Page.aspx
b_AnotherPage.aspx
b_AlsoAnotherPage.aspx

Могу ли я взять все a_ страницы и свернуть их в один проект, а также все b_ страницы и свернуть их в другой (который будет разделять библиотеки).

Если это не имеет смысла, пожалуйста, спросите, и я постараюсь объяснить это лучше

Ответы [ 3 ]

2 голосов
/ 26 апреля 2011
  1. Да

  2. Как? Не думайте с точки зрения страниц, а скорее функциональности. Лучший способ решить вашу проблему - вывести бизнес-логику из проекта уровня опыта ASP.NET и поместить ее в библиотеки классов. После этого у вас могут быть разные типы разработчиков, работающих над разными типами кода.

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

Надеюсь, все это имеет смысл. ПРИМЕЧАНИЕ. Если ваш код содержится в Page_Load () и обработчиках событий, вы в значительной степени облажаетесь, пока не сможете преобразовать код в отдельные методы.

1 голос
/ 26 апреля 2011

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

Обычно я стараюсь объединить свой взгляд и разделить основные функции, чтобы было легко использовать одни и те же библиотеки DLL на разных сайтах.

Например: у меня есть проект со всеми методами и БД для управления пользователями.Я мог бы развернуть этот проект на сервере и ссылаться на него на всех своих сайтах.Таким образом, пользователи могут использовать один и тот же логин на всех моих веб-сайтах.

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

Да, вы просто перемещаете свои файлы aspx / c # в другой проект и ссылаетесь на новый проект в своем существующем проекте.

Я действительно думаю, что каждый проект нуждается в своей собственной главной странице (в последний раз япроверил что есть).

Надеюсь это ответит на ваш вопрос.

1 голос
/ 26 апреля 2011

3.) А как насчет какой-то системы контроля версий, разве это не поможет вам лучше?

Разделение проекта, как это, не очень хорошая идея, я думаю, это имеет смысл, если вы хотите разделитьлогический / физический уровни этого проекта (у вас может быть другой проект для доступа к данным, другой для бизнес-логики и т. д.), но разделенный на проекты, где один содержит "welcome.aspx", а второй - "contact.aspx" .. хмм япредпочел бы использовать SVN / Git / TFS / Wh чем угодно;)

...