Andrew Cooper
Andrew Cooper

Reputation: 32596

Best way to approach learning .NET

I'm new to .NET and am starting to find my way around. I have some experience in C, VB, and ASP. My question is, basically, what area(s) of the framework would be good to concentrate on learning first? Or is it better to find a problem to solve and work out how to get it done in .NET? I'm interested in desktop and web apps. I want to end up with a good foothold in WPF, WCF, MVC, and Silverlight. Is this too ambitious?

Thanks

Andrew

Upvotes: 1

Views: 4342

Answers (8)

kjoshi
kjoshi

Reputation: 11

Another thing that impacts learning is continuity of work. I know this one is a no brainer but my learning has been stalled many a times due to this factor. I get pulled into projects with tight deadlines that use other languages while writing a project in .NET and end up losing focus. I find it pretty hard to code more after an intensive eight hour coding day...

Upvotes: 1

Brian MacKay
Brian MacKay

Reputation: 32037

It's good to have a simple application you can re-build each time you learn a new platform.

Where I work, there's a timesheet application that is constantly being rebuilt by different devs.

Upvotes: 0

Philip
Philip

Reputation: 694

Find a problem and solve it using .Net.

If you are actually making something useful, it will make more sense. It also answers a lot of your questions about why things are the way they are, if you're actually writing something, not just trying to learn it.

Upvotes: 0

Cyberherbalist
Cyberherbalist

Reputation: 12329

Is it too ambitious or not to have "a good foothold" in those technologies? That's entirely up to you. I can say I have such a foothold, and I think I am pretty average when it comes to developers in general. So why not?

As to what to start with, it would depend upon what technology you were best at previously. I myself started .NET by starting with VB.NET (I was mainly a VB5/6 programmer) and found that I liked C# far better. Try both and see which catches your fancy. There are sometimes religious wars over which is better, but these are far from won by either side.

My first attempts were with Windows Forms. And I think that was a good idea because it helped me get into the framework at lower cost. When you deal with ASP.NET web apps, you have to get into an extra layer. But YMMV. My boss started with ASP.NET web apps from just about the same launchpad as me, and he did just fine (except that he is deathly afraid of winforms lol!).

Finally, I think you should start off with a good tutorial book like C# For Dummies, or . If you prefer, VB.NET for Dummies. Just work your way through one until you start feeling comfortable, then maybe start building something of your own.

For tools, you can download Visual Studio 2010 Express for free from Microsoft.

One thing you might also want to consider, since it will probably become "all the rage", would be to get immediately into Windows Phone 7 programming. There are all kinds of free tools, tutorials and other information coming out on this now, and WP7 programing will involve you in both C# AND Silverlight programming, and XNA game programming if you are interested in that. See Paul Thurrott's Windows Phone Secrets blog for information on all of that.

Most of all, Have Fun! .NET Framework programming is the cat's pajamas!

Upvotes: 0

Tad Donaghe
Tad Donaghe

Reputation: 6588

Come up with an idea for a project you'd like to write.

Code the project.

Learn as you go.

Add new tech (WCF, WPF, ect) and Iterate.

Your first pass will be very frustrating, but as you iterate things will smooth out as you become more comfortable with the technology.

Go for it!

Upvotes: 1

Basic
Basic

Reputation: 26766

All of the frameworks mentioned are useful in their own way but I suggest you start with simple winforms and console apps - Then class libraries.

Once you've started to get the fundamentals of the framework, WCF and MVC are the next step.

WPF and silverlight are radically different in implementation (You need to understan XAML). MVC will teach you some of the WPF/Silverlight/XAML principles (separation of code and UI) but before you can do XAML, you really need a firm grip on what's going on under the hood.

I' also suggest that far more important than any of the frameworks mentioned already is database access - look into Linq (specifically LINQ To Entities). Almost all large applications require data access at some point or other - and getting that right can be far more important than other less-common aspects of the framework.

Personally, I taught myself in roughly the following order:

  • Console Apps (Hello world!)
  • Winforms/controls
  • class libraries
  • The ins and outs of visual studio (signing assemblies, compile actions, build actions)
  • method scopes (Private/public)
  • multi-threading / sync locking / etc.
  • proper use of OO techniques
  • (interfaces/inheritance/polymorphism)
  • All the useful bits of the framework you use every day (file IO/date+time/) then I started on ASP.Net (you can probably skip this as MVC is better and asp.net has some real quirks)
  • WWF (Workflows)
  • WCF (Communications)
  • Silverlight (WPF Lite)
  • WPF Dependency
  • injection/patterns

Obviously, I'm picking some of the highlights and there are many many more bits to fill in the cracks - But it was approximately this order that allowed me to get my head around it.

You've got a lot of ground to cover but the .Net framework is very well designed an once you get your head out of the COM/VB6 space you'll begin to love it

The best advice I can give you is pick a project (one of your own or something open source) and tinker.

Upvotes: 2

Jerod Houghtelling
Jerod Houghtelling

Reputation: 4867

Create an open source or for profit application. That will get you immediately into the real world experience in the technology stack that you choose. In addition you may have more passion so learning is more fun, especially when it comes to steep learning curves.

I would also suggest that if you are going to try for a profession in C#, or any language, that you get comfortable with unit testing.

Upvotes: 2

Aardvark
Aardvark

Reputation: 1264

Grab a good book (C# in a nutshell? if you haven't done c#) and look for great opportunities to get involved. Things like open source projects or creating a "training project" like a blog sites are good ways to get involved.

Read the book when your eyes feel like bleeding from the monitor and ask questions! The most important tool we have as developers is the community, utilize it!

To answer your final question, its never too ambitious to learn new technologies... This is why most of us are developers to begin with. Start small though and you'll notice a lot of similarities between all those technologies.

Hope this helps

Upvotes: 0

Related Questions