Geeks With Blogs
Saif Khan { I am Saif } "Knowledge is power, information is free, share it!"

ClickOnce is a fascinating technology which you get right out of your Visual Studio IDE. For those unfamiliar with ClickOnce, it’s basically a deployment technology which allows developers to publish their windows-based application to a webserver or network share. Any updates to the application can easily be deployed to the client. You can read more here.

I’ve been using the technology with almost all my project deployment. This time around I had to change my strategy a bit. Basically our network spans a few states in the US. All offices are connected to our data center via VPN. Developers publish apps to a server in the datacenter. Most of the apps we publish are small, but this particular project payload was 24MB due to 3rd party dlls. After initial deployment I noticed some users were waiting as much as 10 mins for the download. Heck, this can’t be…I said to myself. After fiddling around a few minutes I realized that this was a bandwidth issue. I had to look into an alternative.

I decided to google my thoughts. I couldn’t find any hosting for ClickOnce applications. Then I remember the amazon S3 service which I looked at a few months back…talk about mystical connections. I headed over to amazon web services, analyzed some costs and decided this was the way to go. Amazon allows you to pay as you use, so if you don’t publish any updates to the app via ClickOnce you won’t be charged. You will however, be charged for every POST or GET request made by the client applications since applications deployed via ClickOnce will usually check if there are any updates.

 

On With The Show

 Sign up for Amazon S3 service. Once that’s done, you’ll need to map the S3 storage as a drive to the development box. I searched for a few free apps which can do this but I couldn’t find anything. I was pressed for time. I then came across “WebDrive” from http://webdrive.com. It’s a Universal File Access Client which maps drive letters to S3 servers (among other protocols).

You’ll need to download the WebDrive Amazon S3 Client from http://www.webdrive.com/products/webdrive/S3_Client.html

9-3-2009 12-35-14 AM

Installing the application is pretty straight forward.  Run the setup file you downloaded and follow the instructions.

9-3-2009 12-36-38 AM

 

After the installation, navigate to START > ALL PROGRAMS > WEBDRIVE > WEBDRIVE to launch the application. Click on the “Try It” button (always try before you buy….my policy).  You see the following screen

9-3-2009 12-40-59 AM

 

After clicking on the "Try It" you'll get to the screen below. Click on the "New Site" button

9-3-2009 12-42-32 AM

 

You will then be prompted with the "Site Wizard". Enter a name for your site (1). This could be any name of your choice. In my case I used "companyname_deployed_apps". 2. You'll also need to select a drive letter (2) which will show up as a mounted drive in your "My Computer Screen" or "Windows Explorer" 


9-3-2009 12-44-23 AM


You'll need to select the 'Server Type". Choose "Amazon S3" from the dropdown list. I also recommend that you check mark "Connect Securely". This will use the HTTPS protocol instead of the basic HTTP. Note that you may need to open HTTPS outbound on your firewall. This is open by default on almost all routers.

9-3-2009 1-35-57 AM

The next screen you'll need to enter the address to the server. This is basically a bucket which you created on the S3 server. Fot those of you who don't know how to create a bucket, follow instructions here. I use the S3 FireFox organizer plugin...it's FREE! AND HAS MANY OTHER FEATURES. I now use CloudBerry Explorer.

The address will be in the form http://bucketname.s3.amazon.aws.com. You can find more details here.

9-3-2009 1-43-42 AM

 

You'll be prompted to import a certificate. You can ignore this screen. If you setup a certificate with AWS then you'll need to import it here.

9-3-2009 2-01-43 AM


You'll be prompted to enter your AWS (Amazon Web Service) account information.

9-3-2009 2-05-29 AM

 

To find your AWS login information, login to the amazon account and go to the "Security Credentials" screen. Scroll somewhere to the bottom of the page and you'' see a Grid with your access information. You'll need to click on the "show" link button to display the secret key.

9-3-2009 2-12-48 AM


On the final screen, check mark the selection "Connet to Site now" and "Connect at Login/Startup" (optional) and click the "Finish" button.

