2013-03-09 3 views
2

Я студент-информатик, и пока я работал с MVC раньше, я никогда не строил проект с нуля. Проект предназначен для курса фотографии, где учитель сможет загружать избранные фотографии. Студенты должны войти в систему, чтобы видеть фотографии и задания.Рекомендации по структуре проекта ASP.NET MVC?

Я хотел бы, чтобы учащиеся зашли на сайт www.mysite.com и учитель на admin.mysite.com, поэтому у нас есть два разных сайта в одном решении.

По знаю, что мои решения проекты:

  • DataLayer
  • BusinessLogicLayer
  • AdminWebsite
  • Сайт

Примечание: Gearhost будет мой хозяин.

Теперь, как я могу разместить веб-сайт Admin и веб-сайт на двух разных доменах, в то время как оба они «питаются» от одного и того же BusinessLogic и DataLayer?

Должен ли я вместо этого выполнять два разных проекта, которые работают в одной базе данных? Возможно ли это?

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

Спасибо за чтение!

ответ

1

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

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

Я бы предложил следующие ресурсы для передового опыта и примеров.

И самое лучшее место, чтобы начать MVC страницы в asp.net

Существует также тонна вопросов и записей сообщества вики на Stackoverflow о лучших практиках и макетах веб-сайта.

Надеюсь, это поможет

1

Ответ на самом деле зависит. Зависит от масштаба вашего проекта. Вы можете иметь все это в одном проекте (основной MVC один), который вы можете разделить на него дальше. Каноническая форма для этих проектов выглядит примерно так:

project.WEB 
project.Common (here belongs common functionality between projects, so helpers, utilities, even some extension methods belong there) 
project.Model (Data entities) 
project.BL //(Business Logic) 
project.DAL //(Data Access Layer or Persistence) 
project.Tests 

* обратите внимание, что «проект» - это ваш корень пространства имен.Как именовать пространство имен ho, вы можете проверить его там: namespace naming conventions

И вы можете разбить его дальше и дальше. Однако я бы предположил, что вы не преувеличиваете, разделив его дальше. Когда вам придется это сделать, вы узнаете (один проект слишком сильно растет, есть логическое разделение ...). Вы пытаетесь следовать принципу YAGNI.

И еще одно. Если вы хотите быть там «по книге», проверьте это DDD - Domain Driven Desing: http://msdn.microsoft.com/en-us/magazine/dd419654.aspx.

+0

Мой ответ с закрытого вопроса. Вот почему я копирую его здесь: http://stackoverflow.com/questions/15267561/is-there-any-standard-approach-for-defining-projects-in-an-asp-net-mvc-solution/15267670#15267670 –

Смежные вопросы