How run Client/Server app on local area network?

  • Thread starter Thread starter Woody Splawn
  • Start date Start date
W

Woody Splawn

I have been developing a ClientServer application on one machine at my
office but the time has come to transfer it to the customer. The customer
is running a Windows 2000 local area network. I will keep a copy of the
applicaiton and all it's code on one of the client machines connected to the
local area network at the customers. This machine has a full blown copy of
Visual Studio 2003. SQL Server 2000 is the back-end, both at my office and
at the Clients. I have the code in the application set up so that it knows
if it is being called from a local machine (like at my office) or from their
local area network. The app provides a different connection string
depending on which environment is being used. My question is how to deploy
or make the applicaiton usable to all the machines on the LAN at the
clients. I know how to do deploy an application for another stand-alone
machine but not for all the machines on a local area network. I will
delineate my supposition as to what I need to do below and ask for comments
or suggestions.

Install .net framework 1.1 on the server. I suppose then I do the following
from the machine on the network that has the fullblown copy of VS. I
suppose I create a .msi file. I suppose I install the .msi on the server of
the LAN. I suppose that once this is done that I can create an icon on the
desktop of the other machines on the network that point to the .exe that the
..msi created on the server. I suppose that by running this executable that
the applicaiton will be available to all. Is it really this simple or is
there something I'm missing?

Further, the applicaiton is somewhat dynamic. I suppose that when changes
are made to the code on the machine on the network that has the full blown
copy of VS that the way to make those changes available to everyone else is
to create another .msi, uninstall the first .msi on the server and
re-install the second. Is this correct? What else do I need to be aware
of?

Thank you in advance for any help given.
 
Hi Woody,

It's actually easier than that.

First, install the net framework on all client pc's - you don't need it on
the server.

Install the app itself on the server, not on one of the client pc's. VS
..net needs to be nowhere for the program to run.

You will have to set up security to allow each client to run the exe from
the server. There are articles on how to do this at msdn.microsoft.net - if
you can't find anything, get back to me and I will hunt down the
instructions.

Remember that you have to have win 2000 or xp on all of the client pc's.

When you make changes, simple copy the new .exe - occasionally you may need
a .dll or two, but not usually, unless you've added a new control or
component, so you will not have to reinstall.

To get started, read 'walkthrough: deploying a windows app' in the vs .net
help notes.

HTH,

Bernie Yaeger
 
Thanks for responding
To get started, read 'walkthrough: deploying a windows app' in the vs .net
help notes

I looked at the walkthrough and most of the concepts I understand. However,
it did not talk specifically, as far as I could tell, about deploying in a
network environment, so, I'd like to ask some more questions.
First, install the net framework on all client pc's - you don't need it on
the server.
Understood.

Install the app itself on the server, not on one of the client pc's.
VS .net needs to be nowhere for the program to run.

I think maybe there is a typo here but anyway, I don't understand what
you're saying. Do you mean "Somewhere" instead of "Nowhere"? Further, I
suppose what you mean is that I should put the solution directory and all
files associated with it on a public directory on the network drive. Y/N?
When you make changes, simple copy the new .exe - occasionally you may need
a .dll or two, but not usually, unless you've added a new control or
component, so you will not have to reinstall.

If I understand correctly I do the following. If changes are made in the
application, do a rebuild in Release mode, or, use a deployment project to
create an .exe. In either case, on the target machine, point to the newly
created .exe on the server and run it. Y/N?
Remember that you have to have win 2000 or xp on all of the client pc's.

My intention is to use only Win 2000 or XP machines but I thought that Win98
is also a possibility. Perhaps you feel it is more trouble than it's worth.
This is the conclusion I have come to, primarily because of password issues
with Win98 and SQL Server.
 
Hi Woody,

VS .net does not have to be on any machine involved - neither on the server
nor on any of the client pc's. It will not hurt if it is on a machine, but
it serves no purpose, as the .exe runs on its own (so long as the necessary
..dll's are installed, as they will be when you run setup).

Yes, put the .exe in a public directory, but there is no need for the
solution itself, other than the installed exe/dll's - remember, your source
code is not needed to run with the .exe, as it is compiled to include
everything it needs.

Yes, you are correct, Win 98 will work, but yes again, you interpreted me
correctly - it's an unnecessary pain in the ass, so avoid it (as you intend
to).