9-3-2009 2-17-14 AM

You'll be taken back to the Licensing Screen. Click the "Try It" button. That's it for mapping an Amazon S3 bucket as a Windows Drive. If you open "Windows Explorer" or "My Computer" you'll see the mapped drive "WebDrive".  

You can now right-click anywhere in that mapped drive and create a folder to publish your application. Create a folder called "MyTestDeployment" . Once the folder is created. Open up the project in Visual Studio and go the "Project Properties". Open up the Publish tab to configure the ClickOnce deployment.

In the "Publishing Folder" enter

W:\MyTestDeployment\

and in the Installation Folder enter

http://bucketname.s3.amazonws.com/MyTestDeployment

The bucket name is the amazon bucket you created earlier. This will be the public link which you'll give to the clients to downloads the application and any updates. Your screen should look like this

 

9-3-2009 2-38-29 AM


Click on the "Publish" button to publish the deployment to your AWS S3 bucket. You'll have to now configure the ACL "Access Control List" on the bucket to give everyone "Read Access". I used the S3 FireFox plugin for this task. I now use CloudBerry Explorer for this task.

Note: This is the only issue I have so far with deploying to S3. Everytime I publish an update I have to reset the ACL. I opened a case with Amazon on this. 

Editing the ACL

9-3-2009 2-47-17 AM


9-3-2009 2-47-58 AM

 

And there you have it! You can now host your ClickOnce applications with Amazon S3 Service. Don't forget to readup on your charges with AWS. You can find additional information here http://aws.amazon.com/s3/faqs

Good Luck!

Posted on Thursday, September 3, 2009 1:54 AM | Back to top


Comments on this post: ClickOnce hosting with Amazon S3

# re: ClickOnce hosting with Amazon S3
Requesting Gravatar...
I always enjoy learning what other people think about Amazon Web Services and how they use them. Check out my very own tool CloudBerry Explorer that helps to
manage S3 on Windows . It is a freeware. http://cloudberrylab.com/
Left by Andy on Sep 03, 2009 2:15 AM

# re: ClickOnce hosting with Amazon S3
Requesting Gravatar...
When I navigate to my deployment on s3 it opens the *.vsto file as a text xml web page vs. starting the installation. Did you have to do anything else to get this to work?
Left by Brady on Oct 26, 2009 1:38 AM

# re: ClickOnce hosting with Amazon S3
Requesting Gravatar...
Thanks for the posting.
Have you tried doing this and making the application secure?
I also use cloudberrylabs and am struggling to work this out
Left by Scott on Feb 17, 2010 4:50 AM

# re: ClickOnce hosting with Amazon S3
Requesting Gravatar...
Lots of websites are offering courses and membership areas to help you embed video into your blog or membership website which are stored on Amazon S3. I did not want to pay and I am fairly technical and I knew I could figure it out.
Left by site de bingo on Mar 14, 2010 6:34 PM

# re: ClickOnce hosting with Amazon S3
Requesting Gravatar...
Amazon S3 provides a simple web services interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the web. It gives any developer access to the same highly scalable, reliable, fast, inexpensive data storage infrastructure that Amazon uses to run its own global network of web sites
.
Left by giochi di videopoker on Mar 15, 2010 6:29 PM

# re: ClickOnce hosting with Amazon S3
Requesting Gravatar...
Are there any settings left out of your tutorial? My deployment fails when it tries to download the .application file...

Any idea?

Thanks
Left by Alex on Apr 05, 2010 7:51 PM

# re: ClickOnce hosting with Amazon S3
Requesting Gravatar...
Choose - tour to 4 star Florence hotels, 4 star hotel in Rome, 4 star hotels England.Adventure tour to Europe.Buy air line ticket voucher now.
Left by Caleb on Apr 11, 2010 9:53 AM

Your comment:
 (will show your gravatar)


Copyright © saifkhan | Powered by: GeeksWithBlogs.net