3

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!

  • First off ask yourself what does the application do that it needs to be a desktop app? Managing multiple clients is a hassle for one, and deploying updates is another. Of course there are ways to make this easier, but a website is the way to go in most cases. – The Muffin Man Oct 1 '13 at 0:25
  • As someone who pushes out sometimes more than one update per day to a .NET company-wide application deployed via ClickOnce, I really don't believe the "deployment" argument anymore (unless you're delivering over the actual internet, or you have non-Windows clients). For internal applications, ClickOnce works really well. – Scott Whitlock Mar 30 '15 at 17:53
6

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.

| improve this answer | |
  • Very informative answer, thanks. I'll consider all those options but 2 definitely looks good. – Tyler Daniels Oct 1 '13 at 0:52
  • 1
    Point of information - SQL Server express now has very few practical limits for small deployments (the 5 connection limit went several version back) – Murph Oct 1 '13 at 11:15
  • @Murph, I appreciate the update. – NoChance Oct 2 '13 at 3:20
3

If I develop for desktop, will the database need a physical server if more than one workstation/client wants access?

It would recommend against it as the workstation has to be online 24/7 if the other employees should be able to use the application.

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)?

Technically possible, yes.

Would an ASP.NET system require purchasing a web host?

No. But I would recommend it.

Or, can the web files be hosted on a local computer/server with IIS as an intranet?

Possible. Just keep the computer running.

Can virtualization fit somewhere in all this?

imho that would overcomplicate things if they do not use virtualization today.


As you know Winforms, why don't you just use it together with ClickOnce? Easy deployment for small applications like yours.

| improve this answer | |
-2

You should try a RAD platform for desktop databases, they hide the complexity of building and deploying database solutions, something like alpha5, brilliantdb, lyterad. They all have their own limitations but they will get you started with a ready to use database app in minutes.

But then you dont need these if you're already a db expert.

| improve this answer | |
  • 1
    Can you think to these solutions or maybe expand on what the limitations are? – Richard Dec 3 '13 at 20:28
  • The problem with RAD tools is that the solution gets tied to the tool or platform. You may not be able to modify the application outside of the tool/IDE or framework. Nevertheless they are very useful when you want to a working application in a short time, without worrying about technicalities. – dbnoob Dec 4 '13 at 5:14
-4

If your WEB APP is going to run in Explorer, Safari, Chrome, Firefox from a Pc, Mac, Android smartphone, Blackberry and Iphone.... do a WEB APP

If not, a simple and fast Desktop app will do the work...

By the way do not confuse WEB APP with "Explorer APP".

| improve this answer | |
  • 1
    How does your answer provide meaningful information beyond what's already been presented in other answers? – user53019 Oct 3 '13 at 15:59

Not the answer you're looking for? Browse other questions tagged or ask your own question.