2013-02-28 3 views
0

В настоящее время я создаю мобильный сайт MVC 4 в jQuery Mobile для дополнения обычной версии рабочего стола (встроенной в MVC 3).Решение Visual Studio «дизайн» для нескольких проектов

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

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

Я довольно свежий с .NET MVC, поэтому мне нужно ваше мнение о лучших практиках, когда речь заходит о нескольких проектах и ​​о том, с какими проблемами столкнуться при развертывании.

Я планирую развернуть этот мобильный сайт либо под субдоменом (например, mobile.domain.com), либо как domain.com/mobile.

  1. Будет ли мобильный проект по-прежнему иметь доступ к моделям после его развертывания?

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

  3. Это умная идея просто ссылаться на модели/классы из исходного проекта, или это каким-то образом сделает ее менее гибкой? Думаю, другим способом является копирование моделей в папку мобильных моделей «Модели»?

  4. Как бы вы это сделали?

С наилучшими пожеланиями Микаэл

+3

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

+0

@Matty имеет отличную точку в объединении сайта. Посмотрите, как здесь следует. http://www.hanselman.com/blog/MakingASwitchableDesktopAndMobileSiteWithASPNETMVC4AndJQueryMobile.aspx –

+0

Я действительно не думал об этом, но, очевидно, это лучшее решение. Я постараюсь следовать этому сообщению в блоге Hanselman. Благодаря! –

ответ

0
  1. Да, но вы получите весь рабочий стол собранный код, а также.
  2. Это семантика, вы можете иметь ее в любом случае. Что будет проще для потребителей? Возможно, это собственный субдомен, поэтому m.yoursite.com.
  3. Вы можете разбить общие модели в свой собственный проект, который ссылается на оба сайта. Это позволит вам вносить изменения, которые будут влиять на оба варианта, и вы можете их самостоятельно выпускать.
0

Один веб-проект не должен ссылаться на другой. Это нормально переносить ваши модели в другую библиотеку, которая ссылается на веб-проекты. Вам не нужно копировать код.

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