VFP в .Net компилятор - PullRequest
       20

VFP в .Net компилятор

1 голос
/ 11 сентября 2009

Кто-нибудь имел опыт работы или получил какие-либо знания о VFP для .Net Compiler ?

Я работаю в компании с широким спектром приложений VFP9, и они ищут быстрый способ запустить приложения в .Net. Меня попросили проверить этот компилятор, чтобы увидеть, является ли он приемлемым вариантом, но до сих пор я не смог заставить его успешно что-либо скомпилировать - даже мое приложение "Hello World" не работает.

Просто чтобы уточнить это последнее замечание: я могу заставить действительно простые приложения Fox "компилироваться", но создаваемый исполняемый файл .Net не выполняется успешно. Я разобрал источник и превратил его в C #, но обычно он содержит много ошибок (100+).

Я испытываю искушение отклонить всю технологию из-под контроля, однако, кажется, что есть большая поддержка для этого и волнение об этом сообществом пользователей Fox. У кого-нибудь есть понимание этого?

Вот ссылка с VFP на .Net Compiler

Ответы [ 3 ]

4 голосов
/ 15 сентября 2009

Теперь у меня есть некоторый опыт работы с компилятором 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). Если кому-то понадобится больше подробностей, я с удовольствием остановлюсь на этом.

0 голосов
/ 06 ноября 2009

Некоторая дополнительная информация о формах в VFP Developer Studio для .Net: eTecnologia объявила, что формы, разработанные как формы VFP в SharpDevelop, будут дополнительно компилироваться в SVG, который может работать в любом браузере, кроме IE, хотя есть плагин Google.в IE, который преобразует SVG в SWF.Ранее они также обязались выпускать формы XAML для VFP, разработанные в SharpDevelop.Кроме того, элементы управления .Net, элементы управления COM и, как нам говорят, элементы управления Java, смогут использоваться на формах VFP, разработанных в настроенном #D, который поставляется вместе с Developer Studio.

0 голосов
/ 11 сентября 2009

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-взаимодействия, а методы и свойства будут доступны в .Net. Ваши функции могут выполнять практически все в VFP, запросах, автоматизации и т. Д. И вы можете просто создать XMLAdapter для генерации XML-строк, которые возвращают один или несколько наборов курсоров в виде одного большого блока или по отдельности через несколько вызовов различных методов.

Удачи.

Кстати ... есть два предстоящих семинара для разработчиков VFP, которые изучают конвертацию / доступ через .net. Один на http://www.oakleafsd.com/, другой на http://www.eps -software.com /

...