ما هو مايكروسوفت فيجوال فوكس برو (VFP)؟
Microsoft Visual FoxPro (VFP) عبارة عن برمجة موجهة للكائنات (عفوًا) بيئة ذات علائقية مدمجة قاعدة البيانات محرك. تم تطويره في الأصل باعتباره قاعدة بيانات علائقية تطبيق من قبل شركة مختلفة، تطور إلى FoxPro بعد بضع سنوات وفي النهاية إلى Visual FoxPro بمجرد تولي Microsoft تطويره.
أنهت Microsoft تطوير وتسويق VFP في عام 2007 وأنهت الدعم بعد بضع سنوات. لا يزال من الممكن تنزيل حزم الدعم للإصدارين الأخيرين من VFP من موقع Microsoft. على الرغم من أن VFP أصبح قديمًا إلى حد كبير الآن، إلا أن بعض المؤسسات تستمر في استخدامه لإنشاء تطبيقات تعتمد على قواعد البيانات لسطح المكتب والويب و خادم العميل عمليات النشر، خاصة إذا كانت تعمل في قطاعات الصناعة التي تتطلب برامج مخصصة أو معيارية.
تاريخ Visual FoxPro
كان Visual FoxPro هو التجسيد النهائي لبرنامج قاعدة بيانات علائقية كان يسمى في الأصل FoxBASE. قدمت شركة Fox Software برنامج FoxBASE في عام 1984، استنادًا إلى نظام إدارة قواعد البيانات dBase (نظام إدارة قواعد البيانات) من Ashton-Tate، وإن كان مع العديد من التحسينات في السرعة وسهولة الاستخدام، بالإضافة إلى ميزات مثل المضمنة بيئة التطوير وبيئة القيادة التفاعلية. أيضًا، تم تشغيل dBase فقط على برنامج التحكم لأجهزة الكمبيوتر الصغيرة ونظام تشغيل Microsoft Disk (مس-دوس) الأنظمة، في حين تم تصميم FoxBASE للعمل على جميع أنظمة التشغيل الرئيسية (أنظمة تشغيل) من الوقت واليوم، بما في ذلك لينكس, ويندوز و ماك.
بحلول عام 1989، تمت إعادة تسمية FoxBASE إلى FoxPro. على مدى السنوات القليلة التالية، أصدرت Fox Software إصدارات متعددة من البرنامج، بما في ذلك FoxPro 2.x لأنظمة MS-DOS وWindows وMac وUnix وLinux. استحوذت Microsoft على Fox Software في عام 1992 وتولت تطوير FoxBASE.
في أوائل عام 1993، قامت مايكروسوفت بشحن نسختها الأولى من البرنامج. بحلول عام 1995، بعد ثلاث سنوات من استحواذ Microsoft على الشركة وتقنيتها، تطورت FoxPro إلى Visual FoxPro، أو VFP. في الواقع، كان هذا هو الاسم الذي أطلق على المنتج عندما تم إصدار نسخته الرئيسية التالية، VFP 3.0، في عام 1995.
أصدرت Microsoft خمسة إصدارات أخرى من VFP من عام 1996 إلى عام 2004، متخطية الإصدار 4.0 والانتقال مباشرة إلى الإصدار 5.0، وتنتهي بـ Visual FoxPro 9.0. تحت ملكية مايكروسوفت، تطورت VFP من البرمجة المنظمة لغة إجرائية إلى لغة موجهة للكائنات، تدعم تطوير تطبيقات 32 بت، وإعادة استخدام التعليمات البرمجية ولغة الترميز القابلة للتوسيع (XML) خدمات الويب.
في ذلك الوقت، كانت VFP وأسلافها من بين أفضل منصات قواعد بيانات أجهزة الكمبيوتر الشخصية عندما كانت فئة منتجات نابضة بالحياة في الثمانينيات وأوائل التسعينيات. ومع ذلك، بحلول منتصف التسعينيات، تحول السوق نحو أنظمة إدارة قواعد البيانات العلائقية ذات المستوى الأعلى (أنظمة إدارة قواعد البيانات الراديوية (RDBMSes).)، مثل أوراكل و مايكروسوفت SQL خادم.
أوقفت Microsoft أعمال تطوير قاعدة البيانات بعد إتاحة Visual FoxPro 9.0 Service Pack 2 (SP2) في أكتوبر 2007، بالإضافة إلى إصدار حزمة الوظائف الإضافية 9.0 الناتجة عن مشروع يحمل الاسم الرمزي Sedna في يناير 2008. وتضمنت حزمة Sedna العديد من ميزات لتوسيع تكامل VFP 9.0 مع SQL Server، الاستوديو المرئي وعناصر مايكروسوفت صافي الإطار.
على الرغم من إضافات Sedna وإدراج Visual في اسمها، لم يكن Microsoft VFP جزءًا من Visual Studio أو .NET. وصفت Microsoft Visual FoxPro وVisual Studio كتقنيات تكميلية متوافقة في بعض المجالات، مثل دعم XML. لكنها حافظت على VFP كمنصة مستقلة لتطوير قاعدة البيانات ولم تقم بإنشاء إصدار .NET من لغة VFP.
توقفت Microsoft عن دعم الإصدار 8.0 (Microsoft Visual FoxPro 8.0 Professional Edition) في أبريل 2013 والإصدار 9.0 (Microsoft Visual FoxPro 9.0) في يناير 2015.
الملامح الرئيسية لبرنامج Visual FoxPro
تطورت Visual FoxPro، التي أشار إليها المستخدمون بمودّة باسم “The Fox”، إلى لغة برمجة ناضجة تدعم النمط المعياري للتطوير وتمكّن المطورين من إعادة استخدام التعليمات البرمجية لتسريع تطوير التطبيقات. في VFP، تم ربط لغة OOP ومحرك قاعدة البيانات معًا بشكل وثيق، مما يجعلها مناسبة للتعامل مع عمليات البيانات المعقدة وبناء تطبيقات قواعد بيانات واسعة النطاق. ومع ذلك، لم يكن استخدام قاعدة بيانات VFP مطلوبًا كجزء من تطبيقات VFP. إن طبيعة OOP لـ VFP مكنت المطورين من إنشاء برامج قابلة لإعادة الاستخدام الطبقات و أشياء، حتى يتمكنوا من تطوير التطبيقات بشكل أسرع وإنشاء المزيد من التطبيقات القابلة للتطوير والتي يسهل صيانتها.
علاوة على ذلك، يتضمن VFP محرك بيانات قويًا ولغة استعلام منظمة مدعومة (SQL)، مما يجعلها مناسبة للتطبيقات التي تركز على البيانات. على الرغم من الاقتران المحكم، يمكن استبدال المحرك المدمج بـ SQL Server للمستخدمين الذين يبحثون عن تحسين الأمان والموثوقية والنسخ المتماثل وميزات قاعدة البيانات الأخرى أثناء التطوير.
قامت Microsoft بوضع VFP كمجموعة من أدوات المطورين، وليس نظام إدارة قواعد بيانات مستقل، مثل SQL Server. ان بيئة التطوير المتكاملة تم تضمينه في VFP مع محرر التعليمات البرمجية، ومصمم النماذج، مصحح الأخطاء وأدوات أخرى. تتضمن مجموعة أدوات VFP أيضًا أدوات إعداد التقارير وأدوات تنظيم قاعدة البيانات وفهرستها الجداولوالاستعلام عن البيانات وبرمجة تطبيقات المستخدم النهائي. كما أنها توفر أدوات وميزات إنتاجية لزيادة تبسيط عملية تطوير التعليمات البرمجية وصيانتها وإعادة استخدامها.
زودت اللغة أيضًا مكتبات فئات محددة مسبقًا بعناصر أساسية يمكن إضافتها إلى التطبيقات. بالإضافة إلى ذلك، يمكن توزيع أدوات الإنشاء المخصصة – وهي البرامج التي تتيح المعالجة المباشرة للخصائص والأساليب في وضع التصميم – مع مكتبات الفئات لتوفير محرر كائنات سهل الاستخدام. يمكن توسيع VFP بوظائف مخصصة ومكتبات ووظائف إضافية تابعة لجهات خارجية، مما يتيح للمطورين تحسين الميزات الحالية للتطبيق.
دعم Visual FoxPro Microsoft صابون مجموعة الأدوات، وهي مورد مفيد يوفر بنية أساسية للتطوير لإنشاء خدمات الويب وعرضها واستهلاكها عبر بروتوكول الوصول إلى الكائنات البسيطة. بالإضافة إلى ذلك، يتضمن VFP برنامج تشغيل Open Database Connectivity الذي يمكّن من الاستعلام عن البيانات الموجودة في VFP وتحديثها من Excel وWord وMicrosoft Access عبر أودبك واجهة. يمكّن برنامج تشغيل VFP ODBC أيضًا المطورين من استخدام قاعدة بيانات VFP كمخزن بيانات للتطبيقات المكتوبة ج، مايكروسوفت فيجوال سي ++ ومايكروسوفت فيجوال بيسك.
القيود المفروضة على Visual FoxPro
نظرًا لأن Microsoft لم تعد تطور أو تدعم VFP، فإن صيانتها وسهولة استخدامها تمثل قيودًا خطيرة على المستخدمين. علاوة على ذلك، فإن الافتقار إلى الوظائف الجديدة وقيود التصميم المضمنة يعيق الابتكار، حيث يضطر المطورون إلى الاكتفاء بالميزات والمفردات الموجودة في VFP لتطوير التطبيقات.
تعتبر قيود حجم قاعدة البيانات الأصلية لـ VFP مشكلة أخرى. يمكنها تخزين كمية محدودة فقط من البيانات، مما قد يشكل عائقًا خطيرًا للشركات التي تعمل بكميات كبيرة من البيانات المتغيرة باستمرار. تمثل قيود قاعدة بيانات VFP أيضًا مشكلة بالنسبة للشركات التي تحتاج إلى قاعدة البيانات للاتصال بعدد كبير من مصادر البيانات.
الأمان هو قيد آخر لـ VFP. نهاية العمر الافتراضي للمنتج (موسوعة الحياة)، بالإضافة إلى تراجع شعبية VFP، يعني أن Microsoft لا تقوم بإصدار الأمان بشكل متكرر بقع أو ترقيات أخرى متعلقة بالأمان لـ VFP – على الرغم من إصدار تحديث واحد، يسمى التحديث التراكمي Visual FoxPro 9.0 SP2، مؤخرًا في عام 2021.
ويعني عدم وجود تحديثات أمنية أن VFP قد يحتوي على ثغرات أمنية يمكن استغلالها من قبل مجرمي الإنترنت والجهات الفاعلة الأخرى التي تشكل تهديدًا. نقاط الضعف هذه والطبيعة القديمة لـ VPF تجعل المؤسسات لا تزال تستخدم البرنامج عرضة للتهديدات السيبرانية، مثل البرمجيات الخبيثة أو الإصابة ببرامج الفدية، وانتهاكات البيانات، والوصول غير المصرح به إلى موارد المؤسسة.
وأخيرًا، يجب على الشركات أن تكون على دراية بقيود نظام التشغيل VFP. أولئك الذين يستخدمون أ 64 بت قد يواجه نظام التشغيل أو الأجهزة الأقدم مشكلات في التوافق مع VFP، بالإضافة إلى القيود الأخرى المذكورة أعلاه. وقد يحتاجون أيضًا إلى الاستثمار في أجهزة إضافية، مثل محاكيات لتشغيل برنامج VFP 32 بت على أنظمة 64 بت. قد لا تواجه الشركات التي تستخدم أنظمة تشغيل 32 بت نفس المشكلات – على الرغم من أن القيود الأخرى لا تزال ذات صلة.
دعم نهاية عمر VFP والاستخدام المستمر
أعلنت شركة Microsoft في مارس 2007 أن Visual FoxPro 9.0 سيكون الإصدار الأخير من البرنامج. لم يستبدل VFP بتقنية أخرى. وبدلاً من ذلك، قامت الشركة بتضييق نطاق إستراتيجية قاعدة البيانات الخاصة بها للتركيز على SQL Server باعتباره منصة RDBMS الرئيسية وAccess كقاعدة بيانات خفيفة الوزن للاستخدام مع تطبيقات Office.
أنهت مايكروسوفت الدعم الفني السائد لـ Visual FoxPro 9.0 في يناير 2010، وانتهى الدعم الموسع في يناير 2015، مما يشير رسميًا إلى موسوعة الحياة. ومع ذلك، لا يزال بإمكان المستخدمين تنزيل حزم الخدمة (SP2) لـ VFP 8.0 وVFP 9.0 من موقع Microsoft على الويب، إلى جانب Graphics Device Interface Plus. مكتبة الارتباط الديناميكي التحديثات ووظائف Sedna الإضافية وMicrosoft Object Linking and Embedding وموفر قاعدة البيانات وXSource لهذه الإصدارات. يتوفر أيضًا الكود المصدري لجزء مهام Visual FoxPro 8.0 SP1 للتنزيل على موقع Microsoft اعتبارًا من سبتمبر 2024.
ومع ذلك، يجب على المطورين أن يضعوا في اعتبارهم أن هذه التنزيلات تعود إلى عام 2016. ونتيجة لذلك، حتى مع تطبيق التنزيلات المتاحة، قد لا يكون تثبيت VPF الخاص بهم آمنًا تمامًا للاستخدام في بيئات الإنتاج. قد يحتوي أيضًا على القيود الأخرى التي تمت مناقشتها مسبقًا.
على الرغم من EOL الرسمي لـ VFP، لا تزال مجتمعات VFP موجودة – ويستمر العديد منها في تطوير كود VFP والفصول والمكتبات وتشغيل المنتديات للإجابة على أسئلة مستخدمي ومطوري VFP. أيضا، مبادرة VFPX تطوير إضافات مفتوحة المصدر لدعم اللغة وتوسيعها والترويج لها. تمت استضافة VFPX في الأصل على موقع مشروع CodePlex مفتوح المصدر من Microsoft ولكن تم نقله إلى GitHub في عام 2017 عندما أغلقت Microsoft CodePlex. ستظل هذه الإضافات متاحة على GitHub اعتبارًا من عام 2024.
متطلبات النظام VFP 9.0
يعمل Microsoft Visual FoxPro 9.0 فقط على بعض الإصدارات الأقدم من نظام التشغيل Windows: ويندوز 2000 SP4، Windows XP SP2، Windows Server 2003 SP2 وWindows Vista. فهو يتطلب ما لا يقل عن 64 ميجابايت من الذاكرة، لكن Microsoft أوصت بـ 128 ميجابايت أو أكثر. يحتاج التثبيت النموذجي أيضًا إلى 165 ميجابايت من مساحة القرص.
تقتصر قاعدة بيانات Visual FoxPro على سعة 2 غيغابايت لكل جدول، ويرجع ذلك جزئيًا إلى بنيتها ذات 32 بت. يعد SQL Server، الذي يتضمن دعم 64 بت، خيارًا أكثر واقعية للمؤسسات التي تحتاج إلى جداول أكبر وقواعد بيانات أكثر قابلية للتطوير، بالإضافة إلى الدعم الفني المستمر.
أمثلة على التعليمات البرمجية المصدر لـ FoxPro المرئية
يوفر موقع Microsoft على الويب نماذج تعليمات برمجية لمختلف العمليات في Visual FoxPro. يوضح مقتطف الكود هذا كيفية دمج البيانات من جداول “البلد” و”العميل” عبر وظيفة الانضمام الخارجي الكاملة:
SELECT Country.*, Customer.country, Customer.cust_id;
FROM testdata!customer FULL JOIN country ;
ON Customer.country = Country.country
هذه عينة أطول توضح كيفية استخدام ملف الإجراء المخزن لإنشاء قيمة معرف افتراضية فريدة لحقل قاعدة بيانات:
FUNCTION NewID(tcAlias)
LOCAL lcAlias, lnID, lcOldReprocess, lnOldArea
lnOldArea = SELECT() IF PARAMETERS() < 1
lcAlias = UPPER(ALIAS())
ELSE
lcAlias = UPPER(tcAlias)
ENDIF
lcOldReprocess = SET('REPROCESS')
* Lock until user presses Esc
SET REPROCESS TO AUTOMATIC
IF !USED("IDS")
USE newid!ids IN 0
ENDIF
SELECT ids
IF SEEK(lcAlias, "Ids", "table")
IF RLOCK()
lnID = ids.nextid
REPLACE ids.nextid WITH ids.nextid + 1
UNLOCK
ENDIF
ENDIF
SELECT (lnOldArea)
SET REPROCESS TO lcOldReprocess
RETURN lnID
ENDFUNC
يمكن للمطورين الذين يعملون مع OOP والخدمات الصغيرة معالجة مشكلات الخدمات الصغيرة الشائعة من خلال تطبيق مبادئ OOP. بالإضافة إلى ذلك، هناك العديد من خيارات قواعد البيانات المختلفة التي يمكن للمؤسسات الاختيار من بينها. تعرف على المزيد حول كيفية القيام بذلك مقارنة نظم إدارة قواعد البيانات (DBMS) ونظام إدارة قواعد البيانات (RDBMS)..