Сегодня я выложил новую версию библиотеки компонентов Heapar Essential Library .NET. В нем появился новый компонент Small Report Renderer, с помощью которого можно создавать простые и удобные отчеты. Компонент будет удобен и полезен в тех случаях, когда пользователю нужно отобразить какие-то данные, которые содержат сразу и таблицы и текст.
Более подробную информацию о компоненте можно узнать в заметке Маленький компонент отчета. Все, кто купил пакет ранее, получат по почте исходные коды и этого компонента где-то в понедельник. Мне нужно время чтобы накидать в исходные коды метки, чтобы я потом можно было найти человека, кто нарушит лицензию или выложит исходники в сеть. К тому же компонент только закончен и мне нужно день еще погонять его.
Компонент разрабатыался для собственных нужд и уже в ближайшее время будет использоваться. Вот так будет выглядеть Утилита Ping в следующей версии CyD Network Utilities - Security tools. Благодаря компоненту Small Report Renderer результат пингования выглядит лучше. Хотя картинка на сайте есть, программа реально пока не содержит обновленного модуля. Я хочу еще немного улучить некоторые модули и к выходным закачаю.
В Августе вышла очередная версия DirectX SDK, которая уже серьезно поддерживает DirectX 11. Я попытался с ней разобраться, но получил облом, потому что в Vista не работает большинство функций. Примеры, которые идут с SDK не запускаются, разве что абсолютно пустой проект. Я подождал месяц и позавчера скачал Windows 7 и обновил систему. Теперь DirectX11 работает, но тормозит, и это мягко сказано. После запуска примеров он стоит как вкопанный.
Самое интересное, что тормозят даже те примеры, что с использованием DirectX 10 работают прекрасно и летают на моем GForce 8400. А ведь у меня видеокарта достаточно мощная, специально брал такую с запасом, но драйвера до сих пор поддерживают только 10-ю версию. Я даже скачал обновленные драйвера специально для Windows 7, но и они скорости не прибавили. Самое интересное, что при запуске примеров появляется сообщение – "это устройство поддерживает DirectX 11, но работать будет медленно". Это как? Как можно поддерживать и работать медленно? Это уже не поддержка, это издевательство. В итоге уже месяц занимаюсь сексом с компьютером, но кроме введения для книги "Программирование DirectX на C++" ничего не написал.
На сколько я слышал, DirectX 11 не должен был изменится так сильно, как это произошло при выходе DirectX 10. Ведь 11-я версия даже способна работать на Vista, просто требует обновления кучи библиотек, а эти библиотеки ставятся только на версию Ultimate. Что такого умудрились сделать в MS, что так серьезно затормозили уже давно отлаженные функции? Мне интересно, почему эти же функции в DrectX 10 свистят? До официального выхода Windows 7 остались считанные дни, а основной интерфейс явно далек от идеала.
Меня регулярно посещает лень, когда десять раз приходится писать один и тот же код. Чтобы не повторяться, я очень часто пишу классы или хелперы, которые помогают в жизни не решать по 10 раз одну и ту же задачу. Вот так у меня есть модуль, который помогает мне создавать RSS ленты для моих сайтов, созданных на PHP, поэтому все PHP сайты содержат ленту. А вот на ASP.NET небыло ничего подобного, а в очередной раз писать хелпер, пусть и на другом языке - лень и скучно, поэтому абсолютно все мои сайты, которые были созданы на ASP.NET не содержат RSS лент.
Вчера собрался с силами и написал RSS ленту для сайта своей жены - Блондинка в Канаде. Она пишет не так часто и поэтому лента уже давно была необходима, чтобы не приходилось постоянно туда заглядывать.
В нашей компании (да и вообще наверно во всей северной америке) очень ответственно относятся к качеству продуктов. Каждая страница и каждый новый сайт, который мы делаем, обазательно тестируется и не только руками, но и автоматически. Чтобы тестировать сайты мы используем selenium, который отлично подходит для этих целей и поддерживает множество различных языков программирования.
У нас на фирме все сайты пишутся на PHP и как я понял все именно на этом языке предпочитают писать. Самое интересное, что модули тестов пишутся на Python, хотя selenium поддерживает PHP. Возможно тот человек, который первый вводил тестирование больше любил именно питона и просто для примера воспользовался им, но теперь все пишут только на нех. Хотя кто там все, нас всего три человека заниматся модулями тестирования.
Сегодня мне дали задание написать модуль для HTML странички с формой, вокруг которой в ближайшее время начнет строится небольшой сайт. Не буду же я писать свой единственный небольшой модуль на PHP, поэтому пришлось тоже выбирать Python и разбираться в нем. Изучать язык подробно я не собираюсь, потому что за день работы не получил удовлетворения от программирования на нем, но основы знать придется, чтобы дальше писать тести.
Недавно от одного из пользователей компонента Heapar .NET FileListView Control получил вопрос о том, как можно создать перетаскивание файлов в этом компоненте. Я пообещал написать небольщую заметку и рассписать, как реализовать эту возможность, ведь это очень просто.
Сказано, сделано, и конечно же опубликовано на блоге. Я думаю, что заметка будет интересна все программистам, использующим .NET Framework, потому что в ней описываются общие принципы, которые используются при перетягивании в большинстве случаев. Заметку можно прочитать здесь: Drag&Drop в.NET на примере FileListView.
Сегодня получил простой но очень интересный вопрос: Насколько я понимаю С# для платформы .NET. Я не особо понимаю что это за платформа такая. Извиняюсь за глупый вопрос: в обычной виндовс программа, созданная на языке С# будет работать? Для этого кажется нужно только установить NET Framework? (орфография не мой :))
Классические программы используют функции Windows. Преимущество:
1. Программа выполняет код ОС напрямую и работает достаточно быстро
Недостатки Win32:
1. Код привязан к оборудованию. Проблемы решаются сложным введением HAL уровня, который становится прослойкой между кодом системы не связанным с оборудованием и кодом привязанным к оборудованию. Этот уровень уже есть в ОС Windows и кажется в Linux, но реализован не идеально, поэтому классические программы все равно привязаны к определенному железу. Если программа скомпилирована для Intel процессора, то она не сможет работать на абсолютно другой архитектуре.
Вчера я пришел к выводу, что Gantt Chart Control .NET готов к тому, чтобы назваться первой финальной версией. Разработка компонента будет продолжаться и его функции будут наращиваться, ведь этот процесс бесконечный. Но это не значит, что нужно откладывать релиз. Поэтому вчера я его выложил в свободный для тестирования доступ. Ну а чтобы пользователи тоже не находились в постоянном ожидании новых функций, я как всегда предлагаю год бесплатных обновлений. Более подробно о компоненте на английской версии сайта: Gantt Chart Control .NET или на русской версии: Диаграмма Гантта
Что еще можно сказать? Из последних новостей проектов - я закрыл форум на сайте Hackish Code, причем на обеих версиях и немного улучшил (на мой вкус) дизайн.
Кучу заметок написал на блоге Смешной мир. Все, что не касается ИТ я закидываю туда.
На последней работе я занимался разработкой компонента для визуализации диаграммы Гантта (Gantt Chart). Подобные диаграммы используются в приложениях класса менеджеров проектов или планировании. Если ты знаком с Microsoft Projects, то работал с диаграммами, когда планировал время выполнения задач.
Мне посчастливилось разрабатывать этот компонент на Delphi. Жаль, что я не сохранил себе исходные коды (я никогда не беру исходные коды на работах, где работаю, даже написанные мной, потому что они принадлежат работодателю), но с другой стороны – это даже плюс. Недавно я решил написать собственную реализацию этого компонента с нуля и под .NET. Сегодня я выложил первую бета версию для всеобщего юзания - .NET Gantt Control.
К чему я это? Вот не знаю почему, но на .NET мне намного удобнее проектировать подобные вещи. Не знаю почему, но мне интереснее именно .NET разработка. Я так включился в работу, что написал весь этот код за четыре вечера.
Когда я разрабатывал этот же компонент на Delphi, то я получил достаточно интересный опыт. Тогда я вообще не знал, что такое диаграмма Ганта, как она выглядит и как ее можно
В последнее время очень мало времени даже на программирование. Вчера вечером появилось немного времени, и я решил расширить возможности сайта моей жены. С ASP.NET я работаю не так давно, наверно с годик, может даже меньше, но вчера когда расширял возможности сайта жены я понял, что этот язык мне все больше нравится.
Где-то около года назад, когда я впервые встретился с этим языком, то он мне показался очень неудобным. Вроде бы все знакомо, уже известные мне операторы, вроде бы красивый и понятный синтаксис, но как-то все же неудобно. Я понимаю, что я очень долго писал на PHP и поэтому не особо был критичен в своих высказываниях в отношении ASP.NET. И не зря. Не знаю, когда это произошло, но прошел год, а я без проблем уже сроднился с технологией MS.
Когда мне нужно быстро набросать какой-то сайт, то я все же использую PHP, но и ASP.NET больше не пугаюсь. Не знаю почему, но на ASP.NET мне проще отделять логику от представления. За окном 2009-й год, а на PHP я до сих пор отделяю логику от представления с помощью include, а в .NET есть такие вещи как Master Page и темы.
Несколько лет назад я читал книгу "Совершенный код" и выразил свое несогласие с автором, когда он говорил, что нужно писать не на языке, а с использованием языка. Как пример автор приводил утверждение, что если в языке нет объектов, то их нужно изобрести и написать. Это слишком радикальный метод, который я не могу поддержать. В данном случае проще и эффективнее будет поменять язык на объектный. Такие языки, как Delphi и Java слишком разные, чтобы писать на них одинаково, потому что у языков слишком разная идеология.
В последнее время я начинаю думать, что лучше бы все послушали Макконелла и всегда программировали с использованием языка, особенно программисты Delphi и С#. Почему? Потому что это визуальные языки и в них среды разработки очень мощные и балуют программиста простотой. Достаточно кликнуть мышкой, чтобы создать обработчик события и написать в нем код логики. Для очень и очень маленьких приложений это терпимо, а вот для больших проектов - это зло.
Существует множество подходов к программированию, но мне кажется, что лучший вариант - это отделение логики, данных и представления. Такие походы, как MVC придуманы уже давно и до сих пор успешно используются во многих компаниях. Только используются далеко не всеми. Я практически не видел подходы с разделением в проектах на Delphi и это ужасно. Народ почему-то пишет логику прямо в модулях представления или перепрыгивает сразу на трехуровневое программирование, когда код логики (тут любят применять красивое выражение "бизнес логика") выносится на промежуточный уровень.