소개
이번 실습에서는 Silverlihgt 4에서 Silverlihgt 사용 WCF Service(이하 WCF)를 사용하는 예제를 보여준다.
따라하기
(1) Visual Studio 2010을 열고 [새 프로젝트]-[Silverlight 응용 프로그램]을 선택 후, 프로젝트 이름으로 RiaWcfService를 입력한다.
(2) WCF 서비스를 사용하기 위해서 반드시 Silverlight 응용 프로그램을 호스트할 웹 사이트로 ASP.NET 웹 프로젝트를 생성한다. 필자는 아래 그림처럼, 기본값인 RiaWcfService.Web으로 이름을 정했다.
(3) Silverlight 응용 프로그램이 생성되면, 아래 그림처럼, 간단하게 두 수를 더했을 때 두 수의 결과값을 구해주는 계산을 하는 폼을 구성한다.
(4) MainPage.xaml.cs 파일에 아래와 같이 btnOK 버튼에 대한 클릭이벤트를 설정한 후, 샘플로 더하기 연산에 대한 로직을 구성해 본다. 이 더하기 연산을 WCF로 변경해 볼 예정이다.
(5) F5번을 눌러, 프로젝트를 빌드한 후 테스트 페이지에서 원하는 값을 입력 후 정상적으로 프로그램이 실행되는지 확인한다.
(6) 이번에는 WCF를 사용하기 위해서 RiaWcfService.Web 사이트에 마우스 오른쪽 버튼을 눌러 [추가]-[새 항목] 메뉴를 클릭한다.
(7) 새 항목 추가 화면에서 Silverlight 카테고리에 있는 [Silverlight 사용 WCF 서비스] 항목을 선택 후 이름을 PlusService.svc로 입력한다.
(8) PlusService.svc.cs 파일에 아래 그림처럼, 앞서 로직을 WCF 문법에 맞게 재 작성한다. GetPlus 메서드 앞에 [[OperationContract] 특성을 반드시 붙여야 한다.
(9) ASP.NET 프로젝트인 RiaWcfService.Web 프로젝트에 만들어놓은 WCF 서비스를 Silverlight 프로젝트인 RiaWcfService에서 사용하려면, 아래 그림처럼, RiaWcfService 프로젝트에 마우스 오른쪽 버튼을 클릭한 후, [서비스 참조 추가] 메뉴를 클릭하여, WCF 서비스에 참조를 추가하여야 한다.
(10) 서비스 참조 추가 화면에서 오른쪽 상단에 있는 [검색] 버튼을 클릭하면, 같은 솔루션 내의 WCF 서비스가 서비스 항목에 추가된다. 현재는 하나의 WCF 서비스가 있기에 PlusService.svc 항목만 선택이 된다. 서비스를 선택하면, 자동으로 주소란에 서비스에 대한 주소가 입력된다. 네임스페이스 입력 텍스트박스에 PlusServiceReference 이름을 입력한 후 [확인] 버튼을 클릭한다.
(11) 서비스 참조추가가 끝나면 아래 그림처럼, ASP.NET의 PlusService.svc 서비스가 Silverlight의 PlusServiceReference로 참조가 됨을 알 수 있다.
(12) Silverlight 프로젝트의 MainPage.xaml.cs 파일로 돌아와서 앞서 테스트한 더하기 로직 코드는 주석 처리한 후, WCF 서비스에 대한 인스턴스를 생성한 후 매개변수로 2개의 숫자값을 넘겨준 후 결과값을 다시 텍스트박스에 입력하는 로직을 처리한다.
전체 코드는 아래 그림과 같다.
(13) 다시 F5번을 눌러 테스트를 하면, 정상적으로 처리됨을 알 수 있는데, 이번 로직에 대한 처리는 WCF서비스에서 더하기 연산을 한 후 그 결과값이 전송됨을 기억하면 된다.
마무리
위와 같은 순서로 간단하게 Silverlight 4에서 ASP.NET의 WCF 서비스를 사용하는 예제를 살펴보았다. 만약, Silverlight에서 DB 연동 코드가 필요하다면, ASP.NET의 WCF를 사용하여 데이터 입출력 로직을 구성한 후 이름 Silverlight 프로젝트에서 사용할 수 있는 내용이 이와 동일한 순서대로 구성하면 됨을 알 수 있다.
아무쪼록, 이번 아티클이 Silverlight 4에서 WCF 서비스를 사용하는 방법에 대한 기초자료로서 도움이 되었으면 한다. 좀더 많은 정보를 얻으려면, 검색엔진에서 “Silverlihgt 4 WCF Service”와 같은 키워드로 검색을 해 보길 바란다.
강좌에 사용한 소스 다운로드 : RiaWcfService.zip
끝.