http://www.amazon.com/Pro-2008-NET-Platform-Fourth/dp/159059...
Then again, I was coming from a programming background, so YMMV. I would probably try going to the bookstore and flipping through some of the .NET books, and deciding which one feels like it's a good fit.
Before you take the leap to learn .NET, though, make sure your cofounder is on board. You'll need his/her help and support.
If you're more interested in just getting a view into the programmer's world and have a feel for "difficult" vs. "impossible", I would recommend starting to dabble with a smaller language first. Something like Python or Ruby would be an excellent place to start.
You don't need to be a "programmer" in either thing to start grasping concepts, but they are small enough that you can tinker around to get a feel for things.
Once you have some rudimentary knowledge about the very basics of development, THEN I would focus on learning C#.
It is a nice language, but there's a lot to learn - especially since the .Net stack is so large.
While I'd also recommend starting with something other than C#, I'd be hesitant about using the phrase "smaller language".
Good Ruby or Python is a deeper subject than C# (IMO); I agree that it's easier to get started in either of these, but becoming proficient in the language itself may actually be more difficult.
As you say, the .NET ecosystem, like Java's, is large and many-headed (I'd argue Java is even worse) and using it efficiently can be a steep climb.
I think C# teaches the fundamentals of programming pretty readily -- variables, types, functions, loops, objects, etc. Because dynamic languages are vastly more expressive, those concepts aren't as readily obvious. C# also masks some of the more difficult concepts from C-family languages, like pointers and memory allocation, meaning you can get your app running without saying "what the hell is a segmentation fault?" :)
Because the OP said he/she was working with a .NET/Java programmer, and asking about .NET, I naturally inferred that the project was written in .NET. I think it's even MORE difficult to learn a language (say Python) and then try to translate the abstract concepts into .NET-speak. Experienced programmers can hop between languages, but I recall trying to do that with GW-BASIC and C when I knew GW-BASIC and was learning C, and it was a royal pain.
(That may have something to do with the level of functionality available in GW-BASIC vs. C, but I digress... :)
Generally speaking, though, I would suggest Python as a good language to learn when starting out. I wouldn't, on the other hand, suggest Ruby as a language for people who haven't programmed before. When you consider the basic language features you need to learn in order to grasp the language, C# is much simpler than Ruby.
Before you flame me to a crisp, I'm not saying C# or Python are BETTER than Ruby. Ruby is an amazing tool once you grasp its complexities (and it's my new favorite language). I've got to think it'd be difficult for a newcomer to pick up things like blocks, dynamic dispatch, mutable types, hash parameters without braces, etc.
That way you will learn as you go, and have the joy of seeing something that works, and that you have built yourself. It will probably be buggy as hell, and sometimes you will want to tear your head off. But when you get it working it's great. And before you know it you have grasped the basics.
That's how it worked for me anyway.