суббота, 30 мая 2009 г.

Компилятор регулярных выражений в сборку

На codeplex'e есть интересный проект Regex Compiler. Скармливаем компилятору специальный текстовый файл - и получаем .dll с нашими скомпилированными регулярными выражениями.

Зачем это надо:
  • скомпилированные регулярные выражения работают примерно на 30% быстрее.
  • все находится в одной сборке, которую можно подключить к приложению. Будет работать intellisense :)
Вообщем, полезная штука :)

Контрол DebugWriterTextBox

Выложил на codeplex контрол, которым я постоянно пользуюсь - DebugWriterTextBox. Делает он две вещи:

выводит в текстбокс (на форме) тот текст, что передается в Debug.Write() или Debug.WriteLine()
выводит то же самое в заданный файл

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



Бонус: внутри есть класс DebugWriter. Это тоже самое, но без наследования от TextBox. Т.е. его можно прикрутить к любому текстбоксу уже существующему на форме.

Пользуйтесь :)

четверг, 21 мая 2009 г.

Hyper-V

Вот почему когда за какую-нибудь технологию берется Microsoft - результат выглядит странно?

Вот казалось бы - что такое, по сути, Hyper-V? Это всего лишь виртуальные машины + удобные (хм...) консоли управления к ним. То, что все это дело интегрировано чуть ли не в ядро ОС - это простого пользователя не волнует.

Итак, что мы получаем в итоге:

1. Поддержку Aero. Так же через одно место как у VMWare (но те хотя бы исправятся со временем, а от Microsoft этого уже никто не ждет). Чтобы получить Aero-интерфейс на виртуальном компе надо подключиться к нему с Aero-машины (Vista, Win7) через RDP (удаленный рабочий стол).
Думаете все так просто? Нифига - превьюшек окон на панели задач у вас не будет. Причина в том, что в виртуальной видео карте всего 4 Мб памяти и этого недостаточно для превьюшек.
Увеличить нельзя.

2. Отсутствует звук. Как класс. Т.е. вообще нет вирутального звукового адаптера. На вопрос в форумах технета как бы включить звук на виртуальной машине последовал недоуменный ответ - "а что, это кому-то надо?". Да, блин, надо! Виртуалки иногда используются и для тестирования софта, знаете ли...

3. Отсутствует аналог VMWare'ских Integration Tools. Т.е. чтобы перекинуть файлик с/на виртуальную машину будьте добры настроить между реальной и виртуальными машинами сеть. Извращение, не правда ли?

Люди еще пишут о проблемах с RDP-подключениями к реальной машине на которой поднято Hyper-V. Не проверял - но не удивлюсь если так.

Ну и напоследок.
Знаете как включить Aero-интерфейс на удаленной Windows Server 2008, если на ней не поднят сервер терминалов (потому что нафиг не надо) и вы подключаетесь с машины с Windows XP через "удаленный рабочий стол"? Надо на некоторое время лишить Windows Xp-машину сети. Чтобы окошко "подключения к удаленному рабочему столу" сообщило, что связь прервана и попыталось переподключиться (вам дается порядка 20-30 попыток, прежде чем отключат от удаленной машины окончательно). Вот если в это время вернуть сеть и дождаться когда подключение к удаленному рабочему столу восстановится - у вас будет Aero. Мило, правда?

Все-таки у Microsoft какая-то своя, особая логика... Простыми смертными она не постижима.

Update
Выложили Visual Studio 2010 Beta 1. На оффициальной странице ссылка на скачивание ведет сюда. А там! Там! Там веб инсталлер весом 5,4 Мб... Устанавливайте на здоровье... Особенно если у вас интернет на скорости 56 Кб/сек...

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

Axum

Специалисты Microsoft работают над новым языком программирования Axum. Особенность новой разработки заключается в том, что этот язык изначально предназначен для написания многопоточных параллельных приложений, оптимизированных для работы на современных многоядерных процессорах. 

Формально Axum - это инкубационный проект, помогающий разработчикам использовать технологии параллельного программирования в рамках среды .Net, но позже, как утверждают в Microsoft, Axum станет полноценным языком. 
Джошуа Филлипс, программный менеджер Microsoft Parallel Computing Platform заявил, что пока каких-то утвержденных дат релиза Axum нет. "Новый язык в большей степени ориентирован на профессионалов, он предлагает безопасный и эффективный интерфейс для Net-программирования. Этот язык строится на веб-архитектуре, а также на принципах изолированности, масштабируемости и производительности", - говорит он. 
Ранее в документах Microsoft язык Axum фигурировал под названием Maestro. Филлипс говорит, что в корпорации сейчас работают над интеграцией Axum в среду Visual Studio, оптимизацией языка для сетевого использования и повышением устойчивости платформы в целом. 
Возможно первые варианты Axum появятся уже в среде Visual Studio 2010 в качестве движка, инкубированного в некоторые технологии. "Наша основная задача - создать безопасную, масштабируемую и более производительную модель программирования в .Net-окружении. Концепция Axum основана на полной изолированности процессов, которые будут между собой обмениваться контрольными сообщениями", - рассказывает Филлипс. 
Также как и многие другие современные языки, Axum будет базироваться на декларативной модели. Синтаксис Axum будет в значительной мере похож на C#. В Microsoft говорят, что новую синтаксическую модель там не стали делать намеренно, чтобы легче было использовать новый язык. 
"Ранее для того, чтобы получить повышенную производительность приложения, нам приходилось ждать выхода более быстрого процессора, сейчас перед нами стоит задача эффективного использования многоядерности процессоров", - отмечает Филлипс. 
"В Axum будет пять основных концепций: домен, канал, агент, схема и слой. Язык также будет поддерживать глубокую инкубацию объектов кода", заключает он. 
В блоге корпорации отмечается, что одна из задач, которую ставили перед собой создатели языка, заключается в снижении сложности программирования, при повышении мощности и произвоодительности кода. 
качать тут
дополнительно можно почитать тут

пятница, 15 мая 2009 г.

Улучшенный ListView

Проект - тут. Собственно, всем приходится сталкиваться с тем, что надо в разные колонки ListView вывести определенные поля какого-то собственного класса. Так вот - используя данный проект можно указать (при помощи спец. атрибута) маппинг полей к колонкам ListView и резко сократить код :)