Blog Content

    티스토리 뷰

    Silverlight4 Board 만들기 -8-

    반응형

    실버라이트 출력할 페이지 디자인이 끝났으니깐 이제 실제 코드 구현을 하도록 하겠습니다.

    [그림 8-1]

    Gg.Silver.Web 프로젝트에서 새 항목 클릭합니다.

    [그림 8-2]


    왼쪽 탭에서 Silverlight 선택 -> Silverlight 사용 WCF 서비스를 선택합니다. 저는 이름을 'BoardService.svc' 했습니다.

    파일 관리 편하게 저는 'Services' 이름으로 새폴더 만들고 Silverlight WCF 파일을 추가했습니다.

    실버라이트는 클라이언트 기반이여서 직접 DB에 접근 하지 못합니다.

    DB에 접근하기 위해 사용하는것이 WCF 웹 서비스가 있습니다.

    BoardService.svc 에서 코드 작성하기 이전에~! DataModel을 선언해줘야하는데요... 맞나?...

    'BoardType.cs' 이름으로 클레스 파일을 만들어 줍니다.

    소스 관리 때문에 저는 프로젝트에서 Services 폴더에 DataModelType이라고 폴더를 만들고 이 안에

    'BoardType.cs' 클레스 파일을 만들었습니다.

    이걸 데이터 모델(DataModel) 이라고 하는데요. 실버라이트에서 받는 모든것을 열거형으로 받는다는 약속이 있습니다.

    BoardType.cs 코드 작성~!

    BoardType.cs

    namespace Gg.Silver.Web.Services.DataModelType

    {

        public class BoardType

        {

        }

     

        [DataContract]

        public class BoardModel

        {

            [DataMember]

            public int NUM { get; set; }            //

            [DataMember]

            public string NAME { get; set; }        //

            [DataMember]

            public string TITLE { get; set; }       //제목

        }

    }


    다음 이어서 Silverlight WCF 코드 작성

    BoardService.svc

    public class BoardService

    {

        [OperationContract]

        public void DoWork()

        {

            // .

            return;

        }

            
       
    [
    OperationContract]

        public List<BoardModel> SelectList(string name)

        {

            try

            {

                List<BoardModel> lst = new List<BoardModel> { };


               
    using (GG.Biz.boardBiz biz = new GG.Biz.boardBiz())

                {

                    DataSet ds = biz.SelectList(name);

     

                    DataTable dt = ds.Tables[0];

     

                    lst = (from q in dt.AsEnumerable()

                            select new BoardModel() {

                                NUM = q.Field<Int32>("NUM"),

                                NAME = q.Field<string>("NAME"),

                                TITLE = q.Field<string>("TITLE")

                            }).ToList();

                    }

                    return lst;

            }

            catch (Exception)

            { }

            return null;

        }

    }


    ☞ WCF에 클레스와 메서드 부분을 보시면 [OperationContract]는  WCF 서비스 메서드라고 정의를 하는겁니다.

    다 됐으면~이제 실버라이트 프로젝트단에서 Silverlight WCF 서비스를 불러와서 실버라이트 화면에 뿌려줍시다!

    [그림 8-3]


    '서비스 참조 추가'를 선택하시고~ 검색 버튼을 클릭해주시면 주소가 바로 나와요. 네임스페이스 이름을 지정해주시고 확인!

    실버라이트 작업 페이지 MainPage.xaml.cs 에서 코드를 작성합니다.

    MainPage.xaml.cs

    [그림 8-4]


    'this.Loaded +=' 까지 입력하고 키보드에서 Tab 키 두번 눌러주세요.

    [그림 8-5]


    그럼~! 자동으로 코드가 추가 되요. 참 쉽죠~? ㅋ 계속 코딩합니다.


    - Completed 이벤트는 이벤트를 완성 시켜라. 데이터를 가지고 오고/ 받은걸 처리하기 위한 이벤트

     

    void MainPage_Loaded(object sender, RoutedEventArgs e)

    {

        BoardServiceReference.BoardServiceClient svc =
                                               new BoardServiceReference.BoardServiceClient();

        svc.SelectListCompleted += new
         EventHandler
    <BoardServiceReference.SelectListCompletedEventArgs>(svc_SelectListCompleted);

                svc.SelectListAsync();

    }

    private ObservableCollection<BoardServiceReference.BoardModel> lst;

    void svc_SelectListCompleted(object sender, BoardServiceReference.SelectListCompletedEventArgs e)

    {

        lst = e.Result;

        dgList.ItemsSource = lst;

    }


    결과화면입니다.

    저는 결과화면 확인 하기 위해 DB에 임의로 값을 넣었습니다.

    출력 페이지 끝났습니다. 원래 출력에서 검색 기능과 페이징 처리가 있어야 하는데 천천히 구현하자구요.

    [그림 8-4]


    끝~
    반응형

    '프로젝트' 카테고리의 다른 글

    Silverlihgt5 - 리스트 + 쓰기기능 구현  (2) 2014.02.18
    Silverlight4 Board 만들기 -9-  (6) 2011.05.07
    Silverlight4 Board 만들기 -7-  (0) 2011.05.01
    Silverlight4 Board 만들기 -6-  (0) 2011.05.01
    Silverlight4 Board 만들기 -5-  (0) 2011.05.01

    Comments