1. Desktop app. with GUI created with php
http://www.blackhatworld.com/blackhat-seo/member-downloads/209208-get-prspider-programmed-me.html
2. If it's fun and you have enough time then it's another story
3. You can multithread with php as well so it's not excuse.
.NET is made for creating desktop apps and multi threading. i have serious questions about efficacy of using php for that type of programming task.
to the OP, bottom line with .NET is that you really don't need a book. there's a wealth of information online about VB.NET/C#. search around for some of my other posts, there's some good information about getting yourself started in the BH arena with .NET languages. the MSDN site is an excellent source for documentation on all areas of the framework as well.
one thread in particular you might find useful is:
Code:
http://www.blackhatworld.com/blackhat-seo/c-c-c/187505-first-c-bot.html
there are some similarities in the structure of the syntax between C# and PHP as well, such as your array indicies using [ ] and whatnot.
the way i learned C# was just by transitioning over from VB.NET. granted it's a much shorter jump since i was already familiar with many of the classes and namespaces that .NET leverages, so it was more just remembering syntax structure than anything else. for a new convert to the .NET framework some of the common namespaces you should familiarize yourself with are:
System.IO
System.Net
System.Net.Sockets
System.Threading
System.Linq
System.Text
System.Text.RegularExpressions
there's a huge list of other ones as well, but those are the ones that i tend to use the most.
System.Linq is a newer one (started around framework 3.5) and allows you to do all kinds of nifty things with Predicates and Lambdas, and querying anything that implements IQueryable such as your lists and collections. for many functions where you are trying to find an object in a collection it completely removes the need for an enumerated looping construct.
other features that i love in .NET are some of the OOP essentials. there's good support for polymorphism and inheritance. things like creating and implementing interfaces will help you reduce boiler plate code and make your code more re-useable.
the .NET platform is also wide reaching. you can do windows, web, and mobile applications. from windows forms, windows presentation foundation, windows communication foundation, to the MVC, and rich client side internet apps with silverlight. all leveraging your framework.
good luck.
