Reputation: 32596
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
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
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
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
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
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
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:
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
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
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