본문 바로가기
다물칸 주소복사
조회 수 1780 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
Extra Form
구분 팁&트릭

Silverlight에서 DB에 접근하기 위한 방법은 여러가지가 있습니다.
그 중에서 WCF 서비스를 이용하여 DB에 접근하는 방법을 정리해 놓고자 합니다.

1.silverlight 프로젝트를 생성합니다.

사용자 삽입 이미지





















생성한 실버라이트 페이지에는 간단하게 버튼하나와 textblock 하나를 생성하였습니다.


2. DB에 접근할 서비스를 제공할 WCF 프로젝트를 생성합니다.
사용자 삽입 이미지






















생성하면
사용자 삽입 이미지





















IService1.cs 파일과 Service.svc, Service1.svc.cs 파일이 생기는데.
IService1.cs 파일이 웹 서비스에서 사용할 함수를 등록하는 부분이고, Service1.svc.cs 파일이 그 함수의 기능을 구현하는 부분입니다.

[IService1.cs 파일]
사용자 삽입 이미지













[OperationContract] 아래 부분에 선언한 부분이 웹서비스에 등록할 함수입니다.
기본적으로 GetData함수가 추가되어 있는데, 이를 수정하여 사용하셔도 되고, 따로 추가하셔도 됩니다.

[IService1.svc.cs 파일]
실제로 DB에 접속하여 데이터 가져오는 부분입니다.
사용자 삽입 이미지

3. WCF 서비스를 이용하기 위해 crossdomain를 생성합니다.
사용자 삽입 이미지























[clientaccesspolicy.xml 파일]
사용자 삽입 이미지
















참고로 블랜드를 이용하여 WCF 프로젝트를 생성하면 이 부분을 자동으로 해주기 때문에 clientaccesspolicy.xml파일을 추가해줄 필요가 없습니다. (첨부파일: clientaccesspolicy.xml )


4.마지막으로 웹서비스를 실버라이트 프로젝트에 추가하여 API함수처럼 사용하면 됩니다.

프로젝트에서 References에서 마우스 오른쪽 클릭후 Add Service Reference를 클릭합니다.
사용자 삽입 이미지







disover 버튼을 클릭하면 현재 찾을수 잇는 웹 서비스들을 검색하여 주는데, 여기서 저기가 사용하고자 하는 웹서비스를 선택하여 주면 됩니다.
사용자 삽입 이미지

























추가가 완료되면 아래처럼 웹 서비스 참조가 추가되어 잇는것을 확인 할 수 있습니다.
사용자 삽입 이미지






5. 이제 실버라이트 프로젝트에 추가된 웹서비스 인스턴트를 생성하고 그 안에 함수를 이벤트 핸들러와 연결하여 사용하시면 됩니다.
사용자 삽입 이미지


1)먼저 ServiceReference1에 대한 인스턴트를 생성하신 후에
       public ServiceReference1.Service1Client sc;
       sc = new ServiceReference1.Service1Client();

2)웹 서비스에서 날라오는 결과를 받았을 경우 실행될 함수를 이벤트 핸들러에 등록합니다.
sc.GetDataCompleted += new EventHandler<ServiceReference1.GetDataCompletedEventArgs>(sc_GetDataCompleted);

3)웹서비스에 있는 함수를 호출합니다.
sc.GetDataAsync()

정리를 하면 웹서비스에 등록되어있는 함수는 ~Completed와 ~Async()가 인스턴트에서 사용할수 있는데, ~Async()를 호출하면 그 결과값이 ~Completed에 연결되어 있는 함수로 넘어오게 됩니다.
~Async()는 웹서비스에 등록되어 있는 함수 정의에 맞게 매개변수를 넘겨주면 됩니다.

 

출처: http://guimong.tistory.com/entry/silverlight-WCF-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%9D%B4%EC%9A%A9%ED%95%98%EC%97%AC-DB%EC%A0%91%EA%B7%BC%ED%95%98%EA%B8%B0