The DLLs that .NET wants must be COM DLLs. A COM DLL is a special DLL that contains objects and interfaces. The important part is that a COM DLL is self-describing as it is meant to be interfaced to, even more than a standard C-style DLL. A C-style DLL exposes functions (and a little more), but isnt self-describing.
To use a C-style DLL in .NET youll have to use DllImport (see the help) and expose the functions yourself. For example, to expose the function SendMessage in the windows DLL "user32.dll", you use:
C#:
[DllImport("user32")]
private static extern int SendMessage(int hwnd, int msg, int wparam, int lparam);
If you want to mainting (not re-write) your old DOS-based programs, youre likely stuck with Turbo-C, Turbo-Pascal, etc. Borland, as far as I know, is the only one who made a good DOS-based compiler for writing robust "windows"-like apps.
.NET is for Windows applications though there are ports for other OSs. I can almost guarantee that there will *never* be a port for DOS as MS owns DOS and wont take the time to do it.
For $600, the retail clients can buy a PIII 700 and upgrade to some version of Windows. The UI enhancements over DOS are well worth it in terms of screen space alone. But if they have their amber screens and like them, I wouldnt try to change it and that means staying with Turbo-C.
-Nerseus