суббота, 25 декабря 2010 г.

Создание WPF компонента для отображения сети

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

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

воскресенье, 26 сентября 2010 г.

Работа с Excel из C# (забираем из Excel данные)

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

Сегодня я хотел бы поговорить о работе с Excel из C#.
Пара коментариев:
1. Я использую VS 2010 и Excel 2007.
2. Как я уже сказал, мне работа с Excel понадобилась в одном из проектов, поэтому примеры будут из этого проекта.


понедельник, 19 апреля 2010 г.

Особенности работы CLR в .NET framework

Мне кажется, что человеку который программирует на управляемом коде, но ленится вдаваться в то, чем отличается управляемый код от неуправляемого, будет полезно почитать одноименный с этим сообщением, пост на хабре Особенности работы CLR в .NET framework

понедельник, 15 марта 2010 г.

Курс по Java (занятие 12.03.10)

Примеры на Java можно скачать здесь. А вот и задачи прошлого раза и новые.

Решения для заданий 1-го занятия по Java

Напоминаю, если вы не сделали еще задачи, то не нажимайте кнопку далее.

Спецификации для заданий 1-го занятия по Java

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

понедельник, 1 февраля 2010 г.

События и делегаты

Уроки с ребенком сделаны, жена ушла на маникюр, поговорим о позднем связывании?

Сегодня предлагаю посмотреть более внимательно на события, ну и конечно смотря на события, нам не уйти от делегатов.

понедельник, 11 января 2010 г.

Делегаты и события

На лекциях я обычно привожу пример с методом получающим массив и обрабатывающим его элементы при помощи делегата, являющегося вторым параметром данного метода.

Сегодня я покажу "обратный" пример иллюстрирующий позднее связывание. В одной из своих статей Джоэль Спольски рассматривал интересный пример делегатов. Мне он понравился и мы посмотрим его более расширенную версию.

среда, 6 января 2010 г.

Полиморфизм

Начнем как водится с начала. Дадим определение понятия полиморфизм:
1. Полиморфизм (от греч. πολύ — «много» и μορφή — «форма», многообразный) в программировании — это возможность использования в одном и том же контексте различных программных сущностей (объектов, типов данных и т. д.) с одинаковым интерфейсом. (Журнал Функциональное программирование).
2. Полиморфи́зм — взаимозаменяемость объектов с одинаковым интерфейсом (Википедия).
3. Полиморфизм — это механизм позволяющий вызывать методы классов объектов, а не классов объектных переменных, ссылающихся на эти объекты (ваш покорный слуга).

Позднее связывание

Наверно из всех тем связанных с ООП тема позднего связывания является одной из самых тяжелых для понимания. В связи с этим, я хотел бы рассмотреть три механизма позднего связывания более предметно. Рассматривать я их буду в следующем порядке:
1. Полиморфизм
2. Делегаты / события
3. Reflection (отражение)

Начну с того, что я буду вкладывать в понятие "позднее связывание".
Позднее связывание это механизм позволяющий отложить принятие решения о том, какой код будет выполняться в данном месте программы на время более позднее, чем написание именно этого фрагмента кода. Когда будет приниматься решение? Да когда угодно! Когда другой программист использует ваш код в своем коде, или когда выполняется программа содержащая ваш код. Т.е. решение принимается гарантированно после того, как вы нажали Ctrl+Shift+B.

вторник, 5 января 2010 г.

Привязка к данным в своих UC

Всех с Новым 2010 годом :)
В декабре уже ушедшего 2009 года было много студентов, работы, опять же пожготовка к новому году, поэтому даже на 1 публикацию вемени не было :( А вот сейчас много выходных, сессия и все такой, поэтому буду наверстывать.

Сегодня я хотел бы поговорить о биндинге внешних данных к нашим UserControl (или CustomControl, кому как больше нравится).