tags:

views:

158

answers:

8

Hi, what topics to you recommend be covered if you're introducing some developers to .Net [3.0/3.5]?

Areas I have in mind are: What is .Net?; Building ASP.Net Applications; OO Concepts in .Net; Data Access in .Net Applications; Creating Windows Applications; Using XML in .Net; Configuring and Deploying .Net Applications;

+5  A: 

Well, what is the background of the audience? edit Of course, you could cheat, and look at something like the itinerary for Exam 70-536: TS: Microsoft .NET Framework - Application Development Foundation (up to you if you bother taking the exam, but it covers a lot of the core concepts).

Some key things:

  • value vs reference types / pass-by-value vs pass-by-reference (you'd be amazed how many people get this wrong)
  • using LINQ (even if you only use LINQ-to-Objects, it is highly valuable)
  • events, delegates and the functional programming style
  • quick tour of the most common collections (etc) in .NET; List<>, Dictionary<,>, HashSet<>, IEnumerable<T>, IList<T>, T[], SortedList<,>, Queue<T>, Stack<T> etc - even just as bullet points?
  • interop (if it applies to you)
  • (from boris callens) structured error handling (.NET exceptions)

If you are looking at ASP.NET, perhaps also look at:

  • ASP.NET MVC
  • Unit testing and mocking in .NET
Marc Gravell
Depending on their background I would maybe add the Exception throwing system
borisCallens
Good one, yes; structured error-handling is a must-know.
Marc Gravell
A: 

I think it would probably benefit most to cover the architecture of .net: the purpose of the common language spec and type system comes in, how the runtime works, how assemblies are organized, and where the framework class system fits in.

BC
+1  A: 
Joel Coehoorn
A: 

An explanation on Generics, what they are and how they're used in the framework, also how to use them yourself.

Nathan Koop
A: 

Depending on the background of the trainees you might want to base yourself on Head first's C#
I haven't read this particular one, but I have found their Design Patterns a real treasure and am reading through Software Development now.

borisCallens
A: 

Build something useful.

Set them a task and see what they come up with. Provide hints in each area where you think generics, LINQ, design patterns might come in handy. Learning core concepts like how to use a web.config/app.config.

Training people on abstract concepts like generics, lambdas is going to confuse them without context to see how to apply in a real world scenario.

Rob Stevenson-Leggett
A: 

I did this at my job. I essentially took CLR Via C# (Jeffrey Richter's awesome book) and covered it chapter by chapter. Best thing is to skip the first couple chapters, as they go into detail about the CLR.

You can speed past much of the details, depending on your audience. With the groundwork laid, you can then hit the following subjects:

ASP.NET MVC (at this point I'd skip classic ASP.NET development) Linq (covering lambdas, extension methods, and linq to XML) WPF (bury winforms in the same hole with ASP.NET) WCF (put .NET remoting in that same hole)

MVC doesn't have many books yet, and most of it is already outdated. But there are lots of tutorials and information on the internet available.

Linq isn't just about SQL, its about querying data. Its also a great place to introduce developers to lambdas and extension methods.

WPF... what can I say? Lots of good books out there. Probably the most important thing to teach is data binding. Model-View-ViewModel architectures and DependencyProperties make designing windows forms applications much simpler and more robust than the old winforms model with its hacky binding. Also XAML.

Will
A: 

Another point to cover would be the various endpoints for development: Windows applications, web applications, web services, WCF end points, and console applications.

Using Design Patterns may also be a really good introduction if the audience is familiar with some of these but haven't seen them in .Net, like DataAdapters for example.

JB King