none
Как разделить проект ASP.NET MVC 4 на проекты MVC? RRS feed

  • Вопрос

  • Здравствуйте.
    Будучи начинающим "изучателем" ASP.NET MVC добрался до областей.
    Вроде бы всё красиво и хорошо, но вот там сказано, что можно разделить большой проект между разработчиками, чтобы они локтями не толкались.

    И я не понял как это разделение на области может помочь.

    На отдельные проекты что-то не хочет разделяться, чтобы потом склеивать не надо было.
    Или я зря волнуюсь, и пусть всё в одном проекте лежит?

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

    А если нужно описать ну скажем... город.
    Тогда там будет множество вложенных областей и прочего.

    Как же в этом случае разделить работу?
    Если всё так в куче и оставить, то получится множество папок в основном проекте.
    И на выходе гигантский .dll файл (ну или чуть поменьший, если работу с БД повыкидывать в dll-ки).
    Или не важно, что там dll-ка будет несколько мегабайт (в лучшем случае)?

    Я было предположил, что можно бы так и оставить у каждого разработчика свой проект, потом dll-ки ссылками к основному приделать (или через позднее связывание), и пусть себе работает.
    Но вот нельзя так. Точнее не нашёл встроенного способа.
    При публикации не скопируются .cshtml файлы и много чего ещё.
    Ну или вручную копировать.

    Нашёл это
    http://blog.longle.net/2012/03/29/building-a-composite-mvc3-application-with-pluggable-areas/

    и это
    http://geekswithblogs.net/cokobware/archive/2013/01/15/asp.net-mvc-4-pluggable-application-modules.aspx

    Ну и что-то про razor generator  там в комментариях сказано.
    Наверное .cshtml файлы в .dll отправит. не знаю.

    Напоминает танцы с бубном, пусть и не сильно большие.
    Неужели нет стандартного способа?
    Или не нужно вообще это просто?


    • Изменено INFEL8 5 июня 2013 г. 6:44

Ответы

  • Смотря, что вы подразумеваете под область. Тот же проект MVC бывает один, если скажем имеет одно обязательство. Могут быть два проекта: первый UI, а второй например CMS, для управления содержимым первого и т.п. Бывают случаи (для порталов), что на каждую ветку URL создаётся отдельный проект. Но всё равно в коммандном проекте файлы не дублируются в самом проекте на сервере (файлы и проекты атомарны.), просто у каждого разработчика своя копия и всё.
    • Помечено в качестве ответа INFEL8 6 июня 2013 г. 6:50
    5 июня 2013 г. 10:54
    Модератор

Все ответы

  • Это про реально большие проекты. И потом под разделением подразумевается разделение основыных частей кода на разные библиотеки, в осноном это бывает бизнес-логика. Так, что дублировать ничего не надо. А для работы в комманде есть TFS, каждый разработчик получает свою копию, а на сервере хранится - один общий проект с архивом версий и изменений.
    • Предложено в качестве ответа Sergey Rogachev 5 июня 2013 г. 8:53
    Модератор
  • А для этих "реально больших" проектов нет возможности готовой делать области как проекты?

    ну и подобласти для них, для которых подобласти и тд )

    5 июня 2013 г. 10:20
  • Смотря, что вы подразумеваете под область. Тот же проект MVC бывает один, если скажем имеет одно обязательство. Могут быть два проекта: первый UI, а второй например CMS, для управления содержимым первого и т.п. Бывают случаи (для порталов), что на каждую ветку URL создаётся отдельный проект. Но всё равно в коммандном проекте файлы не дублируются в самом проекте на сервере (файлы и проекты атомарны.), просто у каждого разработчика своя копия и всё.
    • Помечено в качестве ответа INFEL8 6 июня 2013 г. 6:50
    5 июня 2013 г. 10:54
    Модератор
  • А вот про порталы с отдельными ветками уже интересно.

    Немного покопал iis 7, что на виндовсе 7-м.
    Там можно сделать на один проект - корневой как бы сайт.

    И + добавить в него и-нет приложение.
    А оно уже будет отдельным проектом.
    Ну и тд.

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

    Жаль не знаю можно ли так на хостинге сделать обычном в и-нете.
    Там же не дадут покопаться в службе iis.

    И + ещё, может понадобиться авторизация одна на все подпроекты.
    И вообще может быть общие данные какие-то.

    Это возможно?

    5 июня 2013 г. 11:33
  • Да, конечно возможно. Данные обычно хранятсе где? В БД, а она может быть общей, да хоть на десять проектов.
    Модератор