2017-02-04 3 views
0

私が書いている1つのasp.netアプリケーションは、両方ともDelphiプログラムで作成されたpdfファイルと図面(dxf AutoCADファイル)を提供する必要があります。asp.netアプリケーションでDelphiで作成されたライブラリを使用するには?

私は熟練したDelphi開発者がいるので、pdfファイルとdxfファイルを作成するプログラムを作成するタスクを割り当てました。

1)asp.netメインアプリケーション

2)asp.netから(いくつかのパラメータをrecieves)およびPDFファイルをgenreates Delphiアプリケーション:

はSO 3つのシステムの合計があります。

3)いくつかのパラメータ(asp.netから)を受け取り、dxfファイルを作成するDelphiアプリケーション。

スタンドアロンwin32アプリケーション(パルメータがUIコントロールで設定されている)としてのDelphiアプリケーションは、うまく動作し、asp.netから使用できるように変換する必要があります。

私は同時実行性/パフォーマンスの問題に興味はありません、私の目標はasp.netアプリケーションのエンドユーザにダウンロードさせるために、単に "ファイルを作成するシステムの一部"を呼び出すことです。私はこれがスレッドから外れていることを受け入れることもできます(つまり、一度に1人のユーザーしかDelphiのアプリケーションをバックグラウンドで呼び出すことはできません)

どうすればよいでしょうか?

このproejctを開始する前に、私は「dll」または「コマンドラインexe」を念頭に置いていましたが、今は疑問があり、もっと便利なテクニックが不足している可能性があります。

100%.netの対応がないサードパーティ製のDelphiコンポーネントを使用していたため、ライブラリに移植することはできません。

+1

私は否定的な投票を理解していません。コメントで説明してください。私は尋ねる前にたくさんのグーグルグーグルを行った – LaBracca

+0

私はあなたの質問が広すぎると思います。あなたが実際に提案を求めているからです。ここに来て、「Google Maps APIとどのように統合できますか」と尋ねるのと同じです。あなたがたくさんのグーグルでグーグルでも、これまでに試したことを投稿していないが、コードサンプルを表示していない。 – Alisson

+1

とにかく、私が答えたいなら、あなたのC#appに** .txt **または**。xml **を作成するよう勧めています。これは、いくつかのフォルダ内のパラメータを含んでいます.Delphiアプリケーションは、最終的にそのフォルダをスキャンしてリクエストを処理するために、C#アプリケーションは** pdf **が別の(または同じ)フォルダで利用可能になるまで待つことになります。他のタイプのリクエスト用に別のフォルダを作成することもできます。また、これらのDelphiアプリケーションを** Windowsサービス**として作成しようとしていますが、実際にはUIが必要ないようです。 – Alisson

答えて

4

何年も前(Delphi 8タイムフレーム近辺)には、ASP.NETで動作する.NETアセンブリを作成できる実際のDelphi.NETコンパイラがありました(my own websiteはDelphiで書いた一部のASP.NETアセンブリではまだ実行されています)。 NET)、さらにDelphi as a scripting language in ASP.NET codingを使用してください。しかし、Delphi.NETは現在死んでいる製品であり、.NETはもはや最新のDelphiコンパイラによってサポートされているプラ​​ットフォームではありません。

あなたはASP.NETでDelphiのコードを実行したいのであれば、あなたはどちらかに持ってしようとしている。

  1. はプレーンDLLを書いて、あなたのサイトの\binフォルダにそれをインストールし、次にそれにアクセスPInvokeを使用します。

  2. COMオブジェクトを作成してサーバーマシンにインストールし、COM相互運用機能を使用してアクセスします(Server.CreateObject()メソッドを参照)。

  3. ネイティブ.NET開発をサポートする別のコンパイラにコードを移植します。

+1

コードをCOMオブジェクトとして公開することができます。または、Win32 dllとして公開し、pinvokeを使用して消耗します。この答えは実際には間違っています。 –

+0

ありがとうございます。 Pinovkeはいいですね。別のスマートな解決策は、NSSM – LaBracca

+1

と一緒にインストールされたスタンドアロンのexe(質問のコメントに記載されているタイマーのアプローチを使用することです)が考えられます。 @RemyLebeauの提案を使用する場合、私はCOMに来て、.netと互換性のあるDLLを生成する初心者なので、いくつかのreasearchを行う必要があります。あなたが研究をする時間があるなら(またはそれをやる方法をすでに知っている)、私はレミーの提案に従うことが良い考えだと思います。 – Alisson

関連する問題