   Switching to Windows development - C#
  I am just starting to dabble in C# after using C, Objective-C and Java on Mac OS X and other Unix like operating systems but I am having problems with the abysmal MSDN documentation and trying to find the information that I need.There seems to be no usable cross referencing at all, for instance if I want to find out what events a particular UI element accepts it would make sense to provide a cross reference link from each of those event references to a section which describes what each of those UI elements can do once they have received those events.Is there a better documentation source for someone who just wants to read a short document that describes the kind of thing I am after? The language itself looks pretty easy as it is quite like Java so I think I should be able to pick that up in no time. It is just the .NET APIs that I am having problems with at the moment.Any help is appreciated :).   
Quote:Original post by CromulentThere seems to be no usable cross referencing at all, for instance if I want to find out what events a particular UI element accepts it would make sense to provide a cross reference link from each of those event references to a section which describes what each of those UI elements can do once they have received those events.Something like this:Button Class EventsCheckbox Class EventsFiledialog Class EventsForm Class Events?edit: I could probably be a bit more helpful. I guess I don't see what's wrong with the MSDN documentation. As those links show, each UI element has a complete list of all events they accept and an example showing their use in multiple languages. Some examples are more detailed than others, possibly due to some of the events being more simple or complex than others with what they are capable of doing. So one event might not give any information to you other than "this event occurred" while another event might return a list of all selected files (see FileDialog.FileOk Event).[Edited by - nobodynews on May 7, 2009 12:16:23 PM];Quote:Original post by nobodynewsedit: I could probably be a bit more helpful. I guess I don't see what's wrong with the MSDN documentation. As those links show, each UI element has a complete list of all events they accept and an example showing their use in multiple languages. Some examples are more detailed than others, possibly due to some of the events being more simple or complex than others with what they are capable of doing. So one event might not give any information to you other than "this event occurred" while another event might return a list of all selected files (see FileDialog.FileOk Event).Thanks for the links but I had already found the event information. I am more interested in the Windows Forms APIs and their associated methods for creating, destroying and manipulating windows for instance. My point was that these should be cross referenced so that you can look up an event in the documentation and then see a list or a link to the relevent reference material in the WinForms API.I think I am going about this wrong way, I guess it was a bit of a long shot to understand all the Windows technologies from just MSDN alone. I'll get a C# book and I am sure that will give me the foundation I need to get to grips with the rather odd layout of the MSDN documentation.Cheers for the help though, much appreciated.Edit: Wow, I guess I annoyed someone by calling the MSDN documentation abysmal - my user rating has dropped over 35 points :). Some people don't have anything better to do with their time it seems.[Edited by - Cromulent on May 7, 2009 2:44:21 PM];  The MSDN library is so huge that it can indeed be difficult for a newcomer to find specific topics there. However, the documentation is quite concise when you do find it.With the .net framework, it is usually wise to observe the inheritance hierarchy of an object in order to determine all the things it can do. .Net is a highly modular and hierarchical architecture, and all objects inherit from something else. For example, the Form class is inherited from ContentControl; this enables it to host child controls while providing just the Form-specific functionality (such as window border, taskbar integration etc.) in its own implementation level. Just to clarify, the Form class is intended to provide an encapsulation of an application window that you fill with objects ultimately inheriting from Control class.As for Forms library documentation, I'd start from the namespace root topic that presents an overview of the said library. One of the subnodes in this topic is Form class which provides to-the-point sample code to get you started. Most of the class libraries are documented in this style (excluding early betas) so once you get used to it, you will find relevant info from MSDN in no time :)Each language also has a programming guide; these tend to discuss the usage concepts at lower level than the class library docs.It is probably worth mentioning that you can get a quick view of any object's prototype by using the Object Browser window inside Visual Studio. When you have a little bit more experience with .net, this usually proves to be the best tool to find functionality in the framework. There ways to dig even deeper than this if needed, but in general application programming this is usually not necessary.Also, the Intellisense (auto complete) is actually quite intelligent in C# and VB out of the box, so sometimes it is just best to try to write the code and see what's available.HTH,   ;  You might also want to check out the sub-sections in the "Programming Guide" section of the .NET Framework, like this one.  These areas tend to take a much broader and high-level approach to topics.  In general the documentation for specific classes and methods will much more specific to that class/method/event/whatever.   ;  Thanks for the help guys it has been very helpful.I'm slowly getting there. Windows is just so different from Unix in so many ways I need to get my head around the APIs available (and that is the major problem - there are so many different things in the Windows development environment).Still from what reading I have done C# and XNA seem to be the best way to go for an easy transition to Windows programming. I'll keep plodding along. I'm sure that I'll get a light bulb moment at some point and it will all slot into place.   