views:

265

answers:

5

I have a decision to make and I'm kicking it to the stackoverflow community.

I need to create an app that has one person controlling a timer and a list of people. This person can add people to the list, and start and stop the timer.

There will be a few client instances (in the same network) that will need to react to the changes to the server app. The clients will not make any changes to either the timer or to the list.

I actually have this completed as an asp.net 1.1 application that uses a sql server 2000 backend. the server is a web front end that populates the db with all the info and the clients do a continual query (hidden frame that refreshes constantly) for changes. I know this is not the ideal situation.. hence the upgrade.

I've been going back and forth on which way to attack this. I have to stick with .Net. I'm thinking that having the server be a WPF application that still updates the database with the clients using asp.net w/ AJAX will probably be the easiest, but I've been reading about using WCF and maybe that's the better solution.

Ideas?

Thanks.

The Server web front end is just a web page that has the list and the timer on it. when the user adds someone to the list or clicks the start or stop button for the timer, it will update the database (which the clients are polling)

A: 

I do not really see a problem with your existing application.

the server is a web front end

I don't quite understand that. Would you please elaborate?

If you wish to have an upgrade, you can of course replace your frame with ajax, but this will not bring any benefits really.

EDIT: Then rewrite it with ASP.NET MVC and jQuery. Your knowledge of ASP will be useful for writing views, and some ajax stuff will replace your frame. Anyway, these things are hot right now so you will run on the latest engine.

User
I have to upgrade cause there are other changes i have to implement as well. Having all my code inline in asp makes it near impossible to maintain so i'm basically gonna start over. Since I'm starting over, may as well modularize it. Will update the post.
Rob
Then your "server" is just another "master" client, but the server is somewhere else. Is it an ASP/IIS server? What is installed there?
User
server == master client. didn't mean to confuse the issue.. sorry..
Rob
my web server is actually IIS... database server is SQL2000. windows environment.. etc etc..
Rob
A: 

Check out Click Once, which works like a web page, but you dont need any web programming experience, so, its Win Forms on the web.

Mike D
A: 

"If in doubt, postpone the decision"
Ask yourself, if I cannot make a decision about the client, what are the things that I can do?
For example you can do all the database implementation, maybe create a web service with an interface that supports adding to the list and starting stopping the timer and pooling the list. At this point you have quite a few things implemented and all that remains is to choose a interface, or maybe you might want to make more than one interface: one web and another with WPF. It is very easy, just call the same web service that is already done.

Aleris
A: 

as long as you dont need any interaction with the desktop, i would keep it as a webapp but switch from client pooling to a server push approach (reverse ajax).

why bother with the problem of software distribution if you dont have to.

marc.d
I've done ajax, but never "reverse ajax" ... do you have any reference pages?
Rob
http://www.aaronlerch.com/blog/2007/07/08/creating-comet-applications-with-aspnet/http://www.codeproject.com/KB/aspnet/CometMultiClient.aspxbut i never actually tried it, reverse ajax is still on my "cool things i need to check out soon™" list
marc.d
A: 

Im surprised no one has suggested this already. Why not make a basic web version which everyone can use, and make an optional desktop version for those users who want the benefits/performance of a Desktop application.

Jacob