Deployment


Author
Message
Terry Bottorff
Terry Bottorff
Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)
Group: Forum Members
Posts: 448, Visits: 12K
Thank you. I will plow ahead. I also ordered the book you recommended and that should help me. Thanks.
Greg McGuffey
Greg McGuffey
Strategic Support Team Member (3.4K reputation)
Group: Forum Members
Posts: 2K, Visits: 6.6K
Those options are only available with .NET 3.5. If you change the target framework to 3.5 they'll be available.



Deploying data files can be tricky with ClickOnce. There is an option in the publish area, Application Files, to define which files are Data Files. The file must be included in the VS project and marked as Content and set to either Copy Always or Copy when newer. You can then set the file as a data file. When you do this ClickOnce will copy the file to a special DataDirectory related to the application. It will also handle updates differently. Some things you will need to consider:



- The location of the data file will be different depending on if the application is run via ClickOnce. I.e. the data directory is in a different location when run under ClickOnce vs when you run it standalone (like when debugging). This means you have to have code to detect this state. You use the ApplicationDeployment.IsNetworkDeployed property to determine this.

- You will need to dynamically configure connection strings based on how it is opened. Also, the data file moves every time there is an update, so you always have to dynamically set the connection strings for normal ClickOnce deployments.

- Updates are handled differently. There are two scenarios to consider:

  1. You do an update, the data file doesn't change (the schema).

  2. You do an update and the data file does change (the schema).



In case 1, ClickOnce will figure this out and copy the data file the user has been using the new data directory (every update of an application gets installed in its own folder, with an associated data folder). This is the easy case and you have to do nothing.



In case 2, ClickOnce will determine there is a new data file and it will download the new data file. It will also copy the one the users have changed for the old version to a /.pre folder under the data directory. In this case you must include some migration code to handle moving the existing data into the new file.



- The trust level that ClickOnce runs under can affect this as well.

- You need to figure out how to deploy the underlying database software. You can use the Bootstrapper or in some cases you can embedd the engine in you app.



ClickOnce can get pretty complex in this situation. I highly recommend the book by Brian Noyes (included link in a previous post). Here are some more links that might help.



Here's link talking about where data files can be put:



http://msdn.microsoft.com/en-us/library/d8saf4wy.aspx



Link talking about how to add data files:



http://www.codeproject.com/KB/install/ClickOnce-Configuration.aspx
Terry Bottorff
Terry Bottorff
Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)
Group: Forum Members
Posts: 448, Visits: 12K
I decided to explore ClickOnce further. Loaded my project. Right clicked on project and selected Properties and then Options.

The four sections seem to be pretty straight forward except the Section called Manifests. Of the 5 choices Block Appli.., Allow URL..., User Applicati..., Exclude deploy... and Create Desktop Shortcut I only have access to the first 2. The one I want is the last one (Create Shortcut). Any idea why I don't have access to this?

Also, how will my database get involved in the ClickOnce? I mean so that it is installed on the users computer.

Thanks in advance.....



Greg McGuffey
Greg McGuffey
Strategic Support Team Member (3.4K reputation)
Group: Forum Members
Posts: 2K, Visits: 6.6K
If you decide to go down the ClickOnce path, I help out as much as possible. There are also a number of posts in the forum related to specific issues.
Terry Bottorff
Terry Bottorff
Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)
Group: Forum Members
Posts: 448, Visits: 12K
I use sqlexpress, devexpress grid and of course strataframe. Otherwise nothing special.

Sqlexpress will be installed on all user boxes so I am guessing Clickonce would work but if there is a better solution I am open for suggestions. My users are pretty savey. There will not be many installations either.

Thanks again. Resources were great.
Greg McGuffey
Greg McGuffey
Strategic Support Team Member (3.4K reputation)
Group: Forum Members
Posts: 2K, Visits: 6.6K
Well, ClickOnce(more) isn't for every situation. It really depends on your situation. In mine, I had a nasty combination of almost entirely remote users, who needed hand holding for a normal installation. Prior to porting to .NET, I used a normal windows installation (via Wise). It was a simple installation. A normally adept user could install it no problem. My users however needed hand holding. We had to use WebEx to install almost every bodies, every time we did an upgrade. I also had no complicating installation issues like installing to the GAC, installing prerequisites (other than .NET), writing to the registery, ect., so ClickOnce was awesome for my purposes. BigGrin



However, you do have other options. Using the setup project from VS is pretty nice and simple in a lot of situations. Even in situations that might need a more complex installation, this can be used initially to deploy a test app to a power user for testing/requirement verification. Likely it will be easier to get going than ClickOnce, which can quickly become a royal pain in the as...er....butt.



Others have used other installation tools, InstallAware I believe is common along with other tools. Probably the best would be to post what your immediate requirements are, and we can try and point you in the right direction.



In case you decide to try ClickOnce, here are some links:



This is the book that finally was able to answer most of my questions. It relates to .NET 2.0, so there have been some improvements, but the basics stay the same:

http://www.amazon.com/Smart-Client-Deployment-ClickOnce-Applications/dp/0321197690/ref=sr_1_1?ie=UTF8&s=books&qid=1282591179&sr=8-1



This is a list of bunch of articles on ClickOnce. The article on how to choose between ClickOnce and an MSI is probably where you should start:

http://msdn.microsoft.com/en-us/vbasic/ms789184.aspxHehe
Terry Bottorff
Terry Bottorff
Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)
Group: Forum Members
Posts: 448, Visits: 12K
ClickOnce may be fine for me. I just thought if I needed the merge modules I might not be able to use it. But, if you use it I am sure it would be more then sufficient for me.

Is there anywhere I should look to get a good idea of how to use it?



Thanks everyone for your input and resources. Everything helps the learning curve.

Greg McGuffey
Greg McGuffey
Strategic Support Team Member (3.4K reputation)
Group: Forum Members
Posts: 2K, Visits: 6.6K
Terry Bottorff
Terry Bottorff
Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)Advanced StrataFrame User (770 reputation)
Group: Forum Members
Posts: 448, Visits: 12K
Thank you for the link but I tried that and I am not getting anything created so I must be leaving a step out or I need to change something in mysolution so that it will generate the msi correctly.



Ivan George Borges
Ivan George Borges
Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)Strategic Support Team Member (3.5K reputation)
Group: StrataFrame MVPs
Posts: 1.9K, Visits: 21K
Hi Terry.

The help file has an article on "Distributing StrataFrame Applications" and you will find instructions on how to add the Merge Modules to your Setup Project. Also, try this following link for a guideline on seting up your project:

http://support.microsoft.com/kb/307353/en-us

Also, if you want info about installer tools, try a search here at the forum and you will find many discussions worth reading.

GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...




Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search