views:

30

answers:

2

I am a web developer and have very little widows forms development experience, and I want to find really good information on this topic before I start.

I am planning to build a windows forms application that will be delivered on a cd to users. The cd will install the application and I presume the database to the client machine. The client machines will not always have access to the internet. What are my options?

What databases can I use, can I use sql server express?

Am I right in going the windows forms route?

Can someone point me towards some really good information on this type of software development?

Thank you in advance.

+1  A: 

If you have very little windows development experience, I would strongly suggest skipping WinForms, and move straight to WPF, or even out-of-browser Silverlight instead. WinForms is quickly being replaced by these two newer technologies, and there's no reason not to start learning them instead of WinForms at this point.

You can use SQL Server Express, but that may cause complications when deploying your application, if each user is to have their own database. You may want to consider SQL Compact Edition as an alternative.

See this article for more information.

David Morton
Is WPF supported on Windows XP?
jason
Yes it is. WPF is supported on any Windows that has .NET installed
LnDCobra
A: 

I did this a few years ago (built a desktop Windows Forms app, having only previously developed web applications). I found it was easier than I'd expected, because my knowledge of C# and the .NET Framework BCL all carried over seamlessly.

There were a few tricky exceptions; one which I bumped into was the fact you will likely need to delve into multithreading, in order for it not to appear to your users as though your app has hung—although this got a lot easier with the advent of the BackgroundWorker class.

You can, as David says, use SQL Compact Edition as a database, or as an alternative, SQLite and the System.Data.SQLite ADO.NET Provider. I've used this with a few apps now (web and desktop) and it's very simple, solid and easily distributable.

I'd also agree with David that you should aim for WPF rather than focusing on WinForms. WPF will also make some sense to you as a web dev, as it's based on markup.

Deployment wise: if you have Visual Studio Standard edition or above, you can quite simply create Setup Projects which will take care of creating the installer, copying the database to the correct place on the user's machine etc.

Mark B