Approaching C# and the .net platform...

I did a brief search and could not find anything regarding the topic noted above, so here goes.

Note to high schoolers into programming: if you get programming a bit, particularly object oriented, you just might want to look into C# (or java, they seem related). At least get started with them for some experience.
*
My question for those who have gotten into this development already: what would you recommend as an approach to learning the .net (or Java) platform (via books, online tutorials, etc.)? What method of ‘immersion’ would you recommend for the best quality learning experience. *

I ask this because on October 20 of last year here at Washtenaw Community College and this past Saturday (May 10) at Davenport in Grand Rapids I went to these Day of Dot Net seminars and found myself intrigued and curious as to how .net works. Problem being it appears it takes a lot of experience to start making Windows Forms Apps (of any sort) and the tutorials I have encountered that cover the language C# itself dont really get in depth with the available libraries.

In short, I get the C# language (edit: when it comes to syntax and structure), the next natural step is learning the platform and/or how to create Windows Forms Apps and etc. with C#, and I am curious where people started when it came to that part of learning C# .net (or Java).

Thanks!

-Joe

edit: Visual Basic… I’ll look into it, but I am really heavily focusing on C# (In Visual Express 2008, what I currently use). Thanks though for the pointers on that aspect.

as far as the windows form apps, i usually use Visual Basic.net . i’m not very good at it, but it usually gets the job done because of its simplicity and ease of use.

VB.net was the first language that I learned, back in 2003. I started with one of the Teach Youself .net books, if you search amazon you’ll get a good list.

If you don’t want to buy a book, I suggest you download Visual C# Express 2008. When you register it you get an e-book which walks you though creating a simple winForms app.

Once you get started when you have questions you can use http://searchdotnet.com/. It is just a custom google search which filters out a lot of the noise.

Other than books, and google searches, podcasts can be a very good source of information. .Net Rocks!and HanselMinutes are both good ones. DnrTV is the screencast version of .Net Rocks! it’s also a good resource.

If you have any questions feel free to ask me.

EDIT: I found some more stuff for you. I appears that Washtenaw Community College is an MSDNAA member.

What that means for you is that if you have your username/password you can get the full version of Microsoft’s development tools. You also have access to several Microsoft e-learning classes (IT Academy Course: Windows Developer). Your school’s MSDNAA site is here.

EDIT 2: Misc. links
http://www.codinghorror.com/blog/ very good blog which covers a variety of topics.
http://www.codinghorror.com/blog/archives/000827.html good blog post about learning to program

I just recently learned VB.net using Visual Studio 2005 Professional. A great resource to use for learning this language is This.
This site is great for step by step instructions for people that like to watch tutorials rather than read them.

I started robotics about the same time I took a programming class Freshman year. The class taught VB.NET. I learned 2 things from the class:

  1. .NET is extrmely nice for rapid application dev., and I still use it today.

  2. The experience in VB.NET got me to start thinking like a programmer (with the whole logic bit.) After that class was when C kinda started making sense :smiley:

.NET is an amazing platform if you want to make applications for your own use. However, the .NET Framework is a tad bit slow, which is why I want to learn the Windows API so that I can do native programming.

That’s a moot point now. Microsoft Dreamspark offers Visual Studio to everyone who is in college. I also have to say that the Experssion Studio Editor is a pretty good wysiwyg editor.
https://downloads.channel8.msdn.com/

If you search google for c# and “best practices” there are lots of examples for different subject areas. The most difficult part of coding for the Common Language Runtime (CLR) in C# or Java Virtual Machine (JVM) in Java is the volume of information in the runtime libraries. I’ve always been a fan of the Wrox books, since they’re a good balance between tutorial and reference. Honestly though, the best resource for specific questions is still google.

The best way to learn it is to use it.

I would recommend downloading Visual C# Express as mentioned earlier, and going through the Help files, which are quite comprehensive once you learn how to navigate them.

To start with, you can go to Help->Contents, navigate the tree through Development Tools and Languages->Visual Studio->Visual C#->Creating your First C# Application.

The folders might be slightly different since I’ve got Visual Studio 2005 installed, but they should be pretty similar.

Another avenue is to start with something fun that will keep you coming back… look up Microsoft XNA, a free game development engine that can produce applications for PC or Xbox360. This engine is very easy to learn, and there are a large number of tutorials that can get you started in doing something you’ll have a lot of fun with as well as learn a new language.

Note to high schoolers into programming: if you get programming a bit, particularly object oriented, you just might want to look into C# (or java, they seem related).

Similar, yes. Related, no. C# was influenced by Java and has a lot of similar attributes. Java is open-source and is explicitly designed to run on many platforms (Windows, Linux, cell phones, etc.). C# is still primarily targeted at Windows (surprise!), although people are working on that.

Really, it doesn’t matter which GUI toolkit you work with first. They’re all somewhat similar once you understand the basic concepts. I’ve worked with AWT/Swing, Qt, GTK2, and .NET. Personally, I prefer the open-source libraries.

MSDNAA still offers more products, but Dreamspark is a good program.

Expression is a good graphics editor, but unless you’re working with WPF there isn’t much reason for it. Personally I think you should learn WinForms before you try to learn WPF.

XNA is cool, but some of the 3D code gets difficult, so it’s probably better to do some 2D stuff first to get familiar with the tools.

C# as a language is not limited to windows. You could make the argument that .net Framework is, but it now works on Windows, Windows Mobile PDAs and phones, Zune, XBox 360, Mac(Sliverlight) and Linux(Silverlight). Plus you’ve always got mono, which has most of .net 2 on Mac and Linux.

Possibly a little off-topic, but you might want to look at wxWidgets.

The advantage’s are being able to work in C++, in addition to your applications being cross platform.

Expression is a tool suite like Visual Studio. The only program that I use on a regular basis is Expression Web which is miles ahead of what Frontpage was.

The same applied to the Dark GDK. This is another game development engine from Microsoft. It uses C++ instead of C#, which would be rather useful if you want to program in C++ next year. I’ve used it for several projects (including a Who Wants To Be A Millionaire video game for a school review project. It kind of blew everybody’s Jeopardy games made with PowerPoint away. :D) and found it really easy to use.

lachoneus is right though. 3-d stuff can get tricky. Luckily the Dark GDK comes with plenty of samples and tutorials, complete with source.

That’s true. I should have been more clear, when I refer to Expression I usually mean Blend and Design, and when talking about client apps, they are usually related to WPF.

Expression Web is a much better product than Frontpage, but that really just for web apps.