0

私は Progress ABL で作業しており、私たちが AppServer と呼んでいるものを使用しています。アプリケーション サーバー。プログレス データベースと対話し、サーバー上でビジネス ロジックを実行してから、クライアントに応答を返すことができるプロセス。

これらには 4 つのモードがありますが、接続全体で状態を保持する appserver である state-reset と、ファイア アンド フォーゲット モードである state-free に最も慣れています。

この製品は、.net などの他のクライアントとの互換性を備えた高度な独自仕様です。

私の質問は、同じことを行う純粋な .NET のソリューションが存在するかどうかです。ASP.net や Web サービスについて話しているわけではありません。別の問題に対処しているからです。独自のシステムを作成しなくても、データベースに接続して応答を送信できるコードを実行できるものが必要です。

AppServer でコードを実行する例。

変数 handleToAppServer をハンドル no-undo として定義します。変数 charResponse を文字の取り消し不可として定義します。

サーバー hAppServer で「AppServerProcedure.p」を実行します (出力 charResponse)。

4

4 に答える 4

1

私は長年のABL開発者であり、これは素晴らしい質問だと思います。私もC#を使用しています。両方のプラットフォームが好きで、尊重しています。しかし、C#開発者がOPで説明されていることをどのように実行するかを実際に理解したことはなく、P4GLでは非常に単純に見えます。

上記のp.marinoからの応答は、SPでやりたいことができることを前提としています。確かにそうなることはよくありますが、私たちABL開発者は、SQLで達成できることをはるかに超えた作業に慣れています。

それで、C#でビジネスロジックを記述し、それをリモートで実行させたいが、SQL SPとして実行させたくない場合、私のオプションは何ですか?.NET Remoting、Webサービス、または.NET Enterprise Servicesは多分?私はそれらのどれもABLAppServersほど単純ではないと思います、そしてWSを除いてそれらのどれも多くの牽引力を持っていないようです。

(私がP4GLファンのように聞こえないように、彼らのGUIは完全に吹き飛ばされ、彼らのツールは嫌なものであり、ライセンス料はかなり高額です。私はいつでもC#またはSwing over P4GLでGUIを作成します。しかし、リモートビジネスロジック...私はよくわかりません)。

于 2009-03-05T00:06:13.663 に答える
1

プログレス アプリ サーバーは、ロジック用の db および ui ニュートラル コンテナーのようなものです。それらは、Oracle の一部や SQL Server などの一部としてではなく、単独で実行され、クライアントが .NET、Java、WS、またはグリーン スクリーンのいずれであるかは気にしません。彼らはデータベース接続を必要としませんが、それが適切なことであれば接続できます。

最初の質問者は、これらの機能のほとんどを望んでいないようで、物事の音から、選択したデータベースのストアド プロシージャにおそらく満足するでしょう。

元の質問にとって重要な機能がもう 1 つあります。Progress プログラマーがアプリ サーバーを好む本当の理由は、おそらく、単一のプログラミング言語を使用できるからです。ストアド プロシージャの使用を開始する場合は、UI をコーディングする言語とは異なる言語を使用する必要があります。また、各ターゲット データベースには、処理する独自の言語と癖があります。

(プログレス トリガーは、サーバーのコンテキスト内ではなく、クライアント上で実行されます。そのため、ストアド プロシージャとはあまり似ていません。)

于 2009-06-16T15:40:58.013 に答える
0

正直なところ、実際の問題が何であるかを理解しているかどうかはわかりません。

クライアント アプリケーションが別の DB サーバーに接続できることを懸念している場合、これは実際には標準であり、例外ではありません。任意の JDBC/ODBC ブリッジを使用するだけで、クライアント上でコードが実行され、ネットワークとの間でデータが移動されるだけです。

ロジックをリモート サーバーで実行する場合(名前付きの AppServer でプロシージャを呼び出す例では後者が推奨されます)、基本は同じです。つまり、ODBC を使用して DB サーバーに接続し、ほとんどのデータを移動します。ストアド プロシージャへのロジック。

(あなたが探しているものは、ほとんどの最新の RDBMS で「ストアド プロシージャ」という名前で呼ばれていると思います。つまり、関数またはプロシージャのいずれかで、DB サーバー自体で排他的に実行される完全なコード ユニットです。クライアントからリモートで呼び出すことができます。ただし、DB サーバーのメモリとコンピューティング リソースを使用します)。

これもまた、DB を操作する場合のかなり標準的なアーキテクチャーの選択です。Progress ABL/4GL には混合パラダイム モデルがあり、視点が少し混乱する可能性があります (メモリが機能する場合、APPServer はある種のヘッドレス「スーパークライアント」として実行されるプロセスであり、「ストアド プロシージャ」、つまりコードの概念はありません)。おそらくトリガーを除いて、DB自体の内部で実行されます)。

于 2009-02-05T12:35:07.167 に答える
0

今後の参考のための回答:

はい、今あります。OpenEdge 11.5 (2014 年 12 月にリリース) では、「Pacific AppServer」が従来のアプリケーション サーバーの代替として含まれていました。これは Apache Tomcat に基づいており、古いものよりも軽量です。

詳細については、次を参照してください。

11.5 ドキュメントの完全なセット

OpenEdge向けPASのご紹介 (PDF)

于 2015-04-16T07:35:39.660 に答える