пятница, декабря 31, 2010

Нда…

Как-то WordPress не торопится подтверждать мнение, что он лучший “движок” для блогов. Blogspot покруче будет – больше всякого правильно отображает…

Да, а “нравится” для мордокниги ни там, ни тут не отображаются, Tweet Meme – только на Blogspot. Тщательнее надо, тщательнее…



Тестирую новые плагины для Writer

Ну, для меня новые – давно не копался в этой галерее

Now Playing – не фурычит, ни на WMP? ни на Foobar2000 Тошнит Палец вниз

Picasa 

   фурычит… Палец вверх

CodeFormatter Дай пять!

код текстом:

SP.Ribbon.PageState.PageStateHandler.prototype = {

getFocusedCommands:
function() {ULSMg8:;
return null;
},





код картинкой:





четверг, декабря 30, 2010

Сюрприз от DocumentSet

В неплохом типе (ContentType) “Набор документов” (DocumentSet) обнаруживается плохо замаскированная бомбочка замедленного действия (скорее, даже, забытый разработчиками мешок с мусором – как иногда хирурги забывают ножницы в животе пациента…).
В этом мешке валяются обращения к неведомым обработчикам событий этого типа данных. В обычных обстоятельствах эти вызовы ничем себя не обнаруживают, активизируются они при подключении других обработчиков (например, вот этого) и проявляются в виде замусоривания системного лога сообщениями вида:

Ошибка при загрузке и запуске приемника событий Microsoft.Office.DocumentManagement.DocumentSets.DocumentSetEventReceiver в Microsoft.Office.DocumentManagement, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c.
: В экземпляре объекта не задана ссылка на объект.

Поиск показывает, что сюрприз известен уже давно и благополучно пережил несколько “кумулятивных обновлений” Sharepoint 2010.
Лечится выбрасыванием мешка на помойку - удалением этих “обработчиков” (DocumentSetItemsEventReceiver и DocumentSetEventReceiver) из всех библиотек, использующих тип DocumentSet.
Technorati Tags:

Оказывается - 7

Для поля типа SPFieldUrl практически нельзя задать значение по умолчанию. Собственно, задать можно, но только в формате “<url>” – в этом случае поле в новом элементе получает формально правильное значение “<url>, <url>”, что эстетически как-то не очень…

Задание значения по умолчанию "в “эстетичном” формате “<url>, <title>” приводит к значению поля вида “<url>,, <title>, <url>, <title>”, что неверно не только эстетически, но и по сути – ссылка получается кривая.

Вот такой вот сюрприз…

Technorati Tags:

вторник, ноября 30, 2010

Значение ID из УРЛ страницы

В коде веб-части для получения значения параметра ID (да и любого другого) из УРЛа страницы, на которой веб-часть установлена, можно использовать LINQ-выражение:

   1: ID = (from urlParameterName in this.Page.Request.QueryString.AllKeys 
   2:       where urlParameterName.ToUpper() == "ID"
   3:       select this.Page.Request.QueryString[urlParameterName]).FirstOrDefault();

Выглядит забавно, написать сразу не получается (не то, что кучка циклов из MSDN), но преимуществ такого подхода много…

понедельник, ноября 29, 2010

Оказывается - 6

Свойства узла (SPWeb.Properties) являются “неистребимыми” – их можно добавлять, их значения можно менять, но их нельзя удалить. Формально, конечно, метод .Remove() существует и даже как бы действует, но при обновлении значения узла все свойства оказываются на месте. Можно действовать средствами PowerShell, можно средствами ОМ в программе на C# – эффект одинаков. Разница в том, что в C# можно установить значение в null, в PS присваивание $null присваивает пустую строку.

Вот такой маленький сюрпризик Дразнюсь.

Technorati Tags:

среда, ноября 17, 2010

Оказывается - 5

… что и MSDN не всегда говорит правду.

Например, читаем

An expression using the &= assignment operator, such as

x &= y

is equivalent to

x = x & y 

На практике оказывается, что эквивалентность для логических операндов наблюдается только в приведённом примере:

class AndAssignment
{
static void Main()
{
bool b = true;
b &= false;
Console.WriteLine(b);
}
}
/*
Output:
False
*/

Если же операнд y является вызовом какой-либо процедуры, то оператор &= эту процедуру вызывает всегда, независимо от значения x.

суббота, октября 30, 2010

Октябрьский CU

Установил неслабого такого размера (ок. 150 Мб) набор апдейтов для OSS 2010 422859_intl_x64_zip.exe и выяснил, что почитали MSDN!!! Пламенный приветСолнце

Споткнуться на ровном месте - 3

Очередной капкан обнаружился при попытке установить веб-часть на страницу просмотра для списка, который имеет поля типа FilteredLookup. Независимо от выбранной веб-части получаем исключение HRESULT: 0x80030102 (STG_E_REVERTED)) (использование уничтоженных ранее объектов). Такое же исключение получается и при попытке удалить с такой страницы ранее установленные веб-части.Раздраженный

