Мой вопрос о трехслойной архитектуре.BLL, DAL, OBJ и трехслойная архитектура
Мой проект вкратце похож на ниже, однако то, что меня раздражало после того, как я вставляю новый столбец в свою базу данных, мне нужно обновить все поля, кроме BLL. В слое представления я создал OBJ, а также внутри DAL plus внутри DAL, есть SQL-запрос. Я должен обновить все эти поля вручную.
Если я делаю это «обычный» способ, я помещаю все это внутри слоя презентации и обновляю все в одном месте.
Я применяю эту трехслойную архитектуру правильно и в чем преимущества использования этой многоуровневой архитектуры?
Мой второй вопрос:
Внутри DAL, я собираю данные через _view. Что мне интересно, должен ли я писать еще один BOboj для каждого представления? У меня уже есть класс BOboj, но он не содержит всех полей.
При вставке данных я должен использовать мой BOboj, однако при перечислении данных я использую представления, в этом случае должен ли я создать другой класс BOboj_view для каждого вида или другого? Каков способ облегчения этого?
например; У меня есть 20 видов и 40 классов, которые сопоставлены с каждой таблицей на сервере sql. Мои представления собирают таблицы данных с разными значениями (это означает разные объекты). Должен ли я создать еще 20 классов, кроме 40, которые представляют представление?
OBJ
class BOboj {
private int _PId;
private string _Name;
.......
.......
}
ДАЛ
BOboj_DAL {
public bool Add(BOboj obj)
{
using (SqlConnection con = Connect.connect)
{
string sql = "insert into Persons (Id,Name,
.......
.......
}
BBL
BOboj_BLL {
.......
.......
public bool Add(BOboj_DAL obj)
{
BOboj_DAL bb_dal = new BOboj_DAL();
try
{
return bb_dal.Ekle(obj);
}
catch (Exception)
{
throw;
}
finally { bb_dal = null; }
}
.......
.......
}
Presantaon Слой
protected void Add(object sender, DirectEventArgs e)
{
BOboj_BLL bll_= new BOboj_BLL();
BOboj obj_ = new BOboj
{
Name = Name.Text,
..............
...............
};
bll_.Add(obj_);
}
Спасибо.
Пойдите, хотя это поможет - http://stackoverflow.com/questions/3737848/creating-a-loosely-coupled-scalable-software-architecture –
Да, это правильная реализация. Преимущество такого подхода заключается в том, что вы можете ловить исключения на каждом уровне изящно – Bunny
спасибо u для edditing. –