Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I want to continue learning C#. I've read parts of a few books recommended on here and the language is feeling more familiar by the day.

I'd like to tackle a mid-sized personal project to take my expertise to the next level.

What I'd like to do, is create an application that 'manages expenses', that runs on multiple machines on a LAN. So for example, say we have person1 and person2 on seperate machines running the application, when person1 enters an expense, it will appear on person2's (pretty UI) view of the expenses database and vice versa.

What topics do I need to research to make this possible for me?

I plan on learning WPF for the UI (though the steep learning curve (or so I'm told) has me a little anxious about that at this stage.

With regards to the database, which database would you recommend I use? I don't want a 'server' for the database to run on, so do I need to use an embedded database that each client machine runs a copy of that updates to each other (upon startup/entering of expense on any machine etc)?

What topics under networking should I be looking at? I haven't studied networking before in any language, so do I need to learn about sockets or?

share|improve this question
I think you should probably make smaller steps. Try to create a simpler application first (e.g. no networking, probably no database) and build up from there. –  svick Apr 7 '12 at 10:52
Again, like I said to e4thdog - you're probably right. I'll start much more simple and build up slowly. :) –  Anonymous Apr 7 '12 at 11:00

1 Answer 1

up vote 2 down vote accepted

I think that, before you get into which db, which ui approach and stuff like this, you have to make this go away "I've read parts of a few books"

I have also started the same way with C# and OOP and it was a disaster. Why? Because i thought my expertise in other areas and langs would help me to go directly into an application which requires many things that i wasnt feeling comfortable with.

So what i did is admitting that i needed time and someone to "take me by the hand"..

I mean you could even start watching the guys over WIBIT.NET

Then you should go over to lynda.com and watch the essentials.

Next build an app that has nothing to do with databases and wpf. Start with an old school winforms apps that will let you exercise with objects,classes, types,arrays, lists and all the basic stuff of C#

After you do that , then start exploring the various possibilitites of UI development , db access and networking. Again i would suggest to follow the same philosophy. Admit reality and act likewise...

Take it one by one and you will be surprised how fast you will end up where you want....

A list of stuff i have read from the beggining:

  1. Lynda.com c# essential training
  2. AppDev - learning to program in visual c# 2010
  3. Experts Voice - Pro C# 2010
  4. wibit.net
share|improve this answer
Thanks, you're probably right. I don't feel very sure-footed in the language at the minute. Do you know if the WIBIT course on C# is up to date? Couldn't find any reference to dates on their site. I've watched Lynda videos in the past on other topics and found them very useful, so I'll check those out! Thanks a lot. –  Anonymous Apr 7 '12 at 10:59
WIBIT videas are free and they have Object oriented course and C# course..you can go and watch them..And be sure that you will revisit videos/books notes many times...even if you have to remember how to write a switch statement :). i gonna update the answer with the stuff i have read/watched until now. –  e4rthdog Apr 7 '12 at 11:03

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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