Проведённое расследование показало, что поле не сильно и виновато: отладчик не фиксирует исключения в коде поля, а “страница сопровождения веб-частей” [_layouts/spcontnt.aspx]) удаление делает без проблем. Получается, редактор страниц как-то хитро взаимодействует с полем, при этом хитрость выходит боком. Что удивительно, для пользователей, а не для разработчиков.

Винт для этой хитрой зад примочки нашёлся довольно быстро – утилитой SPFExplorer (модификация под Шарепойнт-2010 старой моей утилиты) скопировал нужную веб-часть с другой страницы. И без использования уничтоженных объектов…

Придётся теперь плагин для утилиты сочинять… Кружка пива

пятница, октября 29, 2010

Оказывается - 4

Если объявить документ библиотеки или элемент списка “записью”, то это навсегда. Рецепт: активируйте “возможность” семейства сайтов “Управление записями по месту”, настройте по вкусу “Параметры объявления записей” и объявите документ в библиотеке записью при помощи появившейся кнопки на ленте.

Библиотека становится неудаляемой, а снять свойство “записи” с документа не удаётся - кнопка не имеет обещанного пункта подменю для снятия отметки

image

а нажатие на кнопку лишь повторяет “объявление”
image

Теперь избавиться от этой радости можно только вместе с узлом…

Оказывается - 3

В Шарепойнте-2010 существуют неудаляемые списки. Вот как получить парочку таких: активируйте на узле “возможность” с дивным именем “Организатор контента”. На узле появляются два списка – “Библиотека-распределитель” и “Правила организатора контента”, удалить которые не удаётся (вне зависимости от активности “фичи”): в свойствах списков отсутствует пункт для удаления

image

использование утилиты тоже неудачно:


image

Только вместе с узлом… Где-то уже на грани диверсии Тошнит

суббота, октября 23, 2010

Оказывается - 2

Оба способа переноса узлов  (сохранение узла в качестве шаблона с последующим созданием нового и экспорт/импорт с использованием утилиты stsadm.exe) не восстанавливают содержимого полей типа “пользователь”. Метод с использованием шаблонов делает это молча, в протоколе импорта прискорбный факт отражён в виде предупреждения:

Warning: Не удается выполнить разрешение пользователя или группы 18

Ага, весьма информативно, хоть и лучше, чем ничего…

Оказывается…

Если форму редактирования элемента списка открывать обычным образом – кликом на ссылку мышкой, то форма просмотра/редактирования откроется в суперском (он же пуперский) интерфейсе, в настройках названном диалоговой формой.

Если же кликнуть на ссылку правой кнопкой и открыть форму в другом окне или другой вкладке браузера, то форма отобразится в на обычной странице, как в предыдущей версии Sharepoint. Очень удобно для настроечных целей… Однако это переключение способа вывода форм вовсе не временное, как можно подумать, меняется даже соответствующий параметр списка.

Одно утешает: если у юзера нет разрешений на изменение параметров списка, то отключение диалоговых форм – временное.

Споткнуться на ровном месте - 2

Нет в жызни щастя… Подумал немножко над решениями проблемы общедоступных примечаний в формах, содержащих ссылки на другие формы, и пришёл к выводу, что выкрутиться можно, лишив юзера возможности наткнуться на глюк с “Доской заметок” – из формы просмотра master убрать ссылки на формы редактирования detail, а в форме редактирования master такие ссылки оставить, но убрать оттуда “Доску”. Всё это решается при помощи настройки вьюшек вполне стандартными способами, и сообщение об ошибке больше не вываливается.

