Share via


SharePoint – отличная платформа для веб-сайтов. Разве нет?

В России интернет сайтов на SharePoint пока немного (за рубежом их значительно больше), между тем эта платформа, широко используемая в интранет, выглядит очень привлекательной и в интернет/экстранет сценариях для заказчиков и для веб-разработчиков. Многие вообще не знают, что на SharePoint можно делать веб-сайты. А между тем, функционал платформы позволяет очень быстро создавать эффективные с точки зрения бизнеса веб-сайты, притом, что базовые Windows Sharepoint доступны бесплатно.

Давайте разберем довольно типовой сценарий и вы скажете - стоит ли использовать Sharepoint для веб, а если не стоит, то прошу прокомментировать - почему? Здесь еще дело в том, что в рамках семинаров TechDays я выступаю с демонстрацией создания такого сценария и вы можете скачать и презентацию и пошаговую инструкцию как ее сделать – можете попробовать и вы на своем компьютере. По этой причине, мне тем более интересны комментарии и отзывы.

Ситуация

Есть небольшая компания, пусть будет “Рога и копыта”, которой нужно сделать сайт для работы с поставщиками и партнерами.

 short-horns-and-hooves

Сценарий, который требуется отработать:

  1. поставщики размещают в форме на сайте предложения о продаже рогов
  2. продавцы-партнеры размещают в другой форме заявки на готовую продукцию для своих магазинов
  3. сотрудники компании “Рога и копыта” отрабатывают заявки, взаимодействуют с производственным отделом
  4. руководители отделов получают отчеты о процессе, контролируют ключевые показатели (кол-во заявок в день, процент принятых и прочее)

Руководство расценивает сайт как важный бизнес-инструмент и поэтому считает, что

  • с ним должны уметь работать практически все сотрудники,
  • сайт должен в перспективе интегрироваться с другими системами,
  • это должно быть поддерживаемое решение с понятными перспективами развития

В требования заказчика к сайту ложатся такие пункты:

  • ПО бесплатное либо очень недорогое (допустим в пределах 1000 долларов)
  • Разработка по времени минимальная (пусть будет 1 неделя на первоначальную версию)
  • Наличие документированного API для последующего развития системы (обязательно)
  • Возможность использование собственного дизайна для сайта (обязательно)
  • Возможность аутентификации, как внешних пользователей, так и сотрудников компании (обязательно)
  • Поддержка браузеров для партнеров и поставщиков - IE, FireFox, Safari, Opera (очень желательно)
  • Наличие специалистов на местном рынке (очень желательно)
  • Простой интерфейс для пользователей и возможность интеграции с Office 2007 (очень желательно)

Мне кажется, что пожелания заказчика довольно уместны и не выглядят надуманно.

Решение

Установка Windows Sharepoint Services

Windows Sharepoint Services 3.0 можно установить по инструкции README.docx, которая находится в приложенном архиве. После установки WSS нужно создать узел по умолчанию. Для этого нужно запустить Центр Администрирования Sharepoint (Sharepoint Administration Center) и выполнить два простых действия:

  1. Создать веб-приложение (Центр администрирования > Управление приложениями > Создание или расширение веб-приложения > Создание веб-приложения). В качестве учетной записи, из под которой будет работать ваше веб-приложение, укажите какой-нибудь служебный login из домена или учетную запись с локальной машины.
  2. Создать коллекцию узлов для этого приложения с шаблоном по умолчанию (Центр администрирования > Управление приложениями > Создание семейства веб-узлов)

Так, теперь у вас есть сайт по умолчанию и выглядит он приблизительно вот так:

Picture1

Настройка приложения для обработки заявок

Насоздавать необходимых типов, списков, завести группы пользователей, раздать соответствующие права на эти списки, и, наконец, создать рабочий процесс в Sharepoint Designer, который будет назначать задачи при появлении нового элемента в этом списке…  все это сможет сделать и соображающий пользователь, прочитав документацию. На базовом уровне, конечно :) Но, кстати, для нашего сценария этого уровня вполне должно хватить.

Я демонстрирую эту часть за 30 минут в своем скринкасте об использовании Sharepoint для простого сайта приема заявок от населения с интеграцией с Office при минимальных финансовых затратах. Мой коллега Сергей Пиминов приблизительно за это же время автоматизирует процесс оформления командировок.

