2017-02-04 26 views
0

Одно приложение asp.net, которое я пишу, должно служить pdf-файлу и чертежу (dxf AutoCAD-файл), созданным с помощью программы Delphi.Как использовать библиотеку, созданную в Delphi в приложении asp.net?

Просто для уточнения сценария: у меня есть опытные разработчики Delphi, поэтому я назначил им задачу создания программ, которые создают файл pdf и dxf.

Так что в общей сложности 3 систем:

1) Основное применение asp.net

2) приложение Delphi, который recieves некоторых параметров (от asp.net) и genreates файла PDF.

3) приложение Delphi, которое получает некоторые параметры (из asp.net) и создает файл dxf.

Теперь приложения Delphi как автономные приложения win32 (в которых парметеры настроены с помощью элементов управления пользовательского интерфейса) работают как отлично, так и мне нужно их преобразовать, чтобы их можно было использовать из asp.net.

Мне не интересны проблемы параллелизма/производительности, моя цель - просто «часть системы, которая создает файл», чтобы я мог позволить enduser приложения asp.net загрузить его. Я также могу согласиться с тем, что это из-за нитей (я имею в виду: только один пользователь может вызвать фоновое одно из предложений Delphi за раз)

Не могли бы вы предложить лучший подход для этого?

Перед тем как начать этот проэкт, я имел в виду «dll» или «command line exe», но теперь я сомневаюсь и удивляюсь, что, возможно, мне не хватает более удобной техники.

Обратите внимание, что при переносе на библиотеки C# это не опция, поскольку мы использовали некоторые сторонние компоненты Delphi, у которых нет 100% .net-аналогов.

+1

Я не понимаю отрицательного голоса. Пожалуйста, объясните это с комментарием. Я много искал, прежде чем спрашивать. – LaBracca

+0

Я бы предположил, что ваш вопрос слишком широк, так как вы действительно просите предложения (* Не могли бы вы предложить ... *). Это как приходить сюда и спрашивать «Как я могу интегрироваться с API Карт Google». Несмотря на то что вы много гугли, вы не опубликовали то, что вы пробовали до сих пор, не показывали образец кода. – Alisson

+1

В любом случае, если бы я должен был ответить на это, я бы предложил * ваше приложение C# для создания **. Txt ** или **. Xml **, содержащего параметры в некоторой папке, приложение Delphi имело бы механизм (как «Таймер»), чтобы в конечном итоге отсканировать эту папку и обработать запрос, приложение C# будет ждать, пока ** pdf ** будет доступен в другой (или той же) папке. Возможно, вам захочется создать другую папку для вашего другого типа запросов. Кроме того, я бы попытался создать эти приложения для Delphi как ** windows services **, похоже, им действительно не нужен пользовательский интерфейс. – Alisson

ответ

4

Несколько лет назад (вокруг таймфрейма Delphi 8) существовал фактический компилятор Delphi.NET, который мог создавать сборки .NET, которые запускаются в ASP.NET (my own website по-прежнему работает сегодня на некоторых сборках ASP.NET, которые я написал в Delphi. NET), и даже использовать Delphi as a scripting language in ASP.NET coding. Но Delphi.NET теперь является мертвым продуктом, и .NET больше не поддерживается платформой любого современного Delphi-компилятора.

Так что, если вы хотите запустить Delphi код в ASP.NET, вы будете иметь либо:

  1. Написать простой DLL и установить его в папку вашего сайта \bin, а затем получить доступ к нему используя PInvoke.

  2. Напишите COM-объект и установите его на серверной машине, а затем получите доступ к нему с помощью COM-взаимодействия (см. Метод Server.CreateObject()).

  3. отправьте свой код другому компилятору, который поддерживает собственную .NET-разработку.

+1

Вы можете открыть код как COM-объект. Или выставите его как DLL Win32 и используйте его с помощью pinvoke. Таким образом, этот ответ фактически неверен. –

+0

Спасибо. Пиновке звучит хорошо. Еще одно интеллектуальное решение - использовать автономный exe (с использованием таймера, описанный в комментариях вопроса), установленный в NSSM. – LaBracca

+1

Я предложил подход таймера, потому что это было самое простое решение, которое я мог бы подумать. Если бы я использовал рекомендации, данные @RemyLebeau, мне нужно было бы провести некоторое повторное исследование, так как я новичок, когда дело доходит до COM и генерирует DLL-совместимые DLL-файлы. Если у вас есть время для проведения исследований (или уже знаете, как это сделать), я думаю, что это будет хорошей идеей после предложения Реми. – Alisson

 Смежные вопросы

  • Нет связанных вопросов^_^