- •1.1 Обзор состояния вопроса
- •Концепция единого информационно-коммуникационного поля
- •1.1.3 СравнениеSharePointcаналогичными системами других производителей
- •1.2 МодельAs-is
- •3.1 Выбор методологий моделирования и инструментария
- •3.2 Разработка диаграмм вариантов использования
- •3.2.1 Действующие лица
- •3.2.2 Варианты использования
- •3.2.3 Диаграмма вариантов использования
- •3.2.4 Описание вариантов использования
- •3.3 Идентификация классов анализа
- •3.3.1 Глоссарий предметной области
- •3.4 Поведение предмета разработки
- •3.5 Взаимодействие объектов и экранные формы
- •4.1 Выбор среды разработки, языка программирования и инструментальных средств разработки
- •4.2.1 Списки для хранения данных
- •4.2.2 Работа со списками
- •4.3 Компоненты предмета разработки
- •5.1 Назначение и описание компонентов программного обеспечения
- •6.2.4 Окончание работы с порталом или вход в роли другого пользователя
4.1 Выбор среды разработки, языка программирования и инструментальных средств разработки
Система будет реализовываться с использованием платформы MicrosoftSharePoint2010, где базой для разработки пользовательских модулей является технологияASP.NET. В качестве языка программирования был выбранC#. Данная технология является частью .NET Framework, что позволяет вести разработкуWeb-приложений с использованием всех возможностей, предоставляемых этой платформой. В качестве инструментария выбрана среда MS Visual Studio 2010, обеспечивающая мощную инструментальную и функциональную поддержку выбранных технологий реализации программного обеспечения. А так же, для облегчения разработки под платформуSharePoint, были использованы следующие программные продукты:
SharePointDesigner2010 – программа, позволяющая без написания кода изменить внешний вид сайтов, разработанных под платформуSharePoint;
SharePointManager– программа, позволяющая отслеживать иерархию семейства сайтов и их каталогов;
FeatureManager– программа, облегчающая работу с пользовательскими модулями;
CAMLBuilder– программа, облегчающая построениеCAMLзапросов к спискамSharePoint.
Firebug– программа, позволяющая отлаживатьJavaScript, а так же облегчает работу сHTMLиCSS.
В качестве базы данных была выбрана СУБД MicrosoftSQLServerверсии 2008R2.
Microsoft SQL Server – это законченное предложение в области баз данных для быстрого создания масштабируемых решений электронной коммерции, бизнес-приложений и хранилищ данных. Оно позволяет значительно сократить время выхода этих решений на рынок, одновременно обеспечивая масштабируемость, отвечающую самым высоким требованиям. В сервер включена поддержка языка XML и протокола HTTP, средства повышения быстродействия и доступности, позволяющие распределить нагрузку и обеспечить бесперебойную работу, функции для улучшения управления и настройки. Также СУБД предоставляет удобный доступ к базе данных через Webпо протоколуHTTP, быстродействующий встроенный полнотекстовый поиск в данных, хранящихся в БД и в документах. Кроме того, SQL Server полностью использует все возможности операционной системы Windows.
4.2 Физическая модель данных
4.2.1 Списки для хранения данных
В системе SharePointглавной структурой хранения является список. Списки могут быть связаны с другими списками, на основеlookupколонок. Все остальные принципы целостности данных, присущие базе данных необходимо реализовывать в пользовательском коде. В конечном итоге хранение данных сводится к базе данныхMSSQL, но напрямую разработчики под платформуMicrosoftSharePointс базой дынных не работают, поскольку, как было описано выше, единицей хранения данных вSharePointявляетсяSharePointList.
Несмотря на такую специфику SharePoint, как лист, вSharePointприсутствует возможность работы с базами данных, но на прямую, а через технологиюBCS(businessconnectivityservices), поскольку база данных является внешним источником данных дляSharePoint, и необходимо привести его кSharePointList.
Создать SharePointсписок можно тремя путями:
Используя объектную модель SharePoint, описать список на языке программирования;
Используя декларативный подход на языке CAML;
Через интерфейс уже созданного сайта.
Минус последнего подхода заключается в том, что при создании нового сайта, лист необходимо создавать руками заново. Второй и третий подход аналогичны в своих возможностях.
В данном проекте был выбран декларативный подход описания списков. На рисунках 4.1 – 4.3 приведён код описания создаваемых списков.
<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" Title="Departments" FolderCreation="FALSE" Direction="$Resources:Direction;" Url="Lists/SaMLayout-Departments" BaseType="0" xmlns="http://schemas.microsoft.com/sharepoint/">
<MetaData>
<ContentTypes>
<ContentTypeRef ID="0x01008731EE1EB0C6407EA7FCFC9E61A75D6B"/>
<ContentTypeRef ID="0x0120" />
<!--Это тип контента для создания папки, без него нелюзя будет создавать папки в листе-->
<ContentTypeRef ID="0x01"/>
</ContentTypes>
<Fields>
<Field Type="URL"
DisplayName="Картинка отдела"
Group="SaM"
Required="FALSE"
EnforceUniqueValues="FALSE"
Indexed="FALSE"
Format="Image"
ID="{99ADF259-F5CA-4D4B-975F-836170B8F6A4}"
StaticName="Картинка-отдела"
Name="Картинка-отдела"
/>
</Fields>
<Views>
<View BaseViewID="0" Type="HTML" MobileView="TRUE" TabularView="FALSE">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="LinkTitleNoMenu"></FieldRef>
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="Modified" Ascending="FALSE"></FieldRef>
</OrderBy>
</Query>
<ParameterBindings>
<ParameterBinding Name="AddNewAnnouncement" Location="Resource(wss,addnewitem)" />
<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_ONET_HOME)" />
</ParameterBindings>
</View>
<View BaseViewID="1" Type="HTML" WebPartZoneID="Main" DisplayName="$Resources:core,objectiv_schema_mwsidcamlidC24;" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" SetupPath="pages\viewpage.aspx" ImageUrl="/_layouts/images/generic.png" Url="AllItems.aspx">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="Title"></FieldRef>
<FieldRef Name="Картинка-отдела"></FieldRef>
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="ID"></FieldRef>
</OrderBy>
</Query>
<ParameterBindings>
<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)" />
</ParameterBindings>
</View>
</Views>
<Forms>
<Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="EditForm" Url="EditForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="NewForm" Url="NewForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
</Forms>
</MetaData>
</List>
Рисунок 4.1 – Описание списка отделов
<?xmlversion="1.0"encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" Title="SaMAppsListDefinition" EnableContentTypes="TRUE" FolderCreation="FALSE" Direction="$Resources:Direction;" Url="Lists/SaMAppsListDefinition" BaseType="0" xmlns="http://schemas.microsoft.com/sharepoint/">
<MetaData>
<ContentTypes>
<ContentTypeRef ID="0x010065931B4DC4B243FEABEE0F4B0F107CF2"/>
<ContentTypeRef ID="0x0120" /> <!--Это тип контента для создания папки, без него нелюзя будет создавать папки в листе-->
<ContentTypeRef ID="0x01"/>
</ContentTypes>
<Fields>
<Field DisplayName="Категория"
Required="TRUE"
Type="Choice"
Format="Dropdown"
ID="{54699A56-D920-4C11-B643-1AF6D994BABE}"
Name="Категория"
StaticName="Категория"
Group="SaM"
EnforceUniqueValues="FALSE"
Indexed="FALSE"
FillInChoice="FALSE" >
<CHOICES>
<CHOICE>Общие</CHOICE>
<CHOICE>Коммуникации</CHOICE>
<CHOICE>Проектные</CHOICE>
<CHOICE>Маркетинг</CHOICE>
<CHOICE>Сайты</CHOICE>
<CHOICE>Отчетность</CHOICE>
<CHOICE>Финансы</CHOICE>
</CHOICES>
</Field>
<Field Type="URL"
DisplayName="Ссылка"
Required="TRUE"
Format="Hyperlink"
ID="{564ABB5E-7643-4458-ACC5-380E89175532}"
Name="Ссылка"
StaticName="Ссылка"
Group="SaM"
EnforceUniqueValues="FALSE"
Indexed="FALSE"/>
<Field Type="Text"
DisplayName="Описание"
Required="TRUE"
ID="{E36EABFE-AA01-47D5-9B4B-23A15F6B3BD6}"
Name="Описание"
StaticName="Описание"
Group="SaM"
EnforceUniqueValues="FALSE"
Indexed="FALSE"
FillInChoice="FALSE"/>
</Fields>
<Views>
<View BaseViewID="0" Type="HTML" MobileView="TRUE" TabularView="FALSE">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="LinkTitleNoMenu"></FieldRef>
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="Modified" Ascending="FALSE"></FieldRef>
</OrderBy>
</Query>
<ParameterBindings>
<ParameterBinding Name="AddNewAnnouncement" Location="Resource(wss,addnewitem)" />
<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_ONET_HOME)" />
</ParameterBindings>
</View>
<View BaseViewID="1" Type="HTML" WebPartZoneID="Main" DisplayName="$Resources:core,objectiv_schema_mwsidcamlidC24;" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" SetupPath="pages\viewpage.aspx" ImageUrl="/_layouts/images/generic.png" Url="AllItems.aspx">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="Ссылка"></FieldRef>
<FieldRef Name="Категория"></FieldRef>
<FieldRef Name="Описание"></FieldRef>
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="ID"></FieldRef>
</OrderBy>
</Query>
<ParameterBindings>
<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)" />
</ParameterBindings>
</View>
</Views>
<Forms>
<Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="EditForm" Url="EditForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="NewForm" Url="NewForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
</Forms>
</MetaData>
</List>
Рисунок 4.2 – Описание списка приложений
<?xml version="1.0" encoding="utf-8"?>
<List xmlns:ows="Microsoft SharePoint" Title="SaMSurvey" FolderCreation="FALSE" Direction="$Resources:Direction;" Url="Lists/SaMLayout-SaMSurvey" BaseType="0" xmlns="http://schemas.microsoft.com/sharepoint/">
<MetaData>
<ContentTypes>
<ContentTypeRef ID="0x01" />
<ContentTypeRef ID="0x0120" />
<ContentTypeRef ID="0x010060395999C47F4AB4A96D79655EAD48BA" />
</ContentTypes>
<Fields>
</Fields>
<Views>
<View BaseViewID="0" Type="HTML" MobileView="TRUE" TabularView="FALSE">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="LinkTitleNoMenu"></FieldRef>
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="Modified" Ascending="FALSE"></FieldRef>
</OrderBy>
</Query>
<ParameterBindings>
<ParameterBinding Name="AddNewAnnouncement" Location="Resource(wss,addnewitem)" />
<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_ONET_HOME)" />
</ParameterBindings>
</View>
<View BaseViewID="1" Type="HTML" WebPartZoneID="Main" DisplayName="$Resources:core,objectiv_schema_mwsidcamlidC24;" DefaultView="TRUE" MobileView="TRUE" MobileDefaultView="TRUE" SetupPath="pages\viewpage.aspx" ImageUrl="/_layouts/images/generic.png" Url="AllItems.aspx">
<Toolbar Type="Standard" />
<XslLink Default="TRUE">main.xsl</XslLink>
<RowLimit Paged="TRUE">30</RowLimit>
<ViewFields>
<FieldRef Name="Attachments"></FieldRef>
<FieldRef Name="LinkTitle"></FieldRef>
</ViewFields>
<Query>
<OrderBy>
<FieldRef Name="ID"></FieldRef>
</OrderBy>
</Query>
<ParameterBindings>
<ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
<ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)" />
</ParameterBindings>
</View>
</Views>
<Forms>
<Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="EditForm" Url="EditForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
<Form Type="NewForm" Url="NewForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" />
</Forms>
</MetaData>
<List>
Рисунок 4.3 – Описание списка опросов
Каждый список, подобно таблице базы данных, состоит из полей, SharePoint Field.
Набор полей каждого из созданных списков представлен на рисунках 4.4 – 4.6.
Рисунок 4.4 – Поля списка опросов
Рисунок 4.5 – Поля списка отделов
Рисунок 4.6 – Поля списка приложений
Доступ ко всем полям списка можно пучить через интерфейс созданного сайта, и добавить необходимые настройки прямо на работающем сайте.