Я три основных мысли в виде скриншотов привожу.

Вот так вот, по умолчанию, выглядит форма заявки на сбыт рогов в FireFox:

Picture2

Вот так строится рабочий процесс создания задачи при появлении новой заявки в Sharepoint Designer:

Picture3_

Вот так выглядит созданная задача у сотрудника, при условии, что он привязал Outlook к Sharepoint сайту одним нажатием мышки:

Picture4

Все довольно просто.

Собственно, в этом плане у платформы SharePoint все, действительно, очень хорошо – недавно проводили конкурс на лучший интранет портал и из десяти победителей пятеро использовали Sharepoint – каждый второй успешный интранет проект реализован на Sharepoint. На эту тему в обзоре даже есть специальная глава. Поэтому на этом останавливаться детально не будем.

Аутентификация пользователей и безопасность

После того как мы создали и настроили наше приложение на сайте с аутентификацией пользователей по умолчанию, т.е. с использованием Windows  Authentication, нам нужно это веб-приложение опубликовать в Интернет и включить для этой зоны аутентификацию пользователей через веб-формы. И если внутренние пользователи хранятся в Active Directory, то внешних пользователей мы, скорее всего, захотим хранить в другом месте.

 Picture3

Вообще говоря, у нас есть подробное описание и скачиваемый пакет, которые позволят реализовать этот сценарий и это, конечно же, рекомендованный и максимально защищенный путь. Но в моих презентациях на TechDays я использую вариант с хранением пользователей в локальной базе данных, которая специальным образом построена для безопасного хранения информации о пользователях и их паролях. Это будет использование ASP.NETного провайдера аутентификации SQLMembershipProvider.

В архиве можно найти пошаговый сценарий в комментариях моей презентации, а здесь я опишу основные шаги, чтобы не перегружать деталями статью.

Для начала надо создать базу данных для хранения информации о пользователях с помощью вот такой команды:

aspnet_regsql.exe -S .\sqlexpress -A all -d fba –E

(-S инстанция сервера, –A функционал аутентификации и персонализации, который сможет обеспечиваться этой базой, –d название базы, –E – неважно, сами посмотрите если интересно ;))

После чего нужно сформировать секции файла конфигурации, которуе мы добавим в файл web.config, чтобы веб-приложение понимало где живет наша база данных и какие функции обеспечивают наши провайдеры, в нашем случае это аутентификация FBA_Member и провайдер групп пользователей FBA_Role:

<connectionStrings>
  <add name="FBA_CS" connectionString="Data Source=.\sqlexpress;Initial Catalog=fba;Integrated Security=True"/>
</connectionStrings>

<system.web>
     <membership defaultProvider="FBA_Member">
    <providers>
      <add
        connectionStringName="FBA_CS"
        enablePasswordRetrieval="false"
        enablePasswordReset="true"
        requiresQuestionAndAnswer="false"
        applicationName="RogaIKopyta"
        requiresUniqueEmail="false"
        passwordFormat="Hashed"
        maxInvalidPasswordAttempts="5"
        minRequiredPasswordLength="1"
        minRequiredNonalphanumericCharacters="0"
        passwordAttemptWindow="10"
        passwordStrengthRegularExpression=""
        name="FBA_Member"
        type="System.Web.Security.SqlMembershipProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
    </providers>
  </membership>
  <roleManager enabled="true" defaultProvider="FBA_Role">
    <providers>
      <add
        connectionStringName="FBA_CS"
        applicationName="RogaIKopyta"
        name="FBA_Role"
        type="System.Web.Security.SqlRoleProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" />
    </providers>
  </roleManager>
</system.web>

Собственно, теперь мы можем расширить наше существующее веб-приложение до зоны в Интернет:
Picture5

По сути дела, Sharepoint создает в IIS еще один веб-сайт с привязкой к hostheader “rogaikopyta.ru”, который будет так же обрабатываться движком Sharepoint. А Sharepoint уже понимает, что это будет существующий узел rogaikopyta, только для него теперь можно указать другую модель аутентификации:

Picture6

