2013-06-29 3 views
1

Я хочу создать простое приложение, в котором пользователь может зарегистрировать себя с его учетными данными, такими как имя, фамилия и т. Д. После нажатия на кнопку «Регистрация» он приносит ему письмо на проверку подлинности пользователя, где у него будет ссылка, и нажав на эту ссылку, он будет перенаправлен на страницу входа. Я хочу реализовать это, но используя трехуровневую архитектуру в MVC3.I создал проект, выбрав шаблон MVC и назвал его как презентации и получить BLL и DAL. Что я должен делать? Я создал свою модель:Реализация трехуровневой архитектуры в MVC3

public class Register 
    { 
     public int Id { get; set; } 
     public string First_Name { get; set; } 
     public string Last_Name { get; set; } 
     public string Email_Address { get; set; } 
     public bool Accept_Term { get; set; } 
     public bool Male { get; set; } 
     public bool Female { get; set;} 
     public string Current_Location { get; set; } 
    } 

ответ

4

Создать Class Library для вашего BLL и Class Library для вашего DAL, а затем ссылаться на BLL в вашем MVC проекте и ссылаться на ваш DAL в вашем BLL проекте. Теперь ваш проект MVC совершит вызовы BLL, которые, в свою очередь, вызовут DAL, чтобы фактически хранить/извлекать данные. Ваш BLL может быть просто сквозной в некоторых случаях, одновременно применяя бизнес-правила или другие операции в других случаях.

Вы должны рассмотреть вопрос о переносе ваших Model классов в отдельный Class Library, а также, что путь всех ваших уровней (MVC, BLL и DAL) все это может «видеть» и использовать ваши Model объекты; это, конечно, означает, что всем уровням нужна ссылка на проект Model. Гораздо проще передавать объекты вокруг, чем иметь методы с параметрами для каждого значения объекта.

+0

Спасибо за это .. я новичок в 3-уровневой архитектуре и более комфортно с MVC. Так что я знаю, чтобы создать Model, Controller и View.so. Пожалуйста, дайте мне знать, где я что-то скажу? @Karl – SantyEssac

+0

Добавляя к этому, я бы назвал модели как DTO, например. RegisterDTO. Поскольку модели имеют разное значение в MVC, они в основном представляют собой модели, которые находятся в веб-приложении MVC.Поэтому, в зависимости от того, что вам нужно увидеть, создайте модели представления с этими свойствами. – Sunny

+1

Щелкните правой кнопкой мыши на 'Solution' в« Solution Explorer », затем выберите« Добавить »->« Новый проект ». Теперь вы должны увидеть диалоговое окно «Добавить новый проект», оно должно иметь «Visual C# - Web» в качестве фильтра, изменить его только на «Visual C#», а затем щелкнуть «Библиотека классов». Назовите библиотеку 'BLL' и убедитесь, что она сохраняется на тот же относительный путь, что и ваш проект MVC. Промойте и повторите для 'DAL'. –

0

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

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

В качестве примера того, почему вы хотели бы иметь n-уровневую архитектуру, представьте этот сценарий. Вы создаете приложение, используя Entity Framework 4.x. в вашем уровне доступа к данным. Затем запускается EF 5.0, и вы хотите обновить его. Если ваши другие уровни полностью не знают о технологии доступа к данным, которую вы используете (как и должно быть), у вас должно быть очень мало проблем при обновлении DAL до другой версии или типа базы данных. Я подчеркиваю роль IGNORANT. Каждый слой в приложении должен быть IGNORANT зависимостей в других слоях, что позволит вам построить развязанную подключаемую архитектуру.

Его большая тема, и если у вас есть интерес к обучению больше, я бы предложил взглянуть на методы управления Driven Driven. Для этого не просто n-ярусы. Объекты передачи данных (DTO) - это объекты, которые несут данные между этими автономными слоями. Это необходимо, потому что объект «Person» в DAL не является тем же объектом, что и объект «Человек» в бизнес-слое. Карта DTO между двумя объектами.

Посмотрите на http://www.dofactory.com/. Вы увидите простое MV-приложение n-уровня с несколькими пользовательскими интерфейсами (winforms, MVC и т. Д.), Которые будут разговаривать с автономным бизнес-уровнем. Это также должно помочь вам лучше понять, где разместить ваши проекты и почему они необходимы.