By the way, I wrote 'msdn.microsoft.net' but I meant msdn.microsoft.com.
The instructions for setting up a client pc's security to allow it to run an
exe from the server are pretty easy to follow, but without it, net framework
security on any given client pc will not allow it to run by default, so this
has to be done (after installing the net framework on the pc).

Bernie
 
Hi Bernie,

Can you give us some examples from problems you did discover?
Yes, you are correct, Win 98 will work, but yes again, you interpreted me
correctly - it's an unnecessary pain in the ass, so avoid it (as you intend
to).

Cor
 
Hi Woody,

Thanks for posting. Here are some articles that may be useful to you:

No-Touch Deployment in the .NET Framework
http://msdn.microsoft.com/visualc/using/deploying/smartclient/default.aspx?p
ull=/library/en-us/dv_vstechart/html/vbtchno-touchdeploymentinnetframework.a
sp

Smart Client Application Model and the .NET Framework 1.1
http://msdn.microsoft.com/netframework/using/building/windows/analystreports
/smartclient.aspx

Security and Versioning Models in the Windows Forms Engine Help You Create
and Deploy Smart Clients
http://msdn.microsoft.com/msdnmag/issues/02/07/NetSmartClients/default.aspx

Should you have any further concerns or questions regarding this issue,
please feel free to post here.

Regards,

Felix Wang
Microsoft Online Partner Support
Get Secure! - www.microsoft.com/security
This posting is provided "as is" with no warranties and confers no rights.
 
I appreciate your help very much. Things are becoming clearer thanks to
you. I would like to ask a few more questions.
Yes, put the .exe in a public directory.

I suppose what you are saying and what I should do is this. On a client
machine (not necessarily connected to the network), using a Setup Project,
Create a .msi. Copy this .msi to the server, or from a CD or where-ever,
run it. When doing so, the MSI wizard will ask you where to create the
..exe. Tell it to create it in some public directory on the server that the
client is able to access. It sounds like that's all there is to it. Y/N?
The instructions for setting up a client pc's security to allow it to run an
exe from the server are pretty easy to follow, but without it, net framework
security on any given client pc will not allow it to run by default, so this
has to be done

I went into MSDN and did a searh on several key words but could not find any
article to tell me how to do what you've suggested.
if you can't find anything, get back to me and I will hunt down the
instructions.

If you could do this it would be very much appreciated.

I have one other question. It appears to me that when I have a newer
version of the program (an new .msi with changes or additions) I need to do
the following:

Run the original .msi again and select remove. Delete the original .msi.
Copy the new one to the same location and run it. Y/N?

I ask this question because at one point I thought I could just copy a new
..msi to the same location and run it but I see this is not the case.
 
Hi Woody,

Yes, you can run the install from a client pc and install into the network
drive.

Here are the instructions for installing security so that a client pc can
access the .exe from the network drive:
After installing the net framework (by running dotnetfx.exe), go to control
panel/administrative tools; in admin tools select microsoft .net framework
wizards; select adjust .net security; select make changes to this computer;
click next; select local intranet - set to full trust; click next; click
finish.

When you need to change the program, simply copy the new .exe from your
solution's bin subdirectory to the network drive, overwriting the old
version - simple as that.

HTH,

Bernie
 
Thank you Bernie,
When you need to change the program, simply copy the new .exe from your
solution's bin subdirectory to the network drive, overwriting the old
version - simple as that.

That seems very easy. Does it work in all circumstances? That is, I
noticed in the install of the .msi that a subdirectory of "DataSets" is
created under the directory where the .exe is created. This suggests to me
that if I change something in Visual Studio that has to do with the datasets
for the application (like add a field or something) that simply copying the
..exe at that point won't work. I suppose I would need to, at that point,
create a new .msi in VS, uninstall the original .msi and run the new one.
Y/N? If this is true, are there other things that would cause me to have to
run a new .msi as well?
 
Hi Woody,

The instructions for installing security appear to work all the time. The
only time I ran into any difficulty was when instead of 'make changes to
this computer' it said 'make changes to anyone logging in to the computer'
or words to that effect.

Re the 'datasets' sub - my guess is that the .msi is creating a sub for
persisting datasets, which is rarely done. I would try, on my first change
to the .exe, simply to copy in the new exe and see what happens - my guess
is it will work just fine.

HTH,

Bernie
 
Hi Woody,

Just thought you'd like to know: MS is having an online chat _ I believe on
Wed 12/3 - re .net deployment in general. Go to Msdn.Microsoft.com and go
to the .net section to find out more about it.

HTH,

Bernie Yaeger
 
Back
Top