2009-04-02 6 views
1

특정 스키마를 기반으로 데이터베이스에서 XML을 생성 할 웹 응용 프로그램을 만들고 쿼리 문자열에서 수행 된 특정 입력 매개 변수 (날짜 또는 검색어 등)에 따라 달라집니다.XML 만 반환하는 웹 응용 프로그램에 가장 적합한 방법은 무엇입니까?

필요한 XML을 반환하거나 XML을 출력하는 ashx 처리기를 작성하는 웹 서비스를 작성하는 가장 좋은 방법은 무엇입니까?

각 인스턴스에서 원하는대로 XML을 지정할 수 있습니까?

+0

xml over http는 웹 서비스가 아닙니다. 웹 서비스는 SOAP이며, WS-I 기본 프로파일을 따르는 것이 더 좋습니다. http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16.html –

답변

1

WebHttpBinding을 사용하여 REST 스타일의 WCF 서비스 작성을 고려하십시오.

1

이런 종류의 일을 시작할 때 가장 빠른 방법을 찾았습니다. 특히 간단한 REST 유형 서비스 (예 : 간단한 HTTP GET 사용 - ASP.MVC를 사용하는 것입니다. 필자가 읽었을 때, 이것은 HTML에 대한 완벽한 제어권을 제공하지만 HTML을 반환할지 여부를 완전히 제어 할 수 있음을 의미합니다. 보기가 필요 없어도 ContentResult를 반환 할 수 있습니다.

MVC의 '낭비'가 조금 있지만 공을 굴릴 수있는 매우 빠른 방법입니다. 비슷한 접근 방식을 사용했지만, 결국에는 기본적으로 URL을 임의의 추가 구성없이 거의 코드 묶음에 매핑 할 수있게 해주는 HttpHandler와 RouteHandler를 사용하여 공식화했습니다.

1

Ch00k의 답변에서 다음 블로그 (아니요 :-))는 ASP.MVC를 사용하고 XML, JSON 등을 반환하는 안정적인 웹 서비스를 만드는 방법에 대한 조사 결과를 제공합니다. 너 ... Blog link.

기억해야 할 주된 사실은 xml 문자열을 실제 .net XmlDocument 형식이 아닌 XML 형식으로 반환하려는 것입니다. 다른 점은 다른 플랫폼에서 사용하기가 어렵 기 때문에 질문에있는 점을 잘못 이해했을 수 있습니다.

희망이 도움이 :-)

+0

네가 맞다. .net XMLDocument보다는 XML 문자열을 반환하고 원래의 질문을 aviod 혼란으로 편집했습니다. 답변 해 주셔서 감사합니다. – tentonipete

2

나는 이와 같은 상황에서 ashx를 할 것입니다. 설명을 보면 단일 검색 기능, 단일 테이블 (또는 단일 데이터베이스의 제한된 테이블 그룹) 및 상대적으로 제한된 범위와 비슷하게 들립니다. 모든 MVC 물건은 아마 과잉이다. 그것을 과도하게 설계하지 마십시오.

IHttpHandler를 구현하는 클래스를 만들거나 (또는 ​​Visual Studio 2005 이상인 경우 제네릭 처리기 만 수행) 쿼리 문자열을 구문 분석하거나 동적 SQL 문자열을 만들거나 저장 프로 시저에 매개 변수를 전달하거나, XmlTextWriter를 사용하여 출력을 만듭니다. XmlTextWriter가 응답의 출력 스트림이나 메모리 스트림을 가리킬 수 있습니다. 나는 더 나은 오류 처리 옵션을 제공하기 때문에 메모리 스트림 방식을 사용한다. 그런 다음 컨텐츠 유형을 application/xml로 설정하고 결과를 스트리밍하십시오.

나는 이해하기 쉽고, 구현하기 쉽고, 유지 보수가 쉽고, 완전한 제어를 제공하기 때문에이 접근법을 좋아합니다. 단점은 데이터베이스에 단단히 묶여 있고 응용 프로그램의 범위가 시간이 지남에 따라 증가하는 경우 웹 서비스 프레임 워크 기반 접근 방식보다 유연성이 떨어질 수 있다는 것입니다.

관련 문제