Cor Ligthert said:
Jim,
I do not agree with you, one simple sample as answer on your suggestion.
How you do it with your suggesting when you have an addition to a program
that needs an extra DLL,
In .Net, when you run an EXE from a server the EXE checks the local cache
for any needed DLLs that the EXE tries to call. It also checks for the DLL
on the server hosting the EXE. If the local DLL is non-existent or is not
the right version the EXE downloads (through built in .Net technology) the
needed DLL from the server to the local cache and runs it from there.
All you need for this to work is the .Net framework installed locally and a
link to the EXE on a server on an intranet or internet. The EXE will have
limited functionality by default because it is run from the internet zone,
but this is easily overcome.
If the .Net EXEs had a portion that checked for the needed .Net framework
DLLs (like it checks for your programmed DLLS) and downloaded the missing
DLLs from the Microsoft website, this would be a HUGE step forward in
spreading the .Net languages.
For me this sounds if you want to go back to the not corresponding DLL
hell?
There is not now and never has been any "DLL Hell". "DLL Hell" is a myth
cooked up by programmers who did not understand how windows worked and used
by Microsoft to sell you a new programming language.
The simple solution (that has always existed) to running EXEs without
overwriting another application's DLLs is to simply store all of your
application's DLLs in the same directory as the EXE. When a legacy
application (pretty much anything before .Net) looks for a DLL it ALWAYS
looks in the local directory first BEFORE using the registry and shared
DLLS. This is how Windows works and this will work with any VB4, VB5, VB6,
C++5 application that you care to test it with. (In other words.....Don't
write back to tell me how wrong I am until YOU have tested this yourself.)
It's really sad to see such a major shift backwards in programming and
security based on the belief in a programming myth.