Monthly Archives: May 2011

Пара ссылок про разработку для SharePoint

Фиксирую лог своих разборок с SharePoint :) Напомню, одной из моих задач была разработка иерархического списка.

Один из опробованных вариантов решения – создание типа данных, унаследованного от Folder. Подробный туториал по построению иерархического списка на основе такого подхода можно найти тут:

http://weblogs.asp.net/sharadkumar/archive/2008/07/13/manage-hierarchical-data-in-sharepoint-lists-building-a-project-team-site-template.aspx

Этот подход как-то работает. И, учитывая предусловия, заданные автором этого туториала (обойтись без написания программного кода и без использования SharePoint Designer), решение неплохое. Но меня оно не совсем устроила. При этом у меня есть и лицензионный SharePoint Designer, и против программного кода ничего не имею. Поэтому идем дальше :)

Можно разработать Web User Control (ascx), отображающий данные в нужном нам виде. Это несложно. Вот тут описаны способы подключения web user controls к сайту SharePoint:

http://sharepointinsight.blogspot.com/2007/07/web-user-controls-in-sharepoint.html

http://jcapka.blogspot.com/2009/01/i-was-explaining-my-technique-of-using.html

А здесь довольно подробно о том, как программно доступаться к элементам списков:

http://www.sharepointdevwiki.com/display/public/Accessing+list+items+using+the+object+model

Еще один вариант, лучше чем web user controls в отношении повторного использования и удобства встраивания в сайт – создание WebPart. Ставим SDK, после этого в Visual Studio появляется кучка новых типов проектов в группе SharePoint.

Обратите внимание, что для того, чтобы создать новый проект для SharePoint необходимо, чтобы на машине был установлен SharePoint. А для его установки нужна серверная ОС. У меня на компьютере установлен Windows 7. Другая проблема, которая может возникнуть – это то, что имея Visual Studio 2010 будет проблематично делать решения для SharePoint 2007. Обе этих проблемы решаемы. Здесь подробный туториал:

http://www.dotnetmafia.com/blogs/dotnettipoftheday/archive/2010/07/15/using-visual-studio-2010-sharepoint-templates-to-deploy-a-web-part-in-sharepoint-2007.aspx

Создать проект без установленного SharePoint нельзя, но открывать уже существующие можно без проблем. Поэтому нужно просто иметь под рукой готовый пустой проект SharePoint. Такой проект можно найти в приложении к вышеуказанной статье. Чтобы проект был годен для SharePoint 2007 – удаляем из референсов проекта ссылки на библиотеки SharePoint версии 14 и добавляем референсы на библиотеки версии 12, которые можно взять из GAC на сервере, где установлен SharePoint 2007. Проверял, работает :)

Visual Studio автоматически собирает solution package (wsp), который можно разворачивать на SharePoint’е. Далее закидываем этот package на сервер и разворачиваем с помощью утилиты stsadm. Как это делать можно почитать тут:

http://www.sharepointnutsandbolts.com/2007/07/building-and-deploying-sharepoint.html

Вот этим путём я и пошел. Позже мне добрые люди подсказали ссылку на готовый WebPart для иерархических списков:

http://dyakov.design.officelive.com/hieviewwp.aspx

Возможно этот вариант будет лучше, чем писать с нуля.

Написал этот пост по большей части чтобы ссылки не потерять и зафиксировать опыт. Но возможно кому-то будет полезно :)

Павел Сурменок

http://surmenok.ru/

http://pavel.surmenok.com/