2010-02-06 1 views
4

.NET 프레임 워크가 USB 드라이버를 사용하여 관리되는 방법을 제공하지 않는 이유가 궁금합니다. 필자가 읽은 모든 것에서 Windows API를 호출하고 마샬링 (marshalling)과 PInvoke (Parshalling)를 사용하고 .NET 프로그래머 중 누구도 원하지 않는 모든 허튼 소리를 사용해야합니다. .NET은 직렬 포트와 통신하기위한 방법을 제공하지만 USB 포트는 제공하지 않는 이유는 무엇입니까? USB가 이제는 시리얼 포트보다 훨씬 더 많이 사용되고 있으며 프레임 워크에 통합 할 때가 아닌가?.NET 프레임 워크에 USB 도구가 포함되지 않는 이유

+4

** @ Deleters : **이 질문을 정말로 삭제할 가치가 있습니까? Jared가 제공 한 좋은 대답으로 유효한 기술적 질문입니다. –

답변

10

.Net 프레임 워크의 다른 모든 기능과 마찬가지로 비용 대비 보상도 낮습니다. .Net의 모든 릴리스와 함께 소유자는 기능에 대해 매우 힘들어하는 결정을 내려야합니다. 단순히 너무 많은 요청이 있고/그들 모두를 만족 시키려고합니다. 선택한 사람들은 합리적인 비용으로 명확한 가치를 제공해야합니다.

내 생각에 직렬 포트는 USB보다 덜 대중적이지만 관리되는 코드로 구현하는 것이 더 쉽습니다. 따라서 비록 사용량이 그다지 높지 않을지라도 상대적으로 구현하기 쉽기 때문에 그것들을 맨 위로 놓을 수 있습니다.

+2

또 다른 요인은 많은 USB 장치가 USB 인터페이스가 아닌 드라이버를 통해 상호 작용할 것을 기대한다는 것입니다. 그런 다음 직렬이보다 실용적인 선택 (즉, 타이밍 중요한 작업, 데이터 수집, 레거시 하드웨어 등) 인 상황이 있습니다. USB는 소비자 세계에서 더 인기가있을 수 있지만 시리얼은 여전히 ​​살아 있고 발길질이다. –

0

HID 호환 USB 장치와 인터페이스를 사용하려는 경우 CC.USBHID을 살펴보십시오. 오래되고 불쾌하지만 올바른 방향으로 갈 수 있습니다. 더 성숙한 프로젝트가있을 수 있습니다.

3

USB는 버스입니다. 장치와 통신하는 방법은 버스의 다른쪽에있는 칩에 따라 다릅니다. 모든 기기와 표준화 된 방식으로 대화하는 것은 아닙니다.

USB 장치 제공 업체가 장치를 표준 방식으로 공개하려는 경우 (대부분 클라이언트가 API를 개발, 문서화 및 교육하는 비용을 절약하기위한 표준을 준수 함) 드라이버 프로그래머는 다양한 Windows API (대용량 저장 장치, WIA, DirectShow, 가상 직렬 포트, 블루투스, 휴먼 인터페이스 장치 등)에서 사용할 수있는 장치입니다. 다시 말하면 표준화 된 드라이버는 이미 Windows API에 노출되어 있기 때문에 .Net이 하드웨어와 직접 대화 할 필요가 없습니다.

+0

+1 좋은 정보입니다. – si618