SPNote

SharePoint Notes

A first look at SharePoint 2010 Development

SharePoint Server Search Service 시작 이후, 부쩍 늘어난 메모리 사용량을 해결하고자 4GB RAM 의 추가 구매를 했습니다. ㅠㅠ VS 2010 실행하고 간단한 코드 작성과 팀사이트 하나 열고 작업관리자를 보니 약 3.0GB 를 차지합니다. 중앙관리까지 열면??? 다시 한번, 하드웨어 사양이 중요함을 느낍니다.  ㅡㅡ;

Anyhow, Toatal 8GB RAM 장착 기념으로 SharePoint 2010 Developer Walkthroughs 1 을 따라해봤습니다. Title 은 Walkthrough 1: Using LINQ to SharePoint from within a Visaul web part ( SharePoint Visual web part 에서 LINQ 사용하기) 입니다. 흠... 첫번째라 만만히 봤는데, 단지 기능적인 부분이 아닌 완벽한 소스 따라하기?를 하다보니 애로사항이 있었습니다. 그리고 Visual Studio 2010 에서 추가된 막강한? 기능들을 보니 확실히 수작업? 했던 예전에 비하면 완젼 편해졌지만... 어느정도 단점이 될만한 부분도 있더군요... 우선, 이번 작업을 하면서 발견한 사항들입니다.

Things to study...
( 앞으로 공부할 내용으로, 현재 알고 있는 지식 혹은 느낌으로만 요약함 )

  1. Sandboxed Solution VS Farm Solution
    - SP 2007 에서 Farm 배포만 되던 solution 이 Site Collection 레벨에서 배포 테스트 용도 혹은 작은 단위의 Solution ? 등으로 활요할 것으로 보임
  2. Microsoft.SharePoint.Linq 와 SPMetal 명령어 툴
    - Linq 는 써보지 않았지만, 예전 CAML Query 로 제한이 많았던 부분을 어느정도 해소할 것으로 기대함
    - SPMetal 은 List 로부터 content type 정의와 list schema 를 읽어서 Entity Class 를 생성해준다.
      ( 한번 써본 결과의 평가 : Good~~ )
  3. SharePoint 2010 Templates
    - 종류가 여러가지이나, 이번 예제에서 사용되는 Visual Web Part Template 은 SP2007 시절시 UserControl WebPart 를 연상하게 한다.
  4. Visual Studio 2010 Support
    - Template 만으로도 간단히 Solution 파일이 생성되고 솔루션 배포 그리고 필요한 Feature 까지 Activation 되는 놀라운 기본 기능
    - 프로젝트 파일을 열어보니 특별한 target 을 사용하는 부분을 발견했습니다. SP 2007 에서 주로 사용했던 Andrew Connel 방식과 유사할 것으로 예상합니다.

흠... 역시나 SharePoint 의 새 버전 출시는 많은 것을 들고 나오기에 따라가기가 쉽지 않네요... SP 2007 이 해외에서 너무 많이 팔려서 그런지 MS 에서 힘 좀 쓴 걸로 보입니다. 환율이 좋은 이 즈음, Amazon 에 가서 선 책주문을 걸어놔야겠습니다.

 

자~ 그럼 Walkthrough 1으로 돌아가겠습니다. 위 링크를 따라가서 다운받은 PDF 문서를 보면 SharePoint 개발자라면 충분히 따라할 내용이니 세부 설명은 생략하고 제가 진행하면서 막혔던 부분이나 의문을 가졌던 부분을 설명하겠습니다. 그 첫째는 SPMetal 의 실행입니다. 둘째는, Linq 를 사용하는 코드에서 다른 리스트의 내용을 참조하는 부분입니다.

  1. SPMetal 의 실행
    - Visual Studio Command Prompt(2010) 메뉴로 들어가서 spmetal 하고 치면, 안됩니다. ㅡㅡ;
    환경 변수에 들어가 있지 않으니, 당연히 안되는 것으로 생각하고 있습니다. 하지만, 이 명령어의 위치는 알고 있으므로 직접 가서 실행하면 됩니다.

    Path: C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN
    ex) spmetal /web:http://wss40 /namespace:SPNote.Projects
          /code:E:\SharePoint\SPHOLs\SPLinqSolutionDemo\SPNote.Projects.cs
         (실행을 하기 위해 한줄로 붙이는 센스는 물어볼 필요없는 덕목?입니다.)

    실행하면 다음과 같은 경고 메시지가 나오는데, List Form Templates 는 빠진다는 내용으로 현재 예제 실행과는 관계 없으므로 과감히 무시해도 됩니다.

      # 예제 실행화면


  2. Sample Code 에서 Employee Entity 에서 Project Entity 를 Property 로 참조하는 부분
    우선 코드는 단편적인 코드는 아래와 같습니다.

      # 코드 요약


    위의 음영된 부분인 Project 는 어떻게 List 를 구성하면 나오는 걸까??? 하고 무지 궁금했습니다. 마침 약속까지 있는 상황에서 조급해지는 마음에 비체계적인 방법으로 새로 추가된 기능인가? 등 무지막지하게 시도를 해보았는데... 잘 안되더군요... 지금 생각해보면 마치 웹에서 지도 감상시 축소 한번만 하면 순식간에 해결될 듯한 문제였습니다. 흠... 혹시 위 문장이 이해가 안되는 분들을 위해서 설명을 드리자만... 특정 범위내에서 한정하기보다 좀 더 위로 올라가서 일반적인 시각으로 본다는 머 그런 내용입니다. 저는 Content Type 을 이용하여 도전해 보았는데 Item 을 상속하므로 Title 은 둘다 있게 되어 값을 저장하면 같이 저장되는??? 안타까운 현실에 어떻게 풀어볼까 시간 소모만 했었습니다. 정리하자면, 쉽게 생각하면 아주 쉬울수도 있고 괜히 다른 옵션들 안 누르는게 좋다는 것입니다. 
    (덕분에 AllowInefficientQueries TRUE 해달라는 에러까지 도달하였는데, Beta2 부터 안된답니다. ㅡㅡ; 여튼, 다시 한번 축소했기에 Go to bed 가 눈 앞에 있습니다. ) 덕분에 구글링 좀 해보니 JOIN 도 되고 완젼 좋아 보입니다. ^^ 보너스로 비효율적 LINQ 연산자 리스트 주소 남깁니다.

    여러분도 한번 해보시기 바랍니다. 빠르게 한방에 되는 것도 좋지만, 시행착오 속에 발전하는 실력과 SharePoint 의 폭넓은? 이해가 아닐까요? ^^ 저는 덕분에 SDK 좀 뒤져보고 Microsoft SharePoint Foundation 2010.chm 이 더 자주 사용하게 될 것으로 예상하고 있습니다. (WSS 3.0 의 계보를 잇는?)

 

마지막으로 Employees List 의 AllItems 와 테스트 결과 화면입니다.

  # Employees List 의 AllItems.aspx



  # 테스트 결과

 

결론은, 역시나 Sharepoint 2010 개발도 많은 경험과 깊은 연구? 생활을 다시한번 요구될 것으로 예상합니다. 다들 힘내시라는 말밖엔...

위 작업하다가 궁금한 부분이 있으면 질문 환영합니다. 현재 SP2010 Machine 이 집에만 있는 관계로 답변은 느립니다. 참조하시기 바랍니다.

 

Add comment

Loading