The other day at the Triangle Area .NET Users Group someone asked me an interesting question.  Based on my experience at Microsoft working on future versions on the .NET Framework and the Windows operating system, what should developers do TODAY to prepare for the future? 


I was not able to come up with anything earth shattering, but I thought I’d share these with you.


1. Make the move to managed code!  I am likely preaching to the choir here.  But it is true, the vast majority of developer experiences coming out of Microsoft are going to be based on managed code.  Everything from application automation to APIs for new platform features.

That said, we continue to invest heavily in interop.  Most of the important applications Microsoft has are unmanaged and we recognize the investment many ISVs have in unmanaged code.  We are NOT likely to push any kind of 100% pure managed as the only true way.  Almost all the new stuff we are building have a way (mostly through interop) to access great new features from unmanaged code.


2. Use good application architecture techniques. Factor your UI from our business logic from your database logic.  Use XML based web services anywhere you are communicating across organizations and consider even in cross machine communication in the same company.  This kind of architecture will allow you, for example, to have the option of easily changing an ASP.NET site to use client side front end.


I am sure this is just a start...