2012-05-31 5 views
2

현재 ASP.Net Webforms를 사용하여 새 웹 사이트 개발을 시작했습니다. 이 프로젝트에 적절한 시작을 제공하기 위해 애플리케이션의 비주얼 스튜디오 솔루션 설정을 조사 중이며, 여기서 애플리케이션은 크기 (코드 행)가 동일한 쉽게 인식 할 수있는 구성 요소로 구성되기를 원합니다.Visual Studio 솔루션 내의 여러 웹 응용 프로그램 프로젝트

프로젝트가 실제로 시작된 것은 아니기 때문에 표준 3 단계 설정 (데이터, 비즈니스 로직 및 프리젠 테이션)으로 솔루션을 구성했습니다. 이 설정은 프로젝트 시작시에 문제가 없지만 프로젝트가 성장함에 따라 곧 3 단계가 커지면서 탐색 및 코드 찾기가 어려워 져서 유지 보수성과 전반적인 품질을 해칠 것입니다.

그래서 프로젝트 중에 각자 자신의 3 단계 설정이있는 기능 구성 요소를 형성하는 새로운 설정으로 변환하고 싶습니다. 예 : 웹 사이트에는 장바구니와 사용자 계정을 만들고 관리하는 옵션이 있습니다. 또한 여러 구성 요소에서 사용되는 stull 구성 요소가 있어야합니다.이 예제에서는이 구성 요소를 공통적으로 호출합니다.

  • Project.Common.Business에게

    • Project.Common.Data
    • Project.Common.Presentations

  • 을 :

    일반적인 파일 : 즉, 다음과 같은 설정으로 이어질 것 장바구니 :

    • Project.Shop pingcart.Data
    • Project.Shoppingcart.Business
    • Project.Shoppingcart.Presentations

    계정 관리 :

    • Project.Account.Data
    • Project.Account.Business
    • Project.Account.Presentations

    웹 사이트 :

    • Project.Website.Data
    • Project.Website.Business
    • Project.Website.Presentations

    샘플 위의 각 세 가지 프로젝트가 포함되어 세 가지 구성 요소가 있습니다. 각 구성 요소에는 웹 파일 (페이지, 컨트롤, 프런트 엔드 코드)을 포함하는 하나의 웹 응용 프로그램 프로젝트가 있습니다. 내 모든 이전 .Net 프로젝트에는 모두 간단한 웹 응용 프로그램 프로젝트가 있었기 때문에이 설정은 나에게 새로운 경험이었습니다.

    웹 사이트와 구성 요소를 쉽게 디버깅 할 수있는 솔루션을 하나의 응용 프로그램으로 사용하고 싶습니다. 이것을 달성하기 위해 "Project.Web.Presentation"웹 응용 프로그램 프로젝트가 기본 웹 응용 프로그램 프로젝트 여야한다고 가정합니다.이 설정이 방법은, 내가 여러 가지 방법을 시도 해결 가능하지만 아무도 지금까지 잘 작동하지 않은 경우 저는 현재 조사하고 있습니다 :

    • 별도로 모든 웹 응용 프로그램 프로젝트를 실행, 이것은 잘 작동하지만 난에이 별도로 모든 응용 프로그램을 실행하고 디버깅 할 때 끔찍한 동일한 포트에서 실행할 수 없습니다.

    • 다른 프레젠테이션 프로젝트의 파일을 "Project.Web.Presentation"프로젝트에 대한 링크로 추가하고 해당 프로젝트를 시작 프로젝트로 설정하십시오. 디버그 시간에 파일이 없기 때문에이 기능이 작동하지 않습니다. 배포 패키지를 빌드 할 때 제대로 작동하는 것 같습니다. 나는 어떻게해서든지 복제 된 파일이 버전 제어에서 끝나지 않도록해야하기 때문에 파일을 복사하고 싶지 않습니다.

    지금까지 내가 염두에두고있는 설정으로 작업하는 좋은 방법을 찾지 못했습니다. 나는 제안에 감사 드리며 팁을 미리 감사드립니다!

    답변

    2
    나는 비슷한 작업 및 모든 공통 부품 밀어 NuGet을 사용하기로 결정하고있어

    :

    Multi-Project Nuget Issues

    Updating Files in Existing Nuget Package

    Visual Studio Multi-Project Solution Options

    이 작업을 수행 할 수있는 유일한 다른 방법 중첩 된 마스터 페이지와 게시 빌드 스크립트가 포함되어 있습니다.

    +0

    NuGet을 향해 조종 해 주셔서 감사합니다. 도구가 이런 방식으로 사용될 수 있다는 것을 몰랐습니다. 난 거의 mutiple 웹 프로젝트 작업을위한 완벽한 솔루션을 발견, 나는에 대한 새로운 질문으로 게시 한 remaning 문제가 있습니다 : http://stackoverflow.com/questions/10861130/package-manager-console-commands-in-pre- 빌드 이벤트 – Oskar

    관련 문제