Вопрос

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

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

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

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

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

Это было полезно?

Решение

Теперь у меня есть некоторый опыт работы с компилятором VFP для .Net, который вы можете найти здесь здесь. .

Это на самом деле компилятор для .Net и не имеет ничего общего с COM Interop или Web-сервисами. Все это построено на 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). Если кому-то понадобится больше подробностей, я с удовольствием остановлюсь на этом.

Другие советы

VFP напрямую не "компилирует" к .Net продукту. Однако вы можете получить к нему доступ через COM и создать проект в виде одной или нескольких многопоточных библиотек.

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/

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top