I suggest you start learning from a book that will introduce you both to .NET and C#. When you will understand .NET world, you can go further to ASP.NET. Since you come from *nix world, you should learn how different .NET world is from your previous experiences, and even from Windows itself.
I spent some time reading Andrew Troelsen’s book, and I think they are quite ok to start, and then move to ASP.NET. From the list above I have heard, that Liberty’s book is quite ok.
Quick introduction to syntax + essentials of a language.
Obvious link to an overview of a platform :)
Best practices discussed here, on SO
It's better to read books of course, when a sufficient amount of time is available. I personally started to learn c# by reading Pro C# 2008 and the .NET 3.5 Platform
First step is to figure out how you work as a developer.
Plan out the steps you will or could take.
Simplify everything to it's MINIMUM.
Revisit your list of what to do.
Mock it up.
Do it.
If you are nervous about starting, then I would create a simple functional prototype. Start with visualizing the project in something like Balsamiq Mockups, so that you can see how each piece of the puzzle will come together.
If you take a few days of researching software engineering methods, you will save yourself hours and hours of headaches. Start with good practices gifted to us from those alpha geeks who've already done what you're trying to do.
I suggest you start learning from a book that will introduce you both to .NET and C#. When you will understand .NET world, you can go further to ASP.NET. Since you come from *nix world, you should learn how different .NET world is from your previous experiences, and even from Windows itself. I spent some time reading Andrew Troelsen’s book, and I think they are quite ok to start, and then move to ASP.NET. From the list above I have heard, that Liberty’s book is quite ok.
Troelsen: http://www.amazon.com/2008-NET-Platform-Fourth-Windows-Net/dp/1590598849/ref=sr_1_1?ie=UTF8&s=books&qid=1247572543&sr=1-1
They confused the hell out of me until I read:
That second book is about java, and doesn't mention delegates, but it explains well a problem delegates help solve: communication between classes.
Quick introduction to syntax + essentials of a language.
Obvious link to an overview of a platform :)
Best practices discussed here, on SO
It's better to read books of course, when a sufficient amount of time is available. I personally started to learn c# by reading Pro C# 2008 and the .NET 3.5 Platform
P.S. If you want to use linux, here you go:
IDE
Framework
C# has a free implementation in Linux under the Mono project, and it arguably is a very marketable skill unless you're completely anti-Microsoft.
My favorite C# book is Pro C# 2008 and the .NET 3.5 Platform, Fourth Edition.
If you're really want exotic, F# is an OCaml style language that runs on the .NET platform and mono, and is getting a lot of attention these days.
http://msdn.microsoft.com/en-us/fsharp/default.aspx
Books for F#:
http://www.amazon.com/s/ref=nb_ss_gw?url=search-alias%3Daps&field-keywords=f%23
Apress's Pro C# is an excellent book that covers both the C# language and much of the .NET libraries.
This is really a simple question... with a complex answer.
You are asking: How can I plan a complicated software project?
Know your environment (which you sound like you do):
Know software engineering:
Know your language/developing environment:
If you are nervous about starting, then I would create a simple functional prototype. Start with visualizing the project in something like Balsamiq Mockups, so that you can see how each piece of the puzzle will come together.
If you take a few days of researching software engineering methods, you will save yourself hours and hours of headaches. Start with good practices gifted to us from those alpha geeks who've already done what you're trying to do.