Fog Creek Software
Discussion Board

Is .NET overkill for Desktop Apps?

I write desktop and small utility applications in Delphi for the company I work for.  The nice thing about using delphi is that the apps compile to a single exe (no deployment hassles, dll hell etc), OO framework, and generally the apps are pretty fast.  Some of the utitlity apps are small enough that can still fit on a floppy.  We may have to start look into converting our desktop apps to .NET, so that we can be .NET compliant and have one code base (server-side apps are in .NET).  I don't mind, and I am not complaining, if this is going to keep me employed, but I ask myself what benefit is this for the consumer of the software (internal and external customers)?  If a user of the software wants a copy of some of the software, all I have to do is email them an exe (usually 2mb or less) or put it on a floppy and hand it to them.  Now in the .NET scenario, I have to make sure the user has the runtime engine (20 MB install), the latest version of IE, the latest windows updates.  Plus, I don't know if there will be any noticeable performance gains in a  .NET app.  All in all, it seems like .NET is overkill for desktop development.  I can be totally wrong, and I am willing to be corrected. 

I am not trying to bash .NET as a development enviroment.  What I have learned so far, it seems like a very elegant framework (similar to Delphi/VCL) and I look forward to learning more and working with it.  I am just trying to understand what the benefits are for using .NET for utility and shrink-wrapped applications. 

Saturday, November 22, 2003

"I have to make sure the user has the runtime engine (20 MB install), the latest version of IE, the latest windows updates."

There is a little hyperbole there...They don't necessarily have to have the latest version of IE and they don't have to be fully patched. They do need the .NET Framework installed. In the future, this will be installed with the OS. For now, yeah, it's a separate install.

I don't really look at the choice of development tools in the "what advantage does this have to my customer? viewpoint. If the application can easily be installed and run on my target market's computers and answers their needs, does it really matter what development tool it's written in?

If having your clients install the Framework is going to be a burden, then by all means stick with Delphi.

Mark Hoffman
Saturday, November 22, 2003

If the customer has the framework, which is getting closer and closer to being an acceptable assumption, .net can actually yield some tremendously tiny "binaries" - An interactive modal dialog app with a couple of labels and buttons that set value yields a release "binary" of 6.6KB.

Dennis Forbes
Saturday, November 22, 2003

You say you "must" switch from Delphi to .NET. But if you are already succcesful in Delphi, WHY bother switching? You have Delphi code that works. You would have to rewrite from scratch on .NET (and you know how popular that is on THIS web site). :-D

Sure, your server-side software might be .NET, but are they maintained by the same developers? How much code sharing will their actually be? Is it enough to warrant the extra costs of rewriting and deployment headaches?

Saturday, November 22, 2003

Besides, if you want to build web applications to paying customers, I understand that Delphi can build ActiveX controls. If they don't mind being restricted to an IE-compatible browser, I think you should give it a shot before diving into server-side scripting with ASP.Net.

Frederic Faure
Saturday, November 22, 2003

Um, you do know that Delphi 8 for .NET was released last week, right?

Sunday, November 23, 2003

Delphi 8 for .NET was _announced_ last week, not _released_.  It will be a while yet before it is finalized.

Mitch & Murray (from downtown)
Sunday, November 23, 2003

I finished an application (3000 LOC C#) a week ago. I worked with the client feedback. I think I sent +-20 versions by email. The actual exe is 50k.

In this case, a tiny exe + a big runtime payoff.

C# fan
Sunday, November 23, 2003

"I think I sent +-20 versions by email. The actual exe is 50k.
In this case, a tiny exe + a big runtime payoff."

This looks promising.  If I understand correctly, there is a one time 'penalty' (for lack of a better term) for the user in downloading the runtime once and then distributing applications become quite manageable. 

Thanks to everyone for all of your feedback.

Sunday, November 23, 2003

A one-time penalty, yes, but that's a killer penalty if you are distributing your software online.  You obviously can't email a 20MB file and asking users to download it is a dicey proposition unless they HAVE to have your software.  If a dial-up user (and yes, there are still lots of them) has a choice between your app and someone else's, and your installer is 20MB bigger, guess which one the user's going to try first?

I really wish they had pushed out the .NET framework with XP or IE6 to help alleviate this problem.  Basically, .NET is being limited to server-side only, which I guess is what MS really wants at this point.

Monday, November 24, 2003

They are already pushing out the .NET Framework with Windows Update.  It shows up in the list of updates for you to install, right next to WMP 9 Series.

They don't auto-select if for installation though.  And it won't be installed by the Automatic Updates tool.

Richard Ponton
Monday, November 24, 2003

Delphi can produce small EXEs too.

Delphi's EXEs are larger than .net exe's because the latter are STATIC LINKED (typically) so they include all dependencies.

HOWEVER, you can create dynamic linked Delphi EXEs that are a small EXE plus dependent files (.dlls, etc.)

So, in the case above, with the fellow emailing updated EXEs, you could create a dynamic linked exe during development.

THEN, after it's developed, you can create a static linked EXE.

I personally use VB 3 (yes 3)  in programs I've been selling for nearly 10 years.  I'd LOVE to switch to Delphi. It's a much more elegant language. But, for me, VB 6 will do everytying I need it to do, without a 20 MB .net runtime.

I think Delphi is great, but I already know vb 3 and 6 very well. No reason for me to switch at this point.

(You may have seen my very long post on the subject some months ago).

Monday, November 24, 2003

If you're distributing commercial grade software, you can NOT assume the customer has the .net framework.

The newbies will be the ones who do NOT have the .net framework.  And that's a recipe for a support nightmare, which is both expensive to the pocketbook and damaging to the reputation.

Monday, November 24, 2003

"If you're distributing commercial grade software, you can NOT assume the customer has the .net framework."

True, but you can have an install package that includes the .Net Framework and installs it automatically, if necessary.  The downside is that it adds 20MB to your install package.

Robert Jacobson
Monday, November 24, 2003

*  Recent Topics

*  Fog Creek Home