by MOONSO KO
26. June 2011 20:04
회사 선배의 요청으로 이제 막 SharePoint 개발자로 입문하실 분에게 알맞은 책을 추천해달라는 문의가 있었습니다. 책을 고르려고 보니 아무것도 모르는 시절 단지 앞으로 SharePoint 를 기반으로 개발을 한다는 것만 알고 시작했던 때가 생각납니다. 그때는 ASP.NET, SQL Server, JavaScript 등 .NET 개발자 3개월 속성코스(저녁까지, 주말엔 숙제)를 밟고 있었는데 출처를 모르는 PDF 파일을 제본하여 보았고 막상 자세한 내용도 없으므로 몰라도 계속 봐야만 했었습니다. ^^
저도 직접적인 SharePoint 개발에 감을 잃은지 약 1년이 지난 지금 얼마나 도움이 될지 모르겠지만 그간의 경험을 기준으로 각 레벨에 맞는 책에 대한 내용을 정리했습니다. 현재는 운영, WebPart 개발 정도는 하고 있으며 곧 진행할 SP 2010 으로 업그레이드 프로젝트를 위해 시간나는대로 공부하고 있습니다. 안타깝게도 원서의 책들을 모두 다 눈으로 보고 내용을 확인하면 좋겠지만 한국에서는 가장 큰 교보문고에 가서도 몇권밖에 확인이 되지 않습니다. 캐나다나 미국에서도 대형 서점이 아니면 그런 기회는 없을 것으로 예상됩니다. 뉴욕의 반스&노블스는 엄청 컸던 기억이 납니다. 그래서 사람은 큰 물에서 놀아야한다는... 여튼, 제가 확인이 가능한 책들을 기준으로 1차로 개발자를 위한 책을 요약하겠습니다. (Admin, End User 는 다음에 추가하겠습니다.)
책을 소개하기에 앞서 가장 중요한 장벽에 대해 말씀을 드리면 영어입니다. 제가 경험한 바로는 개발자가 영어에 친숙한 분은 많지 않았습니다. 저는 MOSS 2007 의 SqlMembershipProvider 를 Custom 하는게 제 첫번째 개발이었는데 이때 SqlMemberShipProvider 와 MSDN 등을 막 뒤져서 활용해야했습니다. 하지만 이때부터 한글은 도대체 찾아볼 수 없는 현실에 부딛치게 되었습니다. 한 페이지 읽는데 30분 이상씩 걸리고 읽어도 잘 해석도 안되고 아주 힘든 과정이었습니다. 안타깝게도 여기서 포기하신 분들이 많은데 이 역경을 이기지 못하면 앞으로 쉽게 거져 얻을 수 있는 기회를 잃어버린 것과 같습니다. CodeProject, CodePlex, StackOverflow, Bing 과 Google 검색, SharePoint Vendor 활용, 매거진 구독 등 개발 능력과는 별도로 앞으로 개발시에 많은 도움을 받을 수 있는 Resource 는 업무에 직/간접적으로 영향을 주기에 꼭 영어 공부(Only Reading) 하시기를 권장 드립니다. 비단 SharePoint 개발자만이 아닌 .NET 개발자도 영어를 잘하시면 혜택이 많습니다. 저도 영어를 못하기에 되도록 원서를 읽으려고 하고 시간나면 영어 공부를 하려고 합니다.
그럼 책 소개입니다. 제가 소유하지 않은 책도 있어서 Amazon 의 평을 참고하고 간략히 살펴보고 작성했습니다. 향후 책을 읽어가는대로 업데이트하겠습니다. 고급책은 Must Have 아이템으로 꼭 득템하시기 바랍니다.
b1f5b88e-41bf-48e6-9c61-1a193ebddf32|0|.0
Tags:
SharePoint
by MOONSO KO
11. June 2011 12:10
Two month ago, I requested buying three SharePoint 2010 books to my company and I could get one of them today and it is Professional SharePoint 2010 Administration. As a SharePoint Developer + Administrator, I need to handle admin stuff as well. In SPS 2003, the main admin jobs are setting IIS and watching logs. I expect it will be much harder and need to study more on SharPoint 2010 administration.
Even though I could download many white papers and documents from Microsoft but they are too plenty and I can't get the general or wide categories with easy access like reference books on my shelf. So I'm happy for it and two books are coming up soon.
The three books I've chosen are below
I'll put notes as I read and study them.
by MOONSO KO
25. May 2011 21:32
Document Library 에서 다음 페이지를 눌렀을때 아래와 같은 에러 메시지가 나타났을때의 처리 방법
(상황)
Document Library 에는 약 140 개의 문서 Item 이 저장되어 있었고 정렬이 수정일 기준 내림차순으로 기본 뷰가 수정되어 최신 글이 상위로 가는 지극히 국내 환경에 맞는 일반적인 형태로 기본 뷰가 구성되어 있었습니다.
(에러 메시지)
- EN: "<!-- #RENDER FAILED# -->"
- KR: "<!-- #렌더에 실패하였습니다.# -->"
(이유)
이 에러가 발생하는 이유는 SQL Server 의 SharePoint 관리 계정의 언어가 non-English(US) 인 경우에 발생합니다. 이는 날짜 형식이 영어가 아닌 언어로 선택되어 있을 경우에 문제가 발생한다고 합니다.
당연히 한국에서는 한글 제품을 사용하므로 기본 한글이 설정하기에 이는 버그로 보는 것이 맞을 것 같지만 정식 지원이 만료되어 MS 에 패치 등을 요청해도 될지는 모르겠습니다.
(해결: △)
우선 관련 이슈에 대한 내용이 MS 지원에 나타나있으나 해결에는 도움이 되지 않았습니다.
1. Group By View
- 여전히 렌더링 실패
2. DB 관리 계정의 언어 변경
- 보통 이 계정이 시스템 계정으로 기 적용된 설정 등과 변경 후 영향을 고려하여 변경 불가
(대안)
사용자의 목적은 작성 글 기준 내림차순이므로 문제가 되는 날짜가 아닌 숫자인 ID 를 필드로 설정하면 수정일까지는 아니지만 작성일 기준 내림차순 효과를 나타낼 수 있습니다.
(참고)
Error message when you try to expand an entry in a Grouped By view
in Windows SharePoint Services, in SharePoint Server 2007, or in SharePoint Portal Server 2003:
"<!-- #RENDER FAILED# -->"
by MOONSO KO
18. May 2011 14:13
2009년 여름 즈음 개발 PC 설치 작업을 하던 중 Windows 2003 Server 에 SharePoint 2007 을 설치하고 접속을 하려는데 인증창이 나타나고 별 생각없이 계정정보를 넣지만 인증이 되지 않고 급기야 3번이 넘어가서는 하얀색 화면이 나타났던 기억이 납니다. 로컬 PC 에서 개발할때는 보통 호스트 이름으로 접속을 하기에 자연스럽게 NTLM 인증이 되고 인증창 이슈 등은 없었는데 갑자기 나타난 상황에 잠시 당황을 했었습니다.
요즘엔 SPS 2003 환경에서 일을 하고 있고 설마 신규 환경을 구축할까 의문을 가지고 있었으나 의외로 많이 생기고 있습니다. Windows 2003 에 SPS 2003 을 설치, 포털 사이트를 하나 만들고 custom host header 에 ex. wss20.spnote.com (로컬) 을 할당하고 접속을 하니 과거에 경험했던 인증창이 계속 나타나고 HTTP 401.1 - Unauthorized: Logon Failed 이 나타났습니다.
# 401.1 - Unauthorized: Logon Failed