Но скучно было бы жить, если бы всё было бы так просто – нашёлся капкан. Выяснилось, что при сохранении настроенного таким образом узла в качестве wsp-шаблона (что, собственно, является одной из целей мероприятия) получить полноценной копии путём создания нового узла по этому шаблону не удаётся – эти самые “Доски” не импортируются и на месте веб-части для написания заметок видим милое сообщение:

image

Но не всё так плохо – использование операций экспорта/импорта (stsadm –o export/import) приводит к желаемому результату – копия узла со всеми настройками в нужном месте. Осталось научиться использовать импорт в своих рабочих процессах…

среда, октября 20, 2010

Читают ли MSDN разработчики SPD 2010…

Вот сейчас точно знаю, что не читают. По крайней мере, не всё читают…

Выяснилось, что в РП в Sharepoint Designer 2010 невозможно без дополнительных танцев с бубном использовать действие “Создать элемент в списке”. SPD настоятельно предлагает заполнить обязательное поле с дивным названием “Путь и имя”. При помощи вот этой утилиты удалось выяснить, что имеется в виду поле списка “FileLeafRef” (каков переводчик - чудо!), про которое в MSDN сказано: “Required, but ignored if the list is not a document library.”. В соответствии с этим указанием все списки имеют атрибут этого поля required==true (в WSS3 такого не было и никаких проблем с этим полем - тоже). А так как разработчики MSDN не читали, то и выставляют перед изумлённой публикой требование заполнить обязательное поле (которое не совсем обязательное, а только немножко…) неведомо чем.

При помощи той же утилиты можно видеть, что значение поля имеет вид '1;#1_.000', однако в рамках РП подсунуть ему такое значение (равно как и любое другое) не удаётся и РП заканчивается сообщением об ошибке: “Обновить элемент в рабочем процессе не удалось, возможно потому, что в одном или нескольких столбцах для этого элемента должны содержаться данные другого типа.”.

Исправилась ситуация при помощи той же утилиты – атрибут required был установлен в false. После этого SDP успокоился, а РП начал исполняться как ожидалось…

Странно всё же, как такое было пропущено при тестировании действия. Получается одно из двух – либо обязательность для поля ввели после тестирования, либо тестирования не было вовсе…

Добавлено на другой день:

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

вторник, октября 19, 2010

Споткнуться на ровном месте…

Имеется ТЗ (типичное для систем master-details) на обеспечение возможности работать со списком details из форм просмотра и редактирования элементов списка master. Нормальное желание, да и средства для реализации в нынешней версии Шарепойнта вполне доступны: открываем на редактирование форму списка master и добавляем связанный список.

Радуемся результату и обнаруживаем следующий пункт ТЗ – элементы master должны иметь поле “Примечания”, которое может редактировать любой, имеющий доступ к списку. Тоже вполне типичное пожелание на разграничение доступа к полям списка, которое нормального решения не имеет и в нынешней версии Шарепойнта. Правда, в нынешней версии Sharepoint Server нашлась веб-часть “Доска заметок”, выводящая метаданные. Поставим и эту веб-часть на форму списка master – и ТЗ выполнено.

Но так гладко не бывает: выяснилось, что если открыть полученную форму в диалоговом окне (настройки по умолчанию, используется новомодный интерфейс) и из неё открыть на редактирование элемент detail, то при сохранении detail получим сообщение об ошибке

m-в-bug

Данные сохраняются, в чём ошибка состоит, выяснить не удалось (да не сильно и хотелось).

Обойти баг можно двумя способами – либо отключить новый интерфейс для списка master, либо убрать с формы “Доску заметок”. Что называется “оба хуже” Раздраженный. Даже не смешно… Шаблон узла с демонстрацией бага – здесь.

Как говорится, первый блин (с метаданными) - комом. Или с новым интерфейсом?

воскресенье, октября 10, 2010

Бля…

Пока удалял Live Sync (легальным способом, через Control Panel Дразнюсь), из меню пропали пункты для запуска Live-фотоальбома. И всего остального тоже – остались бесполезный Mesh, Writer и "семейная безопасность". Всё остальное переместилось в верхнюю часть списка “Все программы”. Зачем, почему – науке неизвестно… Запустил (опять же, легально) “восстановление” Live – в конце увидел просьбу (хорошо хоть, что не требование) о перезагрузке…

