2010-02-17 6 views
5

저는 현재 모든 클래스에 대해 App_Code 폴더를 사용하고 있습니다. 현재 (나에게는) 잘 작동하는 것 같습니다.클래스 라이브러리 프로젝트 VS App_Code - 장점/단점?

내가 그러나 대신 App_Code 폴더의 내 솔루션 내에서 클래스 라이브러리 프로젝트를 통해 전환을 고려하고있다. 누구든지이 일을하는 데 찬반 양론을 말할 수 있습니까? 내가 가진

한 생각은 내 웹 응용 프로그램을 테스트에 관해서였다. 클래스 라이브러리를 사용하는 경우 조정/테스트 할 때마다 컴파일해야합니까? 분명히 App_Code 폴더에서 모든 클래스가 런타임에 컴파일 될 필요가 없습니다.

+0

는 http://stackoverflow.com/questions/398037/asp-net-web-site-or-web-application – womp

답변

6

클래스 라이브러리를 사용해야합니다. 그 이유는 간단합니다.

당신은 UI에서 귀하의 비즈니스 또는 응용 프로그램 논리를 제거 할. App_Code 폴더는 UI 만 처리하는 클래스 용입니다.

분리 이유는 계층을 만드는 것입니다. 오늘 당신이 웹 사이트를 가지고 있다는 것을 의미합니다. tommorow 당신은 Windows 프로그램이나 새로운 웹 사이트를 만들도록 요청받을 수 있습니다. UI를 변경해야한다면 코드를 복사하여 붙여 넣을 것입니다. 즉, 코드를 유지 관리 할 장소가 2 개 이상 있어야합니다. 이것은 2 개 이상의 장소에서 동일한 버그를 수정하여 코드 품질이 떨어집니다.

코드를 라이브러리에 배치하는 경우. 새 UI를 만든 다음 라이브러리를 참조하기 만하면됩니다. 이제 한 세트의 코드 만 사용하고 있습니다.

+0

이것은 훌륭한 대답, 완벽한 의미가 있습니다 하나입니다. 위의 질문에 클래스 라이브러리를 반복적으로 컴파일해야한다는 언급이있었습니다 ...이 문제를 해결하는 방법이 있습니까? –

+0

그래서 대답은 내가 팅겨보고 모드를 만들 때마다 컴파일해야한다는 것입니다. –

+0

변경하지 않은 경우 비즈니스 논리를 컴파일 할 필요가 없습니다. 컴파일하는 데 많은 시간이 걸리지는 않으며 모든 코드를 UI 레이어에 보관할 필요가 없습니다. –

0

Jimmy Bogard (Automapper의 저자)는 자신의 코드를 어떻게 구성했는지에 대해 article을 작성하여 @ David의 답변을 확인하는 데 도움이 될 수 있습니다.

관련 문제