2012년 11월 13일 화요일

How to consume web services in SandBox solution?


How to consume web services in SandBox solution?


CKS - Development Tools Edition (Server)를 설치한다. 

CKS - Development Tools Edition (Server)

Free

The SharePoint 2010 Visual Studio 2010 Extensions project (CKSDEV) is a collection of Visual Studio templates, Server Explorer extensions and tools providing accelerated SharePoint 2010 development based on Microsoft's new SharePoint 2010 development tools.


다운로드 
http://visualstudiogallery.msdn.microsoft.com/ee876627-962c-4c35-a4a6-a4d89bfb61dc







모듈을 생성후 Custom Page(.aspx) 를 추가합니다. 이렇게 하는 건 쉐어포인트 (샌드박스솔루션)에서 별도의 웹서비스를 호출하기 위한 방법입니다. 팜솔수션은 별도의 웹서비스와 서버랭기지를 사용할 수 있지만, 서버단위로 배포되기 때문에 샌드박스 솔루션을 사용합니다.


모듈에 별도의 aspx 페이지를 추가합니다. 내용을 다 지운다.

별도의 웹페이지에서 Jquery 를 이용해서 웹서비스를 호출합니다.

  1. <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>   
  2. <SharePoint:ScriptLink language="javascript" name="SP.js" defer="true" runat="server" Localizable="false"/>  
  3.   
  4. <html>  
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  6. <head>  
  7.   
  8.   
  9. <script  type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>  
  10.   
  11. <script type="text/javascript">  
  12.     $(document).ready(function () {  
  13.         getWebProperties();  
  14.         serviceCall('divResult2');  
  15.     });  
  16.   
  17. 생략  
  18.   
  19. function serviceCall(divid) {  
  20.         var WSurl = 'http://도메인/WebService.asmx/getListData'  
  21.         var param = "{'listname':'받은메모', 'url':'http://gw.domain.com', 'email':'demo1@domain.co.kr','pwd':'0000'}"  
  22.   
  23.         $.ajax({  
  24.             type: "POST",  
  25.             url: WSurl,  
  26.             data: param,  
  27.             contentType: "application/json; charset=utf-8",  
  28.             dataType: "json",  
  29.             success: function (msg) {  
  30.                 $("#" + divid).html(msg.d);  
  31.             },  
  32.             error: function (e) {  
  33.                 $("#" + divid).html("WebSerivce unreachable");  
  34.             }  
  35.         });  
  36.     }  


위의 코드와 같이 Jquery 를 추가하고 웹서비스를 호출하여 옵니다. 




단, 웹서비스는  [System.Web.Script.Services.ScriptService] 를 허용하여 줍니다.

  1.    
  2. public class WebService1 : System.Web.Services.WebService  
  3. {  
  4.     [WebMethod]  
  5.     public string TestMethod(String data)  
  6.     {  
  7.         return data;  
  8.     }  




CKS Dev 로 생성된 웹사이트를 쉐어포인트로 배포합니다.

실재로 CKS를 이용한 ECMAScript 등은 추후 강의에서 작성하여 드리겠습니다.




Jquery 를 이용하여 웹서비스 정보를 쉐어포인트에서 쉽게 가져올 수 있습니다.

댓글 없음: