views:

221

answers:

1

I'm working on a UI for a simple inventory system. The users will use a USB barcode scanner to retrieve an ID and then either retrieve information from the database about the scanned object or enter the new information. This will only be used within our corporate environment. I can't decide which is the best way to go with this. I would like to use this opportunity to take a crack at WPF.

I like the idea of having the users interact with a webpage but I don't like the idea of using the USB scanner as a keyboard wedge. I would rather use the service object so that I can capture the event. I thought about writing it as an XBAP running from our server but wasn't sure if it'd be able to interact with the scanner.

I want the flexibility to run this on any computer in the shop without having to install software locally and worry about different versions floating around. I would greatly appreciate some advice on this.

A: 

I would use ClickOnce Deployment.

I know you said you don't want to install anything locally, but it does take care of automatically updating the clients from a central location such as web server or file share. You can easily publish new builds right from Visual Studio. Each time the user starts the program locally it checks for updates and installs them, fairly transparently.

This would just be the UI and barcode interface, you could create a WCF service on the server for the actual work, i.e. database querying, business logic, etc.

We were in an almost identical situation in our shop, except it was a time-tracking application. We came up with a Windows Form application deployed via ClickOnce using a WCF service on the server. Its been working well and we don't need to go to each workstation to perform updates.

Ryan B
Thanks for the advice. Can you recommend any tutorials on the WCF service?
jw7694
MSDN has a good getting started tutorial: http://msdn.microsoft.com/en-us/library/ms734712.aspx.
Ryan B
What is the advantage of using a WCF service doing the work as opposed to just doing it directly from the user application?
jw7694
The main advantage would be that you could re-use your database and business logic across multiple applications, with the service acting as a "black box". The client applications just have to worry about accepting input and displaying output. If your requirements are simple it might not be necessary, just an idea.
Ryan B
Well I managed to figure it out. I created my first wcf service hosted on IIS on our server (no small feat for a dummy like me :)) The video tutorials on Channel 9 ( http://channel9.msdn.com/shows/Endpoint/#Page=1 ) were invaluable. Thanks again for the help!
jw7694