흠... 그런데 과거에 경험했음에도 한번에 Loopback 관련이라고 한번에 생각이 나지 않아서 Fiddler 부터 켜고 HTTP 코드부터 봤는데 역시나 검색하니 잘 나옵니다. 결론은 Windows 2003 Server Service Pack 1 부터 loopback 검사가 포함이 되서 그렇다고 합니다. 로컬 서버에서 FQDN 이나 custom host 로 접속하면 이 조건에 걸려서 로긴이 되지 않습니다. 이때 타 PC 등에서 custom host header 를 hosts 파일에 저장하고 접속을 시도하면 잘 되는데 여기서 이상한 상상하면 해결하기 어렵습니다.
접근 시도는 아래와 같습니다.
1. NTLM 인데 인증창이 나타남?
2. 올바른 계정인데도 401.1 나타남?
해결은 레지스트리를 수정해야 합니다.
1. Loopback 을 허용하는 사이트 추가 (권장)
2. Loopback 점검 제거 (disable)
# MS 에서 비추하지만 로컬이니 PASS

자세한 설명과 레지스트리 설정 방법은 아래의 링크를 참조하시면 됩니다.
http://support.microsoft.com/kb/896861
by MOONSO KO
16. May 2011 21:33
When you create a team site, you could meet the issue which is the OK button is disabled when you click the button at Add Link to Site page. If you click the OK or Cancel button, the page stops responding.
Page Url is : /SiteDirectory/Lists/Sites/NewForm.aspx
# The issue occured page
This issue occurs after I installed Microsoft Windows 2003 Service pack 2 (SP2) on the server and I found out this issue can be solved by upgrading SP2 to SP3 and also this issue occurs when SP1 with security update 933854 or together with security update 928365.
Here is a link for SP3.
Download the SharePoint Portal Server 2003 Service Pack 3 (SP3) package now.
There's a another way you could solve this issue but not recommended.
Not recommended is meaning that you should edit a SharePoint file but this could occur some other issues and microsoft will not allow this (like it could affect when you upgrade future service packs). Anyways, this can be useful for someone who has this issue but he or she cannot upgrade to SP3 for now.
[Resolution]
- Open \60\TEMPLATE\1033\SPSSITES\LISTS\SITESLST\NewForm.aspx
- Go to line 90
- Change the InputFormButtonAtBottom to plain Input tag
From
<SPSWC:InputFormButtonAtBottom ID="ButtonOk" runat="server" TextLocId="Page_OkButton_Text"/>
To
by Admin
7. May 2011 23:36
Finding Team Sites user can access is not easy in SharePoint 2003 but my company needs that feature cause users are very demanding... Anyways, it could be solved with querying right into the SharePoint Content Database but it's not good for the SharePoint and database as well.
I don't know how this query affect to SharePoint and the database but I recommend you not to use for applications cause it takes many resources and could cause SharePoint not working properly. I saw an artile about this but I don't have an url for now. Anyways, use these for information check only.
If you have any info on this, please share it to here.
- Team Site Url by User ID or Group
- Query
-- 1. Team Sites I can access using ID or Group
SELECT w.FullUrl
FROM UserInfo [u] WITH (NOLOCK)
LEFT JOIN WebMembers [wm] WITH (NOLOCK) ON u.tp_ID = wm.UserID
LEFT JOIN Webs [w] WITH (NOLOCK) ON u.tp_SiteID = w.SiteID
LEFT JOIN WebGroupMemberShip [wgms] WITH (NOLOCK)
ON w.ID = wgms.WebID
AND u.tp_id = wgms.MemberID
LEFT JOIN WebGroups [wg] WITH (NOLOCK)
ON wgms.WebID = wg.WebID
AND wgms.GroupID = wg.ID
WHERE --wgms.MemberID IS NOT NULL AND
w.WebTemplate <> 21 -- except for personal sites
AND w.FullUrl LIKE 'sites/%'
AND ( tp_Login = 'SPNOTE\nicole' OR tp_Login IN ('SPNOTE\bankershall2', 'SPNOTE\Domain Users') )
GROUP BY w.FullUrl
- Query results
- User Permission by User ID or Group
- Query
-- Get permission info using ID or Group
SELECT w.Title [Web Title], w.FullUrl, u.tp_Login, wg.Title [WebGroup Title]
FROM UserInfo [u] WITH (NOLOCK)
LEFT JOIN WebMembers [wm] WITH (NOLOCK) ON u.tp_ID = wm.UserID
LEFT JOIN Webs [w] WITH (NOLOCK) ON u.tp_SiteID = w.SiteID
LEFT JOIN WebGroupMemberShip [wgms] WITH (NOLOCK)
ON w.ID = wgms.WebID
AND u.tp_id = wgms.MemberID
LEFT JOIN WebGroups [wg] WITH (NOLOCK)
ON wgms.WebID = wg.WebID
AND wgms.GroupID = wg.ID
WHERE --wgms.MemberID IS NOT NULL AND
w.WebTemplate <> 21 -- except for personal sites
AND w.FullUrl = 'sites/teamsite2'
AND ( tp_Login = 'SPNOTE\nicole' OR tp_Login IN ('SPNOTE\bankershall2', 'SPNOTE\Domain Users') )
GROUP BY w.FullUrl,u.tp_Login,wg.Title, w.Title
- Query results
- user.aspx
- All Team Site Users by Team Site Url
- Query
-- Get All Team Site Users by Team Site Url
SELECT
tp_Login [Login]
, tp_Title [Title]
, tp_Email [Email]
, CASE
WHEN LEN(wg.Title) > 0 THEN wg.Title
ELSE ''
END [Group Title]
, tp_DomainGroup [Domain Group]
, CASE
WHEN wgms.MemberID IS NULL THEN 'Group'
ELSE 'Direct'
END [Direct or From group]
FROM UserInfo [u] WITH (NOLOCK)
LEFT JOIN Webs [w] WITH (NOLOCK)
ON u.tp_SiteID = w.SiteID
LEFT JOIN WebGroupMemberShip [wgms] WITH (NOLOCK)
ON w.ID = wgms.WebID
AND u.tp_id = wgms.MemberID
LEFT JOIN WebGroups [wg] WITH (NOLOCK)
ON wgms.WebID = wg.WebID
AND wgms.GroupID = wg.ID
WHERE w.FullUrl = 'sites/teamsite2'
AND wg.WebID IS NOT NULL
ORDER BY wgms.MemberID DESC
- Query results
- user.aspx
same as above one
by Admin
7. May 2011 23:35
It’s very simple tip but it helped me a lot cause the Korean Air has lots of sites.
SELECT TOP 20 * FROM Webs WITH (NOLOCK)
WHERE Title LIKE N'{TeamSiteName}%'
by Admin
7. May 2011 23:31
I have no idea where this note comes from (maybe MS Doc?) but it will help you later when you need to change the upload size.
By default SharePoint allows a maximum file size of 50MB that can be uploaded into any document library. This might be too much as you might not want users downloading 50MB files over your LAN/WAN. To change the maximum file size
- Goto SharePoint Central Administration > Configure Virtual Server Settings from Virtual Server List Page.
- Select your server
- Goto Virtual Server General Settings (in Virtual Server Management)
- Change the value of the Maximum Upload Size in MB's.
If you increase the file size limit, your site might occassionally time out for users while they are uploading files. To accomodate this increase the default time out property for IIS.
by MOONSO KO
21. February 2010 13:24
중앙 관리 사이트를 방문하면 Status Container (Title 아래) 에 Issue 가 있다고 친절히 알려줍니다.. (설정 상에 문제가 있을때 가르쳐주는 걸 보면 좋은 기능이라고 생각함) 이 Issue 를 보기 위해서 링크를 누르면, Central Administration > Monitering Tab > Review problems and solutions 의 위치로 이동합니다.
아무 생각없이 기존의 답습대로 Administrator 를 기준으로 SharePoint 2010 을 설치한 결과 앞으로는 하지 말라는 내용이 많이 포함되어 있습니다.
# Review Problems and solutions
보통은 이런 메시지가 작업에 치명적인 영향을 미치지는 않으므로 무시하고 진행을 하겠지만, 오늘은 문제가 생겨서 짚고 넘어가려고 합니다. 다름이 아니라 Service Unavailable (HTTP Error 503) 이라는 끔찍한 메시지가 나와서 진상조사를 하던 중에 이 영향?을 알게 되었습니다.
# Service Unavailable
Beta 버전이 불안정해서 그런지 하고 의심을 해보았으나 보통은 자신의 책임?이 항상 크기 마련이므로 SharePoint 관련 서비스 점검하던 찰나에 단서를 발견하였습니다. 평소 무거운 관계로 필요 없을 듯해 보이는 서비스들을 모조리 죽여놓았었는데... SPUserCodeV4 서비스를 실행하던 찰나에 아래와 같은 메시지를 발견하였습니다. (Sandboxed Solution 사용하면 필요 많습니다.)
# Error while starting SPUserCodeV4
갑자기 인증 문제가 있다니??? 여튼, 단서를 발견하고 곰곰히 생각을 해보니 좀 전에 재부팅하면서 Administrator 암호를 바꾼 기억이 떠올랐습니다. ㅡㅡ; 여튼, 다시 바꾸고 SQL Server 부터 SharePoint 관련 서비스들을 다시 실행하니 정상적인 페이지를 만날 수 있었습니다. Windows 2008 R2 를 사용 중인데... 암호가 기본적으로 42일만 살수가 있어서 그 이후엔 다시 바꾸게 되어 있더군요... 여튼, Windows 2003 시절처럼 가볍게 바꾸려고 했더니... 바꿀 수 없도록 비활성화가 되어 있었지만 구글링해서 적용하였습니다.
당연한? 말이기도 하지만, 보안 및 설정 상에 있어서 Administrator 보다는 특정 계정을 생성하여 관리하기를 권장합니다. 오늘은 SharePoint Blog 에서 Enabling a Button on the Ribbon Based on Selection 를 따라하다가 Visual Studio 에서 제공하는 솔루션 관리 기능은 믿을게 못된다는 생각을 고집하면서 재부팅하다가 이런 문제를 만났습니다. 이상하게도 Custom Action 의 커스터마이즈가 잘 안되더군요... 중요한 것은 SDK 를 맹신하고 자료가 눈 앞에 없더라도 주변을 잘 둘러보면 해결이 되는 것 같습니다. 다음은 이 글을 이용하여 간단한 예제를 만들어 보겠습니다.
by will
11. February 2010 07:07
안녕하세요?
Will 입니다. 이번에는 VS2010 의 편리한 기능이 있어서 소개해 드리도록 하겠습니다 Moss2007을 개발 하셨던 분들은 .WSP파일을 기억
하시고 있을 것이라고 생각 합니다. 그런데 이런 파일들을 VS2010에서 자체적으로 압축을 풀고 Feature단위로 나뉘어서 Solution파일로
복원을 시켜주는 기능이 있습니다. 2007에서 개발 됬던 것들을 2010으로 converting시 매우 유용 하리라고 생각 합니다.
1. VS2010 에서 File -> New -> Project
2. Visual C# -> Sharepoint 0> 2010 -> Import SharePoint Solution Package
3. 배포할 서버 선택 -> Next
4. .wsp파일을 찾아서 선택해 달라는 내용입니다. -> Browser를 선택 해서 해당 파일을 선택
5. 파일을 선택 했으면은 Next
6. .wsp파일의 복원 파일들이 맞는지 체크를 해달라는 내용입니다. 체크를 확인 하고 Finish
7. 완료가 되면은 Success라는 팝업 창이 뜨고 파일들의 복원을 확인 할 수 있습니다.