вторник, 24 марта 2009 г.

Тормоза Silverlight DataGrid

Начал играться с Silverlight 3, обнаружил странность - при добавлении к строке шаблон детали, грид начинает сильно тормозит на большом количестве записей - без детали спокойно работает и с миллионом, а с деталью - жутко тормозит уже на 10 000.
 
Надо проверить, есть ли такая же фигня с гридом в Silverlight 2 Пример кода:
 

<data:DataGrid AutoGenerateColumns="True"

Name="msGrid" Grid.Row="1"

ColumnWidth="Auto"

RowDetailsVisibilityMode="VisibleWhenSelected"

RowDetailsVisibilityChanged="DataGrid_RowDetailsVisibilityChanged"

>

<!--uncommenting will cause severe perfomance degradation-->

<!--<data:DataGrid.RowDetailsTemplate>

<DataTemplate>

<StackPanel Orientation="Horizontal" Background="White">

<TextBlock Margin="5,5,5,5"

Width="350"

Text="Категорийный заказ на склад в Самаре!!!!"

TextWrapping="Wrap"></TextBlock>

</StackPanel>

</DataTemplate>

</data:DataGrid.RowDetailsTemplate>-->

</data:DataGrid>

воскресенье, 22 марта 2009 г.

Ноутбук

Решил написать об опыте использования своего ноутбука Hewlett-Packard 8510p , которому уже скоро исполниться полтора года.

В свое время я очень долго выбирал себе машинку,и, как оказалось время потратил не зря. Купил я его 14 ноября 2007 года по цене 50 тысяч рублей в интернет-магазине tpshop.ru. Магазином остался доволен - привезли в договоренное время и курьер терпеливо ждал пока я тестировал ноут. Конфигурация на момент покупки была следущая:
  • CPU Intel Core 2 Duo T7700 2.4 Ghz
  •  2x1 GB DDR2 SDRAM SAMSUNG
  • HDD 160 gb 5400 rpm SEAGATE 
  • Экран WSXGA+ (1680 на 1050) с датчиком освещенности 
  • Видео Radeon HD2600 265 Mb 
 (Замечу в скобках, что сейчас модель 8530p, которая является наследником моего ноутбука дешевле 65 тысяч в аналогичной конфигурации не найти - следствие обвала рубля) В такой конфигурации ноутбук был самой старшей моделью в семействе с суффиксом "p" (Есть еще "профессиональная" серия 8510w). Осматривая ноутбук перед покупкой, я обнаружил 2 битых пикселя в нижней части экрана, в результате чего удалось снизить цену с изначальных 52 тысяч до 50. Судя по форумам, небольшие дефекты матрицы - нередкое явление в этой серии ноутбуков. Подробные обзоры экстерьера, производительности и прочих аспктов можно почитать по ссылкам ниже, а я перейду к описанию опыта длительной эксплуатации. http://www.ferra.ru/online/mobilis/78630/ http://www.3dnews.ru/mobile/hp_compaq_8510w/ http://www.notebookreview.com/default.asp?newsID=3939 http://www.notebookreview.com/default.asp?newsID=3862 http://www.notebookcheck.net/HP-Compaq-8510p.5899.0.html  
Апгрейд
  Практически сразу после покупку я провели серьезный апгрейд - увеличил память до 4 Гб (два модуля Hynix), а жесткий диск заменил на винчестер от Хитачи емкость 200 Гб и скоростью вращения пластин 7200 обороов в минуту. По роду профессиональной деятельности мне часто приходится запускать виртуальные машины, а быстрый жесткий диск и, особенно, большой объем оперативной памяти очень помогает их нормальной работе. Программное обеспечение
  Естественно, что для работы с таким объемом памяти нужна была 64 битная операционная система, к качестве которой выступила Windows Vista, предустановленная но ноутбуке - вариант 32 или 64 битный нужно было выбрать при первой загрузке. Кстати хочу сказать, что проблем с совместимостью у меня практически не было - отказались запускать лишь HOMM4 из-за дурацкого драйвера защиты от копирования Star Force а также первая цивилизация, написанная более двадцати лет назад под DOS. Поставить операционную систему на новый жесткий диск после замены удалось очень быстро - помогли созданные диски восстановления. А вот дистрибутива ОС в Хьюлетт-Паккард пожалели. С другой стороны я остался вполне доволен программной состовляющей поставки ноута - из всего софта, который был на нем установлен я удалили лишь триальный антивирус, заменив его авастом. Весь остальной стоит и по сей день, расскажу о нем поподробнее: 1) Cyber Link Powe DVD - известнеший и очень мощный проигрыватель DVD 2) Roxio Suite - простая программ для записи CD/DVD 3) Программа управления при помощи настраивыемых сенсорных кнопок - я ей почти не пользуюсь, просто позволяет переназначить сенсорные горячие клавиши 4) Программа управления беспроводными устройствами - чуть более быстрый спосооб включать/отключать Bluetooth и Wi-Fi, удобнее стандартных средств ОС, пользуюсь постоянно. 5) Программа обновления модулей HP 6) Програма проверки здоровья компьютера от HP - оказалась на удивления полезной. В определенный момент она сказала мне что логический диск для восстановления системы имеет размер больше чем нужно и предложила осовободить место, уменьшив размер того раздела более чем на полтора гигабайта. Полученное место, правда, пришлось выделить в оотдельный логический диск, но все равно приятно. 7) Менеджер паролей и аутентификации по отпечатку пальца - был очень полезен пока не сломался с выходом Windows Vista SP1.  
