Сегодня я хочу написать про Microsoft SharePoint с точки зрения человека, который с нуля организовывает новую производственную линию на этом фреймворке. Все-таки, SharePoint – это довольно новая технология на веб-рынке России, и про нее мало кто знает – чем больше информации – тем лучше.
Мы в ADV со второй половины 2010 года начали делать проекты на SharePoint и столкнулись как с положительными сторонами (сильная поддержка ребят из Microsoft), так и с отрицательными (довольно новая для российского рынка технология). Но, в любом случае, приятно и интересно ощущать себя первопроходцем по внедрению новой технологии.
В принципе, SharePoint – это фреймворк + CMS, на основе которых можно построить любое веб-приложение. Мы, например, используем его как для создания публичных сайтов, так и для интранетов, хотя изначально платформа разрабатывалась именно для интранетов.
Мы данную платформу ориентируем на построение систем с открытыми бизнес-процессами, т.е. когда интранет и экстранет тесно связаны друг с другом. Например, процесс публикации контента построен так, что он начинается в интранете, затем, после всех этапов согласований, контент оказывается в публичной части. Точно так же строится обратный процесс – все заявки пользователей из внешнего сайта попадают в интранет в поле ответственности нужного человека.
Что бы дать какое-то представление о том чем оснащена платформа дам для начала сравнение с популярной на нашем пространстве платформой Битрикс, который уже хорошо знаком рынку, поэтому интересно посмотреть, что дает SharePoint.
Специально не буду касаться здесь возможностей интеграции и кластеризации, тк это будет нечестно — все-таки это функции промышленных систем, и для задач решаемых обычно с помощью Битрикс они не требуются.
Необычной и одновременно полезной фичей SharePoint оказался Excel Services – сервис, который позволяет использовать таблицу Excel как хранилище данных и формул расчета для онлайн-калькуляторов. В остальном обе системы похожи по функциональности.
Если вы хотите использовать SharePoint для создания публичных сайтов, то с технологической стороны потребуется некоторая сноровка.
Например, для «натягивания» чистой кроссбраузерной верстки с современными спецэффектами, которая так важна в публичных сайтах, лучше изучить книгу Professional SharePoint 2010 Branding and User Interface Design. На русский она пока не переведена, но в интернете есть заметка, которая поможет начать разбираться.
Кроме того, по возможности, лучше использовать WebControls вместо WebParts – функционал похож, зато возможности кастомизации у WebControls намного шире. Есть также альтернативы, например, использование шаблона Model View Presenter, но это уже тема для отдельной статьи.
Также придется поколдовать с настройками IIS и SharePoint, чтобы разрешить доступ неавторизованным пользователям.
При этом есть и плюсы:
Таким образом, после некоторого времени на «вхождение в тему» SharePoint может стать гибким и удобным инструментом для создания публичных сайтов любой сложности.
Хочу отметить, что у Microsoft сильно развита система поддержки своих партнеров. Начиная от программы BizSpark, которая позволяет получить большой пакет бесплатного ПО, до выделения архитекторов SharePoint в помощь на конкретные проекты.
Примеры интранетов я по понятным причинам показать не могу, поэтому расскажу о возможностях SharePoint для построения интранетов, которые мы используем в своей работе:
Если IT-архитектура вашей компании уже построена с активным использованием технологий MicroSoft, то лучше использовать SharePoint для внутренних и внешних веб-приложений, потому что интеграция будет максимально простой.
Кроме того, для не сильно нагруженных решений есть экономичные предложения: MS SQL Express и Microsoft SharePoint Foundation – с помощью этих вещей можно построить веб-приложение бесплатно.
После того, как мы решили делать проекты на SharePoint, перед нами встало несколько задач:
Рассмотрим каждую из них более детально.
Поиск SharePoint-разработчика – дело довольно хитрое. Технология для России пока экзотическая, SharePoint 2010 не знает практически никто, поэтому у нас получилась смешанная команда. В основном она состоит из опытных .NET-разработчиков, которых мы активно прокачиваем на курсах по проектированию и разработке приложений SharePoint 2010. Также есть люди, которые уже имеют опыт работы с SharePoint 2007, им было легче втянуться в работу с «десяткой».
В итоге, если говорить с точки зрения найма людей, необязательно искать строго «SharePoint-разработчика». Вполне допустимо расширить вакансию до «.NET-разработчика», а потом просто обучить новых сотрудников тонкостям SharePoint, благо есть множество тренингов, как онлайн, так и оффлайн.
Примерно такая же ситуация с SharePoint-администратором – именно SharePoint-админа мы не нашли – в итоге взяли хорошего Windows-специалиста, которого также был дообучен на специальных курсах.
На организацию тестовой среды и разработки под SharePoint закупили оборудование: разработчикам компьютеры с 16Gb оперативной памяти и 1Tb жестким диском. Такие мощности понадобились для поднятия на локальном хосте виртуальной машины, подобной серверу по объему поставленного ПО, что показалось более приемлемым вариантом в плане стоимости и производительности, чем создавать виртуальные машины на сервере.
Отдельный сервер понадобился для организации процесса разработки:
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/84d/0b8/bea/84d0b8beaeef2736229986cee8989cf2.jpg)
На сервере развернуто несколько виртуальных машин, для организации процесса: Сервер с SharePoint для демонстрации функционала, сервер непрерывной интеграции (о нем далее), отдельно Sql Server, а также Team Foundation Server (TFS). Отдельно хочу сказать про TFS – это довольно удобная штука, которая объединяет в себе контроль версий, багтрекер, таймтрекер и сервер сборок. Причем, в трекере есть пресеты для Agile-подхода: разбиение проекта на итерации и user stories, простановка оценки задача в баллах.
При желании можно добавить ко всему этому бесплатный TeamCity и получить True Aglie процесс который включает в себя и сервер непрерывной интеграции. Видеокаст как подружить это все с SharePoint есть на сайте 21 apps.
Интересен сам факт того, что крупные вендоры по производству ПО активно развивают веб-направление. Это большой плюс, потому что веб-разработчики получают в наследство от «большой разработки» множество накопленных знаний и удобных инструментов для проектирования и разработки проектов, для организации совместной работы и публикации приложений.
Сама по себе технология SharePoint современная и развитая – веб-приложения можно делать быстро и сами приложения тоже работают быстро. Кроме того, во многих крупных организациях России уже развернуто много серверных решений от Microsoft, поэтому SharePoint обещает быть востребованным.
Надеюсь, что со временем в русском интернете будет появляться все больше практических материалов, которые сделают SharePoint максимально доступным для начинающих разработчиков.
Мы в ADV со второй половины 2010 года начали делать проекты на SharePoint и столкнулись как с положительными сторонами (сильная поддержка ребят из Microsoft), так и с отрицательными (довольно новая для российского рынка технология). Но, в любом случае, приятно и интересно ощущать себя первопроходцем по внедрению новой технологии.
Для чего можно применить SharePoint?
В принципе, SharePoint – это фреймворк + CMS, на основе которых можно построить любое веб-приложение. Мы, например, используем его как для создания публичных сайтов, так и для интранетов, хотя изначально платформа разрабатывалась именно для интранетов.
Мы данную платформу ориентируем на построение систем с открытыми бизнес-процессами, т.е. когда интранет и экстранет тесно связаны друг с другом. Например, процесс публикации контента построен так, что он начинается в интранете, затем, после всех этапов согласований, контент оказывается в публичной части. Точно так же строится обратный процесс – все заявки пользователей из внешнего сайта попадают в интранет в поле ответственности нужного человека.
Насколько это сложно?
Что бы дать какое-то представление о том чем оснащена платформа дам для начала сравнение с популярной на нашем пространстве платформой Битрикс, который уже хорошо знаком рынку, поэтому интересно посмотреть, что дает SharePoint.
Специально не буду касаться здесь возможностей интеграции и кластеризации, тк это будет нечестно — все-таки это функции промышленных систем, и для задач решаемых обычно с помощью Битрикс они не требуются.
SharePoint 2010 | 1С: Битрикс | |
Наиболее востребованные сервисы | ||
Задачи | + | + |
Бизнес-процессы | + | + |
Документооборот | + | + |
Карточки сотрудников, оргструктура | + | + |
Календари | + | + |
Потоки новостей | + | + |
Интеграция с Active Directory, Outlook | + | + |
Визуальный редактор контента | + | + |
Инлайн-редактирование прямо в странице | + | + |
Конструктор форм | + | + |
Excel Services | + | |
Защита от атак | + | + |
Система сбора статистики | + | + |
Поиск с морфологией и тегами | + | + |
Онлайн-чат (в том числе видео) | + | + |
Редактируемые витрины (аля iGoogle) | + | + |
Многосайтовость | + | + |
Организационно-технические параметры | ||
Кластеризация | + | + |
Наличие хостинг-провайдеров | + | + |
Библиотека модулей от сторонних разработчиков | + | + |
Необычной и одновременно полезной фичей SharePoint оказался Excel Services – сервис, который позволяет использовать таблицу Excel как хранилище данных и формул расчета для онлайн-калькуляторов. В остальном обе системы похожи по функциональности.
SharePoint для публичных сайтов – плюсы и минусы
Если вы хотите использовать SharePoint для создания публичных сайтов, то с технологической стороны потребуется некоторая сноровка.
Например, для «натягивания» чистой кроссбраузерной верстки с современными спецэффектами, которая так важна в публичных сайтах, лучше изучить книгу Professional SharePoint 2010 Branding and User Interface Design. На русский она пока не переведена, но в интернете есть заметка, которая поможет начать разбираться.
Кроме того, по возможности, лучше использовать WebControls вместо WebParts – функционал похож, зато возможности кастомизации у WebControls намного шире. Есть также альтернативы, например, использование шаблона Model View Presenter, но это уже тема для отдельной статьи.
Также придется поколдовать с настройками IIS и SharePoint, чтобы разрешить доступ неавторизованным пользователям.
При этом есть и плюсы:
- Большая библиотека готовых модулей, в том числе, от сторонних разработчиков;
- Всегда можно сделать свой модуль «с нуля» на ASP.NET;
- Хороший инлайн-визивиг с интерфейсом «а-ля MS Office», который будет привычен всем, кто работал с офисными приложениями Microsoft;
- Встроенная и довольно простая в использовании система документооборота при публикации контента;
- Легко создать несколько сайтов на базе одного веб-сервера: мобильную версию, языковые версии, промо-сайты;
- В принципе удобно использовать SharePoint как ECM
- Широкие возможности настройки кэширования
- ASP.NET – это не PHP, скомпилированное приложение работает быстрее интерпретируемого скрипта
- SharePoint легко кластеризуется и масштабируется. В сочетании с виртуализацией масштабирование приложений становится совсем простой процедурой.
Таким образом, после некоторого времени на «вхождение в тему» SharePoint может стать гибким и удобным инструментом для создания публичных сайтов любой сложности.
Хочу отметить, что у Microsoft сильно развита система поддержки своих партнеров. Начиная от программы BizSpark, которая позволяет получить большой пакет бесплатного ПО, до выделения архитекторов SharePoint в помощь на конкретные проекты.
Интранеты
Примеры интранетов я по понятным причинам показать не могу, поэтому расскажу о возможностях SharePoint для построения интранетов, которые мы используем в своей работе:
- Легкость интеграции интранета и публичного сайта. Например, заявки, отправленные через публичный сайт, попадают в интранет на страницы ответственных людей. Кроме того, как я уже упоминал выше, можно использовать SharePoint как ECM и публиковать информацию из интранета в публичный портал.
- Множество готовых модулей: документооборот, календари, интеграция с Outlook, поиск по страницам и содержимому документов, организационная структура, интеграция с Active Directory итд итп до бесконечности.
Когда оправдано применение SharePoint
Если IT-архитектура вашей компании уже построена с активным использованием технологий MicroSoft, то лучше использовать SharePoint для внутренних и внешних веб-приложений, потому что интеграция будет максимально простой.
Кроме того, для не сильно нагруженных решений есть экономичные предложения: MS SQL Express и Microsoft SharePoint Foundation – с помощью этих вещей можно построить веб-приложение бесплатно.
Практика создания производственной линии
После того, как мы решили делать проекты на SharePoint, перед нами встало несколько задач:
- Поиск SharePoint-разработчиков
- Поиск Windows-администратора
- Организация тестовой зоны и среды разработки
Рассмотрим каждую из них более детально.
Поиск SharePoint-разработчика – дело довольно хитрое. Технология для России пока экзотическая, SharePoint 2010 не знает практически никто, поэтому у нас получилась смешанная команда. В основном она состоит из опытных .NET-разработчиков, которых мы активно прокачиваем на курсах по проектированию и разработке приложений SharePoint 2010. Также есть люди, которые уже имеют опыт работы с SharePoint 2007, им было легче втянуться в работу с «десяткой».
В итоге, если говорить с точки зрения найма людей, необязательно искать строго «SharePoint-разработчика». Вполне допустимо расширить вакансию до «.NET-разработчика», а потом просто обучить новых сотрудников тонкостям SharePoint, благо есть множество тренингов, как онлайн, так и оффлайн.
Примерно такая же ситуация с SharePoint-администратором – именно SharePoint-админа мы не нашли – в итоге взяли хорошего Windows-специалиста, которого также был дообучен на специальных курсах.
На организацию тестовой среды и разработки под SharePoint закупили оборудование: разработчикам компьютеры с 16Gb оперативной памяти и 1Tb жестким диском. Такие мощности понадобились для поднятия на локальном хосте виртуальной машины, подобной серверу по объему поставленного ПО, что показалось более приемлемым вариантом в плане стоимости и производительности, чем создавать виртуальные машины на сервере.
Отдельный сервер понадобился для организации процесса разработки:
![image](https://habrastorage.org/getpro/habr/post_images/84d/0b8/bea/84d0b8beaeef2736229986cee8989cf2.jpg)
На сервере развернуто несколько виртуальных машин, для организации процесса: Сервер с SharePoint для демонстрации функционала, сервер непрерывной интеграции (о нем далее), отдельно Sql Server, а также Team Foundation Server (TFS). Отдельно хочу сказать про TFS – это довольно удобная штука, которая объединяет в себе контроль версий, багтрекер, таймтрекер и сервер сборок. Причем, в трекере есть пресеты для Agile-подхода: разбиение проекта на итерации и user stories, простановка оценки задача в баллах.
При желании можно добавить ко всему этому бесплатный TeamCity и получить True Aglie процесс который включает в себя и сервер непрерывной интеграции. Видеокаст как подружить это все с SharePoint есть на сайте 21 apps.
Перспективы развития
Интересен сам факт того, что крупные вендоры по производству ПО активно развивают веб-направление. Это большой плюс, потому что веб-разработчики получают в наследство от «большой разработки» множество накопленных знаний и удобных инструментов для проектирования и разработки проектов, для организации совместной работы и публикации приложений.
Сама по себе технология SharePoint современная и развитая – веб-приложения можно делать быстро и сами приложения тоже работают быстро. Кроме того, во многих крупных организациях России уже развернуто много серверных решений от Microsoft, поэтому SharePoint обещает быть востребованным.
Надеюсь, что со временем в русском интернете будет появляться все больше практических материалов, которые сделают SharePoint максимально доступным для начинающих разработчиков.