Monthly Archives: July 2007

140 цветов SilverLight

[ratings] Сразу после релиза новой версии Visual Studio вышла новая версия SilverLight 1.1 Alpha Refresh. Именно с этой версии я решил начать свое знакомство с SilverLight. Первое впечатление было несколько негативным, так как в SilverLight не оказалось многих вещей, которые я привык использовать в полноценном WPF. Например, в этой версии отсутствуют даже стандартные контролы для интерфейса. Надеюсь, все это будет дополнено к финальной версии, но на данный момент выбор XBap или SilverLight все еще очень актуален. Но уже стало очевидно, что будущее именно за SilverLight. Уже сейчас SilverLight поддерживает не только большинство браузеров на Windows и MacOS, но и даже под Mono группа отдельных разработчиков реализовала его поддержку.

В одном из англоязычных блогов я наткнулся на таблицу цветов на Xaml, в которой перечислены цвета, которые можно использовать в коде по имени. Я решил, что она не очень удобна для использования и решил ее слегка модифицировать.

Вот что в итоге получилось: таблица

При нажатии на любой цвет фон окрасится в него.

Дополнение:
Для просмотра нужно установить Microsoft Silverlight 1.1 Alpha RefreshMac или Windows. Автоматом сейчас ставится только SilverLight 1.0 RC1.

Continue reading

Электронные книги по WPF

Адекватную литературу по .Net 3.0 сейчас можно найти только на английском языке. Если кто-то знает какие-то русские книжки, то прошу отметиться в комментариях. 

Хочу порекомендовать пару сайтиков для поиска книг:

Поисковый движок электронных книг: vestigo

И, собственно, сайт с книжками в pdf формате: http://www.pdfchm.com

В частности, с него я скачал:
Windows Presentation Foundation Unleashed (WPF)
Essential Windows Presentation Foundation (WPF) (Microsoft .NET Development Series)
Foundations of WPF: An Introduction to Windows Presentation Foundation

Сайт требует регистрации, но она не сложна. Интересно, что при регистрации вы должны подтвердить соглашение, в котором написано, что вы выделяете на своем компьютере место для части (филиала) библиотеки:

Each member of our organization agrees to give gratuitously a part of the disk space in temporary using to library for temporary storage of electronic copies of the product. The disk space given in temporary using is an integral part of library, i.e. is a part of its room.

According to the law on the copyright and the adjacent rights of the Russian Federation, with changes come into force from September, 1st, 2006, clause 19 item 2: ” granting in temporary gratuitous using libraries of copies of the products entered into a civil turn lawful by Is supposed without the consent of the author and without payment of the award. Thus copies of the products expressed in the digital form, including copies of the products given by way of mutual use of library resources, can be given in temporary gratuitous using only in rooms of libraries”.

Таким элегантным методом обходится наше законодательство. :-)

Конечно, хорошие книжки лучше иметь в печатном виде. Чтоб они красиво стояли на полочке рядом с компьютером и можно было в любой момент открыть и почитать. Так что после оценки книги добро пожаловать на Amazon.

Магия Nemerle

Не раз мелькало это название, и я решил узнать что это такое. Оказалось очень интересная вещь. Почитать про нее лучше всего на rsdn. Там же можно найти еще несколько статей, в частности, про интеграцию с VS2005.

Это новый язык программирования для платформы .NET, который по сути является доработкой и переработкой C# с заимствованием всего лучшего из других языков. После прочтения статеек захотелось немедленно поставить и попробовать в деле компилятор, благо весит он совсем немного.

Однако, есть и отрицательные факторы (имхо):

  • Разрабатывается язык небольшой группой поляков в аспирантуре.
  • Интеграция с VS2005 не родная, а написана сторонними разработчиками.
  • Основная среда тестирования, как я понял у них на сайте, – это Mono.

Ну и главный недостаток для меня – это то, что видимо .Net 3.0 и Nemerle не скрестить. Однако, библиотеки каких-нить хитрых функций и классов вполне можно реализовывать на Nemerle.

Грядет ли эра SilverLight?

SilverLight – это переименованный WPF/E, то есть WPF Everywhere. Под “везде” подразумеваются интернет браузеры. Думаю все, кто что-нибудь делал на WPF, думали о том, как было бы не плохо на WPF  создавать сайты со сложным функционалом и богатым интерфейсом. Видимо данной мечте суждено сбыться, ибо SilverLight – это уже реальность. 

Сейчас существует 2 версии SilverLight: 1.0 и 1.1. Первая из них по сути является некой промежуточной версией все еще основанной на яве, но уже обладающей богатыми мультимедийными возможностями. Однако этого явно недостаточно чтоб потеснить Flash.

