سؤال

هل كان لدى أي شخص خبرة أو لديه أي معرفة حول VFP إلى .NET برنامج التحويل البرمجي?

أنا أعمل في شركة ذات مجموعة واسعة من تطبيقات VFP9 وهم يبحثون عن طريقة سريعة لجعل التطبيقات تعمل في .NET. لقد طُلب مني الاطلاع على هذا المترجم لمعرفة ما إذا كان خيارًا قابلاً للتطبيق ، لكن حتى الآن لم أتمكن من الحصول عليه لتجميع أي شيء بنجاح - حتى تطبيق "Hello World" الخاص بي لا يعمل.

فقط لتأهيل هذه الملاحظة الأخيرة: يمكنني الحصول على تطبيقات Fox بسيطة حقًا "لتجميع" ، لكن .NET القابلة للتنفيذ التي يتم إنتاجها لا يتم تنفيذها بنجاح. لقد قمت بتفكيك المصدر وحولته إلى C# ولكن بشكل عام يحتوي على العديد من الأخطاء (100+).

أنا أميل إلى رفض التكنولوجيا بأكملها عن السيطرة ، لكن يبدو أن هناك الكثير من الدعم لهذا وإثارة مجتمع مستخدمي Fox. هل لدى أي شخص أي نظرة ثاقبة على هذا؟

هنا حلقة الوصل إلى VFP إلى .NET برنامج التحويل البرمجي

هل كانت مفيدة؟

المحلول

لدي الآن بعض الخبرة مع برنامج التحويل البرمجي لـ VFP إلى .NET الذي يمكنك العثور عليه هنا.

هذا في الواقع مترجم لـ .NET وليس له أي علاقة بخدمات com interop أو web. كل شيء مبني حول SharpDevelop الذي يشحن مع المترجم. على نحو فعال ، يمكنك إطلاق تطور SharpDevelop واكتب في Progro PRG. هناك ممتلئ في Intellisense ومعظم أوامر Fox إن لم يكن جميعها. عندما تضغط على التجميع ، فإن ما يخرج من الجانب الآخر هو مجموعة كاملة .NET.

إذا قمت بتشغيل التجميع ، فلا يوجد مثيل لـ VFP ولا يوجد com interop في الأفق. كيف يعمل؟ قام الرجال الذين يقفون وراءه بإنشاء وظائف .NET التي تعين على وظائف Fox ، لذلك على سبيل المثال إذا قمت بالاتصال بـ Strtofile () ، فهذا هو الكود الذي يتم تشغيله فعليًا (يتم تقديمه إليك من قبل عجائب العاكس):

public static void StrToFile(string cExpression, string cFileName)
{
    if (File.Exists(cFileName))
    {
        File.Delete(cFileName);
    }
    FileStream stream = new FileStream(cFileName, FileMode.CreateNew, FileAccess.ReadWrite);
    StreamWriter writer = new StreamWriter(stream);
    writer.Write(cExpression);
    writer.Flush();
    writer.Close();
    stream.Close();
}

ما يعنيه هذا هو أنه إذا كنت منتجًا للغاية في Fox ولكنك تحتاج إلى حل .NET ، يمكنك ترميزه في Fox وإنتاج مجموعة .NET.

ومع ذلك ، أنصح بعض الحذر لأنه لا يتم تنفيذ كل شيء بشكل جيد مثل مثال strtofile أعلاه. الطريقة التي تصمم بها أشياء مثل Fox Forms مروعة للغاية ، على الرغم من أنها تعمل (يمكنك أخذ نموذج FOX موجود وإضافته إلى SharpDevelop وسيقوم بتحويله إلى نموذج .NET). إذا كان أي شخص يريد المزيد من التفاصيل سأكون سعيدًا بالتوسع في هذا الأمر.

نصائح أخرى

VFP لا "ترجمة" مباشرة إلى منتج .NET. ومع ذلك ، يمكنك الوصول إليه عبر COM وإنشاء مشروع كـ DLL واحد أو متعدد الخيوط.

define class MyVFPForDotNet as custom OLEPUBLIC
  cSomeProperty = ""
  nOtherProperty = ""

  Function Init()
     cSomeProperty = curdir()

  endfunc

  Function SendBackAMessage()
     return "Hello World"
  endfunc

  function CallWithParms( cParm1 as String, nParm2 as Integer, dSomeDate as DateTime )
     .. do whatever

     return "whatever"
  endfunc

enddefine

ثم يمكنك إضافته ك com interop وستكون الأساليب والخصائص متاحة في .NET. يمكن أن تفعل وظائفك أي شيء تقريبًا في VFP ، والاستعلام ، والأتمتة ، وما إلى ذلك ، ويمكنك ببساطة القيام بـ XMLADAPTER لإنشاء سلاسل XML للعودة إلى مجموعات المؤشر المفردة أو المتعددة كجزء كبير واحد ، أو بشكل فردي عبر مكالمات متعددة إلى طرق مختلفة.

حظا طيبا وفقك الله.

راجع للشغل ... هناك نوعان من الندوة القادمة التي يتم تقديمها لمطوري VFP الذين يبحثون في تحويل / الوصول عبر .NET. واحد في http://www.oakleafsd.com/, ، آخر في http://www.eps-software.com/

بعض المعلومات الإضافية عن النماذج في استوديو VFP Developer لـ .NET: EtecNologia قد أعلنت أن النماذج المصممة كأشكال VFP في SharpDevelop ستجمع اختياريًا إلى SVG ، والتي يمكن تشغيلها على كل متصفح باستثناء IE ، على الرغم من أن هناك مكونًا إضافيًا لـ Google لـ IE الذي يحول SVG إلى SWF. كما أنها التزمت مسبقًا بإخراج XAML لأشكال VFP المصممة في SharpDevelop. بالإضافة إلى ذلك ، سيكون من المتمكن جميعًا استخدام أدوات التحكم .NET ، وعناصر التحكم في COM ، وقيل لنا عناصر التحكم في Java ، في نماذج VFP المصممة في #D المخصصة التي تشحن مع استوديو المطور.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top