내가 만든 모든 응용 프로그램에서 사용하는 도우미 프로젝트가 있습니다. 여기에는 몇 가지 확장 메서드와 많은 일반 도우미 클래스, 컨트롤 등이 포함되어 있습니다. 도우미 프로젝트를 수시로 업데이트 / 확장합니다. 이들은 일반적으로 규모가 작고 관련이없는 프로젝트이며, 나는 그들 모두에서 일하는 유일한 사람입니다.
나는 그것을 사용하기 위해 두 가지 접근법을 시도했다.
- 내가 사용하는 각 프로젝트에 .cs 파일을 직접 추가 (링크로 추가)
- .dll로 컴파일하고 참조로 추가하십시오.
이러한 접근 방식의 장점과 단점이 있습니다.
첫번째:
- 도우미 클래스가 exe 파일로 컴파일되기 때문에 더 간단합니다. 따라서 종종 잘 작동하는 단일 .exe 파일을 매우 쉽게 제공 할 수 있습니다. 링크로 추가하기 때문에 도우미를 사용하는 프로젝트를 빌드 할 때마다 도우미 파일이 최신 버전이 될 것입니다.
- .NET 4.0에서 잘 실행되는 확장 방법을 .NET 4.5가 필요한 확장 방법과 별도로 참조 할 수 있도록 파일을 분리 할 수 있기 때문에 훨씬 간단합니다. 따라서 앱 전체가 .NET 4.0에서 실행될 수 있습니다
- 중단 점 등의 모든 이점과 함께 코드를 통해 디버그 할 수 있습니다 ...
- '모범 사례'가 아닌 것 같습니다
두 번째 것 :
- 올바른 접근 방식 인 것처럼 보이지만 다음과 같습니다.
- 별도의 .dll 파일을 제공해야하는데, 어떤 이유로 든 사용자들에게는 훨씬 더 어렵습니다 (.dll없이 프로그램을 공유하는 경향이 있습니다.
- 단일 .dll로 컴파일되면 최상위 버전의 .NET이 필요합니다. 많은 사용자에게는 .NET 4.5가 없으며 내 도우미 클래스의 일부 요소에만 필요합니다. 이유없이 시스템을 업데이트
- 또한 프로그램을 업데이트 할 때마다 .dll 파일도 제공해야합니다. 마지막 버전 이후로 변경되었는지 여부는 알 수 없지만 (있을 수도 있지만 가능하지는 않습니다) 같은 버전 일 수도 있습니다). 어셈블리 버전을 추적하지 않고 추가 작업을 수행하는 간단한 방법을 알 수 없습니다. 지금은 프로그램을 업데이트 할 때 업데이트 된 exe 만 제공하며 작고 낮은 프로파일을 유지하고 싶습니다.
그렇다면 .dll 파일을 사용하면 실제로 어떤 이점이 있습니까? 본인은 모든 응용 프로그램 및 도우미 파일의 코드를 편집하는 유일한 사람입니다.
또한 명확히하기 위해-응용 프로그램은 일반적으로 매우 작지만 도우미 클래스에 포함 된 코드는 모든 응용 프로그램에 대해 일반적입니다 (일부 간단한 문자열 비교, 경로 또는 XML 작업 등)
실제로 누군가가 지금 세 번째 옵션이 있음을 깨닫게했습니다. separte 프로젝트에 도우미 코드가 있으므로이 프로젝트를 별도의 각 응용 프로그램의 솔루션에 추가 할 수 있습니다. 단일 프로젝트 만 추가하는 것을 제외하고는 단일 파일의 '링크로 추가'와 같은 방식으로 작동합니다 ...하지만 Doc Brown이 알 수 있듯이 이것은 본질적으로 .dll을 프로젝트에 추가해야한다는 것을 의미합니다 ...
dll 파일을 사용하지 않는 데 도움이되는 또 다른 것은 도우미 클래스를 적극적으로 디버깅하는 기능입니다 ...