Живучесть

  Могу сказать, что ноутбук показал себя с лучшей стороны - в условиях очень интенсивной эксплуатации - я в течение года каждый день носил его с собой и запускал ресурсоемкие задачи неполадок замечено не было. Время от времени он начинал шуметь сильнее чем обычно (под загрузкой он и в нормальном состоянии не тихий), но проблема решалась при помощи пылесоса. К сожалению, буквально вчера обнаружио на экране еще пару битых пикселей - черных и прямо в середине. В гарантию нести пока не собираюсь - при таком разрешении жить вполнее можно. Батарея за полтора года ожидаемо снизила ресурс, но на полтора-два часа работы еще вполне можно рассчитывать. Зато по внешнему виду совcем не скажешь, что машинка изрядно пропутешествовала - ни на внешней стороне крышки, ни в открытом состоянии никаких последствий интенсивной экплуатации не видно, и лишь приглядевшиcь можно заметит пару царапин.

воскресенье, 8 марта 2009 г.

Производительно Content Query Web Part

Недавно столкнулись вот с чем: Заказчик начал жаловаться, что страничка, на который аггрегируются новости из нескольких источников (хранящиеся в списках) загружаются очень долго. Для отображения и запроса элементов использовались несколько слегка модифицированный веб-частей "Запрос содержимого"(Content Query Web Part). Данные собирались с нескольких (около 10) списков, каждый их которых жил на своем узле. Время загрузке страницы иногда достигало 20 секунд, хотя время-от времени происходило мгновенно. Почему загрузка могла происходить очень быстро стало понятно - сразу работал кэш объектов, некоторое время хранящий результаты запроса. А вот поиск причины медленной работы занял два дня. Как оказалось, в результате некоторых организационных просчетов на production-сервере заказчика оказался список размером в 900 тыс, забитый практический бесполезной информацией. А все списки SharePoint хранитв одной таблице AllUserData, размер который разросся до 1 800 000 записей. Каждый запрос к ней, которых страничка делала по числу списков занимал около секунд, а 90% времени в каждом запросе - поиск по инждексу, даже несмотря на то, что то был Clustered Index Seek. Решение напрашивалось простое - удалить огромный список и все. Но и здесь возникли сложности - при попытке его удаления веб-приложение портала обрушивалось. Причина вноь оказалась на SQL сервере - при удалении, перемещение списка в корзну вызывалось попытку выполнить 900 тысяч INSERT в одной транзакции, чего бедный сервер, конечно не выдерживал. Только отключение корзины (кстати, это удобнее делать через stsadm) решило проблему

суббота, 7 марта 2009 г.

Полезные для разработчика утилиты

По мотивам вот этой статьи захотелось написать свой список утилит, которые нужно знать разработчику. 1) NUnit - потрясающий набор библиотек для написания юнит-тестов и утилита для их исполнения. Сейчас в нашем проекте мы используем версию 2.4.8, но дома я взял 2.5. Если есть возможность - очень рекоммендую! 2) Cruise Control - сервер непрерываной интеграции. Очень гибкий и совместимый с очень многими используюемым инструментами, в частности NUnit и SVN 3) Если вы пользуетесь SVN, то Visual SVN - Ваш выбор. Это плагин для Visual Studio, который позволяет управлять файлами непосредственно из IDE, например сильно упрощается переименование файлов. Плагин платный, но своих денег стоит. 4) ReSharper - еще один плагин для Visual Studio, и тоже платный, хотя вероятно в представлении не нужадется. Возможностей огромное количество - из часто используемого вспомню следующее: 1) Сильно расширенный поиск использования выделенного объекта (Find usages) 2) Возможности перехода от символа к супер-классу, подклассам и т.п. 3) Мощные возможности рефакторинга 4) Более удобное реадктирование комментариев 5) Подсветка потенциальных ошибок 6) Возможность исполнения NUnit тестов внутри студии с более удобным интерфейсом 6) .Net Reflector - еще одна известная утилита для исследования скопилированных сборок. Очень хорошо производит реконструкцию кода. Очень помогла при создании Silverlight-проекта на F# 7) Fusion Log Viewer - утилита входит в SDK, позволяет мониторить процесс загрузки сборок. Очень полезна, когда пытаешься понять что же именно не дает программе запуститься 8) PSPad - мощный текстовый редактор с подсветкой кода. Мы испольуем для рекдактирования PL/SQL кода