Looking for resources on specific programming topics, with a particular teaching methodology (basically, applied examples and real-world walkthroughs). Some of the topics are C#-specific. Some are more general, but would preferably be taught from a C# (or at least .NET) perspective.
A) The resources would preferably be in book form, however I'll take anything that fits further criteria.
B) If I need to refer to several resources to learn what I want to about one topic, that is OK - as long as the resource doesn't confusingly mingle the topic material with other material.
C) *Very* important is the teaching style. I'm *not* looking for a syntax reference, or simple "Hello World" examples on how to use each of the language features, etc., that I want to learn about. For the most part, I am interested in learning how these features can be applied from the ground up to solve real-world problems; and how to identify how each feature can be helpful in solving such problems.
D) Any text will make certain assumptions about the prior knowledge and experience of its readers. Ideally, these resources would make assumptions that are as close as possible to my own knowledge and experience.
1. I have quite a lot of real-world experience with C++ (but little with multithreading, network communication, or UIs).
2. I have written some small- and medium-sized tools in C#, with and without simple GUIs.
3. I have done some (annoying) work in managed C++, bridging a C# application with unmanaged C++, both static and dynamic libraries.
4. I know some basic principles of multi-threading, but have little hands-on experience with it.
5. I have only implemented simple GUIs, and the few I have made from scratch have been C#.
6. I have not substantially utilized any of the "higher-level" features of C# in my code (attributes, delegates, etc.).
7. I have only just started working with the new features in C# 2.0. Basically, all I have used are the built-in generics classes.
8. My Managed C++ experience is in VS7, but I have recently ported some of my existing code into VS8, which exposed me to some of the new keywords and syntax rules in MC++ 2.0.
9. Most of my .NET programming experience has felt like I was writing a C++ application with C# syntax. I don't know how to properly use the extra features that C# offers, so I stuck with what I know, while enjoying the streamlined development process.
E) That being considered, here is my list of topics:
1. General best practices for C# (from the ground up).
2. Design patterns in C#.
3. The features of C# that set it apart from languages like C++. Including: attributes, delegates, events, etc.
4. The new features/syntax of C# 2.0.
5. Managed C++, with a focus on how to properly use it to bridge unmanaged C++ to C#.
6. The new features/syntax of Managed C++ 2.0.
7. General multithreading resources, from the ground up (preferably from a C# perspective).
8. Multithreading specifically in C#.
9. C# UIs, from the ground up. Ideally, would move on to available open source extension packages such as DotNetMagic.
10. How multithreading can/should be applied to UIs (preferably from a C# perspective).
11. General socket and network communication resources, from the ground up (preferably from a C# perspective).
12. Sockets and network communication specifically in C#.
F) When I say "from the ground up", I mean, from the basics and *all the way up*. Basically I want these resources to provide me with the power to work on my own to gain the experience necessary to become a "guru" in these areas. Again, if it takes several resources to provide all of this for one topic, that's not a problem.
Just finished two C# ASP.NET classes, and this was the text book. It starts off with an introduction to C# and .NET, explaining why they were created and what problems they solve. It then dives into site fundamentals, server configuration, errors, navigation, ADO.NET, etc.
This of course is more .NET information that C# theory, but a very nice book. (and it comes in PDF form when you buy the physical book, which comes in handy)
posted by niles at 9:31 PM on January 25, 2007