私は今、ここで見つけることができる.NetコンパイラへのVFPの経験を持っています。
これは実際には.Netのコンパイラであり、COM相互運用機能やWebサービスとは何の関係もありません。すべては、コンパイラに付属しているSharpDevelopを中心に構築されています。事実上、SharpDevelopを起動して、FoxProPRGと入力できます。完全なインテリセンスがあり、すべてではないにしてもほとんどのFoxコマンドと関数がサポートされています。コンパイルを押すと、反対側に出てくるのは完全な.Netアセンブリです。
アセンブリを実行する場合、VFPのインスタンスはなく、COMの相互運用性も見えません。それはどのように機能しますか?その背後にいる人々は、Fox関数にマップする.Net関数を作成しました。たとえば、StrToFile()を呼び出すと、これは実際に実行されるコードです(Reflectorの驚異によってもたらされます)。
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フォームのようなものをモデル化する方法は、機能しますが、かなりひどいものです(既存のFoxフォームを取得して、SharpDevelopに追加すると、.Netフォームに変換されます)。誰かがこれ以上の詳細を知りたい場合は、これについて詳しく説明します。