Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have been working with .Net for 7 years. ASP Web Apps, Windows Forms, Windows Services, mostly done in C#, but some in VB.Net. And as we started to work with .Net 1.1, we stayed on .Net 1.1.

Recently I did a few projects in .Net 4.0, which I'm sure are not different from those done in .Net 1.1, and I guess they can be easily compiled in .Net (haven't tried it, though).

I see that there are some new tricks and methods, and obviously the framework has grown quite a bit...

  1. I wonder if there is any difference from 1.1 to 4.0, in code, techniques, language abilities (you don't have to list them, just point out your favorites if there are any), etc?
  2. What would you recommend I should do to learn those new things created in latter frameworks than 1.1?
share|improve this question

closed as off-topic by durron597, Snowman, GlenH7, Dan Pichelman, MichaelT May 1 at 0:59

This question appears to be off-topic. The users who voted to close gave these specific reasons:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – durron597, MichaelT
  • "Questions about what language, technology, or project one should take up next are off topic on Programmers, as they can only attract subjective opinions for answers. There are too many individual factors behind the question to create answers that will have lasting value. You may be able to get help in The Whiteboard, our chat room." – Snowman, GlenH7
If this question can be reworded to fit the rules in the help center, please edit the question.

4 Answers 4

up vote 11 down vote accepted

.NET 2.0 was a major advancement. There is a document listing all breaking changes.

Don't forget to read Microsoft .NET Framework 1.1 and 2.0 Compatibility.

After that, be sure to check .NET 4.0 migration issues document.

Buy and read C# in Depth from Jon Skeet that describes all new features for each version of C#.

share|improve this answer
I agree, except I'd put C# In Depth on top of the list way above the others :) –  guillaume31 May 19 '11 at 8:52
Of course I appreciate the vote of confidence, but it's worth pointing out that C# in Depth is primarily language focused - there's an appendix which lists changes to the frameworks, but in a pretty brief way. I'm obviously still in favour of the OP buying the book, but I don't want the expectations to go unmet :) –  Jon Skeet May 19 '11 at 10:01
@Jon Skeet: I use your book to help developers move from one version of C# to another. Do you recommend that? –  user2567 May 19 '11 at 10:09
Absolutely - that's what it's designed for, really :) –  Jon Skeet May 19 '11 at 10:30

There are major differences, but most of them are additions rather than changes. From a pure core .net development perspective, the main advances you'll want to be aware of are:

  • Generics and Generic Collections
  • Anonymous methods and Lambda expressions
  • Language integrated queries (LINQ)
  • Built in ORMs including Entity Framework and Linq to Sql
  • Extension Methods

After that you start getting into whole new frameworks like WPF, WCF, Silverlight and ASP.Net MVC

As for learning them, just start implementing things using the new functionality. Generics and Generic collections, coupled with LINQ (which tends to rely on lambda expressions) will give you HUGE gains in productivity so I would start there. After that, check out overviews on the frameworks I mentioned and dig into what seems most beneficial - they are all well covered with online tutorials, blogs, and books.

share|improve this answer

We upgraded from .NET 1.1 to 3.0 last year.

One of the things that changed dramatically is the way config-files can be used.

share|improve this answer

I will add a "buyer beware" statement: If you do upgrade, write code using the .NET 4.0 conventions and features; don't fall into the trap of writing code the same was as you did in .Net 1.1 but deluding yourself into thinking you're using 4.0 because that's the version of the compiler you use. I've seen lots of people outright lie and say they are using .Net 4.0 when they don't know about using Generics, extension methods, LINQ, Lambdas, EF, or anything new.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.