2016-08-03 1 views
0

오랜 시간 lurker, 처음 포스터. 잘못된 유형의 질문을하는 경우 사과드립니다.여러 솔루션/프로젝트에 사용할 C# 라이브러리를 개발할 때 우수 사례

다양한 C# 프로젝트에서 사용하는 C# 클래스 및 함수가있는 프로젝트가 있습니다. "KitchenSink"라고 부르 자. 다양한 프로젝트를 진행하면서 KitchenSink의 부품을 추가, 제거 및 수정합니다. 어쩌면 나는 CD를 정리하는 응용 프로그램을 만들고있어 KitchenSink에 정렬 루틴을 추가 할 것이다. 그런 다음 이메일을 보내는 앱을 작성하기로 결정했을 수 있으므로 KitchenSink에 메시지를 추가 할 수 있습니다.

현재 내가 작업하고있는 솔루션에 KitchenSink 프로젝트의 최신 버전을 추가 한 다음 해당 솔루션에서 작업합니다. 즉, 나는 다른 솔루션을 시작할 수 없다는 것을 의미합니다. 그 이유는 다른 KitchenSink 버전 때문입니다. 희망적으로 이것은 의미가 있습니다.

여러 프로젝트/솔루션에서 이와 같은 라이브러리를 사용하여 작업하는 가장 좋은 방법은 무엇입니까? KitchenSink와 함께 다양한 프로젝트를 모두 하나의 솔루션으로 묶는 데 미친 생각이 들었습니다. 그렇게하면 KitchenSink를 수정할 때 무엇이 ​​고장 났는지 알 수 있습니다. 그리고 프로젝트를 출시 할 준비가되었을 때, 저는 그것을 KitchenSink를 새로운 솔루션으로 복사 할 수 있습니다.

이것은 아마도 최악의 질문입니다. 죄송합니다.

+0

'이것은 아마도 최악의 질문 일 것입니다. "사실, 나는 이와 같은 질문을 감사 할 수 있습니다. 제 대답은 당신에게 의미있는 것을합니다. 여러 프로젝트에 대한 청사진이나 도우미 역할을하는 코드가 있다면 클래스 라이브러리를 만드는 것이 합리적입니다. 라이브러리를 수정할 때의 결과에 유의하십시오. –

+4

KitchenSink를 너겟 패키지로 배포하면 응용 프로그램에서 응용 프로그램에서 원하는 패키지 버전을 선택할 수 있습니다. 새로운 기능으로 KitchenSink를 업그레이드 할 때 오래된 앱을 수동으로 의도적으로 KitchenSink – Jonesopolis

+0

@ Jonesopolis 버전으로 업그레이드해야합니다.이를 답변으로 게시하고 이러한 작업을 수행하는 방법을 설명해야합니다. –

답변

3

이것은 패키지 관리자가 해결하는 문제입니다.

Nuget을 사용하면 여러 버전의 응용 프로그램을 계속 사용할 수 있으며 누젠 패키지 사용자는 원하는 버전을 선택할 수 있습니다. 응용 프로그램에 KitchenSink의 새 버전이 필요한 경우 Nuget을 통해 수동으로 의도적으로 업그레이드해야합니다.

저는 개인적으로 MyGet 무료 버전을 사용하여 github 계정에 연결하여 나를 위해 Nuget 패키지를 만들고 유지 관리했습니다.

+0

감사합니다. NuGet이 어떤 용도로 사용되었는지 전혀 알지 못했습니다. 나는 곧 그 길로 내려갈 것입니다. 그 동안, KitchenSink가있는 솔루션에서 현재 작업하고있는 많은 프로젝트를 넣는 것이 최악의 아이디어입니까? 그런 식으로 뭔가가 고장 났을 때 알 수 있습니다. 그건 단기적이야. 장기적으로, 나는 NuGet을 사용할 것입니다. 감사. – development

+0

방해받지 않고 실제 작업을 완료하려면 수행해야 할 작업을 수행하십시오. 그러나 그 길을 따라 '정리'에 충분한 시간을 허락하십시오. – Jonesopolis

0

라이브러리로 여러 개의 C# 도우미 프로젝트를 만드는 것을 고려하십시오.

모든 도우미 클래스를 하나의 프로젝트에 넣으면 하루 하루가 길어지며 관리하기 어려울 것입니다. 솔루션의 일부 도우미 클래스를 삭제해야하며 다른 클래스의 새 클래스를 추가해야합니다. 책임에 따라 다른 패키지의 클래스를 분리하면 쉽게 관리하고 재사용 할 수 있습니다.