views:

361

answers:

9

My background is in web programming, mostly scripting with Perl. And I've recently been tasked with creating a desktop application. I'm wondering, where can one learn such concepts like making executables, what DLLs are for, how UIs are made, what threads are, etc.

I already have C# in Depth by Jon Skeet and C# in a Nutshell. I'm not worried about learning C# itself as much as I am learning about the workflows involved with using it on the desktop, things that are typically not done in web development.

Where should I look?

A: 

From what I hear and the little I have read of it Chris Sells's book on WinForms would be useful that. If I am not mistaken he has also done a book on WPF, but I don't know if it is any good.

Brian Rasmussen
+4  A: 

One starting point would be WindowsClient.net (Microsoft). Lots of videos too. But maybe a little less suited for the absolute beginners.

Henk Holterman
My google-fu fails! I've been writing .Net desktop apps for the last 3 years and never ran into that site!
Greg D
+1  A: 

A good place to start would be to read MCTS Exam 70-546 Windows-based client development, then read 70-548 Designing and Developing Windows-based application. After that, you will probably need to read books focused on the specific technologies your app will use.

Steve
A: 

Check Windows Developer Training Resources and for sure you will need the help of a book and some videos

Amr ElGarhy
A: 

You can start by building a new project in Visual Studio and selecting the one of the project templates under C#\Windows. This will build a simple application so you can see the basic elements of the project. For example select 'Windows Forms Application' this will start you off with a form where you can drag and drop additional page elements. You can then use Intellisence to explore the options on the controls. Also load the sample projects so you can see working examples. That's how I would do it.

Tony Borf
+2  A: 

I only recently began learning C# myself - so I have quite the array(... ;) ) of links:

C-Sharp Corner
CSharp Friends
CSharp Help
CSharp for absolute beginners - Very good
CSharp-online

Hope these help.

Daniel May
+1  A: 

Surprised no one has answered this yet:

Programming Windows With C#, by Charles Petzold. Great book, easy read. Example based, but well organized for people that want to jump directly to a particular topic. He actually explains what's going on in each example, and why he's doing what he's doing. Really, a great resource.

(Note: this is a Windows Forms book...no WPF. Great for what it does, but if you're looking for WPF, look elsewhere.)

Beska
A: 

For learning .NET application development (the only way people should write apps on windows boxes without requirements otherwise), start with the excellent book CLR Via C# by Jeffrey Richter. Save the first couple chapters for later. You'll get everything you need to know about C# and the 2.0 CLR, which is the basis of all .NET application development (in C#, anyhow.)

Once you're done with that, look into Linq. Linq covers a number of different language feature updates that came in 3.0 and 3.5 versions of the framework and their associated language updates. With the basics + a good understanding of Linq, you'll be creating decent apps in no time.


Now, for which framework to use when constructing desktop apps: Winforms, or WPF.

If you're a web developer, throw that old winforms crap away and get with WPF. You'll feel much more comfortable with editing WPF forms in xaml than dealing with winforms.

The best thing about WPF is the amazing databinding support. In fact, the WPF version of MVC is based on the databinding support in WPF.

Check out the databinding cheat sheet, then learn about MVVM.

Will
Good advice, but not an answer to the question.
Henk Holterman
Aaah, yes, you're right. I saw "web developer" and "desktop application" and assumed he was an ASP.NET developer. He needs more than just which framework to use. Updated answer.
Will
A: 

I recommend you the C# Yellow Book (Rob Miles) it's free and very useful to learn C# basics fast.

doc