Web App vs. Desktop App – Deployment Differences

databaseformshostingserverweb

I'm taking on an opportunity for a local business to develop a small, simple timesheet manager (they still record time by hand) and am currently in the planning phases. It will include basic functionality such as managing employee information, logging time worked on a weekly basis for payroll, and generating reports for administration.

I've developed Windows Forms applications for a while and am fairly confident my coding skills are where they need to be for this project, but I'm fairly new to both ASP.NET and the concept of developing a full desktop system as opposed to individual applications, so my questions will probably sound very elementary. I'm mainly struggling with understanding how to choose between ASP.NET and Windows Forms with regard to deployment down the road. Hopefully you guys can offer some insight.

I'm still a bit fuzzy on how database/web application hosting works. If I develop for desktop, will the database need a physical server if more than one workstation/client wants access? Could one of the workstations act as a server (there are under 20-30 employees at any given time, so data size shouldn't be an issue)? Would an ASP.NET system require purchasing a web host? Or, can the web files be hosted on a local computer/server with IIS as an intranet? Can virtualization fit somewhere in all this?

I guess it boils down to: Can I get them up and going for free, or is a server/hosting cost implied either way?

Thanks in advance!

Best Answer

For ASP.NET web application, you can have several options:

1-Deploy on a user workstation - This is a bad solution for a serious application. You will get unpredictable performance, problems in debugging and possibly security issues, to name a few of the troubles.

2-Deploy the web server and database server both on a dedicated machine owned by the company - This is what I would go for. The hardware cost is not lost since the server can be re-used or shared by several applications. You can secure the box behind a firewall and configure it easily. You don't need to separate the database server from the web server. Administration can be conducted by current staff. I am not sure about the cost of the database in this scenario. Some databases may be free (mySQL?). I know that SQLServer Express is free (allows 5 concurrent users). Check on this before you calculate the total solution cost. Also other software cost must be factored in such as firewall, IIS, and the OS.

3-Deploy using a third party hosting company - Very affordable and not difficult to do but not all vendors accept their data to be outside the company. Ease of access to database and server will vary based on the hosting vendor. You will need good vendor support. The good thing here is you will not pay big for the database but you may pay a bit for storage, etc. In general the cost is very affordable.

4-Deploy on the cloud.

In your case, I would like to suggest that since you are new to web development in ASP, and if you don't have enough time, forget the web solution and build a desktop solution if all the employees are using Windows and are connected to the LAN when they use the system. You could also develop a Desktop application that uses a shared database using web services. Don't under estimate the learning curve for web development especially if interface quality is important. Building an application interface using HTML/CSS is not simple with the tools in the market today unless you are very good at this technology or have a front end developer who can help.