Теперь у меня есть некоторый опыт работы с компилятором VFP для .Net, который вы можете найти здесь .
Это на самом деле компилятор для .Net и не имеет ничего общего с COM-взаимодействием или веб-службами. Все это построено на SharpDevelop, который поставляется с компилятором. Эффективно вы можете запустить SharpDevelop и ввести FoxPro PRG. В intellisense есть полный текст, и большинство, если не все команды и функции Fox поддерживаются. Когда вы нажимаете «compile», с другой стороны получается полная .Net сборка.
Если запустить сборку, экземпляра VFP и взаимодействия COM не видно. Как это работает? Парни, стоящие за этим, создали .Net функции, которые отображаются на функции Fox, поэтому, например, если вы вызываете 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). Если кому-то понадобится больше подробностей, я с удовольствием остановлюсь на этом.