473,854 Members | 1,587 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

General DLL Questions - Best Practices? Suggestions? Comments?

So we develop and maintain several applications used by several people
in the same company, on the same intranet.

There are several applications written in VB6, but going forward all of
the new development will be done in .NET 2.0, including eventual
rewrites of all the VB6 apps.

The VB6 executables are all stored in a network folder, and everyone
accesses these exe's using shortcuts to them on their desktop. Going
forward, we will use clickonce, chosing "online only" and instead of
having shortcuts to the programname.exe file in the network folder, we
will have a shortcut to the programname.app lication file in the network
folder. Basically, I get the same effect of keeping everything on the
network, but the advantage is, i never have to worry about kicking
anyone off the program to update it (due to inability to overwrite
files in use). The .application file will redirect the user to the new
version and i can send an update with one menu click without having any
care whether people are using the program or not.

Currently all of our VB6 DLL's are deployed using a login script that
runs every time a user logs into windows, which basically takes a copy
of each dll from the network puts it in the users system32 folder and
runs regsvr32.exe for each dll. And my plan here is to find a new
..NETish way of doing this.

So there are 5 different types of dll's that will need to be taken into
consideration.
1) the old vb6 dll's that will continue to be relevant up until every
single vb6 app is rewritten.
2) the new .NET Dll's that will be utilized by the new .NET versions of
the applications.
these can be broken down into:
a) dll's that will be essential to all or most of our applications.
They contain objects and functions, but no visuals.
b) dll's that can be used by any number of applications that contains
custom controls... visuals, such as maybe a form that already includes
a menu with all of our standard menu options.
c) dll's that contain different portions of a single application and
will only be used by that application. The idea being that even though
you can create one big executable, if you instead broke it down to one
small executable and four small dlls, then launching the exe takes up
less memory and depending on what you are using the program for, the
user may only need to access just one or two of the four librarys,
keeping the cpu usage at a minimum.
3) dll's that were not created by anyone at our company, but are
essential in order for the program to run. Crystal report dll's.
Perhaps we buy a 3rd party datagrid or datawindow.

So finally, here is what I am looking for... just a simple solution to
adding/updating all of these 5 types of dll's. Ideally, I could just
drop all of the dll's in the some folder on the network and have all of
my future projects reference them directly, accessing them as they
stand on the network, and every time a dll of any of these 5 types of
dlls changes, I can simply overwrite them where they stand on the
network.

Unfortunately, it's not going to be that simple. I can't just overwrite
an old dll with a new dll if it is being shared on the network very
easily, because more than likely that dll is currently in use by
someone on some machine, and therefore can not be overwritten. Is there
a way of instead of making a reference to a dll directly, I make a
reference to something that points to the latest version of the dll
(sort of like how making a shortcut to the .application file opens up
the latest version of the executable)?

also, some other questions about things I've mentioned in this post.

1)the dll's described in type 1. I couldnt just put them on the network
the way I am describing regardless of the whole "overwritin g files in
use" dilemma. vb6 files need to be registered. So should I just
continue to let the login script update these until they are completely
fazed out? Or if there is some way of doing what I described in my last
paragraph, would it not care what type of dll it is?

2)The dll's I describe in type 2)b).. custom controls like forms or
components that belong on forms that are saved in a dll. Lets say I
make a reference to one of these dlls from one of my applications so i
can include a control that consists of 3 buttons and 3 text boxes all
on the same panel. Now I compile the program and update it. Now I
change my custom control so that instead of having 3 buttons and 3 text
boxes, it has 4 of each, and i made all the buttons blue. I re-build
the dll. Now I want my application to reflect the change in the
control. Does the application need to be recomplied? Or will
overwriting the old dll with the new one, and re-running the program be
good enough?

3) the dll's I describe in 2)c).. mini dlls specific to 1 app, that
exist solely for the purpose of keeping the exe small, hence having the
exe use less cpu. Is this even a good idea? or is it overkill?

4) I am also investigating the idea of using remoting or web services
instead of custom dll's, since i know they can easily be stored on a
server and do not need to be on each individual machine. I have some
good sites explaining the 2 of them, and the differences between the 2
of them. But it seems like a lot of work, and may be overkill for what
I am trying to accomplish. Is this a path worth exploring, or is the
answer much simpler?

