현재 내 웹 사이트에는 사양 패턴이 포함 된 리포지토리 패턴이 있습니다. 나는 코드, 예를 단 몇 줄의 내 .aspx 페이지 내에서 데이터를 얻을 수 있습니다Entity Framework - 비즈니스 계층의 필요성에 대한 의견
private IRepository repository;
protected void Page_Load(object sender, EventArgs e)
{
repository = new GenericRepository();
Specification<Book> specification = new Specification<Book>(b => b.Year == 1988);
lvBooks.DataSource = repository.GetAll<Book>(specification);
lvBooks.DataBind();
}
지금, 나는 내 웹 사이트에 당신의 대답은 '예 경우 비즈니스 계층이 필요합니까되어 내 질문에, 왜? 사양 패턴으로 인해 페이지와 저장소 사이에있는 비즈니스 계층이 필요하지 않은 것처럼 보입니다.
의견을 보내 주셔서 감사합니다.
결국 큰 사이트가 될 것이므로 BLL을 만드라고해야합니까? 이 사양 저장소를 사용하여 비즈니스 계층을 어떻게 보이게해야합니까? (제 저장소는 30 개가 넘는 테이블을 가지고 있으므로 모든 개체에 대한 비즈니스 객체를 작성해야합니까?) – Julian
매우 어려운 질문입니다! UI를 잊어서 시작하고 저장소가 존재합니다. 해당 도메인에 자연스럽게 들어 맞는 API가 있습니다. 리포지토리가 잘 설계된 경우이 API를 쉽게 지원할 수 있어야합니다. 그렇지 않으면 저장소를 변경하고 싶지 않은 경우이 API를 사용하도록 UI를 작성하십시오.이 시점에서 특정 UI 요구 사항을 지원하기 위해 API에 몇 가지 추가 메소드를 추가해야 할 수도 있지만, 가능하다면이 주제에 대해 수많은 책이 쓰여졌습니다 ... 6 줄에서 할 수있는 최선의 방법입니다. –
하하, 고마워. 비록 제네릭 BLL이 특정 엔터티를위한 메서드를 가질 수 없기 때문에 제네릭 리포지토리에 BLL을 빌드하는 작업을한다면이 작업을 할 수있는 방법이 많이 생겼다 고 생각할 것입니다.) – Julian