SPNote

SharePoint Notes

Moss 2007 백업 복원

안녕하세요?

Will 입니다. 이번에는 예전에 2007에서 백업과 복업시 했던 방법을 소개 하기 위해 쓰도록 하겠습니다.

기본적으로 Moss 2007에서는 stsadm을 사용해서 백업을 하고 복원을 하는 경우가 많습니다.

하지만 이툴로 설정을 하였을 시 에러가 나서 롤백을 하는 경우도 있는데요. 이럴때 참 난감합니다.

이럴때 쓰는 방법인데요. WebPart의 dll 및 파일들을 다 가지고 계시다면은 해당 백업 및 복원이 가능 한데요.

우선 삭제 하시기 전에 12폴더를 백업을 시켜 둡니다. 그리고 해당 필요한 DB (보통 SharePoint_80) 를 백업을 해둡니다.

그리고 복원해야 될 서버에 가서 Moss2007을 설치를 하시고 80으로 WebApplication만 만듭니다. 그리고 나서 사이트 모음을 만들지

마시고 아까 백업한 SharePoint_80.bak을 가지고 DB에 있는 아까 만든 WebApplication의 DB(처음 만드셧다면, SharePoint_80)를 덮어

씌웁니다. 그럼 기존에 있던 데이터들은 전체가 다 복원이 되고요 해당 웹파트 및 Feature들은 직접 기존에 설치 했던 되로 설치를 하면은

해당 사이트의 복원이 완료 됩니다.

궁금한 사항은 메일로 보내주시면은 정성스럽게 답변을 드리도록 하겠습니다.

SharePoint 2010 사용자 권한 EventFiring

안녕하세요?

Will 입니다. 이번에는 다름이 아닌 SharePoint 2007에서 사용 하던 EventFiring에 대해서 쓰도록 하겠습니다.

기본적으로 리스트에 값들을 업데이트를 하고 내용을 채워 넣을 때 EventReceiver를 통해서 값들을 변경 하고 업데이트를 하고 하는데요.

이런경우 관리자가 아니면은 제약이 많은 경우가 많습니다. 그래서 SharePoint 2007에서는 해당 업데이트시 DisableEventFiring() 함수를 사용해서

권한의 제약을 풀고 업데이트를 하고 나서 EnableEventFiring() 함수를 사용해서 다시 권한의 제약을 활성화 하는 경우가 있는데요. SharePoint2010

에서는 해당 함수가 사라진것은 아닌데 경고창이 뜹니다. 해당 함수를 찾을 수 없다 등등..... 에러를 뿌리지는 않는데 해당 함수가 따로 변경 되었습니다.

 EventFirngEnabled 라는 속성으로 바뀌면서 해당 값에 True, False를 넣어 주면은 됩니다. 예로 들어서

EventFiringEnabled = false;

list.update();

EventFiringEnabled = true;

 

위와 같은 식으로 사용 하시면은 됩니다.

 

BlogEngine Language Pack Maintainers...

지금 사용하고 있는 Blogging Platform 은 BlogEngine.NET 입니다. ASP.NET 용 어플리케이션이 별로 없어서 슬픔에 잠겨 있을 시절에 만난 고마운 App 이었는데 한글 Resource 가 없어서 제출하였는데, 이번 1.5 Version 에 포함되어 있더군요~ 하지만 문제가 있습니다. 이번과는 별개로 다국어 작업을 하면서 알고 있었던 예전부터 알고 있었던 사실!!! "한글 OS 에 Internet Explorer 의 기본 언어는 ko (한글)" 이라는 것을 잠시 망각하고 ko-KR.resx 보낸 실수를 알게 되었습니다. 그래서 이번엔 ko.resx 하나만 보내겠습니다.
  - BlogEngine.NET Article: Attention To Language Pack Maintainers

