Gandjustas' blog

Фильтр по тегу: sharepoint 2013


Масштабирование ECM на SharePoint

Бытует мнение, что на для построения масштабируемого ECM решения на SharePoint  требуется глубокая кастомизация и без нее никуда. Причин этому много: широко известные Large List Threshold, тормознутые разрешения, Security Scopes Limit, довольно слабые возможности создания связей между элементами, ненадежный и невыразительный движок Workflow.

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

Принципы

Первая и самая важная ошибка, которую совершает большинство разработчиков – использование хранилища SharePoint, как реляционной СУБД. В РСУБД тип данных соответствует расположению (таблице). При переносе этого принципе в SharePoint все документы, независимо от стадии их жизненного цикла, помещают в одну библиотеку. При такой архитектуре решение валится от нагрузки еще до достижения каких-либо лимитов.

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

Первый принцип ECM в SharePoint, который обязательно нужно применять с самого начала – разделять оперативные и архивные документы. Обычно объем оперативных документов составляет не более 20% от общего объема и со временем этот показатель уменьшается. Если в РСУБД архивнос...

читать дальше...
добавлено: 29 сен 16 просмотры: 1213, комментарии: 0



Онлайн курсы и материалы для изучения SharePoint

Про изучение SharePoint 2010 для разработчиков и администраторов я писал два с половиной года назад, почти все материалы до сих пор доступны:

В SharePoint 2013 появилось много новых возможностей. Теперь для разработчика недостаточно просто уметь писать веб-части и event receivers. В SharePoint 2013 поставить ферму для разработки – само по себе требует многих навыков, а разработчику надо еще как минимум уметь настраивать поиск, управляемые метаданные, профили пользователей, apps и workflow.

Чистая разработка для SharePoint 2013 идет в сторону apps (ASP.NET), но закрывает лишь малую часть потребностей заказчиков. Навыки развертывания, администрирования и использования стандартного функционала оказываются для разработчиков чуть ли не важнее навыков писать код.

Поэтому я не буду разделять курсы для разработчиков и администраторов. Для профессионалов, создающих решения на SharePoint, они одинаково важны.

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

  1.  http://technet.microsoft.com/en-US/sharepoint/fp123606 - SharePoint 2013 training for IT pros.
  2. http://msdn.microsoft.com/en-US/office/dn448488 - Office 2013 developer training videos. Пусть не пугает называние, большая часть курса – по SharePoint 2013.
  3. http://www.microsoft.com/resources/Technet/en-us/Offi...
читать дальше...
добавлено: 16 авг 16 просмотры: 1587, комментарии: 0



10 вещей, которые надо знать при использовании jQuery в SharePoint

Для чего нужен jQuery в SharePoint? Обычно его используют для четырех целей:

  • Вызывать код JavaScript в момент загрузки страницы с помощью $(document).ready.
  • Использовать Ajax функции для доступа к данным на сервере.
  • Использовать готовые плагины,такие как tooltip или tabs, для того, чтобы расширить функционал сайта.
  • Проводить некоторые манипуляции с объектной модели документа (DOM).

Если Вы собираетесь использовать jQuery на страницах SharePoint, то вам нужно знать следующие вещи:  

 

1. Используйте mQuery и RequestExecutor в простых случаях

Если у вас простой случай, то Вы можете использовать библиотеку mQuery для манипуляции DOM и RequestExecutor для ajax запросов. Кроме того, вместо Ajax запросов гораздо выгоднее использовать JSOM и TypeScript для клиентской разработки. Об этом я писал ранее.

Если Вы, все таки, решили использовать jQuery, то вам нужно помнить следующее:

2. jQuery(document).ready срабатывает не вовремя

Это происходит потому, что $(document).ready взрывается при событии DOMContentLoaded. А это события создано для тех случаев, когда весь контент страницы загружается с сервера. Оно происходит после того как браузер скачал всю страницу, связанные файлы и всё распарсил. SharePoint использует механизмы динамического формирования страницы, когда скрипты в теле страницы запускаются и формируют части страницы. В этом случае использовать DOMContentLoaded, отрабатывает до того как сформирована страница. Гораздо более надежный способ вызова п...

