Введение в решения
Разрабатывая собственное решение для SharePoint, программист сталкивается с такими элементами как features, Web-части, шаблоны и др. Каждый из этих элементов имеет собственную структуру и механизм развертывания. В то же время, если вы хотите создать тиражируемое решение, то было бы неплохо иметь некий механизм, позволяющий просто и эффективно доставить и развернуть решение для конечного пользователя. Подобный механизм существует в виде так называемых "Решений для SharePoint".
Решение для SharePoint представляет собой .cab файл, содержащий все необходимые элементы проекта, включая сборки, декларации сайта, списков, features и др. Все элементы могут быть разнесены по папкам. В то же время в корневой папке архива всегда содержится файл manifest.xml. Этот файл полностью описывает решение и служит отправной точкой для утилиты stsadm, которая позволяет разворачивать решения.
Попробуйте скачать набор бесплатных шаблонов приложений с сайта Microsoft: http://www.microsoft.com/sharepoint/templates.mspx. Тут можно найти 20 разнообразных серверных шаблонов для построения различных типов приложений. Все шаблоны имеют расширение .wsp. Переименуйте .wsp файл в .cab файл и сможете увидеть его структуру, а также получить доступ к ко всем элементам. Я рекомендую заглядывать в уже существующие шаблоны, чтобы лучше осознать структуру решения.
Ниже представлен небольшой пример файла manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<Solution SolutionId="9826eefa-8de8-4158-ad98-c9dfb3c942f2" xmlns="http://schemas.microsoft.com/sharepoint/">
<FeatureManifests>
<FeatureManifest Location="VariationsList\feature.xml" />
</FeatureManifests>
<SiteDefinitionManifests>
<SiteDefinitionManifest Location="NMUPublicPortal">
<WebTempFile Location="1033\xml\WebTempPortal.xml" />
</SiteDefinitionManifest>
</SiteDefinitionManifests>
<Assemblies>
<Assembly Location="BaseControlLibrary.dll" DeploymentTarget="GlobalAssemblyCache">
<SafeControls>
<SafeControl Assembly="BaseControlLibrary, Version=1.0.0.0,Culture=neutral, PublicKeyToken=64135d12471db5a5" Namespace="SPPortalControlLibrary" TypeName="*" Safe="True" />
</SafeControls>
</Assembly>
</Assemblies>
</Solution>
Этот манифест описывает несколько элементов решения. Тут присутствует feature, находящаяся в папке VariationsList, сборка, которая расположена в корневой папке и описание шаблона. Все пути определяются с помощью атрибута Location и являются относительными путями внутри иерархии архива.
Фактически, чтобы создать решение для SharePoint, программисту необходимо описать все его элементы в manifest.xml, а затем упаковать все элементы в .cab файл, сохраняя структуру, описанную в manifest.xml. Полученный файл можно передавать утилите stsadm, которая базируясь на описании элементов в manifest.xml выполнить развертывание решения на сервер.
Следующим шагом необходимо более детально исследовать структуру manifest.xml.