.NET dll from PowerBuilder (10 or 11.5) -


If I see a .NET DLL referenced from PowerBuilder (10 or 11.5), then which of the following best practices is ?

1) Register DLL as a COM object, and use the COM object through OLEObject 2) Upgrade to 11.5, and convert it to PB.NET so that I actually have a PowerBuilder C # blocking code 3) Another method

I should be aware of these methods What are some things?

I have not done anything with PowerBuilder, but this is a technique that we successfully ) Done with a project which could not immediately be migrated from VB 6.

1) We masked with COM references to expose a Shim / Nets required by us. (We have also specified the use of GUID, so we had complete control over the compatibility changes.)

2) We have referenced com objects in our VB6 code (as you mentioned in the PowerBuilder code Handling (allobject in your case)

3) The items were migrated (in our case in C #), they referred to the built-in NAT classes instead of the com-shim. (We made sure to tag Shim with obsolete tag that no one would use it by mistake.)

4) After all reference to Shim was migrated, we removed Shim . (We actually did it in two phases.In the first phase, we left Shim but modified it to throw an exception, and what information was given about logs, in this way we will know where it is from After making sure any calls were being made that there was no problem, Shim was removed in the next step.)

This was a benefit to us that the migration can be incrementally we have built-inDecided not to display .NET objects directly because some of them were changing risk and we must have the COM interface as stable as possible.

Upgrading to PB.net is definitely a possibility. But I do not know how complex the migration will be. You can find the necessary time to have a major project (this will definitely be for us).

Other methods, which we considered, were rejected as inappropriate for our needs:

  • Any other application (a "service") By wrapping the .NET components in and talking to those components through socket communication.

  • "Extrude it" utilities, using the NAT framework and transferring information (for example) through a file based system.

Things to be aware about:

  • The threading model in the use of both sides of the link Because a part of the system has gone MTA instead of STA - see, for more information.)

  • What is the exception to your application in the .NET side? This can be a very disappointing "normal" error, and it may be instead of the .net code instead of the caller. We have deposited the logging on the .NET side who gave more records of any exception exception before throwing it again and could allow the caller to handle things better.

I hope this helps. Congratulations!


Comments

Popular posts from this blog

c# - How to capture HTTP packet with SharpPcap -

php - Multiple Select with Explode: only returns the word "Array" -

php - jQuery AJAX Post not working -