Wednesday, March 21, 2012

Deployment for a small office

Hi,
I am creating a shrinkwrap winapp using vb.net which uses MSDE for backend. I have used the MSDE deployment toolkit to deploy MSDE along with the app. Everything works fine when the db and the app are on the same machine. I just install MSDE with named
instance for my company, create database and start the service. Even backup/restore work fine.
Now, my confusion is to how to make all this work for a small office where the setup will be like this (For e.g.):
1> 4 pcs (win xp) where my app will be installed to be used by 4 different users.
2> 1 central pc A (can be win xp) where the database is.
3> All 4 users want to share my database which is on the central pc A.
So, my concerns are:
1> How will the setup and deployment change.
2> Will the MSDE deployment toolkit still work.
3> Will I need to install myapp + MSDE on client's machine or just myapp.
4> What will I have to install on the central pc A.
5> Right now my connection string is like this:
data source=(local)\MyInstanceName;initial catalog=MyDB; User id =MyUser; Password=MyPassword
How will this change when the Db is on the central machine A.
6> If I use DMO, then what extra will I need to install on the 4 pcs and the central machine A.
Thanks
dev
hi dev_kh,
"dev_kh" <devkh@.discussions.microsoft.com> ha scritto nel messaggio
news:9D43D477-50C4-47DE-8174-CE196F5BD683@.microsoft.com...
> ...
> So, my concerns are:
> 1> How will the setup and deployment change.
your setup shoul'd ask for MSDE installation, app installation or both...
you can even install MSDE on all client PCs, but they will not be used, or
shall not..

> 2> Will the MSDE deployment toolkit still work.
don't know.. never used :-(

> 3> Will I need to install myapp + MSDE on client's machine or just myapp.
see >1>

