My coworker at Intertech (Jim White) wrote an interesting blog post which addressed the “10 topics advanced Java programmers need to know” (he’s a Java-guy, but don’t hold that against him ;-). I liked his article, so I thought I’d offer up a .NET version of the same post. Here it goes, and thanks Jim for the idea! By the way, these are *not* any any specific order…
At first, LINQ was seen by many to be a interesting shortcut for grabbing data from a container. Nowadays however, LINQ is everywhere. LINQ to XML, LINQ to EF, PLINQ and LINQ to Objects are common place. If you want to show your team mates you are up to speed on core .NET technologies, understanding LINQ should be on the top of your list of ToDos.
9) WPF (and therefore Silverlight)
Regardless if you are a “Web Person” or a “Desktop Person”, Microsoft’s current GUI APIs are quickly replacing older frameworks, especially Windows Forms. Both WPF and Silverlight use the same core body of tech, so when you understand 1, the other is close behind.
8) The Blend IDE
I was a man who was fearful of Blend early on. In fact, I wore my fingers to the bone typing in XAML by hand. Trust me, if I can get over the Blend fear-zone, any one can. If you are doing WPF or Silverlight, usnig Blend makes your work much easier, especially when working with templates, animations or graphics.
The Task Parallel Library is a new .NET 4.0 threading / multicore API. Using TPL (and PLINQ) you can very easily add multithreaded functionality to your applications, using a framework which hides a good number of the low level details. Thanks thread pool!
The C# => operator, or the VB Sub/Function statements, can seem to be quite terse at first glance. However, lambdas are a great shortcut for working with delegates. If you are serious about learning LINQ and the TPL, you *need* to be confortable with lambdas.
5) WF 4.0
OK, I know. WF 3.0-3.5 had some warts. But honest, WF 4.0 is a massive step in the right direction. A whole new assembly stack, new designers, new engine and new activities make the process of modeling business processes clean and simple. And, WF 4.0 is based on XAML!
4) Knowing if you REALLY need That Pattern
Design patterns *can* help you write easy to maintain code….or they can add layers of unnecessary complexity. We programmers love the latest and greatest to be sure, but I have seen too many people cram patterns into projects that just don’t need them. Case in point? ASP.NET MVC. Yes, it is great for testing web sites, but there are ways to do so without MVC. Don’t use a pattern because it is the latest buzz word. Use it because it will make your life better.
3) ADO.NET EF
The Entity Framework is a slick object model over relational database logic, which favor LINQ queries over T-SQL queries. While the connected and disconnected layers are certainly still part of the picture, the EF model can really simplify common database activities….and the VS 2010 designers are very solid.
2) Use of Dynamic Data
The DLR allows you to opt-into scripting like functionality, within a statically typed language. If you are doing any sort of COM interop, dynamic assembly generation or reflection tasks, dynamic data can reduce the amount of code you will need to write by a *great* deal. Just watch your typing…
1) The .NET Type System
In a rush to get software out the door ASAP, many programmers “skip” over the foundational nuts and bolts, and google for the next “how do I make my grid look like this” sort of answer. Google is great, but you really owe it to yourself to be solid on the ins and outs of classes, interfaces, structures, enums and delegates. These are the bread and butter aspects of every possible .NET application and API.
So, thanks again Jim for the idea. Hope to see some of you in class where we can learn about these (and many other) .NET topics