Но вот версия 1.1 уже радикально отличается тем, использует другое ядро, которое полностью основано на третьем фрейморке, и, соответственно, имеет те же возможности. Помимо этого обещана производительность в 250 раз быстрее Java Script. Инсталляция занимает 4 мегабайта. Ну и главное – разработка полностью на С#. :-)

SilverLight 1.1 сейчас еще доступен только в виде альфа версии, но видно что над ним активно работают, и скоро нас ждет финал.

Напоследок пару ссылок на примеры (хотя они не передают всего прогресса) :

Surface
Xps viewer
Earth game

Проверка орфографии в IE7

Я сделал всего несколько постов, а великий и могучий русский язык уже не раз успел заставить меня редактировать их после публикации. Это заставило меня задуматься о проверке орфографии прямо в Internet Explorer 7.

По совету моего друга Константина Хохрина, у которого скоро свадьба (поздравляю! :-) ), я решил попробовать плагин к IE7 под названием IE7Pro. После его установки необходимо скачать русские словари. Их нужно скопировать в папку с плагином: C:\Program Files\IE7Pro\spelldic. После чего просто перезапустить IE.

 проверка орфографии в IE7

В любой форме можно через контекстное меню выбрать словарь и запустить проверку орфографии.

Глюк с webBrowser.DocumentText

[ratings]Вчера наткнулся на баг в контроле WebBrowser (.Net 2.0), позволяющим работать с интернет страницами. Я писал программку, которая анализировала код нескольких страниц некого сайта и потом, спустя некоторое время, сама выполняла некие действия на нем по таймеру. Для анализа содержимого страниц я просто использовал свойство DocumentText, которое должно возвращать хтмл код документа (аналогично кнопке View Source в IE):

string source = webBrowser1.DocumentText;

Я отлаживал программу под Vista, и там все прекрасно работало. Но когда я попробовал запустить тот же код на машине с XP, то получил эксепшен как раз на этой строчке, говорящий что контрол не может найти какой-то файл. Ошибка возникала не сразу, а после перехода между страницами на исследуемом сайте. 

Поиск решения этой проблемы в интернете дал свои результаты. Оказалось, что это просто глюк контрола. И для его исправления необходимо просто поставить на систему все критические обновления, которые включают в себя Internet Explorer 7.0 и фикс безопасности для .Net 2.0, который весит аж 14 мегабайт.

Вывод: Не забывайте запускать Windows Update. :-)

Visual Studio 2008 и Multi-Targeting

В блоге ScottGu’s Blog прочитал, что новая версия Visual Studio 2008 будет поддерживать так называемый Multi-Targeting. То есть возможность компиляции проектов для разных версий .Net Framework.

Multi-Targeting inside VS2008 

В принципе, такие возможности есть уже сейчас, если установить расширения для работы с .Net 3.0 на Visual Studio 2005. Но теперь это будет в качестве изначальной возможности, то есть совсем на другом уровне. Например, можно будет поменять тип фреймворка уже после создания проекта.

Continue reading

Построение графиков на WPF (.Net 3.0)

[ratings] Недавно возникла необходимость построить пару графиков. Это были результаты расчета некой физической модели. И я решил, что было бы удобно построить их прямо в рассчитывающей программе с помощью WPF (.Net 3.0). Хотя задача довольно проста, можно долго копаться в хелпе, ища как сделать ту или иную вещь. Поэтому приведу тут исчерпывающий пример, который ответит на многие вопросы.

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

график

Continue reading

Индуктивный УИ

[ratings]
Пока искал способы русификации WordPress, наткнулся в одном из блогов на любопытное описание концепции построения пользовательского интерфейса. Сама концепция не нова, но описание достаточно четкое:

Индуктивный Пользовательский Интерфейс (Inductive User Interface, IUI) – модель пользовательского интерфейса, направленная на создание более простых прикладных программ методом функциональной декомпозиции. Данный подход позволяет снизить когнитивное сопротивление (добиться лучшего восприятия программы пользователем).

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

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

Реализация принципа “Одно окно – одна задача” успешна выполнена, если заголовок точно описывает задачу окна является кратким и четким, выразительным и естественно звучащим.

Понятно, что при построении больших профессиональных пакетов такой подход может оказаться излишним, но при разработке небольших компактных программ, особенно ориентированных на людей, средне владеющих компьютером, индуктивный уи будет хорошим решением. Главное не впасть в крайность и не пытаться делать кучу мучительных длинных диалогов, на каждой стадии которых надо заполнять одно поле.