I’m looking at starting to code an application for the company I work for. I’m not really a developer per se but this is a project I’ve decided to take up in my spare time to build my knowledge up in .net
What I am after doing is hopefully remarkably simple (who am I kidding it never is!) From a high level overview I’d like to have say 500 client machines (seperate LANs) running a program permanently that reports back to a central internet based server. From the web interface at the Admin end I’d like to do the following:
- See the online status of said PC (so the PC would tell the server it is alive say once a minute
- Have maybe command line access to the PC or the ability to run programs remotely
- The ability to maybe send a file to the PC
- The scope to add additional functionality in future
- Request that a client refreshes its information (if I for example want to see the current logged on user)
From a client side perspective I’d like to be able to do
– Report back basic information like Computer name/IP Address/etc each time said information changed
– Accept commands from the central management server for requests for data etc
What I am looking for really is an overview of a technology to use that can do this, I just want pointing in the right direction. My initial searches have bought back that WCF would be a good choice for the above – if it is if anyone knows any resources on where to start, tutorials etc it would be greatfully appreciated. I’m assuming what I am doing will require a service on the windows machine so any kind of insight into how that would work with whatever technology is best would also be helpful.
If you want to start small, write a small program that connects to the remote server over HTTP and downloads a small page.
client program – collect the needed information (IP etc), and do a HTTP call
server program – inside your alive.aspx, write code that writes into the DB that the PC is alive. Then create a report page that can show the alive PCs at a given time.
Then start adding functionality – like authentication between the client and the server, filters (like date range) in the alive reports, uptime reports, alerts on PC down
Then add the functionality of executing commands. A roundabout but very simple way of doing it is
Then add proper execute command functionality – client program opens a socket connection to the server, and waits for the commands from the server. The server program sends commands over the socket.