ビジュアルフォックスプロ

ビジュアルフォックスプロ
開発者マイクロソフト
最終リリース
v9.0 SP2 [1] / 2007年10月16日; 18年前[2] (2007年10月16日
オペレーティング·システムWindows 2000Windows XP、およびWindows Server 2003 [3]
プラットフォームIA-32 [4]
入手可能なIDE:英語、ドイツ語、スペイン語
ランタイム:上記に加え、フランス語、中国語、ロシア語、チェコ語、韓国語
タイプ統合開発環境プログラミング言語
ライセンス商用 プロプライエタリソフトウェア
Webサイトmsdn.microsoft.com/vfoxpro

Visual FoxProは、 Microsoftによって開発されたプログラミング言語です。オブジェクト指向プログラミング(OOP)機能 を備えた、データ中心かつ手続き型のプログラミング言語です。

これは、1984年にFox Software社によって開発されたFoxPro(FoxBASEから派生)から派生したものです。Fox Technologies社は1992年にMicrosoft社と合併し、その後、このソフトウェアはさらに多くの機能と接頭辞「Visual」を獲得しました。 [5] FoxPro 2.6は、 Mac OSDOSWindowsUnixで動作しました

最初の「Visual」バージョンであるVisual FoxPro 3.0では、サポートプラットフォームがMac [6]とWindowsのみに縮小され、その後のバージョン5、6、7、8、9はWindowsのみとなりました。Visual FoxProの現在のバージョンはCOMベースであり、MicrosoftはMicrosoft .NETバージョンを開発する予定はないと表明しています[要出典]

2004年12月にリリースされ、2007年10月にSP2パッチでアップデートされたバージョン9.0が製品の最終バージョンとなりました。サポートは2010年1月に終了し、2015年1月に延長サポートが開始されました。[7]

歴史

Visual FoxProは、 dBaseプログラミング言語に基づいた構文を持つ、一般的に「 xBase 」言語と呼ばれる言語クラスの一員として誕生しました。xBase言語ファミリーの他のメンバーには、 ClipperやRecital(データベース)などがあります

Visual FoxPro(一般的にVFPと略される)は、独自のリレーショナルデータベースエンジンと緊密に統合されており、FoxProのxBase機能を拡張してSQLクエリとデータ操作をサポートします。多くのデータベース管理システムとは異なり、Visual FoxProはフル機能の動的プログラミング言語であり、追加の汎用プログラミング環境を必要としません。従来の「ファットクライアント」アプリケーションだけでなく、ミドルウェアWebアプリケーションの作成にも使用できます

2002年後半、Visual FoxProがWindows互換スイート「Wine」を用いてLinux上で動作することが実証されました。2003年、Microsoftはこれに対し苦情を申し立てました。Windows以外のマシンにFoxProのランタイムコードを展開することは、エンドユーザー使用許諾契約に違反すると主張したのです[8]

Visual FoxProは、TIOBEプログラミングコミュニティインデックス[9]で評価された人気において、急激な上昇と下降を繰り返しました2005年12月、VFPは初めてトップ20にランクインしました。2006年6月には12位まで上昇し、当時は「B」言語とされていました。2025年5月現在、Visual FoxProはTIOBEインデックスで29位に位置しています。[10]

2007年3月、マイクロソフトはVFP 10をリリースしないことを発表し[11] 、 VFP9(2004年12月17日に製造部門にリリース)がマイクロソフトの最後の商用VFPリリースとなった。Microsoft Visual FoxPro 9.0のService Pack 2は2007年10月16日にリリースされた[12]。バージョン9のサポートは2015年1月13日に終了した[7]。

サポート終了の発表時点では、VFP9のコードベース上に構築された、コードネームSedna(最近発見された準惑星にちなんで名付けられた)という次のリリースの作業が既に開始されていました。「Sedna」は、 SQL Server 2005、.NET Framework、Windows Vista、Office 2007、Windows Search、Team Foundation Server(TFS)など、さまざまなMicrosoftテクノロジとのいくつかの相互運用シナリオをサポートするための、xBaseコンポーネントのVFP 9.0へのアドオンのセットです。Microsoftは、 CodePlexサイトで共有ソースライセンスの下でSednaをリリースしました。Microsoftは、VFPコアは引き続きクローズドソースのままであると明言しました。Sednaは2008年1月25日にリリースされました。[13] 2008年3月の時点で、VFP 9 SP2のすべてのxBaseコンポーネント(Sednaを含む)は、CodePlexでコミュニティ開発に利用可能でした。

2007年3月下旬、スペイン語圏のFoxProコミュニティがMásFoxPro [14]英語では「MoreFoxPro」)で草の根運動を開始し、Microsoftに対しVisual FoxProのアップデートを継続するか、オープンソースとしてコミュニティに公開するよう求める嘆願書に署名を求めた。2007年4月3日、この運動は技術系メディアで取り上げられた。[15]

