views:

166

answers:

6

I wonder what are .NET technologies / C# language improvements you consider as breakthroughs in the .NET era for the last 5-10 years. I mean technologies that shifted developers' minds.

For example DirectX made assembler nearly abandoned for game programming in the end of the 20th century and jQuery extremely simplified Ajax web development as well as JavaScript code reusability.

What kind of breakthrough .NET technologies do you expect in the future and what modern .NET technologies are just a light evolution of well known approaches?

Do you consider .NET 4.0 parallel extensions and other improvements as breakthrough, or maybe we have reached the point when nothing radical is expected in modern programming?

A: 

Linq-to-SQL (and other linq derivatives that use expression trees) have completely changed the way I expect database queries to be written. Even if I still write those non-typed, plain text SQL queries from time to time, most of the time I don't think it's "natural" anymore and I wish I could use Linq for this specific scenario.

Edit: another thing I couldn't live without anymore is Reflection. While not introduced by .NET, I think it managed to take it to its peak. While you can write code without using reflection at all, it often really simplifies some scenarios, at the cost of some performance.

That being said, I'm currently replacing most of my reflection code with text templates, which are not really new, but whose existence has been emphasized by VS2010. There are so many code generations possibilities introduced by inspecting your code before it has even been compiled. Meta-programming in .NET is taking all its sense now. It's becoming an invaluable tool to me.

Julien Lebosquain
A: 

I can't see myself accessing databases without Linq to SQL. I never succeed to read or write XML files before Linq to XML. Linq to JSON is very useful in web applications. PLinq is also amazing when you use Parallel Extensions. Linq to Expressions, Linq to WMI, Dynamic Linq, Linq to Google, Linq to Excel, Linq to Streams [...] - all those providers are just so useful and so easy.

I think it's a great technology and absolutly a programming breakthrough.

TTT
so, do you likq linq? ;)
kenny
A: 

Ironically, I think Linq and ORM (NHibernate etc.) are two of the most significant new features of the .NET world to come along in the last 5-10 years. I say "ironically" because (warning: oversimplification) Linq appeals to developers who love SQL and want their code to be more like SQL, while ORM is for developers who hate SQL and never want to write another query in their lives.

MusiGenesis
ORM? Come on man, that's not even anything to do with the language! It's 3rd party provided. By definition it can't be included.
Noon Silk
That's why I said "the .NET world" instead of just .NET. ORM *is* a major player in the .NET world.
MusiGenesis
A: 

Resharper is changing what little mind I have left.

kenny
+1  A: 

WPF, with its break from the traditional Windows UI scheme (bye bye Window Handles) and rich data binding, is definitely the biggest game-changer I've encountered. It's even more of a change than when I moved from writing simple C++ interfaces via MFC to working with C# and WinForms. This technology is completely changing the way that I think about user interface development.

Dan Bryant
I agree. Have not experienced this technology in real life projects yet :(
Andrew Florko
+1  A: 

In my opinion, the best things are:

  • LINQ - simply the best - obviously, as stated by other people
  • ORMs such as LINQ to SQL, NHibernate or Entity Framework
    The more mature ones even allow you to just write your classes and not care about the database at all. (Especially if you let them create the database for you.)
  • AJAX, jQuery and the frameworks around them - for obvious reasons
  • Declarative UIs (such as XAML or QML)
  • The emergence of design patterns promoting good architecture, such as MVC and MVVM
Venemo