2010-04-12 2 views
1

안녕하세요 저는 Entity Framework 4를 사용하여 N-Teir 웹 사이트를 만드는 작업을 맡았으며 제 지식에 비해 벽돌 벽을 오가고 있습니다. Entity Framework 4 웹 사이트 아키텍처

내 계획

지금까지이 층

웹 사이트 (응용 계층)을 가지고 있었다
내가 Name.Framework (BLL),
Name.Data (DAL),
이름을 호출하고 있습니다. 엔티티 (POCO 클래스와 웹 사이트/BLL에 사용되는 다른 구조체 클래스를 포함
Name.Common 내가 저장소 클래스를 사용하려고했지만, 내가 생각 그들이 어떻게 사물이 작동 할 것입니다 고군분투

(유틸리티 클래스) 아래에 몇 가지 예가 있습니다. 에.

.include()를 사용하려는 경우 이것이 내 저장소에 있거나 비즈니스 계층의 책임입니까? (그리고 나는 이것이 BLL에서 어떻게 작용할 것 인 지 전혀 모른다)

.Order()와 같은 질문? 내가 이해하기에 이것은 저장소에 있어야하거나 적어도 어떤 방법으로 repo에 전달되어야합니까?!?

BLL을 사용하여 컨텍스트에서 저장소/데이터 계층으로 전달해야합니까? 데이터 레이어에서 엔티티를 얻는 순간 Repo에서 참조되지 않은 탐색 속성이 'Object Context Disposed'로 돌아오고, 비즈니스 레이어가 여전히 컨텍스트 등을 보유해야만 이런 일이 발생하지 않을까요?

또는이 도움말을 요약하십시오!

프로젝트 리더가 Entity Framework를 계속 사용할지 아니면 사내에서 NHibernate로 이동할지 알고 싶어하는 내일 (eek!)의 순서대로이 작업을 수행해야합니다. .

어떤 도움을 주셔서 감사합니다이나 제안 매트

나는 현재와 웹 취미 프로젝트에서 일하고 있어요

답변

1

내가 직접 발견 한 비슷한 것을 찾으신다면 this입니다. 지금은 너무 많이 들여다 보지 않지만 유망 해 보입니다.

1

EF4 코드 전용, 나는 다음과 같은 구조를 가지고 곳 ([이름] 내 프로젝트의 이름 인) :

  • [이름] .web을 -하는 ASP.NET MVC 2 프로젝트
  • [이름] .Web.Models - 사용자 정의보기 모델 내 개체로부터 AutoMapper 매핑과 함께 객체를
  • [이름] .Models 내 POCO 클래스 및 reposito에 대한 인터페이스 RIES
  • [이름] .DataAccess - 예를 들어, 데이터 액세스와 관련된 일부 인터페이스는 IUnitOfWork
  • [이름] .DataAccess.EF - 모든 엔티티 프레임 워크 관련 클래스와 인터페이스

는 또한 테스트 프로젝트가 위의 각각에 대해 헬퍼와 테스트를위한 확장을 포함한 몇 가지 프로젝트가 추가되었습니다.

이 취미 프로젝트의 목적 중 일부는 나 자신이 선택한 디자인 패턴으로 EF4를 사용하는 방법을 배우는 것이라고 언급 할 수 있습니다 (이 프로젝트에서 EF와 관련된 것은 저장소 패턴과 작업 단위 패턴).또 다른 부분적인 목적은 나중의 프로젝트에서 재사용 할 수있는 코드 기반을 구축하는 것이고, 이는 내 애플리케이션에서 프로젝트 간의 구분에 영향을 미쳤습니다. 예를 들어 재사용에 신경 쓰지 않는다면 아마 모든 데이터가 두 개가 아닌 하나의 프로젝트에서 관련 클래스에 액세스하게하십시오.

0

나는 기본 EF, 마시고, 저장소를 구현 한, UnitOfWork에 아키텍처는 대부분 여기에이 기사를 다음

http://devtalk.dk/CommentView,guid,b5d9cad2-e155-423b-b66f-7ec287c5cb06.aspx

는 나는 이러한 노력에 매우 도움이 될 것으로. 도움이되는지는 모르지만 다른 사람들은 링크에 관심이있을 수 있습니다.

+0

당신이 제공 한 링크는 현재 불행하게도 죽었습니다. –