102 K

Август 2011

 


Разработка, управляемая тестами, постфактум, часть II
Эрик Селье (Eric Selje)


Прелюдия:
В I части мы подробно рассмотрели концепцию разработки, управляемой тестами (Test-Driven Development, TDD), создали несколько модульных тестов в среде оснастки FoxUnit и подготовили для тестирования небольшую элементарную программу вычисления факториала. Легкое дело, если вы начинаете с чистого листа, но как быть в том случае, если имеете дело с большим объемом унаследованного кода? В этой статье будет показано, как можно быстро внести в оснастку FoxUnit пару изменений, чтобы без промедления получить набор тестов для существующего кода.

Класс ActiveLabel – замена для командных кнопок в современных формах
Прадип Ачарья (Pradip Achary)


Командные кнопки в настольных и веб-приложениях сегодня – зрелище редкое. Выполнение какого-либо действия инициируется с помощью строки, выделенной в тексте цветом или подчеркнутой. Хотя в VFP предлагаются встроенный класс HyperLink, а также метод Click для элемента управления Label, ни этот класс, ни пассивный элемент управления Label не удовлетворяют общей потребности иметь элемент управления ActiveLabel, который обладал бы полным набором свойств и функциональностью методов SetFocus, Keypress и TabStop с встроенной координацией назначенных внешних или внутренних клавиш доступа, графическим изображением (изображениями) и добавочной описательной надписью. Прадип Ачарья (Pradip Acharya) представляет простой в применении класс ActiveLabel с богатыми возможностями, который не является классом-контейнером. Предлагаемая на диске, сопровождающем этот номер журнала, библиотека классов самодостаточна и не имеет внешних зависимостей. Класс Прадипа является к тому же, по причине своей простоты, превосходной альтернативой инструментальной панели Toolbar и может также служить в качестве приподнятых (raised) объемных 3D-кнопок, таких какие можно видеть в панелях задач VFP, с заголовками (caption), которые в случае необходимости занимают две строки.
Командные кнопки – это неуклюжие динозавры с широкими «следами». В современных формах можно изредка встретить кнопки OK, Cancel или Submit, но, как правило, выполнение действия инициируется с помощью ссылки, которая размещена в тексте и выделяется особым цветом или подчеркиванием. Использование имеющегося в VFP пассивного элемента управления Label или класса HyperLink не отвечает требованиям поставленной задачи. Нужен активный элемент управления, который выглядит как строка текста, но вмещает в себя весь список функциональных возможностей командной кнопки, включая методы SetFocus, TabStop и Keypress.

Использование видео как Active Desktop
Недавно я наткнулся на интересный код и после некоторого размышления решил создать программу для генерации файла, необходимого для отображения видео на активном рабочем столе.
В Windows XP вы можете создать активный рабочий стол (ActiveDesktop), на котором возможно отображение любого HTML контента. То есть, если у вас имеется некая HTML страница, вы можете изменить свойства Display рабочего стола XP для отображения этой страницы.
Простое приложение, которое я написал, запрашивает путь к видео файлу и создает HTML страницу, которую вы можете использовать в качестве заставки активного рабочего стола..
Подойдет любой видео файл, который может быть воспроизведен средствами Windows Media Player. Для остальных может потребоваться установка дополнительных кодеков.

