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?