2009-10-30 4 views
4

웹 응용 프로그램 프로젝트, 클래스 라이브러리, 데이터베이스 프로젝트 및 테스트에 대한 해결책이 있습니까? 또는 여러 솔루션으로 분할합니까? 왜?Visual Studio에서 ASP.net 소스를 어떻게 구성합니까?

우리는 Visual Studio 2010에 대해이 시나리오를 간소화하기 위해 노력하고 있으며 내가 원하는 방식으로 커뮤니티에서 의견을 얻고 싶습니다.

답변

3

나는 작업 당 하나 개의 솔루션을 가지고 (항상은 아니지만) 경향이있다,하지만 난에 대한

내 실제 솔루션 등, 나는 일반적인 사용자 컨트롤과 클래스를 유지하는 등 내 WebControlLibrary 같은 다른 솔루션에서 existings 프로젝트를 가져 작업이 내가 다음 웹 응용 프로그램, 비즈니스 로직 계층, 데이터 액세스 레이어와 엔티티 레이어, 즉으로 분해하는 경향이 프로젝트는 모바일 장치로 무언가를 필요로하는 경우

Solution 
...MyCompany.WebControlLibrary 
...Project 
...Project.BusinessLogic 
...Project.DataAccess 
...Project.Entities 
...Project.Scripts 
...Project.Testing 
...Project.Deployment 

, 나는 항상 놓을 게요 새로운 솔루션에서, 현재 솔루션의 일부 프로젝트, 즉

을 공유 할 수 있습니다.
MobileSolution 
...MobileProject 
...Project.Entities 
...MobileProject.BusinessLogic 

더 많은 '물건'을 결합하면 더 느린 비주얼 스튜디오가 제작자가됩니다. 분명히 기본적으로 빌드되는 특정 프로젝트를 중지 할 수는 있지만, 빌드 구성을 직접 만들어야하는 경우입니다. 대규모 응용 프로그램을 만들려면 여러 솔루션으로 나누는 것이 좋습니다. 빌드 구성을 변경하지 않고 계속 유지하는 솔루션 사이를 쉽게 훑어 볼 수 있습니다.

또 다른 옵션은 프로젝트를 빌드 할 때 해당 DLL을 참조 할 수 있다는 것입니다. 디버그 또는 릴리스 폴더에서 DLL을 선택하는 것과 같은 빌드 구성을 참조하는 것에 대해 걱정할 필요가 없으므로 해당 프로젝트를 내 솔루션으로 가져 오는 것이 좋습니다.

+0

답장을 보내 주셔서 감사합니다. Project.Deployment에 대해 좀 더 자세히 설명해 주시겠습니까? 어떤 유형의 프로젝트입니까? 전체 배포를 자동화합니까? 하나 또는 여러 대상 환경을 대상으로합니까? –

+0

이것은 프로젝트 유형의 예일뿐입니다. 설치 프로젝트, 웹 배포 프로젝트 등이 될 수 있습니다. 솔루션에 이러한 항목을 보관하는 경향이 있지만 빌드 순서에서 제거하는 경향이 있습니다. – GenericTypeTea

+0

빌드 순서에서 제거하면 별도의 구성 (일반적으로 로컬 데스크톱 빌드에 사용하지 않는 구성)으로 빌드합니까? –

0

독립 실행 형 라이브러리는 자체 솔루션 일 수 있습니다. 해당 라이브러리에 대한 참조는 작업중인 프로젝트로 만들 수 있습니다. 웹 응용 프로그램과 같은 관련 항목, 테스트 설정 및 데이터 액세스 또는 비즈니스 규칙과 같은 특정 라이브러리를 하나의 솔루션으로 프로젝트로 설정할 수 있습니다. 당신이 재현성을 위해 물건을 부러 뜨 리길 바라는 정도가 정말 모두에 달려 있습니다.

+0

데이터베이스 구성 요소는 어떻습니까 (스크립트, s- 프록 등 생성)? 데이터베이스 프로젝트를 사용합니까 아니면 다른 방식으로 관리합니까? –

+0

나는 그것을 두 가지 방법으로 해왔다. 그것들은 솔루션 내부에 '폴더'로 포함되어 있으며 팀이 볼 수있는 위키에서 업데이트되거나 SVN과 같은 소스 제어 솔루션 내에서 별도의 저장소를 통해 관리됩니다. VS에서 프로젝트로 몇 번 포함되어 Visual Studio 내에서 편집 된 것을 보았습니다. – Chris

0

이것은 프로젝트에서 수행하는 작업에 따라 조금씩 다릅니다.

사용하기 쉽도록 필요한 모든 프로젝트가 포함 된 솔루션을 간단하게 만들 수 있습니다. 이것이 대용량 솔루션이라면 IDE가 느리게 시작되어 지붕을 통해 로켓을 빌드하기 시작할 때 나중에이 작업을 방해 할 수 있습니다.

프로젝트 중 하나가 회사에서 카드 결제를 받고 3D 보안 인터페이스로 사용하는 라이브러리라고 가정 해 봅시다. 당신은 당신이 세부 사항 등등을 가지고 자신의 GUI 페이지를 제시했습니다.

모든 카드 결제를하는 수많은 사이트가 있었다면이 솔루션을 별도의 솔루션으로 사용하고 컴파일 된 dll을 참조하면 큰 도움이됩니다. 변경이 필요한 경우 솔루션을 열고 변경하고, 빌드하고, 작업중인 솔루션으로 이동하여 테스트해야합니다. 피타 (피타)처럼 들리 네요. 하나의 커다란 솔루션으로 모든 것을 가지고있는 것이 더 간단합니다. 그러나 모든 솔루션에이 라이브러리가 있고 일반 라이브러리를 변경하면이 변경 사항을 반복해야합니다.

다른 솔루션에서 사용할 수있는 동일한 솔루션이나 다른 프로젝트에서 별도의 프로젝트를 개발할 때 결정해야합니다. 라이브러리보다 많은 기능이 필요하다면 프로젝트에 부분 클래스를 구현하고 그런 식으로 라이브러리를 확장 할 수 있습니다. 아니면 래퍼 클래스로 충분할 것입니다.그러나이 라이브러리를 사용하는 다른 사이트에 영향을 미치지 않고 개발 중 더 작은 메모리 인쇄로 솔루션을 작고 관리하기 쉽게 유지할 수 있다는 것을 알고 있습니다.

관련 문제