2007年4月3日、マイクロソフトはアラン・グリバー氏の声明でこの請願に応えた。[15]

「私たちはFoxProコミュニティのことを非常によく理解しており、それが3月13日の発表に大きく影響しました。製品の次バージョンをリリースしないことを発表するのは決して容易な決断ではなく、非常に慎重に検討した上での決断です。」

FoxProの終了を発表するわけではありません。もちろん、FoxProアプリケーションは引き続き動作します。社内の推計によると、FoxPro 2.6で動作するアプリケーションの数はVFPで動作するアプリケーションの数を上回っており、FoxPro 2.6は長年サポートされていません。Visual FoxPro 9は、2015年までMicrosoftによってサポートされます。

マイクロソフトがFoxProベースの進化を継続していくためには、64ビット開発環境の構築を検討する必要がありますが、これにはコア製品のほぼ完全な書き換えが必要になります。また、SQL Server(無償提供のSQL Server Express Editionを含む)を使用したスケーラブルなデータベースの構築にも投資してきました。サードパーティとの提携に関しては、多くの大手FoxPro顧客から、承認ベンダーの製品ではなくなるため、FoxProを使い続けることが不可能になるという声が寄せられています。コミュニティと大手顧客の両方のニーズをバランスよく満たすCodePlex上でオープンソース環境を構築することが、今後の最善の道だと判断しました。

バージョンタイムライン

記載されているバージョンはすべてWindows用です。[16]

バージョン発売日
ビジュアルフォックスプロ3.01995年6月
ビジュアルフォックスプロ5.01996年10月
ビジュアルフォックスプロ5.0a1997年10月
ビジュアルフォックスプロ6.01998年5月18日
ビジュアルフォックスプロ7.02001年6月27日
ビジュアルフォックスプロ8.02003年2月1日
Visual FoxPro 8.0 サービス パック 12003年10月7日
ビジュアルフォックスプロ92004年12月20日
Visual FoxPro 9 サービス パック 12005年12月8日
Visual FoxPro 9 サービス パック 22007年10月16日

コードサンプル

FoxPro 言語には、BASIC などの他のプログラミング言語と非常によく似たコマンドが含まれています。

基本的な構文のサンプルをいくつか示します。

FOR i = 1 ~ 10 x = x + 6.5 NEXT  && 「NEXT」の代わりに「ENDFOR」も使用できます。i = 25 の 場合、i = i + 1 の場合、そうでない場合、 i = i + 3 の
場合、ENDIFx = 1 DO WHILE x < 50 x = x + 1 ENDDOx = 1 DO WHILE .T.  x = x + 1 IF x < 50 LOOP  ELSE  EXIT  ENDIF ENDDOnMonth = MONTH ( DATE ()) DO CASE CASE nMonth <= 3 MESSAGEBOX ( "Q1" ) CASE nMonth <= 6 メッセージボックス( "Q2" ) CASE nMonth <= 9 メッセージボックス( "Q3" ) それ以外の場合 、メッセージボックス「Q4」ENDCASEFOR EACH oコントロールIN THISFORM .Controls  MESSAGEBOX (oコントロール.Name ) ENDFORf = 階乗(10)関数階乗(n)ローカルi, r r = 1 FOR i = n TO 1 STEP -1 r = r * i NEXT  && ここで「NEXT」の代わりに「ENDFOR」を使用することもできます RETURN r ENDFUNC

