2010-12-15 2 views
5

GridView를 다운로드하여 다운로드 할 수있는 파일이있는 기본 시나리오에서는 간단하게 스트리밍하는 대신 해당 파일을 스트리밍하기위한 사용자 정의 http 처리기를 만드는 데 어떤 이점이 있습니까? 다운로드 링크 버튼의 이벤트 핸들러에서?ashx vs aspx for 파일 다운로드

편집 : 일부로서

그러나 그것은이 특별한 경우에는 문제가 아니라, 코드 재사용이 핸들러를 선호하는 것 제안했다. 또한 핸들러는 페이지 수명주기를 피하는 것이 더 빠르지 만,이 약간의 성능 향상은 특정 상황에서 핸들러를 만들 가치가 없을 수도 있습니다.

GridView가 UpdatePanel 내에있는 상황에서 특별한 고려 사항이 있는지 여부는 현재 마음에 떠오르는 유일한 것입니다 (동일한 aspx 페이지 접근법을 사용한다고 가정).

+1

나는 핸들러와 관련 있다고 말할 것입니다. 페이지 클래스에는 고유 한 단점이 있습니다. –

+0

어떤 단점이 있습니까? – e36M3

답변

4

응용 프로그램 내의 둘 이상의 지점에서 다운로드 기능을 재사용 하시겠습니까? 응용 프로그램의 나머지 부분과 느슨하게 연결하려는 경우 기본적으로 서비스를 만들 때 Generic Handler을 사용하는 것이 좋습니다. 그렇지 않은 경우 해당 단추에서 다운로드 만 수행하도록 계획하고 있고 해당 단추 만 사용하려는 경우 논리를 그대로 둘 수 있습니다. 기억해야 할 점은 신청서를 필요한 것보다 더 복잡하게 만드는 것입니다.

+0

재사용에 좋은 점은이 경우 기능을 재사용하지 않습니다. 업데이트 패널의 이벤트 처리기가 다운로드 상자를 팝핑 할 수 있는지 여부에 대한 유일한 다른 점은 무엇입니까? 아마 원래의 질문도 이와 같이 업데이트 할 것입니다. – e36M3

2

저는 ASHX를 사용하고 있습니다. 그 이유는 파일 크기가 작고 파일을 스트리밍하는 데 UI가 필요하지 않기 때문에 완벽합니다.

3

정말 당신에게 달렸습니다. ASHX는 ASPX (OnLoad 등 없음)와 동일한 페이지 수명주기가 없으며 오버 헤드가 낮아 일반적으로 빠른 것으로 간주되며 웹 폼과 관련된 외부 마크 업 파일이 없습니다.

응용 프로그램에 적절한 경우 웹 서비스 (ASMX)를 고려할 수도 있습니다.

+0

동의, 나는 더 가늘다는 것을 안다. 이 길로 내려 가기위한 다른 혜택이 있는지 확실하지 않았습니다. 이미 다운로드 링크를 제공하는 페이지가 있다고 가정 할 때, 재사용은 문제가 아니며 성능은 다른 페이지의 이벤트 핸들러에서 수행하는 것 외의 다른 유일한 이점입니다. – e36M3

+0

파일 다운로드에 HTTPHandler를 사용하는 것은 성능이나 재사용에 그다지 중요하지 않습니다. 파일을 인증하고 제공하기위한 특정 작업이 주어집니다. 여기에는 페이지 라이프 사이클이나 SOAP 스키마 또는 그와 비슷한 것을 요구하지 않습니다. aspx 페이지와 asmx/wcf 서비스는 효과적으로 HTTPHandlers 위에 구축됩니다. 파일 다운로드에 HTTPHandler를 사용하도록 투표합니다. – Phill