Исходные тексты для этого номера

 1000 K

Если подвести мышку к изображению  дискеты, то вы увидите размер архива

Февраль 2010

 

Нам поможет менеджер

Энди Крамек (Andy Kramek) и Марсиа Акинз (Marcia Akins)

Все приложения, создаваемые средствами Visual FoxPro, зависят от данных, и VFP обеспечивает разные способы для обработки наборов данных. Можно работать непосредственно с таблицами, использовать представления, предопределенные курсоры или курсоры, которые создаются в оперативном режиме, “на лету”, в результате выполнения SQL-запросов. Однако, в VFP нет команды, которая безоговорочно создаст или откроет и сделает текущим набор данных, независимо от его типа. В этом месяце Энди и Марсия обсуждают в своей колонке создание класса, который будет делать именно это.

 

От типа к типу

Тамар Е. Гранор, доктор философии (Tamar E. Granor, Ph.D.)

VFP 6-9

Замена одного типа данных другим – это распространенное требование. Работая с более старыми версиями VFP, вы должны были знать о стольких функциях, предназначенных для обработки различных вариантов, что это был настоящий «рог изобилия». Несколько последних дополнений облегчают решение этой задачи. Необходимость в преобразовании типов данных возникает по самым разным причинам, включая форматирование данных для вывода, перенос данных из одной базы данных в другую и объединение одних данных с другими, например, для использования в индексе.

 

Программирование Visual FoxPro

Практический опыт

Джим Бут (Jim Booth)

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

В конечном счете мы придем к программированию, полностью ориентированному на объекты, но начнем с основ структурного программирования, чтобы выявить те идеи, которые ведут к ООП. Следуя по этому пути, мы досконально разберемся в том, почему так велика важность ООП, а также в том, каким образом ООП позволяет реализовать такие подходы к разработке, которые в отсутствие ориентации на объекты обычно просто невозможны. Мы увидим, что объектно-ориентированное программирование соотносится со структурным программированием как дифференциальное исчисление с арифметикой.

 

VFPX: Дополнения с открытым исходным кодом

Рик Шуммер (Rick Schummer)

VFP 9

В 2007 году я четырежды представлял проект VFPX на тематических секциях конференций по Visual FoxPro в Соединенных Штатах и в Европе. И каждый раз задавал присутствующим вопрос: “Кто из вас слышал о VFPX?” Руку поднимали примерно от 10 до 15 процентов присутствовавших в аудитории. Поскольку я считаю, что VFPX – это важная составляющая будущего Visual FoxPro, такое открытие вызывает беспокойство. Цель публикации этой серии статей следующая: познакомить вас с проектом с открытым исходным кодом под названием VFPX и сделать обзор различных входящих в него инструментальных средств и компонентов, некоторые из которых будут рассмотрены более подробно, чтобы показать, как их можно использовать в вашей повседневной работе для создания решений Visual FoxPro.

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

 

Что такое VFPX?

Итак, что же такое VFPX? С веб-сайта проекта VFPX: “A Visual FoxPro Community effort to create open source add-ons for Visual FoxPro 9.0. The code, classes, and libraries made available here will complement Microsoft's continuing efforts to improve and extend Visual FoxPro with the code named Sedna project which is outlined in the Visual FoxPro Roadmap”.

(«Инициатива сообщества Visual FoxPro, направленная на создание дополнений с открытым исходным кодом для версии Visual FoxPro 9.0. Доступные в рамках этой инициативы программный код, классы и библиотеки дополнят проект с кодовым названием Sedna, который описан в «дорожной карте» Visual FoxPro Roadmap» и является результатом дальнейших усилий фирмы Microsoft, направленных на развитие и расширение возможностей СУБД Visual FoxPro.)

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

Небольшой урок истории