> 4> What will I have to install on the central pc A.
it depends... MSDE for sure, but il the server will actually works as a user
client too [as usal for small offices :-( ] you have to install your app
too..

> 5> Right now my connection string is like this:
> data source=(local)\MyInstanceName;initial catalog=MyDB; User id =MyUser;
>Password=MyPassword
> How will this change when the Db is on the central machine A.
data source=ServerComputerName\MyInstanceName;initial catalog=MyDB; User id
=MyUser; Password=MyPassword

> 6> If I use DMO, then what extra will I need to install on the 4 pcs and
the central machine A.
con the server PC you have to install nothing, as SQL-DMO is included in
MSDE package...
on all 4 client PCs, you have to install SQL-DMO component and
dependencies...
the complete dependency list is as above:
; not licensed by redist.txt but available after installation of MDAC2.6
...\WINDOWS\SYSTEM\odbcbcp.dll; DestDir: WinSys ; sharedfile
; not licensed by redist.txt but available after installation of MDAC2.6
...\WINDOWS\SYSTEM\sqlwoa.dll ; DestDir: WinSys
; not licensed by redist.txt but available after installation of MDAC2.6
...\WINDOWS\SYSTEM\sqlwid.dll ; DestDir: WinSys
...\Programmi\Microsoft SQL Server\80\Tools\Binn\w95scm.dll; DestDir:
DestinationFolder\Binn
...\WINDOWS\SYSTEM\sqlunirl.dll ; DestDir: WinSys
...\Programmi\Microsoft SQL Server\80\Tools\Binn\sqlresld.dll; DestDir:
DestinationFolder\Binn
...\Programmi\Microsoft SQL Server\80\Tools\Binn\sqlsvc.dll; DestDir:
DestinationFolder\Binn
; not licensed by redist.txt but available after installation of MDAC2.6
...\Programmi\Microsoft SQL Server\80\Tools\Binn\Resources\1033\sqlsvc.RLL;
DestDir: DestinationFolder\Binn\Resources\1033
; not licensed by redist.txt but available after installation of MDAC2.6
...\Programmi\Microsoft SQL Server\80\Tools\Binn\Resources\1033\Sqldmo.rll;
DestDir: DestinationFolder\Binn\Resources\1033
...\Programmi\Microsoft SQL Server\80\Tools\Binn\sqldmo.dll; DestDir:
DestinationFolder\Binn ; file to be registered via regserver
DestinationFolder can either be the installation directory of one instance
of Microsoft SqlServer 2000, like ..\Program Files\Microsoft SQL
Server\80\Tools, even if no istance of SQL Server has been installed, or the
installation directory of your app. Please do respect the hierarchy
\Binn\Resources\1033 (where 1033 specifies the language), where needed, in
order to grant correct functionality of Ole-Automation objects.
In order to install SQL-DMO components for MSDE 2000, Microsoft Internet
Explorer 5.5 or higher is required.
Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz/DbaMgr.shtmhttp://italy.mvps.org
DbaMgr2k ver 0.8.0 - DbaMgr ver 0.54.0
(my vb6+sql-dmo little try to provide MS MSDE 1.0 and MSDE 2000 a visual
interface)
-- remove DMO to reply
|||See comments inline.
"dev_kh" <devkh@.discussions.microsoft.com> wrote in message
news:9D43D477-50C4-47DE-8174-CE196F5BD683@.microsoft.com...
> Hi,
> I am creating a shrinkwrap winapp using vb.net which uses MSDE for
backend. I have used the MSDE deployment toolkit to deploy MSDE along with
the app. Everything works fine when the db and the app are on the same
machine. I just install MSDE with named instance for my company, create
database and start the service. Even backup/restore work fine.
> Now, my confusion is to how to make all this work for a small office where
the setup will be like this (For e.g.):
> 1> 4 pcs (win xp) where my app will be installed to be used by 4 different
users.
> 2> 1 central pc A (can be win xp) where the database is.
> 3> All 4 users want to share my database which is on the central pc A.
> So, my concerns are:
> 1> How will the setup and deployment change.
I'd prefer seperate installations of MSDE and app to put them in a single
setup procedure, unless the use who does the setup knows nothing but
double-clicking "setup.exe", since most likely, MSDE will be installed on
only one computer on the network while app will be installed on all
computers (of course it may also places on a network share and all computers
only get a shortcut to run it).

> 2> Will the MSDE deployment toolkit still work.
See above.

> 3> Will I need to install myapp + MSDE on client's machine or just myapp.
Install MSED on computer A only. as for app, you can choose install on all
client computers or place it on a sinle network share location. Now that it
is .NET app, of course yu have to make sure all computer has .NET framework
installed; amd also do some security configuration, since app loaded from
other computer is now allowed to run by default, you need to give it
permission to run: go to control panel->MS .NET framework confuguration to
allow the app loaed from other computer to run.
When I put my app in use, very often I know there are quite some bugs
undetected and some fixes are required soon or later, place the app in a
network share allows me just replace file(s) in a single location.

> 4> What will I have to install on the central pc A.
Nothing but MSDE.

> 5> Right now my connection string is like this:
> data source=(local)\MyInstanceName;initial catalog=MyDB; User id =MyUser;
Password=MyPassword
Just change "data source" to computer A's name: "data
source=computerAName\MSDEInstanceName;Initial..."

> How will this change when the Db is on the central machine A.
> 6> If I use DMO, then what extra will I need to install on the 4 pcs and
the central machine A.
You do not need install anything, unless your app uses DMO. DMO is installed
automatically with MSDE. Since MSDE is only installed on one computer, if
your app do require DMO to run, the get DMO on client computer without
install MSDE is quite tricky.
You probably use DMO for a few MSDE management task, like backup/restore.
I'd suggest you seperate this kind of task from your app into a single MSDE
app, which is only installed on the computer A. You do not want every user
to perform MSDE management task, do you?

> Thanks
> dev
|||Great,
So basically, in a small networked office setup I described,I will:
1> Install myapp on all 4 machines
2> Install MSDE on the centralserver A
3> Connection string will point to the machine A for datasource
But what about:
1> If I need to start the sqlserver service on clients machine, for e.g. to backup/restore database. How will I do it. Currently I use the following code to create the service controller and then start it if needed:
svc = New ServiceController("MSSQL$MyInstanceName)
What will I do when the service is on the central machine. How to start the service using the above code.
(See my clients will not have a dba and are assumed to not know that there is anything related to sql server on their machines, so we are providing the UI for backup/restore etc and the db functionality is kept as hidden as possible from them, this UI wil
l be in the tools on my vb.net app)
2> Will I need to run any network config utilities on the client machine. I know I will have to set disablenetworkprotocols to false on the server, but is there anything related to network access to be done on the client.
3> Andrea sometime back you mentioned something like, the location to backup should be from the MSDE machine's point of view.. so if PC1 wants to backup the db on it's D:\Backup drive, then what change will I have to do to this code below(which works fine
for a machine which has msde installed)
'--
cn = New SqlConnection(mMasterConnString)
cn.Open()
Dim cm As New SqlCommand
With cm
.Connection = cn
.CommandType = CommandType.Text
.CommandText = "BACKUP DATABASE " & mDBName & " TO DISK = '" & bkpFileWithPath & "' WITH NAME = My Backup', INIT"
.ExecuteNonQuery()
End With
'Note: bkpFileWithPath argument is: "D:\Backup\MyDB.bak"
'---
4> I guess I will take DMO slowly..
Thanks a lot guys. Hey Andrea do you have a blog?
dev_kh
"Norman Yuan" wrote:

> See comments inline.
> "dev_kh" <devkh@.discussions.microsoft.com> wrote in message
> news:9D43D477-50C4-47DE-8174-CE196F5BD683@.microsoft.com...
> backend. I have used the MSDE deployment toolkit to deploy MSDE along with
> the app. Everything works fine when the db and the app are on the same
> machine. I just install MSDE with named instance for my company, create
> database and start the service. Even backup/restore work fine.
> the setup will be like this (For e.g.):
> users.
> I'd prefer seperate installations of MSDE and app to put them in a single
> setup procedure, unless the use who does the setup knows nothing but
> double-clicking "setup.exe", since most likely, MSDE will be installed on
> only one computer on the network while app will be installed on all
> computers (of course it may also places on a network share and all computers
> only get a shortcut to run it).
>
> See above.
>
> Install MSED on computer A only. as for app, you can choose install on all
> client computers or place it on a sinle network share location. Now that it
> is .NET app, of course yu have to make sure all computer has .NET framework
> installed; amd also do some security configuration, since app loaded from
> other computer is now allowed to run by default, you need to give it
> permission to run: go to control panel->MS .NET framework confuguration to
> allow the app loaed from other computer to run.
> When I put my app in use, very often I know there are quite some bugs
> undetected and some fixes are required soon or later, place the app in a
> network share allows me just replace file(s) in a single location.
>
> Nothing but MSDE.
> Password=MyPassword
> Just change "data source" to computer A's name: "data
> source=computerAName\MSDEInstanceName;Initial..."
> the central machine A.
> You do not need install anything, unless your app uses DMO. DMO is installed
> automatically with MSDE. Since MSDE is only installed on one computer, if
> your app do require DMO to run, the get DMO on client computer without
> install MSDE is quite tricky.
> You probably use DMO for a few MSDE management task, like backup/restore.
> I'd suggest you seperate this kind of task from your app into a single MSDE
> app, which is only installed on the computer A. You do not want every user
> to perform MSDE management task, do you?
>
>
>

No comments:

Post a Comment