فيجوال فوكس برو  الفوكس برو البصرية هي البيانات التي تركز على لغة البرمجة وجوه المنحى والإجرائية التي تنتجها مايكروسوفت. وهو مستمد من الفوكس برو (التي كانت تعرف أصلا فوكس باس) الذي تم تطويره من قبل بداية برنامج فوكس في عام 1984. اندمجت فوكس مع تقنيات مايكروسوفت في 1992، وبعد ذلك البرنامج اكتسب المزيد من الميزات والبادئة «البصرية». والفوكس بور البصرية 3.0، الأول «مرئي» الإصدار، وتخفيض الدعم على منصة مالك ويندوز فقط، وبعد ذلك نسخ ويندوز فقط: الإصدار الأخير من الفوكس برو (2.6) يعمل تحت نظام تشغيل ماكنتوش، دوس، ويندوز، ويونيكس. الإصدار الحالي من الفوكس برو البصرية كوم وشركة مايكروسوفت أعلنت أنها لا تنوي إنشاء نسخة مايكروسوفت دوت نت.  الفوكس برو نشأت بوصفها عضوا في فئة من اللغات يشار إلى اللغات «اكس باس»، والتي تقوم على بناء لغة الجملة البرمجة القديمة. أعضاء آخرون من عائلة اللغة اكس باس تشمل المقص والحيثيات. (ويمكن الاطلاع على التاريخ في السنوات الأولى من اكس باس في مقالة قديمه).  تتكامل الفوكس برو البصرية، يختصر عادة باسم في اف بهي، الخاصة بها مع مشغل قاعدة بيانات علائقية، والتي تمتد قدرات الفوكس برو اكس باس لدعم مزود الاستعلام ومعالجة البيانات. وخلافا لمعظم أنظمة إدارة قواعد البيانات، الفوكس برو البصرية هو كامل المواصفات، ولغة البرمجة الديناميكية التي لا تتطلب استخدام بيئة برمجة إضافية للأغراض العامة. ويمكن استخدامه لكتابة وليس فقط «الدهون العميل» التطبيقات التقليدية، ولكن أيضا الوسيطة والتطبيقات الشبكية.  في أواخر عام 2002، وثبت أن الفوكس برو البصرية يمكن تشغيلها على لينكس في إطار التوافق النبيذ جناح ويندوز. في عام 2003، وهذا أدى إلى شكاوى من قبل مايكروسوفت: كان وادعى أن نشر رمز الفوكس برو وقت التشغيل على الأجهزة غير يندوز ينتهك اتفاقية ترخيص المستخدم.  في ديسمبر 2005، اندلعت في 20 في اف بهي الأعلى على مؤشر تايوب لأول مرة. في مارس 2007 وكان في موقف 19، مما يجعلها «ب» اللغة. اعتبارا من آب / أغسطس، 2010 ففب (جنبا إلى جنب مع اكس باس (هو في موقف 25.  في مارس 2007، أعلنت شركة مايكروسوفت أنه لن يكون هناك 10, في اف بهي، مما يجعل في اف بهي9 (تم الإفراج عنه لتصنيع يوم 17 ديسمبر 2004) الماضي إطلاق سراح في اف بهي التجارية من مايكروسوفت. بدعم من النسخة 9 مستمر مع حزم الخدمات التي تم إصدارها 8 ديسمبر 2005 و11 أكتوبر 2007.  نهاية الإعلان الحياة، والعمل على إطلاق سراح المقبل تحمل الاسم الرمزي سدنا (سميت على اسم كوكب قزم اكتشفت مؤخرا) والتي بنيت على أعلى من مصدر برنامج في اف بهي9 قد بدأت بالفعل. "" هو مجموعة من إضافات إلى 9,0 في اف بهي مكونات اكس باس لدعم عدد من سيناريوهات التشغيل المتداخل مع تقنيات مايكروسوفت المختلفة بما في ذلك مزود خدمة 2005، وصافي الإطار، ويندوز فيستا، مكتب 2007، والبحث في ويندوز وفريق مؤسسة خادم (تي إف إس). أطلقت مايكروسوفت سدنا تحت الرخصة المصدر المشتركة على موقع رمز الصفيف . وأوضحت مايكروسوفت أن جوهر في اف بهي ستبقى مغلقة المصدر. وأطلق سراح على 25 يناير 2008. اعتبارا من مارس 2008، كانت جميع مكونات اكس باس من حزمة الخدمة اس بي2 9 في اف بهي (بما في ذلك سدنا) المتاحة للتنمية المجتمعات المحلية في قانون الصفيف.  في أواخر آذار / مارس 2007 وبدأ حملة شعبية من قبل المجتمع الفوكس برو الناطقة بالإسبانية في MasFoxPro (باللغة الإنجليزية MoreFoxPro) للتوقيع على عريضة لمايكروسوفت أن يواصل استكمال الفوكس برو البصرية أو الإفراج عنها للمجتمع والمصدر المفتوح. يوم 3 أبريل 2007 ولوحظ حركة من قبل الصحافة الفنية   أيضا في 3 أبريل 2007 وردت مايكروسوفت لطلبات الالتماس مع هذا البيان من جرافيرآلان وقال  لغة الفوكس برو يحتوي على أوامر مماثلة تماما لغات البرمجة الأخرى مثل الأساسية. وتشمل حلقات القيام به، إذا، في حين، لأنه آخر الأوامر في استخدام يسهل فهمها من قبل أي شخص على دراية بلغات البرمجة الأخرى. أوامر تتخذ شكل «أمر» نهاية الأمر "" بعض العينات بناء الجملة الأساسية FOR i=1 to 10 ENDFOR  IF i=25 ELSE ENDIF  x=1 DO WHILE x < 50 ENDDO اللغة كما تلاعب واسعة النطاق قاعدة البيانات والأوامر الفهرسة. «تعليمات» فهرس الأوامر في VFP 9 ديها عدة مئات من الأوامر والمهام الموصوفة. الأمثلة إظهار رمز أدناه كيفية إنشاء الجداول وفهرسة، ولكن VFP والطاولة والشاشات منشئ قاعدة البيانات التي إنشاء الجداول والفهارس من دون كتابة التعليمات البرمجية.  على سبيل المثال مرحبال العالم: MESSAGEBOX("Hello World") loForm = CREATEOBJECT("HiForm") loForm.Show(1)  DEFINE CLASS HiForm AS Form  ENDDEFINE  loMine = CREATEOBJECT("MyClass") ? loMine.cProp1 && This will work. (Double-ampersand marks an end-of-line comment) ? loMine.cProp2 && Program Error: Property CPROP2 is not found.  ? loMine.MyMethod1() && This will work. ? loMine.MyMethod2() && Program Error: Property MYMETHOD2 is not found.  DEFINE CLASS MyClass AS Custom  ENDDEFINE && Create a table CREATE TABLE randData (iData I)  && Populate with random data using xBase and SQL DML commands FOR i = 1 TO 50  ENDFOR  && Place a structural index on the data INDEX ON iData TAG iData CLOSE ALL  && Display ordered data using xBase-style commands USE randData SET ORDER TO iData GO TOP LIST NEXT 10 && First 10 GO BOTTOM SKIP -10 LIST REST && Last 10 CLOSE ALL  && Browse ordered data using SQL DML commands SELECT * ; && Connect to an ODBC data source LOCAL nHnd nHnd = SQLCONNECT ("ODBCDSN", "user", "pwd")  && Execute a SQL command LOCAL nResult nResult = SQLEXEC (nHnd, "USE master") IF nResult < 0 ENDIF  && Retrieve data from the remote server and stores it in && a local data cursor nResult = SQLEXEC (nHnd, "SELECT * FROM authors", "QAUTHORS")  && Update a record in a remote table using parameters PRIVATE cAuthorID, cAuthorName cAuthorID = "1001" cAuthorName = "New name" nResult = SQLEXEC (nHnd, "UPDATE authors SET auth_name = ?cAuthorName WHERE auth_id = ?cAuthorID")  && Close the connection SQLDISCONNECT(nHnd)