Hello World の例:

 * 現在の場所での出力 ?「Hello World」 * 指定された場所に出力 @ 1,1 SAY "Hello World" * 別のウィンドウに出力され、入力時にクリアされます WAIT WINDOW "Hello World" * 標準ダイアログボックスに出力され、OKでクリアされます MESSAGEBOX ( "Hello World" )

物体

Hello Worldプログラムの出力
* 定義されたウィンドウに出力loForm = CREATEOBJECT ( "HiForm" )  loForm .表示( 1 )クラスHiForm をFormとして定義する     オートセンター= . T .   キャプション= "Hello, World"   オブジェクトlblHi をラベルとして追加します     キャプション= "Hello, World! "   ENDDEFINE
loMine = CREATEOBJECT ( "MyClass" )? loMine.cProp1 && これで動作します。(二重アンパサンドは行末コメントを示します)? loMine.cProp2 && プログラム エラー: プロパティ CPROP2 は外部に隠されているため見つかりません。? loMine.MyMethod1() && これは動作します。? loMine.MyMethod2() && プログラム エラー: プロパティ MYMETHOD2 は外部的に隠されているため見つかりません。クラス MyClass をCustomとして定義する cProp1 = "My Property"  && これはパブリックプロパティです HIDDEN cProp2 && これはプライベート(隠し)プロパティです dProp3 = {} && 別のパブリックプロパティ 手順Init() && クラスコンストラクタ この.cProp2 = "これは非表示のプロパティです。" 手順dProp3_Access && プロパティゲッター 返却 () PROCEDURE dProp3_As sign (vNewVal) && プロパティセッターはプロパティ名に「_assign」タグを使用します IF  VARTYPE (vNewVal) = "D" これ.dProp3 = vNewVal ENDIF 手順MyMethod1() * これはパブリックメソッドであり、戻り値を返す隠しメソッドを呼び出します。 * 隠しプロパティの値。  これを返す.MyMethod2() 隠しプロシージャ MyMethod2() && これはプライベート(隠し)メソッドです  この.cProp2を返すENDDEFINE
  • VFPには、 IDEのプロパティシート(メソッドを含む)からアクセスできる定義済みクラスとビジュアルオブジェクトの広範なライブラリがあります。[17]そのため、上記のようなクラスやオブジェクトを定義するコードは、特別な目的や大規模システムのフレームワークにのみ必要です

データ処理

この言語には、データベース操作とインデックス作成のコマンドも豊富に用意されています。VFP 9のコマンド一覧「ヘルプ」には、数百ものコマンドと関数が解説されています。以下の例は、テーブルの作成とインデックス作成のコーディング方法を示していますが、VFPにはテーブルビルダーとデータベースビルダーの画面が用意されており、コードを書かずにテーブルとインデックスを作成できます。

データ処理プログラムの出力
 * テーブルを作成する CREATE TABLE randData (iData I) * xBaseとSQL DMLコマンドを使用してランダムデータを入力します i = 1 から 50 まで 空白を追加 iDataを( RAND ()*100)
に置き換えます randData (iData) に値を挿入( RAND () * 100) エンドフォール * データに構造インデックスを配置する iDataタグのインデックスiData CLOSE DATA && 開いているライブラリなどを閉じない * xBaseスタイルのコマンドを使用して順序付けられたデータを表示する randDataを使用する iDataに注文を設定 LOCATE  && GO TOPの代わりに使用します。TOPの検索にインデックスの使用を強制します。  次の10件 と最初の10件をリスト  スキップ-10 リスト残り && 最後の10 データを閉じる * SQL DMLコマンドを使用して順序付けられたデータを参照する 選択* ; randDataから; iData降順で並べ替え

