Ste*_*eve 1 .net foxpro visual-foxpro
有没有人有过VFP 到 .Net 编译器的经验或了解?
我在一家拥有广泛 VFP9 应用程序的公司工作,他们正在寻找一种快速方法来让应用程序在 .Net 中运行。我被要求检查这个编译器,看看它是否是一个可行的选项,但到目前为止我还无法让它成功编译任何东西 - 即使我的“Hello World”世界应用程序也无法运行。
只是为了限定最后一句话:我可以“编译”非常简单的 Fox 应用程序,但生成的 .Net 可执行文件无法成功执行。我已经反汇编了源代码并将其转换为 C#,但通常它包含许多错误(100 多个)。
我很想立即放弃整个技术,但是 Fox 用户社区似乎对此有很多支持和兴奋。有人对此有任何见解吗?
这是VFP 到 .Net 编译器的链接
我现在对 VFP 到 .Net 编译器有了一些经验,您可以在这里找到。
这实际上是.Net 的编译器,与 COM Interop 或 Web Services 无关。整个事情是围绕编译器附带的 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();
}
Run Code Online (Sandbox Code Playgroud)
这意味着,如果您在 Fox 中非常高效,但需要 .Net 解决方案,则可以在 Fox 中编码并生成 .Net 程序集。
不过,我建议谨慎一些,因为并非所有内容都像上面的 StrToFile 示例一样好地实现。它对 Fox 表单之类的东西进行建模的方式非常糟糕,尽管它确实有效(您可以采用现有的 Fox 表单并将其添加到 SharpDevelop,它会将其转换为 .Net 表单)。如果有人想要更多细节,我很乐意对此进行扩展。