SharePoint Решения сообщества для
Обзор и рекомендации
Качай
Исправляй
Пользуйся
Баум Виталий Старший SharePoint разработчик Conteq Ltd http://butaji.ru
План доклада
• Обзор доступных решений
• Установка и настройка
• Работа с решениями
Где искать решения?
• Тестирование проектов ISV
• Сообщества разработчиков
Категории решений
• Разработка
• Диагностика
• Тестирование
• Развертывание
• Элементы управления
• Шаблоны узлов
Разработка
Разработка: SPVisualDev
Сайт: http://spvisualdev.codeplex.com/
Преимущества:
• Удаленная разработка
• Несерверная ОСь
• Синхронизация в реальном времени
• Работа с пулом, GAC’ом
• Интеграция с WSPBuilder
Разработка: WSPBuilder
Сайт: http://wspbuilder.codeplex.com/
Преимущества:
• Стандарт прозрачной сборки решений
• Расширения для студии
• Автоматизация сборки
Разработка: Installer
Сайт: http://sharepointinstaller.codeplex.com/
Преимущества:
• Стандарт для упаковки решений
Разработка: U2U CAML
Сайт: http://u2u.be/Res/Tools/CamlQueryBuilder.aspx
Преимущества:
• Составление запросов
• Удаленные и локальные запросы
Разработка: Reflector
Сайт: http://www.red-gate.com/products/reflector/
Преимущества:
• Просмотр реализации
• Опасно для нервной системы
Разработка: CAML.NET
Сайт: http://code.msdn.microsoft.com/camlintellisense/
Преимущества:
• Intellisense для CAML
Разработка: CKS
Сайт: http://cksdev.codeplex.com
Преимущества:
• Аьлянс разработчиков с большим количеством productivity решений
Разработка: Imtech
Сайт: http://blog.mastykarz.nl/tools/
Преимущества:
• Большой набор утилит для разработки
• 2010: Layouts pages, SPMetal
Разработка: WSS3WF
Сайт: http://wss3workflow.codeplex.com/
Преимущества:
• Шаблоны для форм рабочих процессов WSS
Разработка: SPDActivities
Сайт: http://spdactivities.codeplex.com/
Преимущества:
• Отправка письма с вложением
• Запуск другого рабочего процесса
• Раздача прав
• Проверка прав
Диагностика и тестирование
Диагностика: Perfomance
Сайт: http://features.codeplex.com/
Преимущества:
• Настрока web.config (ajax, silverlight)
• Набор masterpage
• Печать листов
• Просмотр логов
Диагностика: FxCop Rules
Сайт: http://sovfxcoprules.codeplex.com/
Преимущества:
• Анализ Best Disposal Practices
• FxCop
• Visual Studio 2008 Team System Development Editions
Диагностика: SPManager
Сайт: http://spm.codeplex.com
Преимущества:
• Исследование объектной модели
• Внесение интерактивных изменений
Элементы управления
Компоненты: SmartTools
Сайт: http://smarttools.codeplex.com/
Преимущества:
• Пример разработки элементов управления
• Autocomplete
• Интеграция с jQuery
Компоненты: iLove SP
Сайт: http://ilovesharepoint.codeplex.com/
Преимущества:
• PowerWebPart
• PowerShell Scripts
• LookupField with picker
Компоненты: lekman
Сайт: http://lekman.codeplex.com/
Преимущества:
• SharePoint Cache Dependencies
• Unit-tests base-class
Компоненты: Discussion
Сайт: http://mossdiscussion.codeplex.com/
Преимущества:
• Поле «обсуждения»
• Социальная активность
Компоненты: ToolBasket
Сайт: http://sptoolbasket.codeplex.com/
Преимущества:
• Поле рейтинга
• Поле подстановки
• Дизайнер форм
Компоненты: jPoint
Сайт: http://jpoint.codeplex.com/
Преимущества:
• Клиентская модель для SharePoint на jQuery
Компоненты: Search
Сайт: http://sct.codeplex.com/
Преимущества:
• Веб-части поиска
Компоненты: CKS
Сайт: http://cks.codeplex.com/
Преимущества:
• Авторизация на формах (FBA)
• Шаблоны UG
• Кастомизация Wiki, Blog, School
Компоненты: PKS
Сайт: http://pks.codeplex.com
Преимущества:
• Работа с аудио
• Видео
• Презентации
• Социализация
Компоненты: RIC
Сайт: http://ric.codeplex.com/
Преимущества:
• Реализация портала на MOSS для академических нужд
• «Социализация»
SPRequest
SPRequest
• Обертка для неуправляемого кода
• Каждый SPSite имеет свой SPRequest
• OWSSVR.DLL (IIS ISAPI)
• /_vti_bin/owssvr.dll
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 в потоке
SPRequest
• HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\HeapSettings
• Создать ключ «SPRequestStackTrace» DWORD равным 1
• «LocalSPRequestWarnCount» = 50
Дизайн, уменьшающий количество запросов
Меньшее количество запросов
Web Logic Data
Меньшее количество запросов
public Costumer GetCostumerById(int id)
{
Costumer costumer;
using (SPWeb web = new SPWeb(Url))
{
costumer = web.Lists["Costumers"]
.GetItemById(id).ToCostumer();
}
return costumer;
}
Меньшее количество запросов
public Costumer GetCostumerById(int id, SPWeb web)
{
return web.Lists["Costumers"]
.GetItemById(id).ToCostumer();
}
Меньшее количество запросов
public string Title
{
get
{
return GetCostumerById(id, SPContext.Current.Web);
}
}
Анализ ошибок
Нет магическим значениям
• Item[“Sttatus”] != Item[FieldIds.Status]
• web.Lists[“Costumers”] != web.Lists[Lists.Constumers]
Best Disposal Practices
• http://msdn.microsoft.com/en-us/library/aa973248.aspx
Best Disposal Practices
public SPWeb MyWeb
{
get
{
using (SPWeb web = new SPWeb(Url))
{
return web;
}
}
}
Статическая типизация
Статическая типизация
• Слабая типизация
• Размазанная логика
• Зависимости от объектов
• Большое количество неявных зависимостей и потенциаьлных ошибок
Статическая типизация
• LINQ to SharePoint
• Все ограничения CAML
• Все прежние проблемы
Статическая типизация
• Business Connectivity Services
• Статическая типизация
• Стандартные практики .NET стека
Recommended