читать дальше...
добавлено: 03 авг 16 просмотры: 1325, комментарии: 0



Загрузка скриптов в SharePoint

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

Эта, казалось бы, простая задача далеко не тривиально реализуется в SharePoint.

Причины

    1. SharePoint формирует интерфейс динамически. Многие блоки добавляются на страницу по событию body.onload. Это событие возникает позже, чем DOMContentLoaded. Именно это событие перехватывает jQuery.ready. Поэтому использование jQuery часто не приводит к хорошему результату. Подробнее об использовании jQuery в SharePoint.
    2. Minimal Download Strategy (MDS), появившийся в SharePoint 2013, загружает страницу один раз, потом обновляет блоки страницы, поэтому нужно выполнять дополнительные действия, чтобы скрипт выполнился после загрузки страницы под MDS.
    3. Механизм загрузки скриптов, о котором я писал ранее, требует чтобы скрипт самостоятельно оповещал об окончании выполнения.

Для скриптов в виртуальной файловой системе SharePoint

Чаще всего скрипты SharePoint деплоятся как файлы в виртуальной файловой системе. Это прекрасно работает как в on premises, так и в online.

Для размещения скриптов на странице используется контрол ScriptLink, в таком виде:

<SharePoint:ScriptLink Name="autofill.js" runat="server" OnDemand="true" LoadAfterUI="true" Localizable="false" />

или с помощью CustomAction ScriptLink в элементе решения

<CustomAction Location="ScriptLink" ScriptSrc="~site/Extension...
читать дальше...
добавлено: 26 июл 16 просмотры: 1029, комментарии: 0



7 способов улучшить поля в формах SharePoint 2013

Кастомизация форм – очень больная тема в SharePoint. InfoPath фактически умер, новые способы кастомизации появятся не раньше следующего релиза (назначенного на конец 2015 года), а для использования SPServices нужен jQuery старой версии, что само по себе несет проблемы, так еще и требует знания отображаемых имен полей, что делает решение ненадежным. Подробнее в моем курсе по клиентской разработке SharePoint.

Создавая TypeScript-определения для клиентской библиотеки SharePoint  сделал несколько примеров полей. Недавно я провел большой рефакторинг и выделил кастомные поля в отдельные, повторно используемые функции.

Все функции содержатся в файле typescripttemplaes.ts. Тем, кто не пользуется TypeScript (зря!), можно скачать .js файл в том же каталоге.

Как пользоваться typescripttemplates:

  1. Скачать файл и добавить .js в проект
  2. Сделать свой файл скрипта для полей, такого вида:
    module _ {
        function init() {
            CSR.override()
                .lookupAddNew("Master", "Add New Master item", true)
                .register();        
        }
    
        SP.SOD.executeOrDelayUntilScriptLoaded(init, "typescripttemplates.ts");
    
        SP.SOD.executeOrDelayUntilScriptLoaded(function () {
            RegisterModuleInit(SPClientTemplates.Utility.ReplaceUrlTokens("~site/YOUR_SCRIPT_PATH.js"), init);
        }, "sp.js");
    } 
  3. Вписать адрес скрипта в ReplaceUrlTokens и вызовы функций между .override() и .register()
  4. В атрибут JSLink поля\формы\типа контента вписать стро...
читать дальше...
добавлено: 13 июл 16 просмотры: 867, комментарии: 0



SharePoint TypeScript теперь на github

SharePoint TypeScript - проект для описания типов TypeScript клиентской библиотеки SharePoint. Это не только JavaScript Object Model, но описания типов для Client-Side Rendering (CSR) - движка для рендеринга форм и представлений, а так всевозможных клиентских компонент.