Бля… 2010 год на дворе, последний квартал его, а тут о перезагрузке просят… Когда уродов на фиг прогонят с работы, интересно? Удар

Добавил позже. И зря подумал, что про перезагрузку была просьба – то был приказ, подлежащий немедленному исполнению… Расплата пришла утром – при включении компьютер не поднялся из режима hibernate. Он, конечно, и без этого частенько не просыпается, но тут я точно всякие «вредные» программы вроде торрента выгрузил.

Live Mesh

Попробовал… Получилось, что мне программка совсем не нужна – рабочий компьютер у меня совмещён с домашним, нотебука/планшета для красивых встреч с заказчиками тоже нет… Синхронизацию с телефоном, которая могла бы пригодиться, отменили… Live Sync в процессе пробования Mesh работать перестала…

В общем, прощай, Live Sync, здравствуй, Dropbox.

Диверсификация…

Много лет уже пользуюсь Live Sync, в частности, для переноса каких-то файлов на удалённые компьютеры, в основном, на подшефные серверы (Win 2003/2008). Исправно всё работало, да и сейчас, собственно, работает.

Одно плохо – с выходом Live Essentials 2011 выяснилось, что новая версия Live Mesh (точнее, релиз – раньше она в бете пребывала) не желает жить вместе с Live Sync и устанавливаться на мои серверные системы Схожу с ума от злости. А версию Mesh некоторые хвалят, несмотря на неполную реализацию заявленных ранее возможностей? поэтому хотелось бы и с ней поработать.

Замена Live Sync отыскалась довольно скоро – в очередной рассылке Softodrom’а был Dropbox. Без вопросов установился на сервере и на моей “семёрке”, без вопросов переслал туда/сюда файлы… Понаблюдаем… Опять же, вспоминая приключения с Live Sphere, смена поставщика – дело хорошее.

пятница, октября 01, 2010

Тестируем новый Live Writer

Какую-то хрень изображает…

Колонки перепутал…Сердитая рожица

А уж редактор – вообще ППЦ: без мышки по строкам перейти невозможно…Схожу с ума от злости Но не по всем, по некоторым можно. Дразнящаяся рожица

Это на Wordpress’овом шаблоне.

На Blogspot’овском, вроде, нормально работает. Даже не знаю

воскресенье, сентября 19, 2010

Виртуальный домен 2

Несколько месяцев назад организовал себе домашний домен. Довольно исправно работает (если не считать необходимости небольшой наладки после каждой перезагрузки о почти каждого восстановления из hibernate), обслуживает мою домашнюю сеть (два физических компьютера, 1-2 виртуальных, две сетевые карты на хост-машине с ICS).

На днях потребовалось добавить к сети третью машину, желательно, с доступом к другим машинам и к Интернет. Третья сетевая карта нашлась, однако ICS умеет раздавать Интернет только на одну. Пришлось объединить все три карты в мост, который сразу заработал (!!).

Радость получилась недолгой – до первой же попытки воспользоваться сервисом домена – никто контроллера домена не видит (он сам – видит). И не повозишься с ним, контроллером этим – Core установка весьма аскетична в деле управления…

Даже и мыслей нет дальнейших… Может, второй контроллер установить, с нормальным интерфейсом, да поковырять его…

Technorati Tags: ,

четверг, августа 19, 2010

Новая бета “Основных компонентов Windows Live”

Наверное, ко времени, так как у людей уже некоторые функции отваливаться начали. У меня, правда, первая бета на основную систему вовсе ставиться не пожелала. Установка в виртуальную машину с 32-разрядной “семёркой” привела к тому, что запуск этой виртуалки вызывал жуткие вопли о нехватке ресурсов и к отключению режима Aero. В результате узнать, что ж в новой версии хорошего, толком не удалось.

Из второй версии установил Messenger  и Writer.

Writer – вполне работоспособен. Собственно, в нём пост и написан. Заодно и правописание проверяет,  правда, только русское, но тоже непонятно, как делает, т.к. на машине никакого Офиса нет и не было… А картинки вставляет прямо из буфера обмена после вырезки куска экрана при помощи OneNote. Ура!!! Дай пять! 
Правда, фигурирующее в настройке “Автоматическое переключение регистра” никак себя не проявляет – без Пунты никуда…Саркастичная рожица

