Better Release / Development Strategies?

Posted on 2011-10-14
Last Modified: 2012-05-12
Our main application is a VB6 app, which now uses .Net COM components.
I have developed the COM wrappers separate from the core .Net libraries. ALL the code in the COM libaries refers to the .Net library methods of the same name.

eg: EvoDataAccess.RunSQL has the actual code, the COM layerEvoDataAccessCOM.RunSQL references EvoDataAccess.RunSQL

I created an application that copies over to the local machine the latest VB6 exe and all the DLL's (COM and .net)  and registers the COM libraries and any OCX files that the VB6 applciation uses.

This works fine on client machines, but we also have an instance were we have over 20 users connecting to a Terminal Server (TS) via RDP (remote desktop).
On the TS the same "release" application creates a copy of the EXE as AppName<WindowsUserName>.exe....this allows me to update the EXE at anytime without interupting the users.

The COM files are not so easy. Is there any other way to update the COM files without the need for the TS users to exit the application and potentially not able to use the program for 15 minutes? The current method is to get all the user out of the VB6 application...replace the COM and .Net libraries...register the new libraries...if all goes well the users are back in withihn 15 minutes. If everything goes wrong...something goes wrong with the COM files, it is potentially hours for a rollback because every mention of the classes in the registry needs removal...worst case rollback replace the new COM files with the old ones and regsiter.

We cannot go the pure .net route yet and to remove the COM libaries will loose us vital functionality only capable through .net

Does anyone have a better way to release and/or develop VB6 apps with .Net COM components?
Question by:Evolution-Recruitment
    LVL 21

    Accepted Solution

    I'm going to have to be vague on details as my COM days were long ago, but can't you version your vb com app?  For instance, this week you release MyVbApp.5 and then next week you release MyVbApp.6.  The calling app, which you release along with the vb app, needs to reference the specific version it is being released with.  By default, it is likely referencing MyVbApp and just getting the most recent one but you can change it to reference MyVbApp.6.  This lets you release and install the com stuff at your leisure and once it is in place you do the normal release on the calling app.  Along with this you would need to adhere to the rule that interfaces do not change.  If you need to change an interface, you do the microsoft thing and create a new MyInterfaceEx or similar.

    Author Closing Comment


    Featured Post

    How your wiki can always stay up-to-date

    Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
    - Increase transparency
    - Onboard new hires faster
    - Access from mobile/offline

    Join & Write a Comment

    It’s quite interesting for me as I worked with Excel using for some time. Here are some topics which I know want to share with others whom this might help. First of all if you are working with Excel then you need to Download the Following …
    Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
    This is Part 3 in a 3-part series on Experts Exchange to discuss error handling in VBA code written for Excel. Part 1 of this series discussed basic error handling code using VBA.…
    Sending a Secure fax is easy with eFax Corporate ( First, Just open a new email message.  In the To field, type your recipient's fax number You can even send a secure international fax — just include t…

    731 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    18 Experts available now in Live!

    Get 1:1 Help Now