Этот проект с открытым исходным кодом стартовал как проект SednaX в октябре 2005 года с подачи VFP-гуру и обладателя статуса MVP Крейга Бойда (Craig Boyd), а отправной точкой для него послужили переговоры Крейга с фирмой Microsoft. Проект получил название SednaX, что следовало расшифровывать как Sedna-eXtensions – дополнения для Sedna. Sedna – это кодовое название, которое фирма Microsoft использовала для набора инструментальных средств и дополнений, обеспечивающего расширение функциональных возможностей версии Visual FoxPro 9.0. Крейг «завербовал» Дуга Хеннига (Doug Hennig) и Рика Шуммера (Rick Schummer), чтобы они помогали ему администрировать проект SednaX.

Сообщество, сложившееся вокруг проекта SednaX, развивалось на веб-сайте GotDotNet, организованном фирмой Microsoft для нескольких сообществ разработчиков ПО с открытым и общедоступным (shared) исходным кодом, использующих технологии Microsoft. Спустя 6-8 месяцев проект SednaX насчитывал уже более 800 членов, и, почти сразу же после ее старта, в рамках этой инициативы была начата работа над новыми проектами. В то время инициатива SednaX была одним из наиболее интенсивно развивающихся проектов на сайте GotDotNet. С тех пор фирма Microsoft закрыла сайт GotDotNet и перенесла все его проекты на новый сайт CodePlex, который рассматривается позже в этой статье.