Messenger – что-то из серии “середина наполовину”. В “узком” режиме – с виду тот же самый, который у меня и нынче есть. В “широком” может воспроизводить сообщения из одного account’а FaceBook (запостить туда не получается – но и не обещали, вроде бы). Может также показывать попсу с главной странице MSN.

Маловато будет…Дразнюсь Хотелось бы Твиттеры подключать и постить в них – некоторые другие “аськи” вполне с такими задачами справляются:

image

В общем, с массовым внедрением подождём пока…

пятница, июля 23, 2010

Чудесная программуля…

Называется сие чудо MS Outlook 2010.

По-правде, предыдущей версии мне вполне хватало – контакты, задачи, календари, синхронизация этого хозяйства со смартфоном и обратно… Почтой давно пользуюсь через web-интерфейс – возможностей хватает, да и online-ящики стали безразмерными. Одно было плохо – дрался Outlook 2007 не на жизнь, а на смерть с Punto Switcher’ом, никак не получалось их примирить. Ещё на этапе беты выяснилось, что 2010-я версия с Пунтой не дерётся – мелочь, а приятно, поэтому по выходе релиза поставил новый офис рядом со старым. А профиль у меня, надо сказать, старый, ему не меньше трёх лет (XP –> Vista –> Windows 7), настроек для разных программ не перечесть.

Приключения начались позже, после выхода и массированной рекламы ”социальных коннекторов” для Outlook. Пришлось пробовать, куда денешься…

Из трёх “коннекторов” результат дали два – появились списки контактов из LinkedIn и Windows Live Messenger. Правда, до действий контактов добраться довольно мудрёно, но можно:

messenger

Подключение же к Facebook сначала не проявляется совсем никак и действия пользователя Facebook можно увидеть только в письме, полученном от этого пользователя:

facebook

А если переписки нет – уж извините… Правда, если человек находится в нескольких сетях, то его действия отображаются все вместе (что, несомненно, приятно и полезно):

mixed

Не всё, конечно, логично, но привыкнуть можно…

Второе приключение - подключение списков Шарепойнт 2010. В ленте действий списка соответствующий пункт неактивен и дополнительно сообщается, что Вы здесь никто:

2outlook2

Однако если завести на компьютере нового пользователя, залогиниться им и проделать те же действия, то всё становится хорошо и список цепляется в Outlook. Мало того, можно обойтись и без логина этого пользователя на компьютере, достаточно запустить ИЕ от его имени. Или просто использовать другой браузер – Google Chrome, к примеру (благо, в Шарепойнт 2010 ввели поддержку не только ИЕ7+). Все списки благополучно подключаются и синхронизируются. Правда, не очень понятно, как быть со списками из 2007-го Шарепойнта – там приход с Хромом не сильно приветствуют…

Нда, смешно… А в остальном программка хорошая, если не считать корявой работы с hotmail-почтой. Немного ситуация с почтой починилась, правда, после удаления раздела Outlook в реестре, но практически любой сеанс связи заканчивается одинаково:

hotmail err 
и сопровождается плачем Ярославны: bad

Про подключение к gmail-почте – в другой раз.

Technorati Tags:

вторник, июня 29, 2010

Приложения из набора шаблонов в SPF 2010

Для WSS 3 Microsoft был разработан полезный бесплатный набор шаблонов приложений, которые можно было использовать как в “натуральном” виде, так и в качестве основы для дальнейшей доработки под собственные нужды. При внедрении новой версии Шарепойнта стало интересно посмотреть, как эти приложения перенесут upgrade и как будут работать в новой версии.

Проще всего оказалось узнать про установку приложений в новой версии – шаблоны, имеющие wsp-пакеты для установки, устанавливаются и в новой среде обычным порядком. Шаблоны с stp-пакетами, естественно, никак не устанавливаются – не обрабатываются эти пакеты в новой версии. Хуже то обстоятельство, что из установленных решений не получается создать приложение – в списках шаблонов они присутствуют, но генерация всегда заканчивается похоже:

image

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

