2012-10-27 3 views
1

약 2 년 전쯤 저는 .NET 2.0에서 개발 된 웹 포털에서 작업하고있었습니다. 많은 asmx 페이지를 가지고있었습니다. 며칠 전, ASP .NET에서 더 능숙했던 제 동료 중 한 명은 "ASMX는 오래되고 추악합니다. 우리는 그것을 다시 작성합니다."라고 말했습니다. 그래서 우리는 ashx 핸들러로 옮겼다는 것을 기억하는 한 그것을했습니다.ASMX 기술은 완전히 폐기 되었습니까?

하지만 이제는 70-515를 준비하면서 AJAX와 관련하여 여전히 asmx 서비스를 배우기를 제안하는 자료를 발견하게되었습니다. 그렇다면 새로운 ASP .NET 3.5/4.0 웹 프로젝트에서도이 접근법이 유효합니까? 그렇다면 & 어디에 사용해야합니까?

아마도 2 년 전, 나는 우리가 asmx의 일종의 오래된 버전을 사용했고, 우리는 새로운 asmx로 옮겼습니다.

P. "asmx"태그를 입력 할 때 "asmx는 사용되지 않습니다."라는 메시지를 보았습니다. https://stackoverflow.com/tags/asmx/info

답변

2

WCF를 사용하여 작업 할 수있는 경우 WCF가 성능 및 유연성을 완전히 대체 할 수 있기 때문에 ASMX 서비스가 더 이상 사용되지 않습니다 다중 바인딩), 기능성. WCF 서비스를 작성할 수 있다면 어떤 이유로 든 ASMX 서비스를 생성하라는 요청을받을 경우 아무런 문제가 없습니다.

ASMX에서 ASHX로 옮기는 것은 서로 바꾸기위한 것이 아니기 때문에 현명한 움직임이 아니 었습니다.

+0

순수한 AJAX 통신에 asmx를 사용하면 문제가 없습니다. 맞습니까? – dragonfly

+1

예, 올바르게 작동하면 ASMX 서비스를 다시 작성하지 않습니다. 기존 서비스에 약간의 개선이 필요하다면 WCF 기술로 전체 서비스를 다시 작성하겠다. (물론 새로운 ASMX 서비스는 작성하지 않을 것이다.) –

0

ASMX 및 WCF는 .NET에서 웹 서비스를 작성하는 기술입니다. WCF는 .NET 3.0에 도입되었습니다. 그 목표는 모든 통신 기술에 대한 표준 추상화를 제공하고 .NET에서 웹 서비스를 구현하는 데 권장되는 방법입니다.

What are the differences between WCF and ASMX web services?

ASHX는 .NET에서 HTTPHandlers를 작성하는 방법입니다. 무엇에 대한 자세한 내용은 HttpHandler를

http://forums.asp.net/t/1166701.aspx/1

ASMX 서비스는 .NET에서 지원됩니다. 그러나 WCF 로의 마이그레이션이 권장됩니다. 또한 WCF에 모든 새로운 서비스를 작성해야합니다.

+0

WCF가 ASP.NET MVC 4 WebAPI로 대체 되었습니까? http://www.asp.net/web-api – Eric

+0

@Eric - WebAPI는 REST 서비스에 우선하지만 SOAP 서비스를 작성해야하는 경우 WCF는 사용할 기술입니다. WCF는 또한 WebAPI가 쉽게 지원하지 않는 몇 가지 고급 기능을 소개합니다. – BornToCode

1

이상하게도 ASMX에서 WCF로 이동 한 다음 다시 ASMX로 이동했습니다. WCF는 몇 가지 단점이 있으며 대부분이 크로스 플랫폼 호환성 문제입니다. .NET Framework에서 서비스를 사용하는 모든 사용자가 문제가되지는 않지만 다른 모든 프레임 워크가 전체 스택을 지원하는 것은 아니며 종종 WCF가 생성하는 것을 수행 할 수 없습니다. 우리는 보안 및 테스트를 다루는 것이 WCF의 고통 이었음을 발견했습니다. 웹 서비스가 안전하다고 표시되면 테스트 환경에서도 WCF가 안전해야합니다. 즉, 개발자마다 실제 SSL 인증서가 제공됩니다. 확실한 엄청난 고통.

+1

WCF에서는 일반적으로 플랫폼 간 호환성이 문제가되지 않습니다. 적어도 커스터마이징을하지 않아도 WCF가 없을 때 ASMX가 특정 비 호환 웹 서비스와 함께 작동하는 경우가있을 수 있습니다. –

0

예, asmx는 WCF 서비스와 관련이 없습니다. < 4.0 aspx로 작업 할 때 asmx를 사용할 수 있습니다.

ashx는 asmx를 대체하지 않습니다.

코드 형식/표준/코드가 많으면 MVC Web API 2 (4.0 자체)로 이동할 수 있습니다. 그러나 WCF와 비교할 때 수신자의 응답 기대치가 무엇인지 확인해야합니다 ("WCF는 웹 서비스 (ASMX)의 진화이며 TCP, HTTP, HTTPS, Named Pipes, MSMQ와 같은 다양한 프로토콜을 지원하지만 HTTP (에스)").