The Futures of .NET
.NET is new. The current version of the framework is 1.1, with 2.0 in development
and on the horizon likely in 2005. Because .NET is new, I will spend some time discussing
the future of .NET which will help to explain why .NET is so important.
Even if you do not plan to move to .NET now, you will in the future. Developers
and companies who resist the move to .NET in the future will be like developers
writing Windows 3.1 or DOS applications today. .NET is coming - while you may not
move to it now, the sooner you come to terms with the fact that you will move someday,
the better.
Mono
Mono is a .NET implementation for Linux that allows managed .NET code to execute on Linux. Mono is exciting because it demonstrates that while Microsoft is the motivating
force behind .NET, .NET itself can and will be available on other operating systems.
Mainframes
In the future, I expect that the .NET framework will be available on mainframe class
computers. For enterprises with big investment in mainframes, this will be a big
step. As demonstrated with Mono, this is something that is certainly possible, and
is just a matter of time.
Servers
In the future, as .NET is available on more operating systems, servers will be available
to run server based assemblies. Operating system and even CPU will no longer matter,
and any server which has support for the .NET framework will be able to run assemblies
written by developers using any other operating
system.
Windows
Windows currently is based on the Win32 core. And the .NET framework runs on
top of the Win32 core. However, in future editions of Windows, this relationship will
blur and eventually reverse. This is very similar to how Windows 3.1 evolved into
Win32.
In the future, Microsoft will ship an operating system that *is* .NET. Drivers and
trusted code will still be permitted to run at a high level to provide hardware
and other necessary support. However, unmanaged applications will run in a compatibility
environment which simulates the Win32 API and translates to the .NET framework. This is similar to how Windows 3.1 applications are run on Win32.
The ultimate goal for every application is to become a managed application. While
this may seem very far fetched, if we
look back at history, it is not. In the days
of Windows 3.1 or even DOS, it seemed a far dream to have all Win32 applications.
However today, very few users are still using Win3.1 or true DOS applications (not
to be confused with Win32 console applications). And it's very rare to find any
developer still developing code for such environments.
Reeducation
.NET does require some reeducation and alterations of developer mentality. But the
same change existed when developers moved from DOS to an event driven environment
like Windows. Some time must be allowed for relearning, but the time invested will
quickly pay off.
Writing safe code enforces new restrictions
on developers and requires some reeducation to learn new techniques. But these new
techniques are best of breed practices that application developers should have been
using before, but either did not, or could not use. .NET helps to enforce these
best practices
|