Programmers wishing to further their .Net skills and career prospects over Christmas were given a dozen tips, tricks and learning opportunities at the YOW! 2010 conference in Melbourne this week.
Thoughtworks "geek" Amanda Laucher and Josh Graham told delegates that even if some suggestions weren't ready for production deployments, they were still worth learning about to improve overall expertise.
"The tool doesn't matter as much as the technique," Graham said.
1. F# - Microsoft's official functional language on CLR (Common Language Runtime). It helped speed development, especially for mathematical tasks, the presenters said, but warned the language had a significant learning curve as it required a different way of thinking.
2. HTML5 - even though it was still in review, improvements to semantic markup, audio/video support, canvas, and drag-and-drop features were worth studying. Attention should also be given to elements deprecated in HTML5.
3. C# 'await' keyword - simplified asynchronous programming by reducing the need for callbacks. "It's definitely easier to read," Laucher said. Despite the name, it does not block the current flow. Currently at the CTP (community technical preview) stage, but expected in C# 5.
5. Fluent NHibernate - made it possible to "use code [rather than XML] to express things developers need to express," said Graham.
6. TDD enablers - test driven development was more about a mentality than tools, explained Graham, but various tools exist to help build better applications. They include NUnit, xUnit.net, MSTest, RhinoMocks, Moq, TypeMock, and Cucumber/Cuke4Nuke. "MSTest if fine if you have to use all Microsoft tools," observed Laucher.
8. Azure - Microsoft's cloud platform provided a relatively easy way for .NET programmers to get started with cloud development.
9. MEF - Managed Extensibility Frameworks was Microsoft's component and plug-in architecture. It provided a way of composing an applications feature set at runtime, and also allowed other people to extend your applications.
10. Raven DB - an open-source document database for .NET that provided an easy entry into NoSQL on .NET, according to Graham. Laucher pointed out that it could be more natural to use for people without previous training in relational databases.
11. Windows 7 Mobile - a platform that enabled .NET developers to create mobile applications using familiar tools such as Visual Studio. Mobile apps tended to interact with cloud services, and "that's what you should be very interested in if you want to further your career," said Graham.
12. Guerrilla SOA - an Agile approach to implementing distributed computing, system integration, and web-based services. Graham described it as a way of successfully implementing SOA without bloated middleware. Guerrilla SOA ideas "work awesomely well," he said.