2012-12-10 2 views

답변

28

단점 :

  • 링크로 추가하면 여러 프로젝트와 많은 소스 파일로 확장 특히, 유지하기 어려울 수 있습니다. 도구 (예 : Visual Studio 2010 용 프로젝트 링커 또는 Visual Studio 2012에서 끌어서 놓는 동안 ALT 유지)를 사용하면이 작업을보다 쉽게 ​​수행 할 수 있습니다.
  • 리팩터링 도구가 링크 된 파일과 작동하지 않습니다. 예를 들어, 링크 된 파일에서 클래스 나 메소드의 이름을 바꾸면 리팩토링 도구는 해당 API의 다른 연결된 사본에 대한 참조를 업데이트하지 않습니다.
  • 링크 된 파일에서 코드를 편집 할 때 intellisense는 파일이 링크 된 모든 플랫폼에서 사용할 수없는 API를 표시 할 수 있습니다.
  • Visual Studio에서 다른 프로젝트에서 이미 연 링크 된 파일을 열려고하면 "이 문서는 다른 프로젝트에서 열립니다."라는 메시지 상자가 나타납니다.
  • 각 플랫폼에 대해 별도의 DLL로 끝납니다. 재사용 가능한 라이브러리를 작성하여 다른 사용자와 공유하려는 경우, 각 플랫폼마다 별도의 버전이 아닌 하나의 버전 만있는 경우 배포가 더 쉽습니다. 휴대용 클래스 라이브러리의

단점은 :

휴대용 클래스 라이브러리를 활용하는 방법에 대한 몇 가지 지침은은, 다음을 참조

필자는 PCL 팀의 일원으로서 휴대용 클래스 라이브러리 (Portable Class Libraries)의 일부분이지만 링크 된 파일은 코드를 공유하는 완전히 유효한 방법이며, 그 단점을 생각하거나 신경 쓰지 말고, 연결된 소스 파일을 사용하십시오. 주로 휴대용 클래스 라이브러리를 사용하지만 PCL이 맞지 않을 때도 연결된 소스 파일을 사용합니다.

+2

이 답변은 나에게 잘 어울립니다. 내가 추가 할 수있는 유일한 점은 링크 된 파일 경로가 요인 N 유지 관리 문제를 추가한다는 것입니다. 필자가 mvvmcross의 링크 된 파일 버전을 유지 보수 할 때 새로운 플랫폼을 추가하는 것은 어려운 일 이었지만 지금은 PCL 코드로 전환했습니다. 새로운 플랫폼을 추가 할 것을 고려하고 있습니다. 추가하는 것이 좋거나 크지는 않습니다. 작업. – Stuart

+3

나는 거짓말을했다. 내가 추가 할 몇 가지 더 많은 것들이있다. 1. pcl 경로가 테스트를 장려하고 테스트를 훨씬 쉽게 만든다. 2. pcl 경로는 좋은 아키텍처를 장려합니다. 파일 연결은 정적 링크를 클래스 및 #if 문으로 유도하여 나중에 다른 빌드가 중단되도록합니다. 반면 인터페이스와 종속성 삽입을 사용하도록 장려합니다. – Stuart

+0

PCL로 변환하는 과정을 살펴 보았지만 실제로는 1 일째부터 생각해야 할 부분이라고 생각합니다. – iwayneo