Несколько устойчивее приложения оказались к процессу конвертации узлов, на которых они были установлены заранее. После конвертации “на месте” работоспособными остались практически все структуры, за исключением содержащих т.наз. custom Types. Пример неработающей структуры - список “База знаний” в приложении HelpDesk.

Из приложений, устанавливавшихся при помощи stp-пакетов, следует отметить небольшой полезный “Учёт рабочего времени” – после конвертации приложение на его основе практически полностью работоспособно. Однако даже работающее приложение “размножить” путём сохранения в качестве шаблона и генерации нового узла по этому шаблону не удаётся из-за возникновения той же “неожиданной ошибки”.

Получается, что  нужно или ждать появления какого-то спецконвертера приложений (кто ж его напишет?) или ожидать нового набора приложений…

Technorati Tags: ,

понедельник, мая 31, 2010

Табличный сюрприз.

Очередная мина на Шарепойнт-поле: при наличии в списке полей с типом, наследующим SPFieldLookup, метод items.GetDataTable() возвращает таблицу с неверными данными. Можно было бы и смириться, когда для полей, содержащий единственное значение выдаётся только его наименование без индекса, но для случая нескольких значений индексы и наименования перепутаны местами, для последнего значения индекс вовсе не выводится…

В итоге не придумалось ничего лучше, чем вызывать метод корректировки таблицы и для таких полей заменять корявое значение правильным - item[field.Title].ToString()

Technorati Tags:

понедельник, мая 24, 2010

Sharepoint, виртуальный домен и инструменты

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

Кандидаты на эти инструменты – Visual Studio и Sharepoint Designer. При помощи второго обычно делаю рабочие процессы “на скорую руку” (когда они несложные и надо быстро и в одном экземпляре) и разные эксперименты. Студия же служит для всего остального. Сюрпризы начались (или, скорее, наоборот, сюрприза не случилось…) уже с Дизайнера – для разных версий платформы необходимо использовать свои специальные версии инструмента. Понятно, когда требуется заставить покупать новую версию, но здесь-то продукт бесплатный… Или только до поры бесплатный? В общем, получается замусоривание дисков и Сети дистрибутивом нехилых размеров.

Со Студией ещё печальней – кроме использования разных её версий для разных версий Шарепойнта существует и необходимость установки Студии на том же компьютере, на котором установлен Шарепойнт. Только в такой комбинации существует возможность использовать (создавать, редактировать и отлаживать) типы проектов, относящиеся к Шарепойнту. Конечно, при необходимости можно приложить некоторые усилия (не очень, впрочем, маленькие) и обойти какие-то ограничения. Например, можно сделать собственные шаблоны проектов, которые не требуют установки Шарепойнта и Студии на одном компьютере (наподобие этого и этого). Однако отладку рабочего процесса только на сервере подобные способы никак не отменяют.  Новые версии Шарепойнта и Студии для исправления такого положения добавляют крайне мало (нужно долго присматриваться, чтоб изменения заметить). Даже .NET 4.0 использовать нельзя…

В итоге, собственно, всё остаётся по-прежнему – на каждый сервер с установкой Шарепойнта ставим свою версию Студии (для WSS 2007 – VS 2008 ENU + VSeWSS v.1.3, для SPF 2010 – VS 2010 любой локализации).

Вообще, чем больше присматриваешься к новым версиям платформы и инструментов, тем меньше видишь в них что-либо по-настоящему новое и полезное, чего нельзя было бы сделать простым усовершенствованием WSS 2007 и Visual Studio 2008.  При этом, конечно, сильно не пошумишь и всяких “Запусков” с Launchами не поустраиваешь. Какая-то маскировка получается при помощи бантиков, песен и плясок.

Technorati Tags: , ,

вторник, мая 11, 2010

Sharepoint, виртуальный домен и SQL Server

Стояла задача с минимальными затратами (денег и умственных/физических усилий) организовать рабочую среду для  разработки/тестирования решений для Шарепойнта. Собственно, среда эта давно имелась (PC c двухядерным процессором, ОЗУ 4 Гб, Windows 7 x64 Ultimate, SQL Server 2008 x64 Developer Edition, Visual Studio 2008, WSS 2007 x64) и вполне позволяла решать возникающие проблемы. Если не хватало WSS 2007, использовался Server 2003 x86 с OSS 2007 x86 в виртуальной машине с 1,5 Гб памяти. C приходом (или с наступлением на всех нас) новой версии Шарепойнта (его рекламная кампания была ничуть не слабее рекламы “Клинского”, хорошо бы, чтоб и рекламируемые продукты не  были сильно похожи…) стало понятно, что имеющаяся конфигурация явно недостаточна.