Последние два года проект sptypescript развивался очень вяло. Я уделял ему мало времени, больше занимался бизнесом. Но на прошлой неделе мы с коллегами провели тренинг по разработке форм в SharePoint и нашли много точек роста.

Переезд на github

Проект раньше хостился на codeplex, который, к сожалению, растерял все сообщество. Даже Microsoft перевел свои разработки на github. Сообщество разработчиков на github гораздо больше. Поэтому проект переехал по адресу https://github.com/gandjustas/sptypescript

typescripttemplates.ts

Изначально это была библиотека, которая облегчает создания шаблонов для CSR. Со временем туда добавились готовые шаблоны полей, например filtered lookup, который позволяет фильтровать элементы в списке выбора lookup-поля. Библиотека обросла полезной функциональностью, которая может быть полезна при разработке собственных шаблонов.

Библиотека доступна в nuget:

PM> Install-Package typescripttemplates

Она автоматически поставит определения типов SharePoint.

Вы также можете добавить в проект определения типов отдельно, если не собираетесь кастомизировать формы и представления:

PM> Install-Package sharepoint.TypeScript.DefinitelyTyped

Поддержка современных...

читать дальше...
добавлено: 22 май 16 просмотры: 930, комментарии: 0



Результаты семинара “Поиск SharePoint”

Месяц назад прошел семинар по поиску в SharePoint 2013. В этот раз семинар был на полный день.  Видеозаписи доступны по ссылке http://gandjustas.justclick.ru/order/spsearch/.

В ходе семинара успели рассмотреть следующие темы:

  • Настройка Content By Search Web Part
  • Сценарии выборки данных (замена CAML)
  • Ранжирование результатов поиска
  • Настройки центра поиска и правил запросов

Отзывы некоторых участников:

Добрый день! Отличное мероприятия Стас, очень понравилось! Упорядочил для себя все знания по поиску, узнал парочку новых и интересных вещей. Также решил давно мучавшую меня проблему с необязательным условием и знаком «?» в выражении запроса поиска. С нетерпением жду следующего семинара =)

Борис Журкин, RTLabs

 

Из семинара получили развернутое и подробное (для первичного ознакомления, на мой взгляд, достаточно подробное ) описание возможностей поиска платформы Sharepoint 2013. Рассмотрели примеры использования в различных сценариях. В общем семинар был очень полезен, как вводная часть, для дальнейшей тесной работы с поиском. От семинара получил на 100% что ожидал.

Вахтанг Барбакадзе, РТК

 

Пока мне не удалось применить полученные знания непосредственно на практике, т.к. наш корпоративный портал на SP 2010.

Однако материал оказался полезным для общего кругозора и понимания возможностей новой версии SP.

Вадим Титов, АВТОМИР

В этот раз с видеозаписью помог Александр Ульмаскулов, любезно предоставив видеокамеру. Записи вебинара теперь включают как экран, так и весь...

читать дальше...
добавлено: 21 окт 15 просмотры: 700, комментарии: 0



SharePoint TypeScript теперь на github

SharePoint TypeScript - проект для описания типов TypeScript клиентской библиотеки SharePoint. Это не только JavaScript Object Model, но описания типов для Client-Side Rendering (CSR) - движка для рендеринга форм и представлений, а так всевозможных клиентских компонент.

Последние два года проект sptypescript развивался очень вяло. Я уделял ему мало времени, больше занимался бизнесом. Но на прошлой неделе мы с коллегами провели тренинг по разработке форм в SharePoint и нашли много точек роста.

Переезд на github

Проект раньше хостился на codeplex, который, к сожалению, растерял все сообщество. Даже Microsoft перевел свои разработки на github. Сообщество разработчиков на github гораздо больше. Поэтому проект переехал по адресу https://github.com/gandjustas/sptypescript

typescripttemplates.ts

Изначально это была библиотека, которая облегчает создания шаблонов для CSR. Со временем туда добавились готовые шаблоны полей, например filtered lookup, который позволяет фильтровать элементы в списке выбора lookup-поля. Библиотека обросла полезной функциональностью, которая может быть полезна при разработке собственных шаблонов.

