Is it necessary to move all of your code to .NET? Will your native code application continue to run on Vista and beyond? Should you develop new code using native compilers?
Should everyone move to .NET?
For existing applications, to move to .NET "just because" or without
compelling reasons does not make sense. Many businesses have to keep
shipping releases and bug fixing current code. It is not an option for
them to simply shut down for months on end to port. .NET is a major
choice in new projects, but for existing projects it should be moved to
only with a compelling reason.
However, for many businesses there are compelling reasons such as
new functionality in .NET. Examples are WPF, WCF, etc.
What about new code?
It depends on the type of code that you are writing. However for
most enterprise and business applications, in 99% of the cases .NET
makes the most sense for new code.
Is Win32 dead?
No. Win32 code will live for a long time because of the huge code
bases written for it. And even after .NET becomes even more prevalent,
Win32 (and later Win64) still has its place. Microsoft still produces
C++ and managed C++ for this. Delphi Win32 applications will continue
to run on Vista and beyond.
When is native code better?
Here are some simple cases. If you:
- Require the program should run without any installation or pre-requisites
- Need to run on Windows 98
- Have a large code base which is in maintenance mode and new feature are not common.
- Require direct hardware interaction (Excluding simple serial ports, etc which can easily be done from .NET)
- Need to directly manipulate memory
- Are writing device drivers
- Implementing your own encryption or compression algorithms.
#1 and #2 are fairly common scenarios.
Delphi for Win32?
For native code, Delphi for
Win32 is the best development environment hands down
for applications. Why? In short:
- What are the competitors? Visual Basic? C++? Those are not
desirable options for Delphi users.
- I find the forms designer faster, more efficient, and more
powerful than the WinForms designer offered by .NET IDE's.
- While .NET competitors have an up with ADO.NET, building simple
client server or local bound database applications is more time
intensive. Delphi exceeds by far in this area, and this type of
application is very common among Delphi's user base and their end users
who are typically small shops, downloadable software, and shareware.
- No prerequisite of .NET framework install required. In an
Enterprise this is not an issue, but for the time being and into the
medium term future it is an issue if you ship downloadable software.
About the Author
Chad Z. Hower aka Kudzu was formerly the the Regional
Developer Adviser (DPE) for Microsoft MEA (Middle East and Africa).
Chad is the team leader of Delphi to .NET and a professional speaker for Woo Hoo. Chad has worked with dozens
of migrations from Delphi to .NET involving many of Europe's largest
ISV's. Chad is also the original author and architect of both Indy and IntraWeb,
which have been an essential part of Delphi since Delphi 6. More about Chad
|