.NET and AppServer

Lately I was checking how to control AppServer using C#. I would like to say that I am disappointed, the documentation from this website is very poor and even contains multiple mistakes in examples (logic and how it should be used). I even have used JAVA documentation writing C# code because JAVA documentation was in a lot better quality comparing to .NET one. And ProxyGen has some problems with how it compiles everything to .NET assembly. When I put any code which uses Temp-Table as parameter it will not be able to generate me assembly files, while still it will be able to do it with JAVA. (Still looking for any ways how to accomplish it). Here is even such this as Progress.Java (namespace). It looks that they had support for JAVA and decided to port in to .NET, but did not but a lot of effort doing this resulting in poor quality .NET support. Isn't that strange? I was not expecting that poor quality.

You have posted to a forum that requires a moderator to approve posts before they are publicly available.

the Java and the .NET Proxy are fundamentally different. The Progress.Java Namespace in the assemblies deployed from Progress (containing the AppServer communication protocol) seem the contain internal functionality required for the Name Server or AppServer Broker communication - all java processes running on the server.

I personally had good success in working through the documentation. I think it's pretty good step-by-step. But I must admit, that I never tried the sample code...

Also, when following the various proxy types over the years, it get's clear, that the .NET proxy has a certain preference at OE development: New features like the new data types/prodatasets been added to the .NET proxy before all the other proxy options.

it compiles everything to .NET assembly. When I put

any code which uses Temp-Table as parameter it will

not be able to generate me assembly files, while

still it will be able to do it with JAVA. (Still

Do you have details on the errors you are receiving? They should be in the log file generated by proxygen.

The two most common cases are:

1.) Wrong .NET SDK. The ProxyGen needs the xsd.exe utility of the .NET SDK to generate the c# source code for a typed dataset/temp-table in the proxy assembly. There are some dependencies between the SDK version and the OpenEdge version.

What version of OpenEdge are you using and which SDK do you have installed?

2.) Missing .NET SDK / Unable to find SDK if more than one version installed.

Specifying the compiler (csc and xsd path) to the right version helps here. That's an option in the generate proxy dialog.

Besides than this there have been some issues or limitations when more than one temp-table had the same name but different schema. The K-Base has o number of articles here that should describe the problem and workarounds.

From an architectural point of view (and not because you had some issues) it might be a good advice to use dynamic temp-table (TABLE-HANDLE) parameters instead of static ones. This increases the flexibility a lot.

Any more detail on your issues might help in giving you additional help!

Mike

You have posted to a forum that requires a moderator to approve posts before they are publicly available.

I am quite new to progress so I am sorry if I don not know many things. The examples are really faulty, that is for sure. Talking about the ProxyLog I do not have it at this time, but the problem was related with the syntax. There was a few wrong tokens, trying to compile everything myself I got error that ttTabeDataTable is missing in namespace, while still ttTableDataTable.cs being included in compile command, but error about wrong tokens.

For this testing I am using Visual C# 2008 with SP1 and latest .NET Framework SDK (v2.0). To be more specific you will have to wait till tomorrow. Right now I am using 9.0E, 10.1C and 10.2A OpenEdnge versions. I was using 10.1C for this test. The .NET version wtih SP1 update should be 3.5 now. But ProxyGen as I noted is using 2.0XXX version of .NET.

I used synchronize program to capture ProxyGen generated file and tried to compile myself using the same command-line commands as is in log. And again it did not compile and with the last command. This time resulting in:

ManoTrys.cs(176,66): error CS0234: The type or namespace name 'ttTestasDataTable' does not exist in the namespace

'BA.StrongTypesNS' (are you missing an assembly reference?)

It looks really strange, all files are given to compiler. BA.StrongTypesNS namespace does exist and it does have ttTestasDataTable and it looks that there are no conditional compiler directives stopping it from compiling.

You have posted to a forum that requires a moderator to approve posts before they are publicly available.

You know the problem was solved by using XSD tool from 1.1 SDK and CSC from 2.0. Basically you can not use 1.1 CSC for compiling because Progress .NET Assemblies are compiled with the second version. So, only second and higher version is required. But for class generator you can use XSD 1.1.

I have noticed that you should be using the same .NET version for client too, but tried writting application with 3.5 SP1 and it worked flawlessly.

You have posted to a forum that requires a moderator to approve posts before they are publicly available.