На этом пути администраторы SednaX осознали тот факт, что название «SednaX» слишком легко ассоциируется с релизом Sedna. Исходя из положений «дорожной карты» VFP Roadmap (http://msdn2.microsoft.com/enus/ vfoxpro/bb190293.aspx), они подумали, что сообществу было бы удобнее использовать для этого проекта какое-то собственное, непатентованное, имя вместо такого, которое привязано к конкретному релизу Visual FoxPro. Сообщество представило на рассмотрение ряд предложений, и было проведено голосование. С незначительным перевесом победило название VFPX. Оно расшифровывается как VFPeXtensions – дополнения VFP, а не VFP 10 с римской цифрой “X” в качестве номера версии, как его иногда ошибочно трактуют. Когда речь идет о проекте VFPX, необходимо учитывать четыре очень важных принципа:

1. Разработка этого проект ведется исключительно на добровольной основе волонтерами-членами Fox-сообщества, разбросанными по всему миру.

2. Этот проект является очень важной и существенной составляющей будущего Visual FoxPro, поскольку фирма Microsoft не планирует дальнейшее развитие СУБД VFP после выхода релизов VFP 9.0 SP2 и Sedna.

Инструментальные средства Компоненты

ClassBrowserX ctl32_statusbar

CodeAnalyst ctl32_scontainer

New Property and Method dialog DeskTop Alerts

Edit Property/Method dialog GDIPlusX

TableDesignerX JustBehave

VFP MSBuild Target OOP Menu project (проект объектно-ориентированного меню)

ThemedControls (бывший Outlook2003Bar)

Tab Menu (MS Office Ribbon Control)

3. Проекты, объединенные инициативой VFPX, находятся на разных стадиях разработки. Для некоторых из них уже выпущены готовые релизы, работа над другими еще продолжается, а какие-то существуют только как идеи, изложенные в виде «набросков на чертежной доске».

4. Чем больше будет участников, тем больше мы можем сделать.

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

Где находится проект VFPX?

Ключ к поиску проекта VFPX – найти тот веб-сайт, где он располагается. VFPX – это один из проектов, которые нашли свой приют на сайте сообщества разработчиков, использующих продукты Microsoft; этот сайт называется CodePlex (рисунок 1) и его адрес http://www.codeplex.com/VFPX. Сайт CodePlex поддерживается фирмой Microsoft для сообщества разработчиков ПО с открытым исходным кодом. Microsoft не оказывает никакого прямого влияния на проекты, базирующиеся на сайте CodePlex. Этот сайт является веб-хранилищем, и сообществу разработчиков предлагаются услуги по хранению в нем создаваемых ими проектов.

Лицензия, сопровождающая общедоступный исходный программный код проекта VFPX, является универсальной лицензией, предназначенной для того, чтобы вы как разработчик имели возможность осуществлять эволюционные работы (вносить изменения любым подходящим для вас способом) и использовать компоненты и инструментальные средства в своих коммерческих и некоммерческих продуктах. Разработанное в рамках VFPX, программное обеспечение передается в эксплуатацию без каких-либо гарантийных обязательств. Лицензия защищает администраторов, менеджеров проектов и разработчиков от предъявления им претензий в судебном порядке пользователями созданных ими продуктов. Полный текст лицензии можно найти здесь: http:// www.codeplex.com/VFPX/Project/License.aspx.

 

Вот текст лицензии в том виде, как он существует сегодня:

Все материалы, которые включает в себя этот Проект, подпадают под действие следующего лицензионного договора:

Лицензионный договор об использовании общедоступного исходного кода проекта VFPX

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

Мы в свою очередь требуем только, чтобы вы согласились:

1. Не удалять из переданного вам ПО никакие обозначения авторских прав или другие замечания об авторских правах.

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

3. Переданное вам ПО распространяется по принципу «как есть», без гарантий. Не предоставляется вообще никаких гарантий. Это означает отсутствие явно выраженных, косвенных или установленных законом гарантий, включая, без каких-либо ограничений, гарантии годности для продажи или пригодности для определенной цели либо любые гарантии правового титула или не нарушения патента. Кроме того, вы обязаны передавать этот отказ от предоставлении гарантий в каждом случае распространения вами данного ПО или производных работ.

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

5. Если вы предъявляете кому-либо иск, оспаривающий выданные на ПО патенты, которые, как вы считаете, могут быть применены к ПО, предназначенному для личного использования, действие вашей лицензии прекращается автоматически.

6. Патентные права, если таковые существуют, полученные с соблюдением настоящего лицензионного договора, распространяются только на переданное вам ПО, и не распространяются на выполненные вами производные работы.

7. Если вы существенно изменяете, модифицируете или дополняете исходный код VFPX (например, интегрируя его в коммерческий продукт), вы вправе указать и предоставить свидетельство ваших собственных авторских прав и свой лицензионный договор для выполненной вами работы, добавляющей стоимость, и распространять ее на коммерческой или некоммерческой основе.

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

8. Переданное вам ПО подпадает под экспортную юрисдикцию США в том ее виде, как она существует на момент лицензирования этого ПО для вас, и кроме того оно может подчиняться действующему в других странах законодательству, регулирующему экспорт или импорт. Вы соглашаетесь выполнять все те законы и нормы, которые можно применить к программному обеспечению после его передачи вам.

9. Если вы выступаете от имени учреждений правительства США: (I) переданное вам ПО в соответствии с требованиями, выпущенными 1 декабря 1995 года, или позже, предоставляется с коммерческими правами и ограничениями, указанными в настоящем лицензионном договоре, и (II) переданное вам ПО в соответствии с требованиями, выпущенными до 1 декабря 1995 года, предоставляется с «Ограниченными Правами», как это изложено в документах FAR, 48 C.F.R. 52.227-14 (June 1987) или DFAR, 48 C.F.R. 252.227-7013 (Oct 1988), в зависимости от того какой из этих документов можно применить.

10. Вы автоматически утрачиваете все права, предоставленные настоящим лицензионным договором, если вы каким-либо образом его нарушаете.

11. Все права, не предоставленные вам явно настоящим лицензионным договором, зарезервированы.

Что можно найти на сайте VFPX?

Веб-сайт CodePlex базируется на новом предложении масштаба предприятия от фирмы Microsoft - платформе Team System (http://msdn2.microsoft.com/en-us/teamsystem /default.aspx). На сайте CodePlex размещается множество проектов с открытым исходным кодом (на момент написания этой статьи там насчитывалось 2788 проектов), и он функционирует во многом аналогично тому, как работает очень популярный сайт SourceForge.NET (http://sourceforge.net/). VFPX – это лишь один из проектов, размещенных на этом сайте. Сайт CodePlex обеспечивает следующие функциональные возможности:

1. Публикация новостей и информации о новых и существующих проектах, разрабатываемых в рамках инициативы VFPX.

2. Процедура представления заявки на разработку нового проекта.

3. Самые последние релизы и пакеты для скачивания.

4. Дискуссионный форум.

5. Отслеживание выявленных в проектах ошибок и проблем.

6. Встроенное управление версиями исходного кода (что можно делать прямо из VFP-проекта).

7. Список волонтеров и их роли в VFPX.

8. Механизм официального лицензирования VFPX.

9. Регистрация разработчиков.

В целом, размещенный на портале CodePlex сайт VFPX – это wiki-сайт с разделами, которые можно добавлять, редактировать или даже удалять. Такая структура делает его исключительно динамичным и гибким, поскольку любой зарегистрировавшийся посетитель этого сайта может вносить в него изменения. Но та же самая особенность его организации превращает документирование этого сайта в «движущуюся цель» для того, кто пишет статью о нем.

Домашняя страница

На домашней странице VFPX перечислены активные проекты, там вы получите информацию о том, как сделать заявку на разработку нового проекта в рамках VFPX, на этой же странице даются ссылки на самые последние новости о VFPX и можно ознакомиться с наиболее часто задаваемыми вопросами (FAQ). Кроме того, на домашней странице можно найти очень важные советы для менеджеров проектов (включая совет о том, как подключить проект к системе управления исходным кодом VFPX).

Релизы

Если вас в первую очередь интересует возможность опробовать инструментальные средства и компоненты VFPX в тестовом режиме, тогда для вас важна страница Releases (Релизы). На этой странице есть ссылки и описания всех проектов, доступных для скачивания.

Пожалуй, страница Releases является на сайте VFPX самой трудной с точки зрения навигации. Справа на ней находится список релизов. Этот список можно «переключать» так, чтобы он отображал текущие или планируемые релизы. Большинство из вас будут интересовать текущие релизы, которые прошли наиболее полное тестирование и чаще всего используются, но если вы хотите осуществить предварительный просмотр проектов, над которыми команды разработчиков еще только работают, можете также проверить запланированные релизы.

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

Обсуждение

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

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

Отслеживание проблем

Каждый проект сталкивается с какими-то проблемами, которые возникают в процессе разработки. Это может быть ошибка, это может быть запрос на внесение дополнения или распределение задач между членами команды проекта. Такие проблемные вопросы можно опубликовать на странице Issue Tracking (отслеживание проблем). После появления вопроса на этой странице менеджер проекта определит возможные последствия возникшей проблемы, присвоит ей некий статус, назначит разработчика, и тогда работающая над этим проектом команда может делать обновления. После того, как вопрос будет решен, его решение будет включено в один из релизов.

Исходный код

Самый последний вариант исходного кода публикуется командами разработчиков с помощью системы Team System и объединяется с соответствующим файлом (PJX) проекта VFP с помощью системы управления исходным кодом средствами диспетчера проектов VFP. Разрешение на доступ к серверу Team Foundation Server есть только у разработчиков проектов. Для обращения к серверу Team Foundation Server на вашем компьютере должно быть инсталлировано программное обеспечение утилиты просмотра Visual Studio Team Explorer.

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

Вы могли бы предположить, что самые последние варианты исходного кода для инструментальных средств и компонентов, следует искать на странице Source Code (исходный код). Согласно моему опыту, механизм сайта CodePlex почему-то объединяет в один пакет исходный код разных проектов и помещает все это в один ZIP-архив, предназначенный для скачивания. Я также на практике столкнулся с тем, что этот архив оказывается неполным. Я рекомендую членам, не входящим в команду проекта, скачивать отдельные файлы релизов со страницы Release на сайте VFPX.

Люди

Список всех тех, кто участвует в разработке и занимается последующим сопровождением различных инструментальных средств и компонентов, вы найдете на странице People (люди). Если щелкнуть мышью по ссылки Project Roles (роли в проекте), вы увидите, что в рамках проектов VFPX каждый участник может выступать в четырех различных ролях.

1) Anonymous (аноним): посетитель сайта, открывший в своем веб-браузере страницу сайта CodePlex, но пока еще не выполнивший процедуру входа. Сайт VFPX может просматривать любой желающий

2) Logged-in (зарегистрированный): тот, кто зарегистрировался на сайте и выполнил процедуру входа. Любой желающий может зарегистрироваться и выполнить процедуру входа на сайт VFPX.