Выходов было всего 2 – купить новый крутой компьютер или модернизирвать имеющийся и оптимизировать использование ресурсов. Ладно, с новым крутым пока подождём, поэтому по-простому куплено 8 Гб памяти (больше матплата не принимает) и воткнута флешка в режиме ReadyBoost – вот, собственно, и вся модернизация, которую возможно было сделать… Осталось заняться оптимизацией, при этом надо было сохранить имеющиеся возможности и параллельно добавить возможность работы с новой версией Шарепойнта.

Первым делом выяснилось, что имеющаяся в Windows 7 Virtual PC не подозревает о существовании 64-разрядных операционных систем (а Шарепойнт (SPF) 2010 – о 32-разрядных). Спасибо, компания Sun оставила в наследство народу замечательный продукт VirtualBox… Второй сюрпризик – SPF желает устанавливаться на отдельном сервере только со своей СУБД. WSS умел и с моими… (Правда, выяснилось, что если instance моего SQL Server назвать SHAREPOINT, то SPF своего сервера не устанавливает). Но в любом случае СУБД должна быть на этом же отдельном сервере. Это сколько же SQL Serverов будет в системе? И всем ресурсы подавай, всех обслуживай… Б-р-р.

А, собственно, кто мешает оставить всего один экземпляр, а остальные виртуальщики пускай пользуются. Мешала одна мелочь – в таких ситуациях требуется доменный пользователь. Что ж, пускай будет – имеется замечательное изобретение Windows Server Core Installation. Вот эта статья и эта разработка позволили достаточно легко организовать контроллер домена на базе Windows Server 2008 R2 в небольшой (память 456 Мб, диск ок. 4 Гб) VM на базе VirtualBox. Машинка запускается при старте основного компьютера из ком.строки, висит себе тихонько в уголочке и каши почти не просит (несколько первых часов работал оптимизатор .NET, потом успокоился):

image

Одного не удалось – поставить русскую версию сервера: не работает конфигуратор с codeplex из-за “перевода” названий различных системных объектов (собственно, даже PowerShell не запускается…). Ну и ладно, не сильно и хотелось…

В результате удалось заметно уменьшить требования к ресурсам для виртуальной машины с Шарепойнтом – и OSS 2007, и SPF 2010 вполне пристойно работают в машинах с памятью 1500 Мб (можно даже их одновременно запускать – неизвестно, правда, зачем…).

Technorati Tags: , ,

пятница, апреля 23, 2010

Sleep or die…

В последнее время несколько раз наблюдалось “непросыпание” системы поле sleep/hibernate. То есть, просыпаться-то она просыпается, но восстановление до рабочего состояния не заканчивается – моргает потихоньку индикатором диска при чёрном экране монитора. После сброса состояния выясняется, что требуется починка файловой системы командой chkdsk.

При починке чаще всего выявляются проблемы с файлом GlobalCacheCleanup.xml в папке кеша программки Windows Sidebar :

The file reference 0x2c8000000000295 of index entry GlobalCacheCleanup.xml of index $I30
with parent 0x2b5cf is not the same as 0x2c9000000000295.
Deleting index entry GlobalCacheCleanup.xml in index $I30 of file 177615.
The file reference 0x2c8000000000295 of index entry GLOBAL~1.XML of index $I30
with parent 0x2b5cf is not the same as 0x2c9000000000295.

На втором месте – файлы из кеша Google Chrome, которые часто оказываются сиротами (orphaned).

Пришлось подключить nncron и эти файлы прибивать – назначение первого вообще малопонятно, а без кеша Chrome вполне обойдусь. Посмотрим, чем дело закончится…



Technorati Tags: ,

среда, марта 24, 2010

Шаблон проекта рабочего процесса

Выложил шаблон проекта по разработке на C# рабочего процесса для Шарепойнта. Включены средства работы с файлом конфигурации, с почтой (в т.ч. внешней типа gmail.com), средства установки, обновления и др.

