단일 클래스 라이브러리에 의존하는 여러 제품으로 소스 컨트롤을 설정하는 방법

StackOverflow https://stackoverflow.com/questions/1406653

문제

저는 회사의 CTO이자 단독 개발자입니다. 나는 첫 번째 개발자를 고용 할 준비를하고 있으며 향후 6-12 개월 안에 1 초를 고용 할 준비를하고 있습니다. 워크 플로의 일부로 소스 코드 컨트롤을 사용한 적이 없다고 말하는 것이 부끄럽습니다. 나는 1 인 개발 팀이되어 조금 게으르다 고 생각합니다. 내가 원하지 않았던 것이 아니라, 나는 그것을 시작하는 방법에 대한 정신적 블록이 약간 있습니다.

제가 구축하고 유지 관리하는 5 가지 웹 응용 프로그램이 있습니다. 우리는 ASP.NET을 사용하고 각 웹 앱은 각 앱의 "bin"폴더에 복사 된 단일 .NET 클래스 라이브러리 (DLL)를 참조합니다. 클래스 라이브러리와 모든 웹 앱을 포함하는 단일 Visual Studio "솔루션"을 개발하고 있습니다. 약간 부풀어 오른 것은 확실하지만,이 방법을 사용하면 모든 앱 (및 클래스 라이브러리)에서 동시에 글로벌 찾기 및 교체 작업을 수행하여 실수를 최소화 할 수있게되었습니다.

소스 코드 제어를 구현하는 것은 내 워크 플로 자체에 큰 변화가 있다는 것을 알고 있지만 다른 개발자도 내 프로세스에 소개하는 것은 약간 압도적입니다. 나는 작은 팀이 번거로운 프로세스없이 빠르게 움직일 수있는 워크 플로를 개발하는 방법에 대한 도움을 찾고 있습니다. 어떤 SCC 시스템을 선택 해야하는지에 대한 토론을 피하고 싶습니다 (우리는 Mercurial을 사용할 것입니다). 나는 이것의 구조와 워크 플로 측면을 논의하는 데 더 관심이 있습니다.

도움이 필요한 질문은 다음과 같습니다.

  1. 각 앱을 별도의 "프로젝트"로 나누거나 모두 함께 유지하여 필요할 때 글로벌 Find-and-Replace 작업의 혜택을 계속 유지할 수 있도록해야합니다. 클래스 라이브러리 상황으로 인해 나누는 것이 걱정됩니다 ( #2 참조).

  2. 앱을 별도의 프로젝트로 나누는 경우 각 프로젝트에 사본이 필요한 클래스 라이브러리를 진행하는 방법을 잘 모르겠습니다. 예를 들어, 앱 중 하나에 대한 변경 사항 ( "Project 1"호출)에 클래스 라이브러리 변경이 필요하다고 가정 해 봅시다. 클래스 라이브러리가 별도의 프로젝트에있는 경우 ( "Project 2"라고 부르면) IT 프로젝트 1이 올바르게 작동하기 위해 프로젝트 2의 최신 변경에 의존 할 것이라고 "지저분한"것 같습니다. 아니면 단순히 프로젝트 2 (클래스 라이브러리)를 변경하고 확인한 다음 새로 편집 한 DLL을 프로젝트 1에 복사합니까 (그러나 프로젝트 1에 복사되는 새 사본은 SCC는 어떻게 든). 이 글을 쓸 때도 혼란 스러워요 ...

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

도움이 되었습니까?

해결책

먼저, 최종적으로 소스 제어를 사용하기로 결정한 것을 축하합니다. 나는 당신의 습관을 바꾸는 것이 실망 스러울 수 있다는 것을 알고 있지만 장기적으로는 당신이 이점을 볼 것이라고 확신합니다.

  1. 여러 프로젝트가있는 솔루션에는 아무런 문제가 없습니다. 나는 일반적으로 내 것을 약 10 명으로 유지하지만 단순히 부하 시간을 개선하기위한 것입니다. 그것들을 함께 유지하는 것이 당신에게 더 잘 작동한다면, 그대로 두십시오. 소스 제어의 사용은 이것에 영향을 미치지 않습니다.
  2. 클래스 라이브러리까지, 나는 당신이해야 할 일이 당신이 그것을 참조하는 프로젝트를 사용하는 방법보다는 도서관 프로젝트를 변경하는 방법을 바꾸는 것입니다. 라이브러리 프로젝트에서 단위 테스트를 구현하여 뒤로 호환성을 시행하므로 최신 버전의 라이브러리를 삭제하면 앱이 깨지지 않을 것입니다. 이것이 몇 번 사실이 아니라는 것을 알게 될 것입니다. 그러나 에지 케이스를 처리하기 위해 더 많은 단위 테스트를 개발함에 따라 이렇게하면 점점 줄어 듭니다.

다른 팁

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

또한 모든 ASP.NET 프로젝트와 클래스 라이브러리로 하나의 큰 솔루션을 설정할 수도 있지만 특히 여러 ASP.NET 페이지에서 작업하는 여러 개발자와 함께 작업하기가 어려울 수 있습니다.

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