пятница, апреля 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. Пришлось заниматься вопросами, как весь имеющийся в доме железный зверинец объединить в нечто работающее и показывающее на этом телевизоре что-нибудь пристойное.

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

пятница, декабря 18, 2009

Сюрпризик

Теперь – от поля SPFieldUser. Оказалось, что поведение поля существенно зависит от значения свойства AllowMultipleValues. Например, при значении true обращение к данным элемента списка с таким полем (item[fieldName]) приводит к получению объекта типа SPFieldUserValueCollection (как, собственно, и можно ожидать). Однако при значении AllowMultipleValues == false тип полученного объекта – вовсе не SPFieldUserValue, а String.

Похоже, кто-то где-то лишний раз ToString() присобачил…

Technorati Tags:

среда, декабря 02, 2009

Забавное…

Выяснилось <здесь должна быть ссылка на форум GDN, но он упал и не поднимаетсяthumbs_down>, что для сохранения результатов редактирования элемента списка пользователю требуется разрешение на …удаление. Проверить просто – чуть-чуть измените настройку уровня разрешений “Чтение”: 

editnotdelete

После этого попробуйте выполнить редактирование и сохранение под пользователем, имеющим такой уровень разрешений. Несколько весёлых минут… clap

Technorati Tags:

четверг, ноября 19, 2009

Visual Studio 2010 и Sharepoint 2007

Задался целью выяснить, можно ли обойтись одной Студией (желательно, 2010-й) для разработок (хотя бы, для модификаций имеющихся) – веб-частей, утилит, рабочих процессов и т.д. для текущей версии Sharepoint (до использования новой версии и разработок для неё когда ещё дело дойдёт…). Выяснилось, что новая Студия вполне спокойно относится к проектам, сделанным в Студии 2008 без использования VSeWss – их можно редактировать, компилировать и делать другие необходимые действия. Даже можно включить использование .NET 4.0, правда, исполняться полученный код не станет smile_sad. При отладке нужно переключить версию отлаживаемого управляемого кода на 2.0 (по умолчанию используется 4.0, а они вместе отлаживаться не могут).

nets

Для разработок же под Silverlight новая Студия намного удобней – в неё включили часть функциональности Expression и отпала необходимость прыгать между приложениями.

В общем, можно потихоньку переползать на Студию 2010 – по крайней мере, выглядит она “красивше”. Правда, новый Help 3.0 не нравится совсем: с запуском дополнительного web-сервера примириться ещё можно, но вот демонстрация материала в окне браузера раздражает очень сильно - вызывается не новый экземпляр браузера, а тот, который был запущен последним (правда, на собственное окно браузера почем-то внимания не обращается). [А я для удобства работы использую несколько рабочих столов и появление браузера с другого стола генерирует не очень печатные слова…]. Спишем пока что на бету.

Technorati Tags: ,

среда, ноября 18, 2009

Sharepoint 2010, установка

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

В общем, получить что-то работающее на моём компьютере удалось только с четвёртой попытки. Установка на Windows 7 (по инструкции с MSDN) началась довольно бодро, но установщик предложил выполнить обновление существующей версии WSS 2007. Пришлось отказаться – работать, всё же, на чём-то надо…

Эксперименты продолжились на Server 2008 R2 в VirtualBox (почему-то Windows Virtual PC не признаёт 64-битных гостевых систем…) с памятью 2 ГБ.

Так, установить office sharepoint server 2010 удалось, но открыть даже страницу Центра администрирования не получилось – явно ресурсов маловато.

Установить office sharepoint foundation server 2010 (SPF, так теперь придётся WSS называть) привычным образом (как ферму с использованием своей установки SQL Server 2008) не получилось – мастеру настройки не понравилось, что предлагаемый ему пользователь не является доменным, а поднимать на виртуалке домен в мои планы пока что не входит…

В итоге пришлось ограничиться “автономной” установкой SPF 2010. Чемпионских скоростей работы не наблюдается, но для экспериментов сойдёт…

Одно хорошо – обнаружилась веб-часть “Веб-часть Silverlight”, с такой же практически функциональностью, что и SilverLight App Launcher.

Technorati Tags: ,

суббота, ноября 14, 2009

Запуск SilverLight-приложений на страницах Sharepoint

В процессе глубоко научных попыток использовать SilverLight в пользовательском интерфейсе собственных разработок получилась веб-часть общего назначения для запуска SilverLight-приложений на Шарепойнт-страницах. Собрал туда разные идеи из блогов и др. источников и выложил вместе с исходниками. Может, ещё кому пригодится…

Technorati Tags: ,

пятница, ноября 13, 2009

Отображение иерархических данных

Вывесил веб-часть HieView для вывода на страницу таких данных, содержащихся в списках Шарепойнта. Часто на форуме спрашивают, особенно новички: первая задача, которую им начальство ставит – изобразить оргструктуру предприятия. Пускай пользуются…
Technorati Tags:

Пятница, 13-е или Live Writer

Не могла эта 13-я пятница просто так пройти… Выяснилось, что не запускается Writer, молча закрывается, и фсё… Один раз пообещал сказать, в чём дело, если решение разыщет, но пока молчит.thumbs_down