Windos 2008 Server 에 VS 2008 를 켜고 ASP.NET Development Server 를 통해 잠시 확인을 해보았는데... 이런~~ 깨져서 나옵니다. 인코딩 문제인가 싶어서 구글링해서 전체 파일을 Unicode 인코딩으로, (UTF-8 With Signature) Codepage - 65001  저장했음에도 여전히 깨졌습니다. 좀 더 구글링해보니 VS 의 템플릿 어쩌구저쩌구 했는데... 다음에 시간날때 해결하려고 잠시 미뤘습니다.

어쨌든, 우선은 깔끔하게 Control Panel > Region and Languate > Administrative Tab
  > Change System Locale > Korean (Korea)
로 바꿔주도 재부팅~~ 하고 우선 돌려보고 제출했습니다.
Win 2008 부터 VS 와 문제가 있는건지 잘 모르겠네요~

 

[솔루션 전체 인코딩 적용 방법]
  - PowerShell 로 한번 해보고 싶은 욕망은 있었으나 시간 관계상 윈폼으로 주저없이 이동했습니다.

[code:c#;ln=off]

string path = "PathToApply";

foreach (var f in new DirectoryInfo(path).GetFiles("*.cs", SearchOption.AllDirectories))
{
    string s = File.ReadAllText(f.FullName);
    File.WriteAllText(f.FullName, s, Encoding.UTF8);

    txtStatuses.Text += f.Name + Environment.NewLine;
}

[/code]

 

[Version 1.6 을 위한 Resource 파일]
- Download labels.ko.zip (6.77 kb) for Version 1.6

 

ReGhosting in SharePoint Server 2003 and WSS 2.0

SharePoint 2007 is my first SharePoint exprience and developed for it all the time but I moved to a new company and its Flatform is SharePoint Portal Server 2003 environments... The main reason I moved is a upcoming upgrade for SharePoint 2010.

but I'm frustrating at this moment. ㅠㅠ (crying...)

I was given a simple task which is to edit few javascript lines and I was doing on default.aspx files living in \60\TEMPLATE\1042\SPS??? directories. But SPSSITES directory is different than others and I looked on the url and found a url is different and it is /C9/SiteDirectory/Lists/List/Summary.aspx, not default.aspx.

With my SP 2007 knowledge, the url like /Lists/Summary.aspx means the page is from Database. So I opened the path using Map Network Drive (Open as Web Folder option is disappeared in IE 8) and edited it and the page is worked well. But!!! My colleague asked me how to do that??? She said, it is uncommon way here I want the old way back. I thought if I delete it from Web Folder, the page is coming from local drive again.

As someone SPS 2003 experts expects, a big problem happened!!! The summary.aspx page is gone and AllItems.aspx is displayed. After some walkaournds I could do, I realized nothing I can do at that time cause I'm new for it... I tried copying the Summary.aspx back to Web Folder and create views and ETC... and I started googling on this and found lots of info on Reghosting...

Unfortunately, reghosting is not my solution but I'm here to write on reghosting. I still have the problem to recover... (I'm installing SPS 2003 on my local PC now)
Googling on reghosting, they said "UPDATE Content to NULL from Docs table" and the way worked well. Because the MS has not mentioned on this, you sould use this carefully. One thing I'm a little satifisfied was the GhostHunter is using this way but this updates MetaInfo and MetaInfoSize columns more.

 

Directions are

  1. Connect to the SiteName_SITE database and open the Docs table
  2. Find the unghosted page
  3. Execute a sql statements which is to update Content, MetaInfo, and MetaInfoSize columns to NULL 

The SQL Query I used is

[code:tsql;ln=off]

-- Find Unghosted pages
SELECT SiteId, DirName, LeafName, MetaInfo, MetaInfoSize, Content
FROM Docs
WHERE LeafName = 'default.aspx'

-- Find Unghosted pages2 (If there are lots of records...)
SELECT SiteId, DirName, LeafName, MetaInfo, MetaInfoSize, Content
FROM Docs
WHERE SiteId = '9DAB8065-EA68-4021-BFEA-5A49D63540E2'
AND WebId = '77973AB7-EDB5-4D0E-BD55-17CC1F2C1C48'