Technorati Tags: ,

среда, марта 10, 2010

Атрибутный сюрприз

Technorati Tags:

Нынче сюрприз преподнёс класс System.ComponentModel.DefaultValueAttribute. Выяснилось, что при его использовании в свойствах веб-частей можно задавать значение false. Задание же true приводит к тому, что свойство с таким атрибутом при изменениях не сохраняет значение true.

Обходится присваиванием свойству нужного значения по умолчанию в конструкторе веб-части. Можно и отказаться от этого атрибута…

Шаблон проекта веб-части

Выложил шаблон проекта по разработке на C# веб-части для Шарепойнта. Включены средства локализации, установки, обновления и др.

Technorati Tags:

понедельник, марта 01, 2010

Digsby помер

Года полтора игрался с новой универсальной аськой. Хорошо программка развивалась, разработчики отзывались на требования-просьбы пользователей… Всё в ней было – разные протоколы, “социалка”, единый вход и т.п.

Некоторое время назад стал видеть свои сообщения на русском языке без знаков препинания и без пробелов (при том, что собеседник видит всё нормально).  При попытке переустановки без всякого спросу и предупреждения поставилась какая-то шняга под видом AddOn’а для Outlook. Нет слов! Тем более, удаление знаков препинания никуда не делось :( Заигрались ребята, жадность сгубила…

Пришлось выкинуть игрушку и вернуться к старому новому Trillian’у (пользовался им довольно долго, а за это время вышла новая версия со всеми полагающимися фичами). Что ж, не впервой…

пятница, февраля 19, 2010

Поведение метода Lists.GetListItems

Заинтересовали результаты поисков по теме, поднятой на GDN – получается, что метод какой-то совсем кривой и некоторые параметры обрабатывать не умеет. С учётом того, что в некоторых своих разработках метод использую, провёл небольшое исследование поведения метода Lists.GetListItems (обработка параметров viewFields и queryOptions).

Краткие результаты:

  1. Поведение метода зависит от типа ссылки на сервис (WCF или WS) и от типа программы, в которой метод используется (веб-часть/консольное приложение).
  2. В веб-части параметры обрабатываются правильно при использовании WS-ссылки.
  3. В консольном приложении - при использовании WCF-ссылки.
  4. Элемент IncludeMandatoryColumns не обрабатывается во всех вариантах.

При исследовании использовалась Visual Studio 2008. При использовании Студии 2010 RC(консольное приложение, переработанное с учётом сюрприза) WCF-ссылка не принимает во внимание все параметры, WS-ссылка правильно обрабатывает только viewFields.

Technorati Tags:

вторник, февраля 16, 2010

Сюрприз-2010

На этот раз сюрприз преподнесла новейшая и крутейшая Visual Studio 2010 RC. Наблюдается сюрприз при генерации ссылки на сервис (Service Reference) для работы со списками Шарепойнта /_vti_bin/Lists.asmx. Результаты этой генерации заметно отличаются от таковых, выполненных Студией 2008 и от описаний в SDK. Например, метод клиента GetListItems отличается как по типам параметров, так и по типу результата (сверху – описание из VS 2010, внизу – из VS 2008):

сравнение результатов

При этом результат не зависит от целевой версии .NET. Мало того, при конвертации Студией 2010 проекта с правильным прокси типы тоже конвертируются и проект перестаёт собираться. В общем, при переходе на новую Студию скучно не будет…

Technorati Tags: ,

понедельник, января 18, 2010

Остряки, блин

Какой-то урод выложил архив Far Manager v2.0 build 1345 x64 (2010-01-18) без Far.exe. smile_angry 
Очень остроумно. Особенно при автоматическом обновлении через плагин Update – всё изменяется, а Far.exe остаётся старый. И привет – не может он, видите ли, загрузить языковые данные… thumbs_down Программеры, едрёныть…

Technorati Tags: ,

среда, января 13, 2010

FullHD кино

Появился в доме большой телевизор с поддержкой Full HD. Пришлось заниматься вопросами, как весь имеющийся в доме железный зверинец объединить в нечто работающее и показывающее на этом телевизоре что-нибудь пристойное.

Подробности – здесь.