49
SharePoint Решения сообщества для Обзор и рекомендации Качай Исправляй Пользуйся

Решения сообщества для SharePoint

Embed Size (px)

DESCRIPTION

Описание решений сообщества для SharePoint, а так же анализ и рекомендации по типичным ошибкам в проектах

Citation preview

Page 1: Решения сообщества для SharePoint

SharePoint Решения сообщества для

Обзор и рекомендации

Качай

Исправляй

Пользуйся

Page 2: Решения сообщества для SharePoint

Баум Виталий Старший SharePoint разработчик Conteq Ltd http://butaji.ru

Page 3: Решения сообщества для SharePoint

План доклада

• Обзор доступных решений

• Установка и настройка

• Работа с решениями

Page 4: Решения сообщества для SharePoint

Где искать решения?

• Тестирование проектов ISV

• Сообщества разработчиков

Page 5: Решения сообщества для SharePoint

Категории решений

• Разработка

• Диагностика

• Тестирование

• Развертывание

• Элементы управления

• Шаблоны узлов

Page 6: Решения сообщества для SharePoint

Разработка

Page 7: Решения сообщества для SharePoint

Разработка: SPVisualDev

Сайт: http://spvisualdev.codeplex.com/

Преимущества:

• Удаленная разработка

• Несерверная ОСь

• Синхронизация в реальном времени

• Работа с пулом, GAC’ом

• Интеграция с WSPBuilder

Page 8: Решения сообщества для SharePoint

Разработка: WSPBuilder

Сайт: http://wspbuilder.codeplex.com/

Преимущества:

• Стандарт прозрачной сборки решений

• Расширения для студии

• Автоматизация сборки

Page 9: Решения сообщества для SharePoint

Разработка: Installer

Сайт: http://sharepointinstaller.codeplex.com/

Преимущества:

• Стандарт для упаковки решений

Page 10: Решения сообщества для SharePoint

Разработка: U2U CAML

Сайт: http://u2u.be/Res/Tools/CamlQueryBuilder.aspx

Преимущества:

• Составление запросов

• Удаленные и локальные запросы

Page 11: Решения сообщества для SharePoint

Разработка: Reflector

Сайт: http://www.red-gate.com/products/reflector/

Преимущества:

• Просмотр реализации

• Опасно для нервной системы

Page 12: Решения сообщества для SharePoint

Разработка: CAML.NET

Сайт: http://code.msdn.microsoft.com/camlintellisense/

Преимущества:

• Intellisense для CAML

Page 13: Решения сообщества для SharePoint

Разработка: CKS

Сайт: http://cksdev.codeplex.com

Преимущества:

• Аьлянс разработчиков с большим количеством productivity решений

Page 14: Решения сообщества для SharePoint

Разработка: Imtech

Сайт: http://blog.mastykarz.nl/tools/

Преимущества:

• Большой набор утилит для разработки

• 2010: Layouts pages, SPMetal

Page 15: Решения сообщества для SharePoint

Разработка: WSS3WF

Сайт: http://wss3workflow.codeplex.com/

Преимущества:

• Шаблоны для форм рабочих процессов WSS

Page 16: Решения сообщества для SharePoint

Разработка: SPDActivities

Сайт: http://spdactivities.codeplex.com/

Преимущества:

• Отправка письма с вложением

• Запуск другого рабочего процесса

• Раздача прав

• Проверка прав

Page 17: Решения сообщества для SharePoint

Диагностика и тестирование

Page 18: Решения сообщества для SharePoint

Диагностика: Perfomance

Сайт: http://features.codeplex.com/

Преимущества:

• Настрока web.config (ajax, silverlight)

• Набор masterpage

• Печать листов

• Просмотр логов

Page 19: Решения сообщества для SharePoint

Диагностика: FxCop Rules

Сайт: http://sovfxcoprules.codeplex.com/

Преимущества:

• Анализ Best Disposal Practices

• FxCop

• Visual Studio 2008 Team System Development Editions

Page 20: Решения сообщества для SharePoint

Диагностика: SPManager

Сайт: http://spm.codeplex.com

Преимущества:

• Исследование объектной модели

• Внесение интерактивных изменений

Page 21: Решения сообщества для SharePoint

Элементы управления

Page 22: Решения сообщества для SharePoint

Компоненты: SmartTools

Сайт: http://smarttools.codeplex.com/

Преимущества:

• Пример разработки элементов управления

• Autocomplete

• Интеграция с jQuery

Page 23: Решения сообщества для SharePoint

Компоненты: iLove SP

Сайт: http://ilovesharepoint.codeplex.com/

Преимущества:

• PowerWebPart

• PowerShell Scripts

• LookupField with picker

Page 24: Решения сообщества для SharePoint

Компоненты: lekman

Сайт: http://lekman.codeplex.com/

Преимущества:

• SharePoint Cache Dependencies

• Unit-tests base-class

Page 25: Решения сообщества для SharePoint

Компоненты: Discussion

Сайт: http://mossdiscussion.codeplex.com/

Преимущества:

• Поле «обсуждения»

• Социальная активность

Page 26: Решения сообщества для SharePoint

Компоненты: ToolBasket

Сайт: http://sptoolbasket.codeplex.com/

Преимущества:

• Поле рейтинга

• Поле подстановки

• Дизайнер форм

Page 27: Решения сообщества для SharePoint

Компоненты: jPoint

Сайт: http://jpoint.codeplex.com/

Преимущества:

• Клиентская модель для SharePoint на jQuery

Page 28: Решения сообщества для SharePoint

Компоненты: Search

Сайт: http://sct.codeplex.com/

Преимущества:

• Веб-части поиска

Page 29: Решения сообщества для SharePoint

Компоненты: CKS

Сайт: http://cks.codeplex.com/

Преимущества:

• Авторизация на формах (FBA)

• Шаблоны UG

• Кастомизация Wiki, Blog, School

Page 30: Решения сообщества для SharePoint

Компоненты: PKS

Сайт: http://pks.codeplex.com

Преимущества:

• Работа с аудио

• Видео

• Презентации

• Социализация

Page 31: Решения сообщества для SharePoint

Компоненты: RIC

Сайт: http://ric.codeplex.com/

Преимущества:

• Реализация портала на MOSS для академических нужд

• «Социализация»

Page 32: Решения сообщества для SharePoint

SPRequest

Page 33: Решения сообщества для SharePoint

SPRequest

• Обертка для неуправляемого кода

• Каждый SPSite имеет свой SPRequest

• OWSSVR.DLL (IIS ISAPI)

• /_vti_bin/owssvr.dll

Page 34: Решения сообщества для SharePoint

SPRequest

• “Potentially excessive number of SPRequest objects (10) currently unreleased on thread 23. Ensure that this object or its parent (such as an SPWeb or SPSite) is being properly disposed. This object will not be automatically disposed.”

• Не больше 8 SPRequest в потоке

Page 35: Решения сообщества для SharePoint

SPRequest

• HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\HeapSettings

• Создать ключ «SPRequestStackTrace» DWORD равным 1

• «LocalSPRequestWarnCount» = 50

Page 36: Решения сообщества для SharePoint

Дизайн, уменьшающий количество запросов

Page 37: Решения сообщества для SharePoint

Меньшее количество запросов

Web Logic Data

Page 38: Решения сообщества для SharePoint

Меньшее количество запросов

public Costumer GetCostumerById(int id)

{

Costumer costumer;

using (SPWeb web = new SPWeb(Url))

{

costumer = web.Lists["Costumers"]

.GetItemById(id).ToCostumer();

}

return costumer;

}

Page 39: Решения сообщества для SharePoint

Меньшее количество запросов

public Costumer GetCostumerById(int id, SPWeb web)

{

return web.Lists["Costumers"]

.GetItemById(id).ToCostumer();

}

Page 40: Решения сообщества для SharePoint

Меньшее количество запросов

public string Title

{

get

{

return GetCostumerById(id, SPContext.Current.Web);

}

}

Page 41: Решения сообщества для SharePoint

Анализ ошибок

Page 42: Решения сообщества для SharePoint

Нет магическим значениям

• Item[“Sttatus”] != Item[FieldIds.Status]

• web.Lists[“Costumers”] != web.Lists[Lists.Constumers]

Page 43: Решения сообщества для SharePoint

Best Disposal Practices

• http://msdn.microsoft.com/en-us/library/aa973248.aspx

Page 44: Решения сообщества для SharePoint

Best Disposal Practices

public SPWeb MyWeb

{

get

{

using (SPWeb web = new SPWeb(Url))

{

return web;

}

}

}

Page 45: Решения сообщества для SharePoint

Статическая типизация

Page 46: Решения сообщества для SharePoint

Статическая типизация

• Слабая типизация

• Размазанная логика

• Зависимости от объектов

• Большое количество неявных зависимостей и потенциаьлных ошибок

Page 47: Решения сообщества для SharePoint

Статическая типизация

• LINQ to SharePoint

• Все ограничения CAML

• Все прежние проблемы

Page 48: Решения сообщества для SharePoint

Статическая типизация

• Business Connectivity Services

• Статическая типизация

• Стандартные практики .NET стека

Page 49: Решения сообщества для SharePoint