Пришлось самому. Восстановление/переустановка не помогли, помогла попытка запуска от имени другого пользователя – запустился и захотел настраиваться. Осталось порыться в собственном профиле, и в файле "C:\Users\DkmS\AppData\Local\Windows Live Writer\Windows Live Writer.log" обнаружить причину явно неадекватного поведения примочки – не смогла обнаружить папку для черновиков, заданную в настройках. Ну да, не было такой папки (машину модернизировал, диски менял, вот и пропалаsmile_embaressed), но это вовсе не повод молча заваливаться…

Поотрывать бы “программерам” примочки всё, что отрывается…smile_angry

Technorati Tags: ,

среда, октября 14, 2009

Маленький такой сюрпризик

Казалось бы, два определения свойства эквивалентны:

   1: public StyleOfViewList ListViewStyle {
   2:     get { return listviewstyle; }
   3:     set { listviewstyle = value; }
   4: }
   5: StyleOfViewList listviewstyle = StyleOfViewList.GridStyle;
и
   1: public StyleOfViewList ListViewStyle { get; set; }

Тип свойств – обыкновенное перечисление

   1: public enum StyleOfViewList : byte { GridStyle = 1, PackedStyle = 2 }

Действительно, Рефлектор показывает для обеих конструкций практически одинаковый код, да и опыт с документацией подсказывают, что должно быть без разницы, какую из конструкций использовать… И так оно и есть, пока вторая конструкция не использована в определении свойства веб-части (с атрибутом [WebPartStorage]) – такая веб-часть становится неработоспособной.
Замена на первую конструкцию излечивает проблему. Нда…

Technorati Tags: ,

вторник, октября 06, 2009

Очередная попытка, бесплодная…

В очередной раз пытаюсь найти решение возникшей на ровном месте задачи получения информации с удалённых узлов Шарепойнта.

Собственно, особого разнообразия вариантов и нет – к неработающему способу обращения по механизму WebServices добавляется способ с использованием WCF. Смотрим, что получится:

   1: string endPointUrl = url.TrimEnd("/".ToCharArray()) + "/_vti_bin/Lists.asmx";
   2: ListsSoapClient client = new ListsSoapClient("ListsSoap", endPointUrl);
   3: client.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonation;
   4: client.ClientCredentials.Windows.AllowNtlm = true;
   5: client.ClientCredentials.Windows.ClientCredential = new NetworkCredential(); 
   6: // from http://blogs.msdn.com/kaevans/archive/2009/03/10/calling-sharepoint-lists-web-service-using-wcf.aspx
   7: client.Open();
   8: XmlNode tst = null;
   9: try {
  10:     tst = client.GetListCollection();
  11:     Console.WriteLine(string.Format("success: {0} bytes", tst.OuterXml.Length));
  12: } catch (Exception err) {
  13:     Console.WriteLine(string.Format("error: {0}", err.Message));
  14: }


Результат, собственно, тот же, что в предыдущем опыте – локальные узлы (находящиеся на том же компьютере, откуда делается запрос, и на компьютерах, виртуальных или физических, в локальной сети) отдают данные как ожидается, при обращении к удалённым узлам (заведомо имеющим NTLM аутентификацию и разрешённый анонимный доступ) получаем исключение с сообщением “The HTTP request is unauthorized with client authentication scheme 'Ntlm'. The authentication header received from the server was 'NTLM'”. Весьма информативно, да…

Раскопки показывают, что народ с этим тоже пытается как-то бороться (безуспешно, впрочем), а корень зла описан в KB-статье. Оказывается, это борются так с “отражёнными атаками”, которые неизвестно, бывают ли, но средство борьбы надёжное – фиг прорвёшься. Что называется, лес рубят – щепки летят.

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

Technorati Tags: ,

суббота, сентября 19, 2009

Белый пушистый сюрприз

Выяснилось, что при обращении по адресу наподобие http://server/site/folder/file.aspx?id=N вне зависимости от содержания файла file.aspx происходит переход на N-й файл в папке folder. Особенно умиляет диагностика, когда N превышает количество файлов – в адресной строке браузера написано то, что и должно быть, а на странице ошибок Шарепойнт – что такой страницы нет или она изменена другим пользователем.

image

А я таким способом пытался в веб-часть на странице передать ID элемента списка… В общем, хотелось бы на умника посмотреть, который такую гадость придумал. Причём и в новом WSS 4 наблюдается такое же поведение.

Technorati Tags: ,

понедельник, июля 20, 2009

Windows 7, установка “тяжёлого” софта

Цель - сделать рабочий компьютер для "жизни" и для разработки под Шарепойнт. И, конечно, для тестирования  Office 2010 и WSS 4.

Порядок установки пакетов (именно так, чтобы была свобода в размещении файлов программ, особенно VS):
  • Visual Studio 2008 + sp1
  • SQL Server 2008 + sp1
  • Office 2007 ultimate + sp2
  • SharePointDesigner 2007 + sp2
В итоге - офисные программы с такими примерно версиями:
 
8ba3ce6147560f91af903d891fc55de1
 
Синхронизация с моим мобильником Qtek работает и по OneNote, и по Outlook clap, системный диск содержит 29 Гб данных (включая 7 Гб под файлами hiberfil.sys и pagefile.sys). Можно приступать к упражнениям с Office 2010 и WSS 4. smile_speedy
 
Technorati Tags: ,