Теперь у нас есть 2 веб-сайта (интранет и интернет) и соответственно 2 web.config, в которые и надо добавить секции сформированные раннее. Эти файлы живут в каталогах C:\inetpub\wwwroot\wss\VirtualDirectories\[ID вебсайта]. Теперь оба наших сайта знают про пользователей, которые будут храниться не в Active Directory, а в SQL таблице. Но то, что они про них знают, еще недостаточно, чтобы этих пользователей пустили на сайт – нужно еще рассказать Sharepoint какие будут права у этих групп и пользователей. Кстати, мы добавили FBA (Forms Based Authentication) провайдеры в нашу интранет зону, как раз, для того, чтобы с нашим Windows account и админскими правами зайти на внутренний сайт и раздать права на сайт пользователям из Интернет зоны, про которых этот сайт теперь тоже знает (хотя он этих пользователей, скорее всего, не увидит в дальнейшем).

Picture7

Ну а вот теперь, мы можем совершенно спокойно зайти на сайт из того же FireFox (только с целью продемонстрировать работающие менюшки в Sharepoint :) ), использую учетную запись из FBA.

 Picture8

Я совершенно уверен, что даже такой упрощенный вариант аутентификации пользователей в смешанных зонах будет безопаснее большинства веб-сайтов, в которых этот механизм разрабатывался веб-студиями самостоятельно. А сейчас, как известно, киберпреступность цветет полным цветом.

Внешний вид сайта

Как я уже говорил в самом начале, за рубежом веб-сайтов на платформе Sharepoint довольно много – вот сотня наиболее интересных со скриншотами. У нас их пока мало – я вот здесь собрал ссылки на известные мне сайты (если знаете другие – можете туда добавить).

По поводу изменения внешнего вида сайта на Sharepoint у нас есть подробный и обстоятельный доклад Тани Сметаниной. Она там разбирает способы брендинга для коммечерского продукта Microsoft Office Sharepoint Server, в котором реализована поноценная фунциональность системы управления контентом. Я же в своей презентации использую упрощенный функционал бесплатных Windows Sharepoint Services.

По моему прошлому опыту, процесс брендинга на Sharepoint, надо признаться, более трудоемкий чем использование того же Template-Toolkit :) Но для B2B сайта сделать простой дизайн особого труда не составит. Смотрите сами – в общем случае за внешний вид отвечает так называемый MasterPage, в котором HTML определяет внешний вид и местоположение PlaceHolders, в которых движок Sharepoint отрендерит свой контент – меню, заглавие, основная область и прочее. Все эти placeholders в своем MasterPage нужно оставить, а если они не будут использоваться - спрятать используя <asp:Panel visible="false" runat="server"></asp:Panel>. Таким образом, если с помощью Sharepoint Designer в файл _catalogs/masterpage/default.master скопировать текст minimal.txt, который я приложил к архиву, то страница будет выглядеть вот так:

Picture9

Теперь сверившись с документацией (кстати, уже на русском языке) по каждому placeholder можно нарисовать свой дизайн. Чтобы не рисовать рога и копыта самому, я попросил автора сайта Start In Garage прислать мне свой вариант masterpage и он мне любезно его предоставил.

Если вы замените содержимое masterpage на текст из файла startingarage.txt, с помощью того же Sharepoint Designer, скопируете в корень сайта 2 файла - sig_core.css и web.sitemap, а также скопируете все картинки в каталог images на сайте, то получите вот такой внешний вид сайта:

Picture10

Ну в общем, становится очевидно, что верстальщик по макету дизайнера может дальше доводить этот masterpage до неузнаваемого вида, например, вот такого – Motobloggers.

А если пойти еще дальше, то можно сделать на SharePoint вот такой вот сайт или такой :)

Picture14

И, действительно, сделать это вполне можно, т.к. Silverlight контрол можно легко научить брать информацию из веб-сервисов, которые доступны для данных в  Sharepoint без дополнительных усилий со стороны разработчика. Как ребята из EPAM это делают для своего проекта интерактивного управления знаниями внутри компании  рассказывается в этом подробнейшем докладе, сделанном не на PowerPoint, а на Silverlight. Там же вы найдете коды приложения. Обязательно посмотрите – очень интересно :)

Поддержка IT отделом и дальнейшее развитие решения

