none
Critical .NET Deployment Issue RRS feed

  • Question

  • Hey Everyone,

    I work as a SE in one of the biggest hospital in Pakistan. Recently, we we decided to switch our application from VB6 to Dot Net. Let me define the current scenario very briefly before my question. {Pardon my Language}

    Being a hospital, we have over 3 dozens different deparments, each with their own application and database developed in VB6 on Oracle. However, few core application shares INFORMATION and BUSINESS LOGIC through their external interfaces with other applications, implemented as ActiveX DLLs (compiled with Binary Compatability) and each teams strictly OWN their application. For UPDATE, they just place the new DLLs and register them. Compatability is rarely broken, therefore each update usually do not interfere with other application's working. Apart from this, there are dozens of other DLLs and controls that are used by all applications. We have got the usual Business, Data and UI architecture.

    We have developed a small Dot Net pilot application, using few ActiveX DLLs Interops for legacy reasons. No deployment problems found here as but when it comes to Dot Net Assembly referring to another Assembly, we have got problems.

    To Simplify, lets say we have developed Dot Net Controls that can be used in Future Applications. These controls do not only contain UI but important Business Functions as well. They will be maintained by BUSINESS SPECIALISTS. How we are going to share them. Simple answer would be either GAC or Application Directory.

    Application Directory is out of question as when control will be updated, Business is likely to be changed and we do not want to update 32 directories.

    GAC can be an answer.  However, we would be more comfortable if these DLLs can be placed in a folder and Dot Net Application can access them via configuration or something? This way we can update a DLL and all applications will have latest version.

    I think <codebase> is not an option as it requires version.

    Can Anyone Help?

    Friday, August 29, 2008 12:19 PM

Answers

  • If you want to share the assemblies across several applications, then the GAC would what you use.  All applications that use the common assemblies will work as expected. 
    Thursday, October 2, 2008 3:14 AM

All replies

  • If you want to share the assemblies across several applications, then the GAC would what you use.  All applications that use the common assemblies will work as expected. 
    Thursday, October 2, 2008 3:14 AM
  • Thanks for taking interest!

    A.
     
    true, but we are talking about roughly 40 or so software systems in future, all having dependency chain (Business and Data Layers, not to mention different UI layers). All of them need to be deployed on servers in a cluster (currently 14, with 10 new on the way). I am still unsure about how GAC will react when dealing with thousands of interface call per second. We are talking about 6000 local and about 2000 global users.


    B.

    If it comes to GAC, we have the following plan

    We came up with a sort of solution (still not approved)

    1. we will keep all the shared DLLs in their respective folders e.g. c:\Program Files\LAB\Shared; c:\Program Files\Radiology\Shared
    2. We will place a batch file in every shared folder that use GACUTIL type utility to install them in GAC
    3. Whenever an update to any system will take place, we will replace the DLL in respective folder, remotely run batch file in same folder to install it in GAC

    But GACUTIL is not present in NET 2.0 and we need an automated way to install it on all servers. have any idea?

    Monday, October 6, 2008 12:15 PM