473,387 Members | 1,757 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

Manging references

Hi...

Our company has a fairly large client-server application and is very complex in its construction. The main point about that is there are a number of separate client pieces that require dependent project references to be maintained. For example, we have at the very bottom a data access layer application. On top of that there is layer that accesses that data access layer. Above that is a middle layer of classes and collections that are ultimately consumed by the user interface.

Ok.. nothing new about this kind of architecture. In VB we had guids that "assured" our compatibility between these layers. Now in VB.Net we have References. Again, I am not telling you anything you don't already know. However, I am having a horrible time, in the development environment, maintaining these references.

Now, for the stuff that I don't know that maybe some of you do know.

In my development environment, I have a single executables directory where I place ALL of my DLL files. When I make the references in the programs, I browse to this single executables directory and reference those DLLs in that directory. On the reference property, currently I leave the Copy Local property remain the default of True. My understanding of this is that I can browse to that single executables directory to make my reference, but in reality the file is copied to that particular projects /bin directory. If this is incorrect, please enlighten me.

So, two things happen that constantly drive me crazy. 1) Say I am working on the user interface but realize that the layer above the data layer has a problem. I close my UI project and go to that project, fix the problem and recompile. I go back to my UI and try it again, the problem still exists - duh! - the project between the UI and the project I just fixed has its own personal copy of the old code in its /bin directory. 2) So I go to that project and renew the reference... in the process, when I delete the reference in the project, it literally deletes the newly compiled dll in the single directory. I have to recompile the other project again to get a new copy of the dll in there, go back to this project and rereference it and recompile it. It goes that way up the reference foodchain.

Then I tried setting the Copy Local property to False, meaning (I assume once again) that it is going to have a tight lock on the compiled dll in the executables directory. This seemed to work for a while, but when you have to fix and recompile things you have to shut down all projects because they lock out those files in the executables directory. Then, when you delete and re-reference one of the dlls it does the same as 2 (above). And if all of the futzing around I will occasionally forget to set the Copy Local to False (as it always defaults to True) and suddenly I have about two hours of fighting and tracking down the problems.

It is a nightmare!!! Is there anyone who feels my pain and knows a better idea about how to use references in VB.NET?
Nov 22 '05 #1
2 1720
Hello,

Using a single solution that contains all of your projects and adding
project references instead of file references will solve this kind of
problem (I am assuming you are using VS.NET). The IDE will handle the build
order for all the projects.

Hope this helps.

"Hugoski" <an*******@discussions.microsoft.com> wrote in message
news:F1**********************************@microsof t.com...
Hi...

Our company has a fairly large client-server application and is very complex in its construction. The main point about that is there are a number
of separate client pieces that require dependent project references to be
maintained. For example, we have at the very bottom a data access layer
application. On top of that there is layer that accesses that data access
layer. Above that is a middle layer of classes and collections that are
ultimately consumed by the user interface.
Ok.. nothing new about this kind of architecture. In VB we had guids that "assured" our compatibility between these layers. Now in VB.Net we have
References. Again, I am not telling you anything you don't already know.
However, I am having a horrible time, in the development environment,
maintaining these references.
Now, for the stuff that I don't know that maybe some of you do know.

In my development environment, I have a single executables directory where I place ALL of my DLL files. When I make the references in the programs, I
browse to this single executables directory and reference those DLLs in that
directory. On the reference property, currently I leave the Copy Local
property remain the default of True. My understanding of this is that I can
browse to that single executables directory to make my reference, but in
reality the file is copied to that particular projects /bin directory. If
this is incorrect, please enlighten me.
So, two things happen that constantly drive me crazy. 1) Say I am working on the user interface but realize that the layer above the data layer has a
problem. I close my UI project and go to that project, fix the problem and
recompile. I go back to my UI and try it again, the problem still exists -
duh! - the project between the UI and the project I just fixed has its own
personal copy of the old code in its /bin directory. 2) So I go to that
project and renew the reference... in the process, when I delete the
reference in the project, it literally deletes the newly compiled dll in the
single directory. I have to recompile the other project again to get a new
copy of the dll in there, go back to this project and rereference it and
recompile it. It goes that way up the reference foodchain.
Then I tried setting the Copy Local property to False, meaning (I assume once again) that it is going to have a tight lock on the compiled dll in the
executables directory. This seemed to work for a while, but when you have to
fix and recompile things you have to shut down all projects because they
lock out those files in the executables directory. Then, when you delete and
re-reference one of the dlls it does the same as 2 (above). And if all of
the futzing around I will occasionally forget to set the Copy Local to False
(as it always defaults to True) and suddenly I have about two hours of
fighting and tracking down the problems.
It is a nightmare!!! Is there anyone who feels my pain and knows a better

