문제

비교적 작은 ASP.NET 웹 응용 프로그램을 연구하고 있으며 전체 N-Tier 아키텍처를 사용해야 할 필요가 있는지 궁금합니다. 크기에 대한 아이디어를 위해; 약 20 개의 데이터베이스 테이블이 있습니다.

과거에는 비즈니스 로직 및 데이터 액세스가 단일 클래스 라이브러리로 그룹화되는 2 계층 접근법을 사용하여 UI 계층을 형성하는 ASP.NET 웹 애플리케이션으로 작동하는 것처럼 보였습니다.

N-Tier를 사용해야하는 임계 값 크기 또는 경험 규칙이 있습니까?

도움이 되었습니까?

해결책

지금은 상대적으로 작지만 앞으로 성장할 것이라고 생각하십니까? 당신의 과정에서 당신은 실용적이어야하지만, 이미 단일 어셈블리 내에서 자연스러운 관심이 있다면 두 개 이상의 어셈블리로 분할하기가 상당히 쉽습니다. 클래스 자체가 비즈니스 로직과 데이터 액세스를 결합하면 더 많은 작업을 수행 할 수 있습니다. 그러나 나는 한 어셈블리에 데이터 액세스 로직을 작성하고 필요한 경우 동시에 비즈니스 로직에 데이터 액세스 로직을 작성하는 것이 거의 더 이상 작동하지 않는다고 주장합니다.

다른 팁

어떤 종류의 성장이나 변화를 예상한다면, 그것은 지금 명시적인 계층을 강화하는 데 도움이 될 것입니다. 그러나 이것이 당신의 프로젝트이고 당신이 변화 비용이나 엄격하게 통합 된 코드를 조랑말로 조롱하지 않는다면, 하나의 계층처럼 해킹하십시오.

그것은 미래의 비용에 관한 것입니다. 현재, 당신이 갈 때 프로그래밍하는 것은 가장 저렴하지만 변화에 잘 대응하지는 않습니다. 계층 계획에는 선불 비용이 있지만 첫 번째 접근 방식보다 변화를 처리하고 전체 레이어 구현을 더 잘 찢을 수 있습니다.

따라서 귀하의 경험 법칙은 누가 변경 비용과시기를 지불 할 것인지에 의해 지배됩니다.

예, 그만한 가치가 있습니다. 당신이 제안하는 것은 솔루션을 함께 해킹하는 것입니다. 나는 이것이 나를 몇 번이나 고통과 고통을 가져 왔는지 말할 수 없다. 그 동전의 다른 쪽은 솔루션을 과도하게 빌드하는 우주 사법 개발자입니다. 당신도 이것을 피하고 싶습니다.

간단하고 3 개의 레이어를 만들고 LINQ에서 SQL을 시도하고 DAL을 구축하는 것이 좋습니다. 그런 다음 슬림 UI를 구축하는 데 집중할 수 있으며 무거운 리프팅을 처리하는 BLL에 집중할 수 있습니다. 그렇게하는 데 훨씬 더 오래 걸리지 않으며 나중에 단위 테스트를 허용합니다.

N-Tier를 사용해야하는 임계 값 크기 또는 경험 규칙이 있습니까?

내가 알고있는 사람은 아니지만 이것을 버릴 것입니다.이 웹 앱이 성장할 수있는 기회가 있거나 다른 사람이 그것을 유지할 수있는 기회가 있다면, N과 함께가는 것을 고려할 것입니다. -테리어 접근.

가능하게 유지하십시오. 지금은 과잉 일지 모르지만 불가능한 상황에 자신을 쓰지 마십시오. 대규모로 리팩토링하면 처음부터 재건하는 것보다 시간이 오래 걸릴 것입니다 (처음부터 재건 될 수 있습니다).

내가 마지막으로 일한 프로젝트 (늦게 나왔음)는 계층을 분해하는 것이 실제로 불가능한 방식으로 작성되었습니다. 비즈니스 로직과 짜여진 데이터 논리는 프리젠 테이션 로직과 짜여져 있습니다. 단기적으로, 몇 달이 걸렸을 것이기 때문에 그것은 그 어느 때보 다 좋았습니다.

앞서 말한 것처럼 모든 것을 분리하는 것은 그리 어렵지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top