Gandjustas' blog


Простой способ повысить качество решений

image
Наверное каждый из вас сталкивался с такими решениями для SharePoint: решение вроде работает, но постоянно возникают какие-то проблемы, данные не сохраняются, странные падения при, казалось бы, безобидных операциях. Тестеры тратят много времени на такое решение, но исправление одних багов порождает другие. Развернуть такое решение на production ферме оказывается очень сложно, поддержка превращается в ад. Знакомо, да?

Занимаясь разработкой правил анализа кода для SPCAF (http://spcaf.com), я нашел способ как быстро исправить такую ситуацию.

Найдите все блоки кода такого вида:
try
{
    //код
}
catch(Exception e)
{
    //здесь что угодно, кроме throw;
}

Впишите throw; в блок catch. Важно что в catch указывается базовый Exception, а не конкретный тип исключения.
Ваше приложение начнет падать и вам надо будет исправить все найденные ошибки, не убирая throw. Я такое уже проделывал много раз на разных проектах, и это давало очень положительных результат. Даже если программисты будут сопротивляться, не допускайте убирания throw.

Исследование


Для тестирования правил я собрал около 70 .wsp файлов, решений SharePoint. Большинство из них — проекты, в которых мне довелось участвовать, и я прекрасно знаю все проблемы, которые возникали при разработке. Я посчитал плотность блоков try\catch без throw и вот что получилось:
  • Самое проблемное решение — 1 блок на 36 строк. То есть почти каждый значимый метод был завернут в такойtry\catch.
  • Решения ...
читать дальше...
добавлено: 15 янв 17 просмотры: 1014, комментарии: 0



Встреча сообщества по SharePoint и Office 365

26 октября 2016 года состоится встреча сообщества по SharePoint и Office 365. Поделимся опытом реализации проектов на SharePoint и расскажем про новые возможности Office 365. Встреча пройдет в Microsoft Technology Center на Лесной. Начало встречи в 18:00.

В программе доклады:

PowerApps и Flow в Office 365
Михаил Бондаревский
В докладе покажу новые инструменты в Office 365 — PowerApps и Flow. Они станут доступны в ближайшем релизе Office 365. PowerApps — конструктор приложений мобильных приложений, который использует SharePoint Online как источник данных. Flow — конструктор рабочих процессов, ориентированный на конечных пользователей. 

Конфигурация Release Management в Team Foundation Server 2015 для решений фермы SharePoint 2013/2016
Александр Смотров
В докладе расскажу как автоматизировать сборку и развертывание решений для SharePoint. Как настроить автотесты для решений с помощью агентов Team Foundation Server.

Быстрая разработка и установка пакетов для SharePoint в облаке и на земле
Станислав Выщепан
В докладе расскажу про современные инструменты разработчика SharePoint, которые работают быстро, снижают количество ошибок и автоматизируют рутинные операции. Расскажу как создавать решения на TypeScript в vscode. Как загружать в SharePoint новые версии скриптов с помощью gulp. Как собрать.pnp пакет для установки и установить его в SharePoint Online и SharePoint 2016.

  Для участия обязательна регистрация, иначе вас не пустят в здание.

<script type=...

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



3 причины не верить почасовой ставке

За неделю ко мне обратились две компании, предлагали проект на SharePoint и спрашивали какая у нас (vnextsoft) почасовая ставка. Они не говорили какую конкретно задачу надо решать или какой портал сделать, их просто интересовала ставка.

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

1. Почасовая ставка не определяет стоимость проекта

Стоимость проекта - это произведение ставки на количество часов. Ставки варируются в 2-2,5 раза максимум. Количество часов, которое может быть потрачено на решение задачи, легко может отличаться в 3-5 раз. Один раз даже видел разницу в 10 раз.

Это вполне нормально. Алистер Коберн в статье “Магия числа ПИ для руководителей проектов” вывел простую зависимость - если команда новая и проект новый, то оценки нужно умножать на Пи в квадате, что примерно равно 9,87. Опытная команда, которая уже сделала аналогичные проекты, может сделать проект с трудозатратами в 10 раз меньше, чем неопытная. Кроме того, если у компании есть наработки, решающие задачи клиента, то оценка также может быть снижена.

Так что разница в оценках в 3-5 раз - вполне ожидаема. Почасовая ставка меньше влияет на стоимость проекта.

2. Почасовая ставка снижает качество

Если вы выбираете исполнителя с самой низкой ставкой, то вы гарантированно получите самого неопытного исполнителя из всех возможных. Неопытный исполнитель обязательно накосячит...

читать дальше...
добавлено: 05 дек 16 просмотры: 1737, комментарии: 3



Ваши вакансии - отстой или как HR-ам привлекать программистов

Этот пост не о технологиях, даже если вы не в курсе что такое SharePoint, то вам это не помешает.

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

1) Компания: ООО «Рога и копыта» ведущая консалтинговая компания в области управления, обладающая 20-летним опытом создания комплексных информационных систем в строительстве, энергетике, нефтегазовой отрасли и др.

2) Требования к кандидату:
•знание и опыт разработки под платформу Microsoft SharePoint Server 2013/2016 в том числе — Web Parts, Features, Master Pages, Custom Controls, Event Receivers, Timer Jobs, Site / List Templates, Workflow;
•знание основных механизмов администрирования SharePoint (Центр Администрирования, PowerShell), опыт работы с ними;
•проектирование структуры контента решения (коллекции сайтов, сайты, списки, поля списков и т.д.);
•навыки использования и реализованные решения на Server Object model, Client object model и REST API;
•знание T-SQL;
• отличное знание платформы .NET (.Net Framework и языка программирования С#);
• отличное знание веб-технологий, опыт разработки (JavaScript + jQuery, HTML, CSS);
• опыт работы c ASP.NET, WCF;
•опыт участия в коммерческих проектах разработок на базе SharePoint 2010/2013;
•умение диагностировать проблемы в работе ПО, вести общение с клиентами при осуществлении проектирования систем, технического сопровождения;
•опыт выполнять диагностику и отладку решений...

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



Успех проекта SharePoint, где он?

Есть статистика, которая говорит, что более половины SharePoint проектов неуспешны (смотреть тут). С точки зрения бизнеса успешных проектов еще меньше, так как затраты оказываются выше, чем экономический эффект.

Проблема

Многие проекты SharePoint фактически ведутся по процессам разработки программного обеспечения. Все процессы разработки ставят целью разработку нового или доработку существующего ПО. Основные KPI для такого проекта – сроки, функциональный объем и бюджет. Еще говорят о качестве, но качество померить сложно и оно как-то выпадает из основных характеристик.

Негативным эффектом такого способа ведения проектов становится то, что создается много кастомного кода. Ведь нельзя делать разработку, когда нечего положить в систему контроля версий. Обучая разработчиков out-of-the-box функционал, я много раз слышал вопрос о том, что же будет в итоге лежать TFS.

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

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

Как добиться успеха

В первую очередь надо фокусироваться не на поставке функционала, а на увеличении value от внедрения. Причем этот самый value надо не просто определить, а измерять. Проект сч...

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



Как поставщики решений SharePoint обманывают заказчиков

На днях получит вот такой коммент в обсуждении на Хабрахабре:

Государственный университет в регионе N хочет себе СЭД, пользователей на 100. Кроме СЭД хочет простенький портал, телефонную книгу, новости, календарики.
На Sharepoint Server денег тратить не хочется, да и нет необходимости — рейтинги, социальные сети, политики хранения контента не в почете у сотрудников.
Поэтому решили купить СЭД на Foundation, заплатив только за СЭД-надстройку (будем считать что лицензионные права на Foundation у них уже есть).


За 2-3 года документов скопилось около 60-80 тыс. (по всем группам). По ним нужно, в самом простейшем случае:
а) осуществлять быстрый и легко настраиваемый поиск (по конкретным атрибутам и без управляемых метаданных) по любым элементам и с учетом прав
б) быстро искать и исполнять задачи. задач при этом становится = (кол-во документов * 5)

Если знаете способ реализовать это на Foundation «изкаропки», пожалуйста, расскажите, очень интересно.

Исходный пост и обсуждение можете почитать по ссылке: http://habrahabr.ru/post/210844/#comment_7260770

Используя SharePoint Server, даже версии Standard, можно настроить быстрый и удобный поиск по документам и задачам. Это даже не потребует программирования, достаточно будет за день-два выполнить настройку поисковых представлений.

Решение, предлагаемое автором коммента, требует создания баз данных, custom service applications, собственного интерфейса пользователя и кода для привязки к стандартному функционалу. При очень хорошем раскладе т...

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



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

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

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

Принципы

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

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

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

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



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

В 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...
читать дальше...
добавлено: 04 сен 16 просмотры: 1481, комментарии: 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 просмотры: 1767, комментарии: 0



Office 365 Day

17 апреля 2014 года состоится мини-конференция Office 365 Day в Microsoft Technology Center на Белорусской.

Раньше встречи были посвящены в основном SharePoint, теперь расширяем формат. Office 365 это не только SharePoint, но и Lync, Exchange, Yammer, Office, Project, Dynamics CRM, облачные технологии и гибридные архитектуры.

В программе два потока: технологический и бизнес-ориентированный.
Предварительный перечень докладов:

  • Создание веб-сайта на базе Sharepoint Online - Виталий Жуков
  • Создание корпоративного портала в Office 365 – Сергей Слукин
  • Стратегия миграции внутренних решений в Office 356 – Александр Романов
  • Новые API и возможности приложений Office – Михаил Бондаревский
  • Облачный инструмент совместной работы – Yammer. Кто здесь? – Роман Марусяк
  • Гибридные среды. Выгоды и проблемы – Станислав Выщепан

Финальная программа будет опубликована позднее, следите за обновлениями.

Регистрация на мероприятие обязательна, регистрироваться по ссылке -http://o365day.timepad.ru/event/116000/

До встречи.

 

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