3) Developer (разработчик): лицо, зарегистрировавшееся на сайте и принимающее активное участие в работе над инструментальным средством или компонентом из числа разрабатываемых в рамках VFPX. Статус Developer присваивается администратором VFPX.

4) Coordinator (координатор): это администратор VFPX, обладающей всей полнотой власти на сайте VFPX. В настоящее время координаторами являются Крейг Бойд (Craig Boyd), Дуг Хенниг (Doug Hennig) и Рик Шуммер (Rick Schummer). На них возложены дополнительные обязанности: надзор за деятельностью пользователей на сайте, а также рассмотрение заявок на разработку новых проектов и вынос вердикта об их приеме или отклонении.

Лицензия

Лицензия на использование общедоступного исходного кода проектов VFPX подробно представлена на странице License на сайте VFPX.

Регистрация

Процедура регистрации необременительна и безусловно проще, чем аналогичная процедура, которая изначально использовалась на сайте GotDotNet для проекта SednaX/VFPX. Щелкните мышью по ссылке Register (регистрация), которая находится в верхнем правом углу домашней страницы VFPX (или на любой другой странице, где вы оказались, не имея регистрации в VFPX). Для регистрации (см. рисунок 7) от вас требуется только создать имя пользователя, предоставить пароль и адрес электронной почты, а также согласиться с условиями использования (Terms of Use) и кодексом поведения на сайте CodePlex (Code of Conduct for CodePlex). Регистрация на сайте CodePlex не включает процедуру подтверждения, как это было на сайте GotDotNet.