idea about how to use references in VB.NET?
Nov 22 '05 #2
Hugoski,
You might want to have a look at VisualMake from http://www.visualmake.com
as an alternative method for compiling your projects. One of the most
popular features of VisualMake is the ability to automatically update
references between interdependent projects as it advances through the build
process, which would most probably eliminate the issues you are currently
facing. You will also find this tool useful if you intend to automate your
entire build process.

Regards,
Gagik A
----------------------------------------------------------------------------
-
Automate your VB, VC++ and .NET component builds
http://www.visualmake.com
----------------------------------------------------------------------------
-
"Hugoski" <an*******@discussions.microsoft.com> wrote in message
news:F1**********************************@microsof t.com...
Hi...

Our company has a fairly large client-server application and is very complex in its construction. The main point about that is there are a number
of separate client pieces that require dependent project references to be
maintained. For example, we have at the very bottom a data access layer
application. On top of that there is layer that accesses that data access
layer. Above that is a middle layer of classes and collections that are
ultimately consumed by the user interface.
Ok.. nothing new about this kind of architecture. In VB we had guids that "assured" our compatibility between these layers. Now in VB.Net we have
References. Again, I am not telling you anything you don't already know.
However, I am having a horrible time, in the development environment,
maintaining these references.
Now, for the stuff that I don't know that maybe some of you do know.

In my development environment, I have a single executables directory where I place ALL of my DLL files. When I make the references in the programs, I
browse to this single executables directory and reference those DLLs in that
directory. On the reference property, currently I leave the Copy Local
property remain the default of True. My understanding of this is that I can
browse to that single executables directory to make my reference, but in
reality the file is copied to that particular projects /bin directory. If
this is incorrect, please enlighten me.
So, two things happen that constantly drive me crazy. 1) Say I am working on the user interface but realize that the layer above the data layer has a
problem. I close my UI project and go to that project, fix the problem and
recompile. I go back to my UI and try it again, the problem still exists -
duh! - the project between the UI and the project I just fixed has its own
personal copy of the old code in its /bin directory. 2) So I go to that
project and renew the reference... in the process, when I delete the
reference in the project, it literally deletes the newly compiled dll in the
single directory. I have to recompile the other project again to get a new
copy of the dll in there, go back to this project and rereference it and
recompile it. It goes that way up the reference foodchain.
Then I tried setting the Copy Local property to False, meaning (I assume once again) that it is going to have a tight lock on the compiled dll in the
executables directory. This seemed to work for a while, but when you have to
fix and recompile things you have to shut down all projects because they
lock out those files in the executables directory. Then, when you delete and
re-reference one of the dlls it does the same as 2 (above). And if all of
the futzing around I will occasionally forget to set the Copy Local to False
(as it always defaults to True) and suddenly I have about two hours of
fighting and tracking down the problems.
It is a nightmare!!! Is there anyone who feels my pain and knows a better

idea about how to use references in VB.NET?
Nov 22 '05 #3

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

Similar topics

17
by: Tom | last post by:
The motivation for references seems clear: stop people from using nasty pointers when all they really want is a reference to an object. But C++ references are so inadequate that I'm still using...
22
by: xmp333 | last post by:
Hi All, I am trying to hide my JavaScript source. The method I chose was to keep all the important source in a password protected folder, and then use a SRC="folder/script.js" to include it...
2
by: Hugoski | last post by:
Hi... Our company has a fairly large client-server application and is very complex in its construction. The main point about that is there are a number of separate client pieces that require...
33
by: JKop | last post by:
I understand variables/objects and pointer variables perfectly: int X = 5; int* pX = &X; *pX = 4; int** ppX = &pX:
2
by: S. van Beek | last post by:
Dear reader, For removing a reference in the VBA reference form I receive from Doug Steele the following code: ........... References.Remove refCurr
11
by: codebloatation | last post by:
I know how to use references but i DO not get WHY they exist other than to add to the language. Are they actually needed for anything?
14
by: el_sid | last post by:
Our developers have experienced a problem with updating Web References in Visual Studio.NET 2003. Normally, when a web service class (.asmx) is created, updating the Web Reference will...
30
by: jeremygetsmail | last post by:
I've got an adp (Metrix.adp) with a reference to another adp (InteractSQL.adp). InteractSQL sits on a server, and is refered to by all of the clients (Metrix), which sit on the client machines...
3
by: DonJefe | last post by:
Does anyone have experience using project->project references in large solutions? What are the plus/minuses that you have found? Currently, we are using the binary assembly references for our...
9
by: igor.kulkin | last post by:
References is a relatively basic feature of C++ language. It might be a good thing to think of references as aliases to the variables. However it's good to think of references this way when you...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
by: emmanuelkatto | last post by:
Hi All, I am Emmanuel katto from Uganda. I want to ask what challenges you've faced while migrating a website to cloud. Please let me know. Thanks! Emmanuel
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
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,...
0
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,...

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.