SQLパススルーを使用したODBCアクセス

 PRIVATE cAuthorID, cAuthorName && プライベート変数は、同じ名前の以前のグローバル変数またはプライベート変数を置き換えます。 LOCAL nHnd, nResult && ローカル変数はここでのみ表示されます * ODBCデータソースに接続する nHnd = SQLCONNECT ( "ODBCDSN" , "user" , "pwd" ) * エラーが発生した場合に接続を閉じるコードに終了できるようにループを入力します DO WHILE .T. * SQLコマンドを実行する nResult = SQLEXEC (nHnd, "USE master" ) nResult < 0 の場合 メッセージボックス( 「MASTER データベースが存在しません!」 ) EXIT  && 接続を閉じるには ENDIF * リモートサーバーからデータを取得し、ローカルデータカーソルに保存します nResult = SQLEXEC (nHnd, "SELECT * FROM authors" , "QAUTHORS" ) nResult < 0 の場合 メッセージボックス( 「リモート SQL SELECT コマンドを実行できません!」 ) EXIT  && 接続を閉じるには ENDIF * パラメータを使用してリモートテーブルのレコードを更新する cAuthorID = "1001" cAuthorName = "新しい名前" nResult = SQLEXEC (nHnd, "UPDATE authors SET auth_name = ?cAuthorName WHERE auth_id = ?cAuthorID" ) nResult < 0 の場合 メッセージボックス( 「リモート SQL UPDATE コマンドを実行できません!」 ) EXIT  && 接続を閉じるには ENDIF * ここまで来れば、すべて回収に成功したことになる EXIT  && 無条件に終了 エンドド * 接続を閉じる SQLDISCONNECT (nHnd)

参照

参考文献

  1. ^ 「Visual FoxPro 9.0 アップデート」。Visual FoxPro 開発者センター。Microsoft 。 2013年6月7日閲覧
  2. ^ 「Microsoft Visual FoxPro 9.0 Service Pack 2.0 のダウンロード」ダウンロードセンター、Microsoft、2007年10月16日。 2013年6月7日閲覧
  3. ^ 「システム要件」。Visual FoxPro 開発者センター。Microsoft 。 2013年6月7日閲覧
  4. ^ 「よくある質問」。Visual FoxPro 開発者センター。Microsoft 。 2013年6月7日閲覧
  5. ^ ポラック、アンドリュー(1992年3月25日)「マイクロソフト、フォックス・ソフトウェア買収で新市場に挑戦」ニューヨーク・タイムズ、p. D1。
  6. ^ Microsoft Visual FoxPro 3.0 for Power Macintosh 発売開始、1996年7月25日、news.microsoft.com
  7. ^ ab "Microsoft Visual FoxPro 9.0". learn.microsoft.com .
  8. ^ Visual FoxPro for Linux: EULA違反か?、2003年5月13日、Ed Leafe著、Linux Journal
  9. ^ FoxProのTiobe Index履歴
  10. ^ 「インデックス | TIOBE - ソフトウェア品質会社」。
  11. ^ コミュニティへのメッセージ
  12. ^ Microsoft Visual FoxPro 9.0 サービス パック 2.0
  13. ^ Microsoft SEDNA ダウンロード
  14. ^ Mas FoxPro - Visual FoxPro Wiki
  15. ^ ab 開発者がMicrosoftにFoxProの段階的廃止を再考するよう嘆願 投稿者 Mary Jo Foley (2007年4月3日) - All about Microsoft - ZDNet.com
  16. ^ FoxProの歴史
  17. ^ 「Visual FoxPro 開発生産性ツール」。Microsoft 。 2014年12月20日閲覧

Microsoft ページ

  • メイン Visual FoxPro Microsoft ページ
  • MSDN FoxPro サポートボード
  • VFPのオンラインヘルプ

その他のページ

  • FoxProの歴史に特化したサイト
  • VFPx Visual FoxProコミュニティによるVFP 9.0用のオープンソースアドオンの作成
  • Fox In Cloudオンラインクローンホームページ
「https://en.wikipedia.org/w/index.php?title=Visual_FoxPro&oldid=1318403044」から取得