четверг, 3 ноября 2011 г.

При разработке очередного проекта столкнулся с с довольно неприятной ситуацией. Мне потребовалось следать Trigger на свойство Tag. Казалось бы ничего страшного ведь данное свойство может содержать различные типы. Но обычная настройка триггера не работала:


<Trigger Property="Tag" Value="True">
  <Setter Property="FontWeight" Value="Bold"/>
</Trigger>

Немного покопавшись в Интренете удалось получить требуемый результат. Итого если у вас в поле Tag находится какое-либо значение, вам прийдется привести его необходимому типу для сравнения. Вот такой код будет работать:

<Trigger Property="Tag">
  <Trigger.Value>
    <sys:Boolean>True</sys:Boolean>
  </Trigger.Value>
  <Setter Property="FontWeight" Value="Bold"/>
</Trigger>

воскресенье, 13 февраля 2011 г.

Запуск стороннего приложения из WPF

Казалось бы тривиальная задача - запустить другое приложение из текущего. Как это сделать я не знал, поэтому полез в Интернет за ответом. Битый час потратил чтобы найти ответ потому как все составленные мною поисковые образы не давали результата.
В конце-концов ответ найден:

using System.Diagnostics;
 
Process.Start("IExplore.exe");
 
Просто вызов статического метода, кому интересно в MSDN может найти подробнее. Может кому и пригодится этот пост.

четверг, 3 февраля 2011 г.

WPF. Иконка в трее

Задался вопросом "Как свернуть приложение в трей для приложений WPF?". На Delphi для это существует масса компонентов и особо не приходится задумываться над это функцией. Порылся немного в интернете и нашел отличный пример. Он показывает как разместить иконку в системном трее, вызвать контекстное меню, свернуть приложение в трей. Свой код так документировать было лень поэтому даю ссылку на первоисточник.

http://4px.livejournal.com/126058.html


понедельник, 25 октября 2010 г.

Создание конвертера в WPF

Недавно задался целью вывести обычную дату в поле таблицы. На первый взгляд ничего "военного", но вот незадача, дата выводиться в системном формате (по умолчанию) в данном случае это день/месяц/год часы:минуты (кажется было так).
Мне потребовалось выводить только день и месяц, причем месяц сокращенный: 25.окт.
Порывшись немного в интернете я смастерил следующий конвертер.

понедельник, 27 сентября 2010 г.

WPF. Первые шаги.

На днях решил посмотреть технологию WPF. Сейчас существует много статей с подробным описанием принципов работы и особенностями данной технологии, однако, я постараюсь по мере работы освещать различные особенности и аспекты работы.

Следует отметить ряд минусов WPF. В данном случае, это довольно скудный выбор стандартных компонентов. Конечно, можно воспользоваться компонентами сторонних разработчиков (DevExpress, Xceed, componentOne), но все они платные.
Если вы планируете создавать приложения с эксклюзивным UI, то следует обзавестись Microsoft Expression Blend. С данной программой очень просто создавать новые стили элементов управления, анимацию и работать с разметкой XAML.

среда, 8 сентября 2010 г.

Собеседование с разработчиком

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

Итак, первый опыт:
- человек может не решить все заготовленные вами задания, зато, это может показать его способность к мышлению;
- можно получить хорошее представление о человеке исходя из его рассказа о предыдущей работе и выполненных проектах;
- есть два типа кандидатов: первые ищут работу и у них конкретная мотивация (зарплата, технологии, карьерный рост), вторые находятся в "вечном поиске"; если вам нужен хороший сотрудник - обращайте внимание на его мотивацию;
- во время беседы делайте отметки о заинтересовавших вас моментах в рассказе кандидата, или же это можно сделать сразу после интервью, но не откладывайте на долго, это поможет вам вспомнить о ходе собеседования в случае, если решение принимается не сразу;
- по возможности проведите несколько собеседований с разными кандидатами, чтобы иметь возможность выбрать.

Проведя несколько собеседований можно было составить картину кандидатов. В моем случае появлении "сильного" специалиста сразу было заметно и выбор, я надеюсь, был сделан правильный. Это покажет время.

Еще раз повторю известную истину: "Лучше не взять хорошего специалиста, чем взять плохого".

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

четверг, 20 мая 2010 г.

Для чего все это нужно?

Довольно часто в поисках нужной информации натыкаешься на чей-нибудь блог и видишь "это как раз то что тебе нужно". Все четко и лаконично без лишней "воды" и прочей ерунды, которой иногда пестрят статьи плюс комментарии реальных людей по сути. Довольно полезная штука эти блоги :).
Вот такие мысли и послужили причиной для ведения моего блога посвященного разработке программного обеспечения.
Основные проекты я веду на Delphi + Firebird, сопутствующие стараюсь на C# и все том же Firebird.
Так что в основном все статьи будут именно по этим технологиям. Также, постараюсь уделить внимание и управлению проектами, думаю это всегда актуальная тема.