I have been doing some proof-of-concept work for a client that has a series of n-tier Classic ASP web applications. You will all remember the n-tier architecture of the late 1990’s with Classic ASP pages that call MTS / COM+ components to perform business logic and handle distributed transactions.
My client has implemented all COM+ components as Visual Basic 6.0 components. With the VB end-of-life in 2008 in mind (but not VBScript), my client has requested my to investigate options for migrating VB6 components to .NET and c#.
Some aspects of their architecture lend itself to interop rather easily; however, there is one particular aspect where I have yet to come up with a good alternative. The issue I am referring to is when COM components use two-dimensional arrays to transport data from COM+ components to Classic ASP. When n-tier architecture was the key to a good resume, a common design issue for architects was whether to expose ADORecordset as a parameter in the method signature. One alternative to exposing ADOR on the interface was to use a two-dimensional variant array. This provided a loose-contract avoiding re-compilation when data structure of the parameter changed. For example, if a stored procedure returns a variant array of name/value pairs used to populate a drop-down box in the user-interface.
I have yet to find a clear example of how to replace VB components that expose multi-dimensional variant arrays on their interface. So, if I come up with a good solution, I will be sure to post here, so it is documented for your reference.
If you have seen such an example, be sure to let me know; otherwise, stay tuned.
No comments:
Post a Comment