Информация

Последние записи

Теги


Блоги


Записи из всех блогов с тегом: java


Поиск в приложениях SharePoint. Часть 3.

Блог: Gandjustas' blog
В SharePoint 2013 появился REST веб-сервис, который позволяет делать поисковые запросы из JavaScript. В SharePoint 2010 есть только search.asmx, который требует генерировать и парсить большой объём XML (в лучших традициях SharePoint).

Чтобы упростить жизнь разработчику клиентских компонентов я написал REST веб-сервис для SharePoint 2010.

Реализация

За основу взял метод, который описывал ранее - Javascript-enabled SharePoint WCF services.

Контракт у сервиса очень простой:

[ServiceContract]
public interface ISearch
{
    [OperationContract]
    [WebGet(BodyStyle = WebMessageBodyStyle.Bare, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
    Stream Query(string q, int top, int skip, string select, string orderBy, bool includeRefiners, string refiners);
}

Параметры вызова:

  • q – текст запроса (обязательно).
  • top – количество результатов.
  • skip – с какой позиции в выборке отдавать результаты.
  • select – через запятую названия managed properties в результатах.
  • orderBy – через запятую названия managed properties по которым сортировать результат, после имени можно указать desc для сортировки по убыванию.
  • includeRefinerstrue или false, возвращать результаты уточнений или нет.
  • refiners - через запятую названия managed properties для формирования уточнений.

Реализация:

public System.IO.Stream Query(string q, int top, int skip, string select, string orderBy,
                    bool includeRefiners, string r) 
{
    u...
читать дальше...
автор: gandjustas добавлено: 04 сен 16 просмотры: 1769, комментарии: 0



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

Блог: Gandjustas' blog

Для чего нужен 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, отрабатывает до того как сформирована страница. Гораздо более надежный способ вызова п...

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



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

Блог: Gandjustas' blog

В прошедшем недавно семинаре про клиентской разработке в 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...
читать дальше...
автор: gandjustas добавлено: 26 июл 16 просмотры: 1419, комментарии: 0



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

Блог: Gandjustas' blog

Кастомизация форм – очень больная тема в 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 поля\формы\типа контента вписать стро...
читать дальше...
автор: gandjustas добавлено: 13 июл 16 просмотры: 1166, комментарии: 0



Как жить без метаданных

Вопрос, как пользователи ExtJS, Qooxdoo, YUI и прочих уважаемых фреймворков, обходятся без метаданных, встал передо мной года четыре назад, когда я впервые попытался реализовать на javascript нетривиальную задачу. Вопрос можно расширить за пределы веб-технологий, ведь метаданных, в их "1С-ном" понимании нет и в известных библиотеках для Java или C#. При этом разработчики как то умудряются выпускать приложения за приемлемое для заказчиков время и обеспечивать пригодное для эксплуатации качество.

Идеи метаданных стары как мир, термин "meta" относят к временам древней Греции. Он означал список рукописных свитков на библиотечной полке.

читать дальше...
автор: Евгений Маляров добавлено: 31 окт 15 просмотры: 1856, комментарии: 0



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

Блог: Gandjustas' blog

Кастомизация форм – очень больная тема в 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 поля\формы\типа контента вписать стро...
читать дальше...
автор: gandjustas добавлено: 21 сен 15 просмотры: 2782, комментарии: 4



Видеозаписи встречи юзер-группы по SharePoint 16.10.2014

Блог: Gandjustas' blog
16 октября прошла встреча юзер-группы по SharePoint в новом формате. Вместо привычных одного-двух докладов по часу с длинными вступлениями и демонстрациями было 6 коротких выступлений с регламентом по 15 минут на один доклад.
Доклады были такие:
  • Александр Ульмаскулов — "Разработка форм SharePoint с помощью KnockoutJS"
  • Денис Молодцов — "Отладка исходного кода SharePoint  с помощью Reflector"
  • Борис Журкин — "Как подружить формы SharePoint и AngularJS"
  • Евгений Трифонов — "AvePoint DocAve Backup"
  • Антон Бастюченко — "Как обращаться к серверному коду из App Web"
  • Станислав Выщепан — "Особенности логирования в SharePoint 2013"
В тайминг не уложился никто, кроме Дениса :)
Плейлист с записями:

Для выкладывания записей с юзер-групп и встреч Office 365 day создал канал на YouTube - http://www.youtube.com/user/office365day. Подписывайтесь.
Материалы докладов будут выложены в группе на Facebook - https://www.facebook.com/groups/sharepointrussian/
Следующая встреча состоится 6 ноября, в таком же формате 15-минутных выступлений. Желающие выступить – пишите в комменты, в личку на facebook или просто мне на почту – stanislav.v@outlook.com
читать дальше...
автор: gandjustas добавлено: 15 авг 15 просмотры: 904, комментарии: 0



Создание Midlet-приложения в IDE NetBeans

автор: Leran2002 добавлено: 12 сен 14 просмотры: 1447, комментарии: 0



Мои заметки по JasperReports и iReport

автор: Leran2002 добавлено: 11 сен 14 просмотры: 1360, комментарии: 0



Полезная Java-утилита native2ascii

Данная утилита может использоваться для преобразования ресурсных файлов в ASCII-формат и обратно.

Рассмотрим ее работу на примере.

Пусть у нас имеется файл ModelBundle.utf8 (в формате UTF-8) следующего содержания:
LastName_LABEL=Фамилия
FirstName_LABEL=Имя
MiddleName_LABEL=Отчество
Birthday_LABEL=Дата рождения


Выполним следующую команду из командной строки:
native2ascii -encoding utf-8 ModelBundle.utf8 ModelBundle.properties


получим файл ModelBundle.properties содержащий:
LastName_LABEL=\u0424\u0430\u043c\u0438\u043b\u0438\u044f
FirstName_LABEL=\u0418\u043c\u044f
MiddleName_LABEL=\u041e\u0442\u0447\u0435\u0441\u0442\u0432\u043e
Birthday_LABEL=\u0414\u0430\u0442\u0430 \u0440\u043e\u0436\u0434\u0435\u043d\u0438\u044f


Если требуется сделать обратное преобразование, нужно выполнить:
native2ascii -reverse -encoding utf-8 ModelBundle.properties ModelBundle.utf8


такой вариант удобно применять для конвертации property-файлов создаваемых JDeveloper 12 для ADF приложения по умолчанию в ASCII виде, в читаемый формат UFT-8, который уже можно отдать для выполнения перевода.
автор: Leran2002 добавлено: 05 сен 14 просмотры: 3375, комментарии: 3


предыдущие записи