То, что наше решение изначально обладает набором веб-сервисов для изменения содержимого и настроек сайта, и мы можем как угодно интегрировать наш сайт с другими системами – само собой разумеющийся факт. Вот подробная документация на русском.

Меня восхищает другое… На Windows платформе любым .NET приложением можно “рулить” из PowerShell. Например, когда я делал аутентификацию пользователей с использованием SQLMembershipProvider мне ужасно не хотелось создавать пользователей из нарядного веб-интерфейса – просто потому что тру-сисадмины не любят нажимать кнопки в веб-интерфейсах, тем более если нужно создать сотню пользователей. Я задумался над тем, чтобы реализоваться этот функционал на PowerShell. Решение довольно простое - модель провайдеров аутентификации в .NET реализована в сборке System.Web, а настройки для этих провайдеров, как мы видели, берутся из соответствующих секций .config файла. PowerShell – это .NET приложение, поэтому я создал файл powershell.exe.config, скопировал в него XML со строкой соединения и секцией system.web, подгрузил сборку System.Web и моя командная строка PowerShell превратилась с точки зрения .NET в ASP.NET веб-сайт, в котором я могу создавать пользователей и группы! За 5 минут был создан вот такой вот файлик:

[System.Reflection.Assembly]::LoadWithPartialName("System.Web");

function global:create-asprole([String]$name=$(throw 'Parameter -name is missing!'))
{
  [System.Web.Security.Roles]::CreateRole($name)
  write-host "Role was created"
}

function global:add-aspusertorole([String]$user=$(throw 'Parameter -user is missing!'),
                                  [String]$group=$(throw 'Parameter -group is missing!'))
{
  [System.Web.Security.Roles]::AddUserToRole($user, $group)
  write-host "User was added to role"
}

function global:create-aspuser([String]$user=$(throw 'Parameter -user is missing!'),
                   [String]$password=$(throw 'Parameter -password is missing!'),
                               [String]$email=$(throw 'Parameter -email is missing!'))
{
  $result = [System.Web.Security.Membership]::CreateUser($user, $password, $email)
  if ($result) { write-host "User was created" }
}

и я получил возможность написать скрипт (ну и пойти пить пиво соответственно), как тру-сисадмин:

create-asprole admins
create-asprole users
create-aspuser user1 password1 email1
create-aspuser user2 password2 email2
create-aspuser user3 password3 email3
add-aspusertorole user1 users

Объектная модель SharePoint реализована на .NET и поэтому мы можем замечательно работать с ним из PowerShell. Подробнее про работу с Sharepoint из PowerShell можно узнать из доклада Александра Романова – Ударим PowerShell’ом по SharePoint’у :) Мой вариант настроек для работы с Sharepoint и описанные скрипты есть в архиве.

PowerShell это, действительно, нечто! Даже для веб-решений под Unix платформу не всегда имеется полноценный интерфейс работы из командной строки. Как не странно, на Windows платформе такая сложность исчезает.

Готовые и полуготовые решения, которые вы можете использовать

Ни один доклад сейчас не проходит без упоминания про кризис и ситуация такова, что IT отделы заморозили внедрение крупных проектов, а веб-студии ищут возможности заработать на тех клиентах, для которых сайты уже сделаны. Здесь могут помочь 40 готовых шаблонов для Windows Sharepoint Services.

IT отделы могут своими силами, малой кровью автоматизировать некоторые задачи, а также создать сайт своего отдела (времени на это не потребуется) и показать руководству на этом сайте как много задач перед ними стоит и насколько они критичны для бизнеса :)

Веб-студии могут включить в свой портфолио эти 40 шаблонов и пройтись по своим клиентам с предложением “занедорого” решить в компании одну из задач. Т.е. если в компании имеется Windows Server 2003/2008 с обязательным набором клиентских лицензий, то без дополнительных инвестиций в программное обеспечение, на базе WSS можно решить эти задачи. Конечно же, это не готовые вертикальные решения, в шаблонах реализован базовый функционал, который вы можете развить самостоятельно, но этого зачастую бывает достаточно. 2 года назад для одной компании мной был предложен временный вариант решения задачи Служба технической поддержки на WSS, до тех пор пока не купят полноценную систему. Насколько я знаю, до сих пор используются WSS и в ближайшее время вряд ли что-то изменится :)

-