Как здорово, что мы потратили столько времени на OLE DB
Microsoft Aligning with ODBC - SQL Server Team Blog - Site Home - TechNet Blogs (http://blogs.technet.com/b/dataplatforminsider/archive/2011/08/29/microsoft-aligning-with-odbc.aspx):

Как заявлено в блоге команды SQL Server:
"The next release of Microsoft SQL Server, Code Name “Denali,” will be the last release to support OLE DB. OLE DB will be supported for 7 years from launch, the life of SQL Server Code Name “Denali” support, to allow you a large window of opportunity for change before deprecation. We encourage you to adopt ODBC in any future version or new application development.
Making this move to ODBC also drives more clarity for our C/C++ programmers who can now focus their efforts on one API."
"Следующая версия Microsoft SQL Server носящая кодовое имя "Denali" будет последней, поддерживающей OLE DB. OLE DB будет поддерживаться в течение 7 лет с момента выпуска SQL Server, что предоставляет вам достаточно времени на переход до исключения OLE DB из состава SQL Server. Мы рекомендуем во всех новых разработках или версиях продуктов использовать ODBC.
Переход на ODBC также упрощает жизнь разработчикам на С/C++, которые теперь могут сконцентрироваться на едином API."
Они только забыли сказать "и делает пустой тратой времени все усилия в течение последних нескольких лет, что были затрачены на поддержку технологии, которую мы в итоге прибьем"
Продвижение OLE DB в ущерб ODBC похож на энтузиазм, который Microsoft демонстрировала по отношению к WPF и Silverlight.
Реализация WPF в браузере напоминает мне старую технологию под названием ActiveX Document - похоже на браузер, вот только ядро WPF приходится закачивать на каждого клиента, корни этого уходят в прошлое более чем на 10 лет.
Когда речь заходит о наплевательском отношении к разработчикам, деятельность Microsoft за последние несколько лет можно назвать золотым стандартом поведения.
Когда начали продвижение WPF как технологии будущего, я спросил у некоторых разработчиков (видимо имеются ввиду разработчики в Microsoft, прим. ред.) не следует ли новым программистам на .Net пропускать изучение WinForms и сразу начнать изучать новую технологию. Мне ответили "Нет". Однако, за исключением работы "code behind" WPF настолько отличается от WinForm, что программистам придется немало потрудиться, осваивая эту технологию.
WPF опирается на Silverlight, который, в свою очередь, не менее скользкая штука чем OLE DB (по моему мнению). WPF спасается за счет XAML, который, будем надеяться, Microsoft станет подерживать в течение 10 years, на три года дольше чем OLEDB.
Один из значительных мотивов, побуждающих к переходу на VFP 9 было OLE DB, что соответствует стратегии Visual Studio и .Net.
И зачем все это было?
Вообразите, чтобы случилось, если бы все эти ресурсы разработки были направлены на извлечение иных преимуществ платформы FoxPro. Политики выигрывают, разработчики проигрывают.

VFPX: Control Renamer
Рик Шуммер (Rick Schummer)


Проект Control Renamer Builder, возглавляемый давно известной гуру в вопросах работы с Visual FoxPro Тамар Гранор (Tamar Granor), – это новинка, если судить по времени его появления на сайте VFPX, но проект существует уже несколько лет. Этот инструмент начинался как персональный проект, который должен был помочь Тамар с переименованием элементов управления в формах, созданных другими разработчиками, с тем, чтобы элементы управления имели осмысленные имена, не нарушающие общие стандарты программирования. В настоящей статье я надеюсь продемонстрировать вам, как этот усовершенствованный построитель на самом деле помогает мне в процессе рефакторинга программного кода форм и классов из VCX-библиотек. Моя коллега, ведущая рубрику в журнале FoxRockX, Тамар Гранор скомпоновала построитель Control Renamer Builder ради решения одной конкретной задачи для проекта, которым она занималась сто лет тому назад. Этот давний проект появился с формами, которые больше напоминали рабочий «прототип». К несчастью, все формы оказались напичканы элементами управления со стандартными именами, принятыми по умолчанию, вроде Text1, Text2, Combo1, Combo2, Edit1 и Edit2. Подобные имена ничего не говорили разработчику о том, какого типа данные обслуживали эти элементы управления в пользовательском интерфейсе. Кроме того, элемент управления с именем Text1 мог встретиться в форме и внутри контейнера, например, внутри вкладки страничного блока (pageframe). Просматривая программный код разных методов, приходится помимо прочего прилагать усилия к тому, чтобы понять, с каким именно из этих элементов управления вы работаете. Это замедляет процесс внесения дополнений или рефакторинг кода. Справиться с этими проблемами помогает построитель Control Renamer Builder.
 


Возврат на основную страницу

К архивам

© Edel Ltd. Все права защищены. 2011 г.

Hosted by uCoz