2009-09-10 1 views
2

저는 회사의 CTO이자 독점 개발자입니다. 나는 우리의 첫 번째 개발자를 고용 할 준비를하고 있으며, 앞으로 6-12 개월 이내에 초를 준비 할 것입니다. 내 작업 흐름의 일부로 소스 코드 컨트롤을 사용한 적이 없다고 말하는 것은 당혹 스럽다. 나는 1 인 개발 팀이되어서 나를 조금 게으른 것으로 생각했다. 내가 원했던 것이 아니라, 시작하는 방법에 대한 약간의 정신적 장애가 있습니다.단일 클래스 라이브러리에 종속 된 여러 제품으로 소스 제어를 설정하는 방법

우리는 내가 구축하고 유지 관리하는 5 개의 웹 응용 프로그램을 가지고 있습니다. 우리는 ASP.NET을 사용하고 각 웹 응용 프로그램은 각 응용 프로그램의 "bin"폴더에 복사 된 단일 .NET 클래스 라이브러리 (DLL)를 참조합니다. 나는 클래스 라이브러리와 모든 웹 어플리케이션을 포함하는 하나의 비주얼 스튜디오 "솔루션"으로 개발 해왔다. 조금 비싸지 만,이 방법을 사용하면 모든 앱 (및 클래스 라이브러리)에서 전역 찾기 및 바꾸기 작업을 동시에 수행 할 수 있으므로 실수를 최소화하는 것이 쉬워졌습니다.

소스 코드 컨트롤을 구현하는 것이 내 워크 플로에 큰 변화임을 알았지 만 다른 개발자를 내 프로세스에 추가하는 것은 다소 압도적이었습니다. 소규모 팀이 성가신 프로세스없이 신속하게 이동할 수있는 워크 플로를 개발하는 방법에 대한 지원을 찾고 있습니다. 어떤 SCC 시스템을 선택할 지에 대한 논의는 피하고 싶습니다. (우리는 Mercurial을 사용할 것입니다.) 나는 이것의 구조 및 워크 플로우 측면에 대해 더 관심이있다. 여기

내가 도움이 필요 질문입니다

  1. 내가 별도의 "프로젝트"에 각 응용 프로그램을 분할해야 또는 우리가 세계의 혜택을 계속할 수 있도록 모두 함께 유지 찾기 및 교체 필요한 경우 작업. 나는 클래스 라이브러리 상황 (# 2 참조) 때문에 그들을 분할하는 것에 대해 걱정하고있다.

  2. 개별 프로젝트로 분할하는 경우 각 프로젝트에 사본이 필요한 클래스 라이브러리를 진행하는 방법을 모르겠습니다. 예를 들어 앱 중 하나 ("프로젝트 1"이라고 함)를 변경하려면 클래스 라이브러리를 변경해야한다고 가정 해 봅시다. 클래스 라이브러리가 별도의 프로젝트 ("프로젝트 2"라고 함)에 있으면 프로젝트 1이 올바르게 작동하려면 프로젝트 2의 최신 변경 사항에 의존하게 될 것입니다. 또는 프로젝트 2 (클래스 라이브러리)를 변경하고 체크인 한 다음 새로 컴파일 한 dll을 프로젝트 1에 복사합니다 (단, 프로젝트 1에 복사되는 dll의 새 복사본은 어떻게 든 SCC). 이 글을 쓰는 동안 혼란 스러울 것입니다 ...

미리 도움을 주셔서 감사합니다.

답변

1

먼저 소스 컨트롤을 사용하기로 결정한 것을 축하합니다. 나는 당신의 습관을 바꾸는 것이 좌절 할 수 있다는 것을 알고 있지만 장기적으로 볼 때 이점을 보게 될 것입니다.

  1. 여러 프로젝트가있는 솔루션에는 아무런 문제가 없습니다. 나는 일반적으로 약 10 정도를 유지하지만로드 시간을 향상시키는 것뿐입니다. 그 (것)들을 함께 지키는 것이 당신을 위해 잘 작동하는 경우에, 그것을 저쪽으로 남겨 두십시오. 소스 컨트롤의 사용은 이에 영향을주지 않습니다.
  2. 클래스 라이브러리에 관한 한, 라이브러리 프로젝트를 참조하는 프로젝트를 사용하는 방법보다는 라이브러리 프로젝트를 변경하는 방법을 변경하는 것이 필요하다고 생각합니다. 하위 버전과의 호환성을 강화하기 위해 라이브러리 프로젝트의 단위 테스트를 구현하여 최신 버전의 라이브러리를 삭제해도 앱이 손상되지 않는다는 것을 알 수 있습니다. 당신은 이것이 실제로는 몇 번이나 사실이 아닐 것입니다 만, 엣지 케이스를 다루기 위해 더 많은 단위 테스트를 개발하면 점점 줄어들 것입니다.
0

단일 Visual Studio 솔루션에서 여러 프로젝트를 가질 수 있습니다. 과거에 내가 한 것은 ASP.NET 프로젝트와 클래스 라이브러리 프로젝트를 같은 솔루션에 포함시키는 것입니다. ASP.NET 프로젝트에서 클래스 라이브러리 프로젝트 (참조 추가 및 프로젝트 탭으로 이동하여 같은 솔루션에서 다른 프로젝트를 표시)를 참조하도록 할 수 있습니다. 그렇게하면 클래스 라이브러리를 변경할 때마다 ASP.NET 응용 프로그램이 최신 버전의 클래스 라이브러리를 사용하여 빌드됩니다. 여러 솔루션을 설정할 수 있습니다. 하나는 클래스 라이브러리 프로젝트를 비롯한 각 솔루션의 각 ASP.NET 응용 프로그램에 대한 솔루션입니다.

또한 모든 ASP.NET 프로젝트와 클래스 라이브러리를 사용하여 하나의 대규모 솔루션을 설정할 수 있지만 특히 여러 ASP.NET 개발자가 여러 ASP.NET 페이지에서 작업 할 때 약간의 어려움이있을 수 있습니다.