Integração Progress / .NET

Building an EDI Hub using AS2, OpenEdge? 10 and .NET
Technical issues
.ASP.NET does not release the AppServer ? fixed in 10.0B
.Occasional random disconnections
.Some lapses in integration with .NET tools e.g. flaws in data binding
.Issues with number of rows returned
Other issues
Be aware of OpenEdge 10 licensing before you embark on a project
Interfacing to .NET
.ProxyGen creates a .NET Managed Assembly
.This is imported into .NET along with some standard Progress .DLLs
.NET can now see the business logic methods plus the standard methods that are part of the ProDataSet
.NET sees the ProDataSet as an ADO.NET data set, so can databind with it

Creating a Dynamic .NET Client for OpenEdge? 10
The OpenEdge 10
Open Client Toolkit
.There were many problems with the .NET proxy during the beta
.Therefore we started with a Web services approach
.The .NET proxy problems were eventually fixed in OpenEdge 10.0A SP1
.However, the .NET proxy will not run with AIA until OpenEdge 10.0B

.NET communication
.ProxyGen generates an .dll file
.This is a so-called .NET assembly (compiled library)
.It enables the .NET program to communicate with the Progress AppServer
.The data traffic is exactly the same as native Progress
.Uses standard HTTP/S and AIA

Web Service approach
..NET natively supports Web services
.ProxyGen generates a .wsdl file and a .wsm file
.The WSDL file describes the Web service (API and location)
.The .wsm file is needed to deploy the Web service
.Communication is standard XML over HTTP/S

Initial approach: Web Services
Not very efficient
But it worked
Uses standard HTTP/S and WSA
Imposes some limitations on the data traffic
There is no state (?state-free?)

Drawback of Web Services
.A Web service is not very efficient for this purpose because it has too much overhead
.AppServer calls are converted to XML and wrapped in SOAP messages
.Ideal for occasional inter-application communication
.Not ideal for running a single application over the Internet

Using ProxyGen
.Define the server-side procedures that you want to expose in ProxyGen
.For Web services, it is better NOT to use SubAppObjects
.Choose a Namespace for your Web service
.Choose a SOAP message format (RPC/Encoded best matches the 4GL)

.The principle works
.Switch to .NET proxy as soon as possible
..NET proxy with AIA supported in OpenEdge 10.0B
.Figure out and solve all incompatibilities
.Handle the unknown value
.Add new functionality on the client
.Create support for client-side .NET code

.NET Open Client – Progress? DataSet and ADO.NET DataSet
The .NET Open Client is designed from the ground up to support Progress DataSets and ADO.NET DataSets
The best way to leverage the power of the .NET Open Client is to use DataSets

The Nuts and Bolts of a .NET Open Client Implementation
Using .NET Open Client versus Web Services
*Use .NET Open Client
Control both client and server environments
.NET client
ProDataSets map naturally to ADO.NET
Purposed protocol = better performance
*Use Web Services
Control server environment only
Unknown clients
Complex data represented in XML
Caution: XML can be expensive, HTTP chatty

.NET Open Client Development Model
Develop 4GL business logic / data access – Progress AppServer
Use ProxyGen to generate .NET proxy – Fully managed .NET proxy classes
Develop .NET client – Any .NET language; Use generated .NET proxy classes
Deploy .NET client – Proxy assembly, .NET Open Client Runtime
NET client calls proxy methods – Instantiate .NET proxy objects; Call methods using .NET data types
Proxy sends request to the AppServer – Uses the .NET Open Client Runtime; Optimized wire protocol
AppServer sends response back to proxy – Proxy maintains context for the AppServer
Preparing for .NET Open Client

Version 9 AppServer or higher – Business logic must run on the AppServer
Visual Studio .NET and .NET Framework – Choose your .NET language
The OpenEdge .NET Open Client – Available in OpenEdge Release 10

.NET Client Architectures for OpenEdge? Applications


formas de aceder ao progress
OpenEdge .NET Interfaces – AppServer and Database access to the .NET Framework; The OpenEdge Application?s logic is encapsulated as business objects. The business object?s logic is accessible to the .NET application written in C#
or VB .NET

Progress Dynamics for .NET – Dynamic generation and rendering of a .NET UI from the Dynamics repository. In Progress Dynamics, an option for a
.NET User Interface Single design ? multiple interfaces .NET UI from the same repository definitions as GUI, WebClient and DHMTL
Yes, you can have OE10 based proxies call a V9 AppServer. You just cannot use any of the new OE10 data types.
Our application is DLC version 9.1D05. That’s the version that compiles and runs the r code.
I have installed OpenEdge 10, so I can create dotnet proxies for procdures that are actually running in a version 9 appserver.
Our appserver is still DLC91D (with some service packs).
I have installed OE10 to be able to generate a .NET proxy, and now we have a .NET application that successfully receives data from the DLC91D appserver.
Very nice.
Progress 9.1D does not offer ProDataSets, which are available in OpenEdge 10.

por Vitor Silva

Comments are closed.