<table>
<colgroup>
<col style="width: 33%" />
<col style="width: 33%" />
<col style="width: 33%" />
</colgroup>
<tbody>
<tr class="odd">
<td><p><strong>Название шаблона</strong></p></td>
<td><p><strong>Описание</strong></p></td>
<td><p><strong>Сфера применения</strong></p></td>
</tr>
<tr class="even">
<td><p><strong>Расписание отсутствия и отпусков</strong></p></td>
<td><p>Помогает сотрудникам управлять заявлениями на отпуск, включая учет дней, когда они будут отсутствовать, а также учет работников, на которых возложены обязанности отсутствующих.</p></td>
<td><p><em>Отдел кадров</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Совет директоров</strong></p></td>
<td><p>Обеспечивает единое расположение для заметок, задач, проблем и событий, связанных с собраниями Совета директоров.</p></td>
<td><p><em>Управление бизнесом и финансы</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Бюджетирование и отслеживание проектов</strong></p></td>
<td><p>Помогает отслеживать и составлять бюджет для нескольких связанных групп мероприятий с помощью создания проекта, задач, диаграмм Гантта и общих средств присвоения статуса.</p></td>
<td><p><em>Отслеживание проекта и руководство продуктом</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>База данных ошибок</strong></p></td>
<td><p>Помогает группам разработчиков собирать и отслеживать данные об ошибках программ, включая этапы воспроизведения, категорию, примечания, приоритет и серьезность ошибок.</p></td>
<td><p><em>ИТ и операции</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Отчеты об эффективности бизнеса</strong></p></td>
<td><p>Помогает отслеживать уровень удовлетворенности клиентов с помощью опросов и интерактивных обсуждений.</p></td>
<td><p><em>Управление бизнесом и финансы</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Центр телефонного обслуживания</strong></p></td>
<td><p>Помогает пользователям управлять процессом обработки заявок клиентов на техническое обслуживание (от определения проблемы до анализа и устранения причин).</p></td>
<td><p><em>ИТ и операции</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Управление делами в правительственных организациях</strong></p></td>
<td><p>Помогает управлять задачами, документами и назначениями в правительственных организациях.</p></td>
<td><p><em>Специальные и вертикальные структуры (правительство)</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Управление запросами на изменение</strong></p></td>
<td><p>Помогает пользователям отслеживать риски, связанные с изменениями структуры, включая возможность утверждения или отклонения изменения.</p></td>
<td><p><em>Отслеживание проекта и руководство продуктом</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Ведение учебного курса</strong></p></td>
<td><p>Помогает преподавателям хранить и организовывать материалы курса, календарные события и объявления.</p></td>
<td><p><em>Специальные и вертикальные структуры (образование)</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Проведение клинических исследований</strong></p></td>
<td><p>Помогает управлять документами, задачами, проблемами и обсуждениями, необходимыми для проведения клинических исследований.</p></td>
<td><p><em>Специальные и вертикальные структуры (здравоохранение)</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Сайт конкурентного анализа</strong></p></td>
<td><p>Помогает организовывать результаты конкурирующих предложений с помощью полезных шаблонов, предназначенных для анализа деятельности конкурентов.</p></td>
<td><p><em>Сбыт и маркетинг</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Процессы соответствия</strong></p></td>
<td><p>Помогает группам и ответственным спонсорам управлять действиями, направленными на обеспечение соответствия. Это достигается путем определения задач управления и управления библиотеками документов.</p></td>
<td><p><em>Управление бизнесом и финансы</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Управление контактами</strong></p></td>
<td><p>Помогает группам управлять контактными данными членов группы, включая синхронизацию с Microsoft Office Outlook® 2007.</p></td>
<td><p><em>Сбыт и маркетинг</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>База данных дискуссий</strong></p></td>
<td><p>Стимулирует совместную работу благодаря интерактивному обсуждению различных тем или использованию функций Office Outlook 2007 RSS.</p></td>
<td><p><em>Отслеживание проекта и руководство продуктом</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Управление спорными счетами</strong></p></td>
<td><p>Помогает отделам расчетов с поставщиками отслеживать данные счетов поставщиков, которые необходимо оплатить, включая размеры предварительных платежей и причины задержки платежей.</p></td>
<td><p><em>Управление бизнесом и финансы</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Библиотека документов и рецензий</strong></p></td>
<td><p>Помогает группам управлять циклом рецензирования документа с использованием библиотеки версий документов, включая цепочки обсуждений для обеспечения обратной связи.</p></td>
<td><p><em>Отслеживание проекта и руководство продуктом</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Сайт мероприятий для сотрудников</strong></p></td>
<td><p>Помогает сотрудникам организовывать и подписываться на меро<span id="ф"></span>приятия и события, которые спонсируются компанией.</p></td>
<td><p><em>Отдел кадров</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Льготные программы для сотрудников</strong></p></td>
<td><p>Помогает работникам находить информацию о льготах, которые предлагает работодатель, и пользоваться ими.</p></td>
<td><p><em>Отдел кадров</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Материалы и расписание курсов для сотрудников</strong></p></td>
<td><p>Помогает планировать обучение, а также предоставляет работникам возможность подписаться и получить материалы курса обучения.</p></td>
<td><p><em>Отдел кадров</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Анализ акций</strong></p></td>
<td><p>Обеспечивает централизованное расположение, которое помогает консолидировать результаты анализа финансовых активов.</p></td>
<td><p><em>Специальные и вертикальные структуры (финансовые услуги)</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Планирование мероприятия</strong></p></td>
<td><p>Помогает группам организовывать мероприятия благодаря интерактивной регистрации, планированию, обмену данными и обратной связи.</p></td>
<td><p><em>Специальные и вертикальные структуры (профессиональные услуги)</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Утверждение и компенсация расходов</strong></p></td>
<td><p>Управление этапами процесса утверждения расходов, что помогает утверждающим сэкономить время.</p></td>
<td><p><em>Управление бизнесом и финансы</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Служба технической поддержки</strong></p></td>
<td><p>Помогает группам управлять процессом обработки заявок на техническое обслуживание, включая определение основной причины и отслеживание статуса.</p></td>
<td><p><em>ИТ и операции</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Проведение комплексных маркетинговых кампаний</strong></p></td>
<td><p>Позволяет отслеживать проведение маркетинговой кампании.</p></td>
<td><p><em>Сбыт и маркетинг</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Отслеживание производственных ресурсов</strong></p></td>
<td><p>Этот шаблон помогает организациям отслеживать элементы, связанные с производственными ресурсами. При этом фиксируется ввод вручную обновленных данных о ресурсах. Пользователи получают уведомление, когда количество деталей опускается до точки дозаказа.</p></td>
<td><p><em>ИТ и операции</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Рабочая область группы ИТ</strong></p></td>
<td><p>Помогает группам управлять разработкой, развертыванием и поддержкой программных продуктов путем обновления задач проектов, проблем, контрольных точек и ошибок.</p></td>
<td><p><em>ИТ и операции</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Управление наймом на работу</strong></p></td>
<td><p>Позволяет отделу кадров оптимизировать процесс приема на работу и заполнения вакансий.</p></td>
<td><p><em>Отдел кадров</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>База знаний</strong></p></td>
<td><p>Позволяет работникам совместно использовать корпоративные знания.</p></td>
<td><p><em>Отслеживание проекта и руководство продуктом</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Библиотека</strong></p></td>
<td><p>Помогает управлять физическими активами в корпоративной библиотеке. Поддерживаются функции регистрации выдачи и возврата, а также функция автоматического уведомления о не возвращенных вовремя книгах.</p></td>
<td><p><em>ИТ и операции</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Управление процессом производства</strong></p></td>
<td><p>Помогает группам производственных инженеров отслеживать линейные производственные процессы, а также проблемы, которые мешают выполнению производственных задач.</p></td>
<td><p><em>Специальные и вертикальные структуры (производство)</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Открытие нового магазина</strong></p></td>
<td><p>Помогает группам управлять процессом открытия нового магазина, включая инструменты управления проектами и задачами.</p></td>
<td><p><em>Специальные и вертикальные структуры (розничные продажи)</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Управление материальными активами</strong></p></td>
<td><p>Помогает группам управлять заявками и отслеживать физические активы, например, их расположение, состояние, производителя, модель, текущего владельца и оценочную стоимость.</p></td>
<td><p><em>ИТ и операции</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Планирование продукта и маркетинга</strong></p></td>
<td><p>Помогает организовывать процесс разработки новых продуктов и маркетинговых материалов с использованием шаблонов планирования и средств совместной работы.</p></td>
<td><p><em>Сбыт и маркетинг</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Отслеживание проекта</strong></p></td>
<td><p>Помогает небольшим группам управлять проектными данными, например, проблемами проекта, задачами и его статусом.</p></td>
<td><p><em>Отслеживание проекта и руководство продуктом</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Запрос на предложение</strong></p></td>
<td><p>Помогает управлять процессом создания и деблокирования запросов на предложение, а также процессом сбора поданных предложений и уведомлений о согласии.</p></td>
<td><p><em>Управление бизнесом и финансы</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Бронирование переговорных и оборудования</strong></p></td>
<td><p>Позволяет группам управлять использованием общих переговорных комнат и оборудования.</p></td>
<td><p><em>ИТ и операции</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Канал продаж</strong></p></td>
<td><p>Помогает группам управлять каналом продаж путем отслеживания потенциальных клиентов, возможностей, контактов и бизнес-партнеров.</p></td>
<td><p><em>Сбыт и маркетинг</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Спортивная лига</strong></p></td>
<td><p>Помогает компании управлять бейсбольной лигой. Включает в себя игроков, капитанов, расписание игр и статистику.</p></td>
<td><p><em>Специальные и вертикальные структуры (потребительский сектор и развлечения)</em></p></td>
</tr>
<tr class="even">
<td><p><strong>Сайт командной работы</strong></p></td>
<td><p>Позволяет проектным группам централизованно хранить фоновые документы, отслеживать календарные события и подавать планы мероприятий, выработанные на собраниях групп.</p></td>
<td><p><em>Отслеживание проекта и руководство продуктом</em></p></td>
</tr>
<tr class="odd">
<td><p><strong>Управление рабочим временем</strong></p></td>
<td><p>Упрощает процесс отслеживания количества часов, затраченных на несколько проектов. При этом фиксируется время начала и завершения работы, отслеживается выполнение работ и количество часов, затраченных на определенную дату.</p></td>
<td><p><em>Отслеживание проекта и руководство продуктом</em></p></td>
</tr>
</tbody>
</table>

В своей демонстрации я за 5 минут создаю веб-сайт IT отдела компании. В том же PowerShell запускаются вот эти команды, которые приведены в инструкции по установке шаблонов:

stsadm -o addsolution -filename ApplicationTemplateCore.wsp
stsadm -o deploysolution -allowgacdeployment -immediate -name ApplicationTemplateCore.wsp
stsadm -o copyappbincontent
stsadm -o addsolution -filename ITTeamWorkspace.wsp
stsadm -o deploysolution -allowgacdeployment -immediate -name ITTeamWorkspace.wsp

потом нам остается создать сайт по установленному шаблону

Picture11

и мы получаем вот такой вот сайт, где можно вести IT проекты, отрабатывать запросы пользователей, контролировать работоспособность отдела с помощью настраиваемых индикаторов и т.д.

Picture12

 Picture13

Не стоит и говорить, что решения на этих шаблонах можно также опубликовать в Интернет. Компания Infobox уже делает это для своих заказчиков.

Сколько денег это стоит и что выбрать заказчику?

В семействе SharePoint можно выделить 2 группы продуктов. Первая - WSS (Windows SharePoint Services 3.0) – это базовая технология для повышения продуктивности совместной работы (распространяется как бесплатный компонтент для Windows Server и Small Business Server), с помощью которой можно быстро развернуть интранет сайт для небольших коллективов и организаций или как пилотный проект. Вторая группа – SharePoint Server 2007 и SharePoint Server 2007 for Internet Sites – стоят денег, поскольку предоставляют востребованный в корпоративной среде функционал - например, управление контентом, поиск по документам и информационным системам, сбор данных с помощью форм, бизнес-анализ и т.п. Вот здесь, например, Максим Козленко демонстрирует использование Excel Services, составляющую MOSS.

Для того чтобы все описанное в этой статье было правильно лицензировано в интранет, достаточно иметь Windows Server 2003/2008 и если размер базы данных не будет превышать 4Gb можно использовать бесплатный SQL Express – т.е. нулевые инвестиции.

Если мы рассматриваем интернет/экстранет сценарий то, любой аутентифицированный пользователь должен иметь Windows Server лицензию. Если таких пользователей несколько десятков – купите на них Windows Server CAL, они недорогие. Если пользователей может быть много и непонятно сколько CAL нужно покупать – купите External Connector для Windows Server. Также вы можете использовать Windows Web Server 2008 (который был доступен бесплатно по акциям на сайте microsoftweb.ru) для интернет/экстранет сценария и не думать о CAL для внешних пользователей. Правда на Windows Web Server нельзя по лицензионному соглашению установить SQL сервер, но его (SQL Express) можно поставить на соседнюю машину – т.е. можно сохранить нулевые инвестиции…

Подробное сравнение функционала версий есть по ссылке.

Подробнее про лицензирование WSS для интернет написано здесь.

Здесь только главное не начать “экономить на спичках” :) Есть возможность начать с минимума и масштабировать систему до серьезных масштабов с использованием правильных продуктов. За то время (и, соответственно, стоимость проекта) пока вы будете самостоятельно реализовывать функционал MOSS, можно разобраться с Sharepoint Server и существенно повысить свою стоимость, как разработчика, на рынке труда – хороших специалистов по Sharepoint на порядок меньше чем, например, разработчиков PHP, а востребованность в SharePoint растет – это факт даже в условиях кризиса (для Великобритании, но для России ситуация в тренде не будет отличаться).

Picture15

В конце концов, если у вас есть идея создания собственного продукта или коммерческого сервиса и вы видите уместным использование платформы Sharepoint – просто прочитайте описание программы BizSpark в моем блоге и пришлите мне запрос – sergey.polyakov@microsoft.com - я предоставлю весь необходимый софт для коммерческого использования, включая мощный MOSS for Internet на 3 года за 100 долларов.

Резюме

В заключение, помимо того, что мое решение полностью соответствует требованиям заказчика, хочу добавить краткие результаты с точки зрения директоров в компании.

Исполнительный директор:

  • Веб-сайт является интегрированным с другими системами бизнес инструментом
  • Нет проблем с обучением пользователей + функционал сайта доступен через Office 2007
  • Получен готовый функционал для контроля и отчетности бизнес-процессов

Финансовый директор:

  • Разработка и сроки минимальные
  • Стоимость ПО варьируется
  • Сделанные инвестиции защищены лидирующим положением продукта на рынке и долгосрочными планами развития платформы
  • В регионе найдутся специалисты со знанием .NET, которые смогут дальше развивать решение

IT директор:

  • Используется существующая IT инфраструктура и не нужно обучать системных администраторов
  • Приложение легко масштабируется за счет особенностей платформы
  • Интеграция и поддержка решения с другими системами осуществляется с помощью документированного API и PowerShell

horns-and-hooves

Ссылки в догонку

Есть вопросы и комментарии по теме? Пишите.

Comments

  • Anonymous
    February 15, 2009
    The comment has been removed

  • Anonymous
    March 10, 2009
    Коллеги из компании Интеллектуальные Системы , которая является партнером Nintex в России, записали презентацию

  • Anonymous
    March 30, 2009
    Здравствуйте, не могли бы вы подсказать как именно заменить дизайн placeholders ?

  • Anonymous
    March 30, 2009
    C помощью HTML и CSS Посмотрите доклады и посты здесь http://www.techdays.ru/category/12/1.html и здесь например http://habrahabr.ru/blogs/sharepoint/53585/ Вообще много чего можно найти на sharepoint-community.ru в разделе для разработчиков.

  • Anonymous
    March 31, 2009
    Все эти ресурсы я изучал, но нужного мне не нашел. Конкретизирую вопрос: как изменить html верстку placeholders?

  • Anonymous
    March 31, 2009
    надо открыть страницу, на которой есть необходимый вам placeholder и изменить его. Сделать это можно через Sharepoint designer. Если у вас MOSS – то искать надо не страницу, а PageLayout. Найти его можно в библиотеке мастер страниц

  • Anonymous
    October 10, 2010
    >> name="FBA_Member" >>      type="System.Web.Security.SqlMembershipProvider,System.Web,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" /> Откуда вы берёте PublicKeyToken=b03f5f7f11d50a3a?