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
add comment

4 Answers

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
1  
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
1  
@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
2  
Absolutely - that's what it's designed for, really :) –  Jon Skeet May 19 '11 at 10:30
add comment

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
add comment

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
add comment

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
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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