I'm a Delphi and C# coder and have been given the assignment to introduce the most fundamental concepts of .Net/C# to my coworkers in some trainings. They are seasoned Delphi Win32 coders but still use an fairly old version, so they aren't familiar with some language features which are commonplace today like generics and they never used .Net before.
Now I'm thinking about the best way to tackle this. Which are the most predominant topics I should cover? I will have maybe 1-2 days for this so I can't delve into specifics too far but have to give them a good birds eye view especially of the features that will matter to them.
I plan to emphasize the differences to Delphi, I think this will help them. I'd like to build a small Zoo-application and add something to it for every step I explain. So they can have a look at the created examples later whenever they want.
My topics so far:
- Short introduction of .Net, CLI, CLR
- Short introduction of Visual Studio
- Showing class/object equivalents, inheritance, creating some objects Animal->Cat->Tiger, explaining Namespace on the way
- Garbage Collection and Interfaces (very different from Delphi), Bird gets ICanFly
- Events / Delegates (short multicast example), Ape calls all other apes because he found a bunch of bananas or something like that
- Generics, creating generic animal list
- LINQ, query animals by categories
- Parallel Task Libary, the same but this time multithreaded
Some topics I'm not sure I should include:
- Operator Overloading
- Anonymous Methods / Lambdas
- Nullable Types
Maybe this should be delayed to a second session, maybe its too much for the beginning, I'm not sure.
I'm also undecided if I should include the coming asynchrony functionality in .Net 4.5. Maybe this is premature.
Then I will have to introduce WPF but I think this should be a question for itself.