2011-12-15 5 views

답변

2

이전 답변에서 설명한 것처럼 논리 계층을 BusinessLogic (엔터티, 유효성 검사 등), 데이터 (즐겨 사용하는 ORM) 및 프레젠테이션 (MVC)으로 구분해야합니다.

그러나 아직 시작하지 않았다면 SOLID 아키텍처의 모든 고급 개념을 통합하는 것이 다소 어려울 수 있습니다.

논리적 계층을 분리해도 항상 별도의 프로젝트를 의미하지는 않습니다. 표준 MVC3 템플릿은 이것을 "Models"폴더와 함께 보여줍니다. 이것에 추가 된 엔티티는 Myproject.Models 네임 스페이스 아래에 있습니다. 나중에 Model 폴더의 코드를 별도의 dll로 다시 팩할 수 있고 참조를 추가 할 수 있으며 네임 스페이스가 여전히 Myproject.Models 인 한 MVC 앱은 계속 작동합니다.

데이터 액세스 레이어에서도 동일한 작업을 수행 할 수 있습니다.

방금 ​​시작한 경우 MVC 프로젝트에서 앱을 개발하고 DAL과 비즈니스 레이어를 폴더 (네임 스페이스)로 구분하는 것이 좋습니다. 응용 프로그램이 작동하면 필요에 따라 다시 팩터링 할 수 있습니다.

3

일반적으로 물건을 분리 된 상태로 유지하는 것이 좋습니다.

나는 비즈니스 로직을 데이터베이스 관리 코드와 섞지 않고 뷰 파일에 비 UI 코드를 갖는 것을 의미합니다.

이렇게하면 작성한 코드를 다른 사람들이 이해하는 것이 훨씬 쉬워집니다. 또한 시간을 들여 프로젝트를 다시 시작하거나 오류를 수정하려고 할 때 도움이됩니다.

다시 촬영하지 않으면이 질문에 대한 답변을 보내주십시오.

편집 :이 MVC 프레임 워크에서 어떻게 수행되는지 설명하는 link을 발견했습니다.

3

layered architecture을 사용하면 Separated Interface 패턴을 사용하여 각 레이어를 격리 할 수 ​​있습니다. 데이터베이스의 경우 Repository pattern을 사용하십시오 (가장 쉬운 방법은 nhibernate과 같은 ORM을 사용하여 보관하는 것입니다).

inversion of control container을 사용하면 (인터페이스를 사용하여) 결합을 줄이고 클래스 간의 종속성을보다 쉽게 ​​처리 할 수 ​​있습니다.

관련 문제