GSI


step 1에서 기본 프로젝트를 생성 했습니다.
DB 테이블도 생성 했구요.
이제 할일은 실버라이트 프로젝트랑 DB를 연결 시켜줄 웹 서비스를 구성하는 일입니다.

웹 서비스 제작

  1. 웹 서비스 프로젝트 생성
    1. Visual C# > Web > ASP.NET 웹 서비스 응용 프로그램 을 누릅니다.
    2. 이름은 boardService로 정했습니다.
    3. 아래와 같은 프로젝트가 하나 생성 됩니다.
      이제 프로젝트가 만들어 졌으니 DB를 가져 오는 부분을 추가하고 DB 내용을 담아서 실버라이트로 넘기기 위해서 클래스를 하나 제작 합니다.
  2. DB 바인딩
    1. 데이터 집합 을 하나 생성합니다. 이름은 "dsBoard"로 정했습니다.
    2. DB 를 바인딩 하기 위해서 저 같은 경우는 서버 탐색기를 이용 합니다.
      서버 탐색기 창에서 이전 강좌에서 만들어 놓은 board 데이터 베이스를 바인딩 합니다.
      ( 이 부분 설명은 우선 생략 할께요.)
    3. 위의 memo 테이블을 dsBoard.xsd 파일의 화면으로 드래그 해서 놓으면 테이블 내용이 포함됩니다.
  3. Data.cs 클래스 파일 생성
    1. 이제 DB 연결이 준비 되었으니 위의 데이터를 받아 들일 클래스를 하나 제작했습니다.
      이름은 Data.cs 파일로 클래스 파일을 준비 하구요.
      내용은 아래와 같이 Value를 프로퍼티로 구성했어요.
  4. 웹 서비스로 노출할 메소드를 정의 하고 아래와 같이 코드를 추가 했습니다.
    1. 메소드는 리스트를 리턴해 주는 것과 해당 값을 입력 받는 메소드를 정의하고 아래와 같이 코드를 추가 했습니다.

       using System;
      using System.Collections.Generic;
      using System.Linq;
      using System.Web;
      using System.Web.Services;

      namespace boardService
      {
          /// <summary>
          /// Service1의 요약 설명입니다.
          /// </summary>
          [WebService(Namespace = "http://tempuri.org/")]
          [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
          [System.ComponentModel.ToolboxItem(false)]
          // ASP.NET AJAX를 사용하여 스크립트에서 이 웹 서비스를 호출하려면 다음 줄의 주석 처리를 제거합니다.
          // [System.Web.Script.Services.ScriptService]
          public class Service1 : System.Web.Services.WebService
          {
              [WebMethod]
              public string GetDate()
              {
                  return DateTime.Now.ToString();
              }

              [WebMethod]
              public List<Data> GetList()
              {
                  List<Data> datas = new List<Data>();

                  dsBoardTableAdapters.memoTableAdapter adapter = new boardService.dsBoardTableAdapters.memoTableAdapter();
                  dsBoard.memoDataTable table = new dsBoard.memoDataTable();

                  adapter.Fill(table);

                  foreach (dsBoard.memoRow row in table.Rows)
                  {
                      datas.Add(new Data(row.value.ToString()));
                  }

                  return datas;
              }

              [WebMethod]
              public bool AddValue(string value)
              {
                  try
                  {
                      dsBoardTableAdapters.memoTableAdapter adapter = new boardService.dsBoardTableAdapters.memoTableAdapter();
                      adapter.Insert(value);
                  }
                  catch (Exception ex)
                  {
                      return false;
                  }
                  return true;
              }
          }
      }

위와 같이 구성하고 localhost에 게시를 해서 하나 등록을 해 놨습니다.
이제 다음 강좌에서는 실버라이트에서 화면을 구성하고, 데이터를 연동하는 곳을 해볼께요.
위의 웹 서비스를 테스트 하고 하는 부분들은 설명이 좀 길어 질거 같아서 추가를 하지 않았습니다.
이 부분은 웹 서비스 관련 책에 많이 나오기 때문에 생략 했습니다.

Posted by gsi
: