На самом деле, лично я качественной подсветке синтаксиса всегда уделяю огромное внимание. Скажем, для этого блога, я потратил часов 5 (в течение нескольких дней), чтобы найти подходящую утилиту, которая бы подсвечивала код в точности также, как это делает Visual Studio.
Хорошо оформленные вставки кода и правильно подобранные иллюстрации - это залог здоровья любой статьи. В том смысле, что их отсутствие может даже отличную статью весомо подпортить (но не наоборот).
Дак вот, именно поэтому довольно куцая подсветка кода в Sandcastle Help File Builder (далее SHFB), меня не слишком обрадовала (про Sandcastle я совсем недавно писал, это утилита для генерации документации в MSDN-стиле).
И вот, когда засел писать документацию в SHFB уже в третий раз (кстати, для SharePoint Fluent Ribbon), мне все-таки удалось эту проблему победить! Теперь моя документация выглядит всем на зависть и на заглядение:
И между прочим, сделать это совсем несложно. В этой статье я расскажу, как.
понедельник, 18 апреля 2011 г.
среда, 13 апреля 2011 г.
CodePlex про SharePoint
Иногда бывает довольно полезно полазать по CodePlex'у и открыть для себя пару маленьких проектов, которые делают большие вещи :)
SharePoint 2010 automatic sign-in with mixed authentication
Данный проект ничего на ваш сайт не добавляет, как это ни смешно. Зато - убирает лишнее! А именно, вот эту надоедливую страничку:
Если у вас локальный IP-шник, будете заходить на сайт сразу под Windows-аутентификацией. Иначе - Forms.
SharePoint 2010 Developer Dashboard Visualizer
Позволяет визуально исследовать причины тормозов на вашей странице, если таковые имеются.
Drag & Drop between SharePoint Document libraries
Если положить две библиотеки документов на одну страничку, можно перетаскивать между ними документы - Drag&Drop'ом! В некоторых случаях это может оказаться очень привлекательной фишкой.
SPContentLoader for SharePoint 2010
Позволяет добавлять тысячи, сотни тысяч, миллионы... тестовых файлов в ваши библиотеки документов. Это обыкновенная консольная утилита, которая забивает случайными значениями метаданные для одного и того же файла, и грузит его под разными именами в вашу библиотеку.
Замечательная вещь для тестирования.
SharePoint Social Networking
Добавляет кнопки популярных социальных сетей и сервисов на ваш портал.
Первоначально, в этот обзор попало почти вдвое больше проектов, чем в итоге было опубликовано. К сожалению, низкое качество опенсурсных проектов - это довольно большая проблема. Иногда, вроде бы очень интересные идеи оказываются реализованы совершенно бестолково :(
Конечно, в таких случаях можно и нужно садиться, и писать самому. Но... не всегда хватает времени :(
SharePoint 2010 automatic sign-in with mixed authentication
Данный проект ничего на ваш сайт не добавляет, как это ни смешно. Зато - убирает лишнее! А именно, вот эту надоедливую страничку:
Если у вас локальный IP-шник, будете заходить на сайт сразу под Windows-аутентификацией. Иначе - Forms.
SharePoint 2010 Developer Dashboard Visualizer
Позволяет визуально исследовать причины тормозов на вашей странице, если таковые имеются.
Drag & Drop between SharePoint Document libraries
Если положить две библиотеки документов на одну страничку, можно перетаскивать между ними документы - Drag&Drop'ом! В некоторых случаях это может оказаться очень привлекательной фишкой.
SPContentLoader for SharePoint 2010
Позволяет добавлять тысячи, сотни тысяч, миллионы... тестовых файлов в ваши библиотеки документов. Это обыкновенная консольная утилита, которая забивает случайными значениями метаданные для одного и того же файла, и грузит его под разными именами в вашу библиотеку.
Замечательная вещь для тестирования.
SharePoint Social Networking
Добавляет кнопки популярных социальных сетей и сервисов на ваш портал.
Первоначально, в этот обзор попало почти вдвое больше проектов, чем в итоге было опубликовано. К сожалению, низкое качество опенсурсных проектов - это довольно большая проблема. Иногда, вроде бы очень интересные идеи оказываются реализованы совершенно бестолково :(
Конечно, в таких случаях можно и нужно садиться, и писать самому. Но... не всегда хватает времени :(
понедельник, 11 апреля 2011 г.
Вопросы для собеседования по SharePoint Foundation 2010
Чтобы эффективно писать под SharePoint, нужно знать много всякой всячины. Причем, стандартный тест по ASP.Net тут как раз не поможет! Потому что нужно обязательно знать возможности и особенности платформы, чтобы не терять время на велосипедописание.
Вот я и задумался, какие бы вопросы я сам задал, если бы мне пришлось собеседовать SharePoint-программиста, чтобы узнать широту и глубину его знаний.
Несколько важных замечаний:
1. Ни на одном серьезном собеседовании по SharePoint я лично пока не присутствовал, так что никакого плагиата в этих вопросах нет, если совпадения есть, они случайны. Честно!
2. Вопросы не охватывают всю платформу, сосредотачиваясь на более общих знаниях. Написание вопросов - дело довольно долгое, поэтому вопросов по таким важным вещам, как BCS, WorkFlow, и некоторым другим очень важным темам (а также по SharePoint Server) - пока нет :) Возможно, напишу попозже.
3. Вопросы вида "Вам поручили сделать то-то, как вы это реализуете?" предполагают, что собеседуемый должен назвать общий алгоритм решения проблемы, и средства/технологии платформы, которые он при этом будет использовать. Код не надо писать))
Не смею больше томить! Вопросы под катом.
Вот я и задумался, какие бы вопросы я сам задал, если бы мне пришлось собеседовать SharePoint-программиста, чтобы узнать широту и глубину его знаний.
Несколько важных замечаний:
1. Ни на одном серьезном собеседовании по SharePoint я лично пока не присутствовал, так что никакого плагиата в этих вопросах нет, если совпадения есть, они случайны. Честно!
2. Вопросы не охватывают всю платформу, сосредотачиваясь на более общих знаниях. Написание вопросов - дело довольно долгое, поэтому вопросов по таким важным вещам, как BCS, WorkFlow, и некоторым другим очень важным темам (а также по SharePoint Server) - пока нет :) Возможно, напишу попозже.
3. Вопросы вида "Вам поручили сделать то-то, как вы это реализуете?" предполагают, что собеседуемый должен назвать общий алгоритм решения проблемы, и средства/технологии платформы, которые он при этом будет использовать. Код не надо писать))
Не смею больше томить! Вопросы под катом.
среда, 6 апреля 2011 г.
SharePoint 2010 Fluent Ribbon API
На мой взгляд, Ribbon - это абсолютно лучшее нововведение 2010й версии SharePoint. Но для разработчиков Ribbon не настолько удобен, как он удобен и привычен для пользователей. И это нужно исправлять!
Поэтому, представляю уважаемым читателям еще один мой OpenSource-проект, SharePoint 2010 Fluent Ribbon API!
Этот проект нацелен на упрощение работы с Ribbon'ом в SharePoint'е. Как известно, программное создание Ribbon'а требует выполнения большого числа действий, которые мне удалось спрятать в сборке FluentRibbon.
FluentRibbon 1.0 включают следующие основные классы:
При этом, возможно динамическое создание риббона (например, в зависимости от привилегий текущего пользователя.
Chess WebPart
Вместе с FluentRibbon поставляется проект-пример ChessWebPart - веб-часть с javascript-шахматами, управление игрой и настройки в которой вынесены на риббон:
Поэтому, представляю уважаемым читателям еще один мой OpenSource-проект, SharePoint 2010 Fluent Ribbon API!
Этот проект нацелен на упрощение работы с Ribbon'ом в SharePoint'е. Как известно, программное создание Ribbon'а требует выполнения большого числа действий, которые мне удалось спрятать в сборке FluentRibbon.
FluentRibbon 1.0 включают следующие основные классы:
- ContextualWebPart - базовый класс для веб-частей с контекстными вкладками риббона
- RibbonLayoutsPage - базовый класс для Application Page с риббоном
При этом, возможно динамическое создание риббона (например, в зависимости от привилегий текущего пользователя.
Chess WebPart
Вместе с FluentRibbon поставляется проект-пример ChessWebPart - веб-часть с javascript-шахматами, управление игрой и настройки в которой вынесены на риббон:
суббота, 2 апреля 2011 г.
EnhancedWebPart
Выпустил свой первый OpenSource-проект на CodePlex. Не то, чтобы очень уж полезный, скорее "проба пера". И все-таки, кому-то может пригодиться.
По названию вы наверняка поняли, что речь идет об усовершенствовании базового функционала веб-частей.
Основная неприятность, с которой сталкиваешься при разработке веб-частей SharePoint - это конечно же, несовершенство системы редактирования их свойств:
Поэтому логично было создать некий универсальный механизм, который обеспечивал бы реализацию некоторых дополнительных функций для редактора свойств веб-частей, и содержал бы легко расширяемую библиотеку самых частоиспользуемых контролов.
Собственно, моя попытка реализовать эту идею и получила название EnhancedWebPart.
Основные преимущества EnhancedWebPart:
На CodePlex'е я довольно подробно (правда, по-английски), с примерами, задокументировал этот проект. Так что вот, представляю:
По названию вы наверняка поняли, что речь идет об усовершенствовании базового функционала веб-частей.
Основная неприятность, с которой сталкиваешься при разработке веб-частей SharePoint - это конечно же, несовершенство системы редактирования их свойств:
- Поддерживаются только самые простые типы свойств.
- Нет встроенного механизма для реализации локализации названий и описаний свойств.
- Перечисления (enum) имеют существенные ограничения при отображении, в том числе отсутствие возможности для их локализации и невозможность отображения значений с пробелами, спецсимволами, а также чисел.
Поэтому логично было создать некий универсальный механизм, который обеспечивал бы реализацию некоторых дополнительных функций для редактора свойств веб-частей, и содержал бы легко расширяемую библиотеку самых частоиспользуемых контролов.
Собственно, моя попытка реализовать эту идею и получила название EnhancedWebPart.
Основные преимущества EnhancedWebPart:
- Чтобы использовать функционал EnhancedWebPart, необходимо унаследовать собственную веб-часть от этого класса, и отметить специальными атрибутами нужные свойства. EnhancedWebPart самостоятельно создаст один или несколько (для каждого уникального значения атрибута Category) EditorPart'ов, и наполнит их соответствующими контролами.
- Простой и гибкий механизм для добавления новых отображаемых классов. Для этого используется MEF.
- В настоящее время в "библиотеке" отображаемых классов, поставляемой вместе с EnhancedWebPart, присутствуют следующие классы: bool, int, string, enum и SPUser.
- Поддерживается локализация и отображение любых значений в списках (через enum).
На CodePlex'е я довольно подробно (правда, по-английски), с примерами, задокументировал этот проект. Так что вот, представляю:
Подписаться на:
Сообщения (Atom)