5) As I said, ideally all of the dlls can be stored on the network, and
updating them will be as easy as putting new ones out there, whenever i
want, without minding whether the old ones are in use. However I am not
opposed, if it is simpler, to having the dll's get installed on each
machine... if it can be done with ease, automatically. I assume if this
is the correct solution, that I should be storing them all in the GAC.
However, I doubt i would bother strong-naming as I would keep all
versions of dll's backwards compatible. Any insight on this idea would
be great.

Any comments, suggestions, answers to any of the questions, no matter
how brief, or even if they are simply links to web sites with better
explanations of things will be greatly appreciated.

Converting to .NET is a big project, and I want to get it right from
the start.

Thanks in advance for any feedback.

Mike

Feb 13 '06 #1
0 1747

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

37
2882
by: middletree | last post by:
Yesterday, I posted a problem which, by the way, I haven't been able to solve yet. But in Aaron's reply, he questioned why I did several things the way I did. My short answer is that I have a lot to learn, but now I'd like to ask anyone who reads this, including Aaron, for some clarification. I imagine others might benefit, too. "Aaron Bertrand - MVP" <aaron@TRASHaspfaq.com> wrote > A few suggestions. > (3) why do you constantly set...
14
2624
by: Bert Vandenberghe | last post by:
Hi, I was wondering if there are any best practices on the creation of webmethods? I'll try to explain this a little more: My problem is that we are changing an existing (large) DCOM application to use web services, but we have like hundreds of different methods you can call and what I wanted to do, is add a couple of generic webmethods that take a serializable .NET class or structure, and in that class or structure we put all the...
4
2994
by: DeepDiver | last post by:
I am developing an inventory database in SQL Server. I realize there are many commercial (as well as some non-commercial) inventory offerings, but my client has specific requirements that would necessitate significant customization of any off-the-shelf application. In the end, we decided it would be more feasible to build one to our specifications. What I am looking for are a list of best practices/recommendations for the architecture...
5
2539
by: BK | last post by:
We've got a fairly large scale development process under way in .NET 2003. We are about a month away from go-live for phase 1, second phase is rather short and all work should be completed in the next 2 months. Looking back on problems encountered, we want to learn from this project. FWIW, we are nearly on time with the original time line (only off by about a month), and we actually added more functionality than the original specs...
26
3684
by: puzzlecracker | last post by:
It'd be interesting to compare the learning practices of c++ practitioners. I'll start with mine The C++ Programming Language C++ Primer Effective C++ More Effective C++ Effective STL The C++ Standard Library : A Tutorial and Reference (most of it) Exceptional C++
24
1540
by: Jimmy | last post by:
hi everyone. building a website for a client and have a few questions related to best practices, what i should use etc... the site will use a database to store info entered by users. each visit will allow the user to input no more than 2 fields: email address, and a comment field. the site has the potential to become pretty busy so my first question is, what should i use on the backend? a dedicated SQL server isnt an option so im looking...
41
2904
by: Jim | last post by:
Hi guys, I have an object which represents an "item" in a CMS "component" where an "item" in the most basic form just a field, and a "component" is effectively a table. "item" objects can be created and then added to "component" objects to build up the component definition. My dilemma comes in deciding how to read/write data to the "item"
13
1555
by: General Fear | last post by:
Does anyone in this forum know of tech questions for an Access programmer? I have not been able to find a good web page with Access tech questions. I am interviewing Access programmers and want to conduct some tech tests. ...
8
1905
by: wangdaixing | last post by:
I am reading "Programming .NET Components" 2nd Edition by Juval Lowy, O'Reilly. In Appendix E, there is a chapter "Coding Practices" which I agree and practice mostly. However, there are a few items I don't quite understand why as listed below, my questions are marked Q: 10. Avoid method-level document. a. Use extensive external documentation for API documentation. b. Use method level comments only as tool tips for other developers. ...
0
9901
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
11024
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10673
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10745
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
10365
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
7910
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
1
4550
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
4150
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3183
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.