I've read many interesting posts (like this and this) about what are the top arguments absolutely to learn for the future .NET platform.
I think that all the future Microsoft platform must be known at least for its main parts (a vision of the entire architecture is a must in order to make the best choice for a business problem) and the arguments that can be placed on the FOCUS LIST must reflect the main activites (and the main business) of everyone of us.
My "wish list" could be as follow:
- Windows Workflow Foundation: This is my personal number 1. I've written many posts where I've said that Workflows will be always more the key part of an enterprise architecture. They can help you to architect solutions that can be "adaptable" to the business process and extremely flexible and customizable. The new WF platform extends the CLR and provides out of the box services for modeling processes, for persistence and isolation. This is extremely interesting and I've never stop to request what I think could be the real added value to this platform: a visual WF editor for the end user, in order to adapt and customize a "pre built" set of workflows.
- Windows Presentation Foundation: I love Windows Form application so WPF it's a must to learn. WPF is the future way to make application "ready for the Vista experience" and the new graphic way of architecturing a windows application is something that must be known. I really hate to become a graphic artist in the future, but tools like Expression Blend will be always more near also to the developer world.
- Windows Communication Foundation: One of the main part of an enterprise architecture and a key point for the SOA concept. WCF groups together all the service oriented architectures like WebServices, EnterpriseServices, Remoting, Transactions, WSE, MSMQ. If you've worked on projects that requires integration between large and different architectures, how many times you've used .NET WebServices today? The future will be WCF.
- ADO.NET and LINQ: the new way of make access to your data store will be always more standardized and LINQ (with entity objects that maps data and their relationships) will be the future technology to learn.
- Sharepoint 2007 and the Office platform: we've to forget the concept of "MS Office" like a suite of tools for the office work, but with Office 2007 Microsoft has created a complete platform for the developer. Sharepoint 2007 is absolutely the key point around this new platform and many future Microsoft applications (I'm thinking about Dynamics NAV 5.1 for example) will embrace the core of this technology. Tools like Visual Studio For Office, actually used for very few tasks, will be always more useful for our business. Kirk has said that "MOSS is the single largest area of opportunity for developers and architects" and I can agree with him.
- Silverlight and ASP.NET 2.0: not my main business, but Silverlight is so fascinating that learning the basics (at least) is absolutely to do. The web experience is making a move and we've to learn (and change) a lot on this field.
- BizTalk Server 2007: for the serie "what I'd like to learn but I don't have the time"… BizTalk is a tool borned for the Enterprise, a complementary part for big realities where Windows Workflow could be not enough. BizTalk 2007 is extremely powerful and I know too few things about this.
The future has really too many new things to learn and the time for studying is always not enough… 