2013-03-02 3 views
1

나는 이것이 마이크로 소프트에 의해 사전 컴파일 된 여분의 라이브러리를 가져 오는 것을 이해하지만, 예를 들어 태양 아래 모든 라이브러리를 추가하는 단점이 있습니까? 또한 기본적으로 모든 프로젝트에 가장 많이 사용되는 라이브러리를 추가하는 것을 볼 수 있습니다.Visual Studio의 참조는 무엇입니까?

응용 프로그램을 컴파일 할 때 출력 바이너리에 실제로 어떤 작업을 수행합니까? 이러한 라이브러리의 대부분이 .NET 프레임 워크에 포함되어 있다고 생각했기 때문입니까?

맞춤 라이브러리가 아닌 다른 점은 무엇입니까?

+0

태양 아래서도 도서관과 함께 앱을 크게 만들지 않았습니까? –

+0

글쎄 내 생각에, 라이브러리가 모두 런타임에 포함되어 있다면, 왜 출력 바이너리에 포함될 것인가? – Cheetah

+0

귀하의 출력 바이너리가 크지 않을 수도 있습니다. 프로젝트가 매우 커질 수도 있습니다. 그렇다면 많은 프로젝트를 검토하는 데 오랜 시간이 걸릴 수도 있습니다. –

답변

2

아무 일도하지 않으셔도됩니다. 컴파일러는 모든 어셈블리의 메타 데이터에서 모든 선언을로드해야하므로 속도가 느려지지만 느린 디스크에서는 몇 초 이상 걸리지 않습니다. 꽤 확실한 식별자 조회는 실제 컴파일 작업을 현저히 늦추지 않도록 O (1)로 상각됩니다. .NET Framework의 네임 스페이스 이름은 충돌을 일으키지 않도록 신중하게 선택되었습니다. 출력 어셈블리에는 코드에서 실제로 사용되는 참조 목록 만 있습니다.

그것에 대한 유일한 반대는 음, 우아한이 아닙니다. 팀 메이트가 등 뒤에서 속삭이게됩니다. 누구든지 프로젝트를 유지하기 위해 고른 사람은 언젠가 프로젝트를 보는 순간 다른 일자리를 찾기 시작할 것입니다. 이 멍청한으로 간주되는 것은 프로그래머에게있어서 최악의 종류의 라벨이며, 평판은 매우 어려워집니다.

+0

지금까지보기 메뉴에서 더 깔끔하게 보였다고 생각했기 때문에 모든 참조를 제거했습니다.하지만 생각이 들었습니다 ... 실제로 나는 자신을 방해하고 있으며, Intellisense 또는 그와 유사한 어떤 것을 제거합니까? ? 나는 대부분의 프로젝트에 시스템 레퍼런스가있는 것만으로 도망 갈 수 있습니다. – Cheetah

+0

마이크로 관리로 스스로를 노크하지 마십시오. 프로젝트 템플릿은 공통 참조를 사전 선택합니다. 아무도 그 템플릿을 다듬지 않으면 아무도 그것을 지키지 않습니다. 사용하지 않은 참조를 제거하여 자신을 "방해"하지 않습니다. 변경 사항을 나중에 나중에 다시 추가해야하는 경우는 아닙니다. –