Справа на страницах сайта VFPX есть ссылка на RSS-каналы. Если вы подведете курсор мыши к такой ссылке или к значку , то получите выпадающий список с шестью доступными каналами. Рекомендую подписаться хотя бы на канал VFPX, чтобы получать информационную сводку о том, что происходит на сайте.

Канал VFPX объединяет в один канал информацию о тематических обсуждениях, отслеживании проблем, релизах, исходном коде, а также информацию wiki-каналов. Остальные пять каналов позволяют получать информацию об изменениях на веб-сайте VFPX по отдельным категориям. Я использую эти каналы, чтобы отслеживать изменения на веб-сайте, следить за теми сообщениями и вопросами, которые публикуются на форуме, а также получать сведения о доступности новых релизов от команд, занимающихся разработкой проектов.

В следующий раз

Надеюсь, эта статья познакомила вас с идеей VFPX, а мой рассказ о веб-сайте, на котором эта инициатива воплощается в жизнь, до некоторой степени раскрыл потенциал данного проекта. VFPX принадлежит важная роль в будущем СУБД Visual FoxPro. В следующей статье из этой серии мы приступим к обзору и углубленному знакомству с каждым из проектов, которые разрабатываются в рамках этой инициативы. С нетерпением жду ваших откликов по поводу VFPX и, что еще важнее, надеюсь, вы поучаствуете в этом смелом предприятии!


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

К архивам

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

Hosted by uCoz