我现在有一些使用 VFP 到 .Net 编译器的经验,你可以在这里找到。
这实际上是 .Net 的编译器,与 COM Interop 或 Web 服务无关。整个事情是围绕编译器附带的 SharpDevelop 构建的。实际上,您可以启动 SharpDevelop 并输入 FoxPro PRG。智能感知功能齐全,支持大多数(如果不是全部)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 表单)。如果有人想要更多细节,我很乐意对此进行扩展。