-- UPDATE to Re-Ghost
UPDATE Docs
SET Content=NULL, MetaInfo=NULL, Size=0, MetaInfoSize = 13528
WHERE Id = '3BF58ADD-A7B2-4BB9-A255-D4B1FBF4BFE8'

[/code]

 

You need to get the size of file and Site and Web Ids. Main reason I used this is my condition that the docs table contains more than 1.6 million so that it is too slow. Here is the code to get Ids.

[code:c#;ln=off]

SPSite spServer = SPControl.GetContextSite(Context);
SPWeb spWeb = SPControl.GetContextWeb(Context);
Response.Write("Site ID: " + spServer.ID.ToString().ToUpper() + "<br />");
Response.Write("Web ID: " + spWeb.ID.ToString().ToUpper());

[/code]

 

The Columns whose value is chaged are

  1. Size MetaInfoSize
  2. Version
  3. DocFlags
  4. CharSet
  5. TimeLastModified
  6. NextToLastTimeModified
  7. MetaInfoTimeLastModified
  8. TimeLastWritten
  9. VersionCreatedSinceSTCheckout
  10. MetaInfo
  11. Content

 

After I deleted this Summary.aspx file, the record is disappeared and I found that coping the Summary.aspx file to the Web Folder created a new record with new Id. I still have the problem recovering the Summary.aspx. I tried many ways I could do such as set other columns and IISRESET, etc but I couldn't get a solution. So now I'm installing SPS 2003 to deep dive into it.

 

SharePoint 2010 Microsoft.SharePoint.Publishing.dll 사용시 Error

안녕하세요? Will입니다.

이번에는 제가 Navigation의 기능을 쓰기 위해 Microsoft.SharePoint.Publishing.dll 을 사용 했는데 빌드 시 Error가 나타나서 해당 Error에 대한

해결 방안을 쓰도록 하겠습니다.  해당 dll이 존재 하지 않는 다는 황당한 문구의 Error입니다. 분명히 참조를 시켜놧는데요.....

Error 내용 : The type or namespace name 'Publishing' does not exist in the namespace 'Microsoft.SharePoint' (are you missing an assembly reference?) 

Warrings 에서 보니깐 해당 dll은 System.Web.DataVisualization 이라는 dll 의 어느 Class를 사용 해서 Error가 난듯 합니다.

Warrings : The primary reference "Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL" could not be resolved because it has an indirect dependency on the framework assembly "System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v3.5". To resolve this problem, either remove the reference "Microsoft.SharePoint.Publishing, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c, processorArchitecture=MSIL" or retarget your application to a framework version which contains "System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35". 

그래서 해당 Dll을 검색 하여서 찾으니 아래의 폴더에 있군요. C:\Program Files (x86)\Microsoft Chart Controls\Assemblies\System.Web.DataVisualization.dll

드라이브는 설치에 따라서 틀립니다. 해당 dll 을 참조 해주고 다시 빌드를 하니 에러가 사라지며 잘 사용 되네요.

그리고 옛날에 Silverlight.dll 사용시에도 에러가 낫엇는데 해당 dll을 참조 하면은 Error 가 사라집니다.

SharePoint 2010 Custom Action

안녕하세요? Will 입니다.

이번시간에는 Custom Action에 대해서 자료를 올려 보도록 하겠습니다. SDK에 올라와 있는 자료를 가지고 원래는 글을 쓸려고 하였으나.

SDK자료가 에러가 나는 관계로 간단히 Custom Action을 만들어 보도록 하겠습니다.

1. VS2010으로 Project에서 새로운 프로젝트를 생성 하도록 하겠습니다. SharePoint2010에 있는 ContentType을 생성 하도록 하겠습니다.

2. VS2010 의 Feature.xml의 이름과 ContentType에 있는 이름을 알아서 변경 합니다.

3. Elements.xml 파일의 내용을 채웁니다.

Location 은 상태라고 생각 하시면은 됩니다. View모드냐 Edit모드냐와 같이 상태 모드입니다.

RegistrationId 는 문서라이브러니냐 아님 일반 리스트(100)냐 등등과 같이 리스트 값들이 지정되어있습니다. 아래 소스는 문서라이브러리(101)로 설정 하엿습니다.

RegistrationType 은 리스트냐, ContentType 이냐 등과 같은 걸 정의하는 곳입니다.

Title은 이름 그대로 타이틀입니다.

UrlAction 은 해당 타이틀이 선택 될때 동작할 내용을 적어 넣는 것입니다. 이번에는 간단히 test라는 알러트 창을 띄우겟습니다.

[code:xml;ln=off]

<?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <CustomAction Id="Ribbon.Library.Actions.AddAButton"
   Location="ViewToolbar"
   RegistrationId="101"
   RegistrationType="List"
   Title="Add a Ribbon Button">
    <UrlAction Url="javascript:alert('test');"/>
  </CustomAction>
  </Elements> 

[/code]

4. 내용을 채우고 나서 빌드를 하고 배포를 합니다.

SharePoint2010 SDK  의 내용 중 에러가 나는 곳이 CommandUIHandlers 안에 CommandUIHandler 의 프로파티 중 CommandScript 자체를

VS2010에서는 프로파티로 인식을 못합니다. 그래서 SDK는 에러가 납니다.

 소스는 아래에 첨부 합니다.

CustomAction.zip (37.64 kb)

차갑고 매서운 겨울은 점점...

새해의 시작을 알리는 그날...
마치 하늘은 구멍에 뚫린듯 앞을 가릴 수 없도록
무자비하게 눈다발이 쏟아지던 그날이 떠오른다.

그 잔혹한 흔적은 가끔 내리던 비마저 없어서인지...
한참이나 주변에 머뭇머뭇거리다가
요즘에야 저 구석 사이에 거무튀튀한 하얀색을 노출한다.

Visual Studio 2010 SharePoint Support

Visual Studio 2010 을 이용하여 SharePoint Application 을 개발하며 느낀 것은 새롭게 추가된 SharePoint를 지원하는 기능 중에 가장 유용한 부분 중 하나가 Packaging 이라고 생각합니다. SP 2007 시절, WSPBuilder 를 통해 WSP 파일을 만들거나 이 툴 역시 세밀한 컨트롤이 되지 않아서 직접 makecab 을 이용하여 만들기도 했었는데, 이젠 Visual Studio 에서 알아서 해주니 그야말로 편한 세상입니다. 하지만, 역시나 WSP 랑 비슷하게... 제공하는 것을 쓰다보면 맘에 안 드는 부분이 생기기 마련입니다. 직접 컨트롤하던 것과 비교하여 맘에 안 드는 부분이 생겨서 이 부분을 수정할 수 없나하고 뒤져보던 중... 프로젝트 파일 안의 Microsoft.VisualStudio.SharePoint.targets 을 알게 되었습니다. Andrew Connell 아저씨 방식처럼 Deployment Files 폴더 만들고 ddf, Targets 파일 만들고 직접 컨트롤 하는 방식과 유사하다면 유사하다고 할 수 있겠지만, 여기에 신경 좀 썼다는 것을 느낄수가 있었습니다.

첫째로, *.csproj 파일을 열어보면 아래와 같이 한줄이 추가되어 있는 것을 확인할 수 있습니다.

[code:xml;ln=off]

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\SharePointTools\Microsoft.VisualStudio.SharePoint.targets" />

[/code]

위 경로는 다음과 같습니다. ( MSBuildExtensionsPath32 : C:\Program Files (x86)\MSBuild )
"C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\SharePointTools" 즉, 위 경로로 이동하면 targets 파일을 찾을 수가 있는데, 이 파일을 열면 새로운 세상?을 만나게 됩니다. 프로젝트에서 빌드시 해당 내용에 따라 위의 파일에서 분기되어 처리되는 것을 예상하게 됩니다. (설마 아닐까???) (Visual Studio Add-In 제작과 MSBuild 의 사용 및 구성에 대해 공부할 필요를 느낍니다.)

MSBuild 와 Visual Studio 에 Add-In 된 기능들, 그리고 Microsoft.VisualStudio.SharePoint.Tasks.dll 의 로직을 분석하면 Visual Studio 2010 에 추가된 Solution Build 기능의 해부가 가능할 것 같습니다. 하루빨리 누군가가 정리해서 올려주면 감사할 것 같네요~ (넘기기) ^^ 평소에 친숙하지 않는 분야를 건너뛰기 위해선 흘려야 할 피가 많아서??? 여튼, Amazon.com 에 가서 보니, MSBuild 에 대한 정보가 별로 없다고 하군요... 대신 책 하나 좋은 거 있으니 추천별 5개에 그 이름은 Inside the Microsoft Build Engine: Using MSBuild and Team Foundation Build 입니다. 그리고 Visual Studio Add-In 관련해서는 Professional Visual Studio Extensibility (저자 아저씨 머리 웃김...) 입니다. 요즘 사고 싶은 책들이 많아 몸이 근질근질 합니다. ㅠㅠ

 기존의 Application 을 VS 2010 에서 Converting 하던 중... 패키징시 Feature 폴더 이름이 "{솔루션 이름}_{Feature 이름}" 이러게 되어 있어 맘에 안들어서 여기까지 왔습니다. 왜 Solution 이름과 Feature 이름이 포함되고 UnderScore( _ ) 는 왜 들어가는지??? (기존 Feature 이름과의 충돌을 막기 위해서라는 생각밖엔...) 만약 이 부분이 커스터마이징이 안된다면 저 책들을 사던지, 아님 돈 없으면 시간과 노력을 투자하던지 할 것 같습니다.

이 분야에서 전문가의 의견을 듣기를 희망하며 다른 분들도 여기에 살짝 발을 담가보시는건 어떠실지??? 추천을 해봅니다.

SharePoint 2010 Debugging

SharePoint 2010 Debugging  은 SP 2007 과 거의 같습니다. (지금 SP 2007 web.config 가 없어서 확신이 없음...) 이전 글에서 AllowInefficientQueries 에러를 만나고 나서 이전 방식으로 Web.config 파일을 수정했는데, Visual Studio 에서 Script Debugging 이 잘 동작했습니다. 주석으로 Line 번호를 추가하였으니 문자열 검색 혹은 VS 에서 Ctrl + G 하시고 Line 번호 넣고 찾아가셔도 됩니다.

SharePoint 2010 Debugging is almost same with MOSS 2007. Find a web.config file for your Web Application and change values.
  - Path might be: "C:\Inetpub\wwwroot\wss\VirtualDirectoties\<YourWebApplicationName>”
    ex) C:\inetpub\wwwroot\wss\VirtualDirectories\intranet.spnote.dev80

수정할 부분은 아래와 같습니다.
What items should you change are below.

  1. CallStack : true
  2. customErrors : Off (case sensitive)
  3. debug: true

[code:xml;ln=off]

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <SharePoint>
    <SafeMode CallStack="true"> <!-- Line: 51 -->
  </SharePoint>
  <system.web>
    <customErrors mode="Off" /> <!-- Line: 341 -->
    <debug="true">              <!-- Line: 350 -->
  </system.web>
</configuration>

[/code]

위 설정을 완료했음에도 아래의 메시지가 나타날 수 있습니다.
Even though you have configured the values on web.config, you may encounter an error screen below.

image

이때 주소가 /_layouts/* 로 시작된 것이라면 이 Virtual Directory 내의 Web.config 파일도 수정을 해야합니다. 이때는 customErrors Mode 만 Off 로 설정하면 됩니다.
If the URL is like /_layouts/* then you need to change the web.config in _layouts(Virtual Directory) as well. You can simply change customErros Mode to Off.
  - Path: 14 HIVE\TEMPLATE\LAYOUTS\web.config

image

[참고]
- Download Web.config: web.config.zip (9.48 kb)

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 이 집에만 있는 관계로 답변은 느립니다. 참조하시기 바랍니다.