понедельник, мая 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: , ,