Библиотека доступна в nuget:

PM> Install-Package typescripttemplates

Она автоматически поставит определения типов SharePoint.

Вы также можете добавить в проект определения типов отдельно, если не собираетесь кастомизировать формы и представления:

PM> Install-Package sharepoint.TypeScript.DefinitelyTyped

Поддержка современных...

читать дальше...
добавлено: 14 окт 15 просмотры: 879, комментарии: 0



7 способов улучшить поля в формах SharePoint 2013

Кастомизация форм – очень больная тема в SharePoint. InfoPath фактически умер, новые способы кастомизации появятся не раньше следующего релиза (назначенного на конец 2015 года), а для использования SPServices нужен jQuery старой версии, что само по себе несет проблемы, так еще и требует знания отображаемых имен полей, что делает решение ненадежным. Подробнее в моем курсе по клиентской разработке SharePoint.

Создавая TypeScript-определения для клиентской библиотеки SharePoint  сделал несколько примеров полей. Недавно я провел большой рефакторинг и выделил кастомные поля в отдельные, повторно используемые функции.

Все функции содержатся в файле typescripttemplaes.ts. Тем, кто не пользуется TypeScript (зря!), можно скачать .js файл в том же каталоге.

Как пользоваться typescripttemplates:

  1. Скачать файл и добавить .js в проект
  2. Сделать свой файл скрипта для полей, такого вида:
    module _ {
        function init() {
            CSR.override()
                .lookupAddNew("Master", "Add New Master item", true)
                .register();        
        }
    
        SP.SOD.executeOrDelayUntilScriptLoaded(init, "typescripttemplates.ts");
    
        SP.SOD.executeOrDelayUntilScriptLoaded(function () {
            RegisterModuleInit(SPClientTemplates.Utility.ReplaceUrlTokens("~site/YOUR_SCRIPT_PATH.js"), init);
        }, "sp.js");
    } 
  3. Вписать адрес скрипта в ReplaceUrlTokens и вызовы функций между .override() и .register()
  4. В атрибут JSLink поля\формы\типа контента вписать стро...
читать дальше...
добавлено: 21 сен 15 просмотры: 1983, комментарии: 4



Тренинг по созданию форм SharePoint

Неделю назад вышел SharePoint 2016 Preview. По сравнению с SharePoint 2013 немного изменился интерфейс и добавились опции для гибридного развертывания. Год назад Microsoft анонсировал появление новых возможностей по созданию форм, но недавно отказался от этих планов и оставил InfoPath. Поэтому только программисты будут создавать сложные формы в SharePoint, как минимум ближайшие 3-5 лет.

Создание форм в SharePoint занимает много времени. Мне известны случаи, когда на одну форму в SharePoint потратили 180 человеко-часов. InfoPath не помогает, нет руководств, примеров и документации, которые могли бы упростить процесс.

Мы с коллегами выработали подходы, которые помогают создавать сложные формы SharePoint менее чем день. Предлагаем вам посетить тренинг, где вы научитесь создавать формы за считанные дни.

Посетив тренинг вы:

  1. Узнаете как работает Client Side Rendering (CSR) для форм
  2. Научитесь заменять стандартные элементы управления на формах
  3. Научитесь управлять поведением формы - скрывать и отображать поля, подставлять значения, настраивать валидацию
  4. Узнаете как создавать формы списков с помощью AngularJS
  5. Научитесь использовать современные средства веб-разработки, такие как typescript, gulp, yeoman, для создания форм
  6. Научитесь разворачивать формы в составе пакетов решений (WSP)
  7. Узнаете как создавать master-detail формы
  8. Узнаете как глубоко кастомизировать CSR

Все знания и навыки применимы как для облачных, так и наземных версий SharePoint.

Тренинг пройдет с 28 по 30 сен...

читать дальше...
добавлено: 10 сен 15 просмотры: 922, комментарии: 0