Fog Creek Software
Discussion Board




Using .NET to develop a $30 Shareware


I'm planning to publish through a web site a shareware,
the price will be $30

I dont know if I should use Delphi or .NET yet.

With .NET I will benefits from nicer API from the Framework
but then people who do not have the .NET Framework installed would have to install it.

The advantage with Delphi is that it just require a single .EXE file to run

What would you guys advise me ?

Brian Carmack
Sunday, July 25, 2004

Use Delphi.

Craig
Sunday, July 25, 2004

Craig :

"For which reasons ?"


I'm trying to have an extensive list of pros & cons
between the dot net & Delphi.

Do you now if Delphi applications will run on Longhorn without problems ?

Does 16 bits applications (Windows 3.1) will run on LongHorn ?

Brian Carmack
Sunday, July 25, 2004

Distribution  economics say Delphi or anything else that zips your distro into less than 2MB.  Unless you must have .NET features, (and your post indicates you don't) asking folks to install another 20Mb just to run your thingo won't help you sell it - until all the lemmings have migrated.

Another issue is code obfuscation. It's a LOT easier in an .EXE ...

Not to say .NET won't happen in time but I'm not in a real rush to convert from CBuilder to .NET yet.  I guess that Delphi.NET could provide you with an upgrade path.

Don't buy any your development tools until you've made up your mind. Good luck.

trollop
Sunday, July 25, 2004

Another vote for Delphi. Instead of thinking "Delphi app" think "native Win32 app" for perspective.

Delphi experience will almost certainly not help you land a full time job or a decent paying contract. But Delphi applications are very easy and reliable to deploy because they have few dependencies upon the computer's operating environment. If you are selling shareware, you must make support of your users as economical to you as possible. This implies distributing something as close to a native Win32 application as possible.

The fact that you can compile (VCL) custom controls into the application also eases deployment issues.

Bored Bystander
Sunday, July 25, 2004

If you think that .NET will give you a better "framework API" than Delphi you obviously don't have experience with both environments, so you can't compare them.

If you make an enterprise application which involves XML, web services, SQL Server, and database access which is heavily cached on the client (ADO .NET does this) then C# and Visual Studio .NET will indeed be better than Delphi.

But for the rest of the projects:

- Delphi has more GUI components, .NET has a lot less components, also the .NET components are extremely buggy when compared to Delphi's

- ADO .NET is a lot harder to use than the database engines (there are several) which are included in Delphi

I have done both Delphi and C# development, and I think that for shareware software, or for software that must have a rich user interface, Delphi is a lot better.

MX
Sunday, July 25, 2004

BTW, the VB5 runtime ships with Windows since 98, so you don't need to ship the runtime, and you can combine any extra file (OCXs, DLLs, etc.) with the EXE using tools like PEBundle, EXEBundle, or Thinstall.

And considering that you can still run clean DOS apps under XP, I wouldn't worry about MS killing support for Win32 apps any time soon.

Fred
Sunday, July 25, 2004

CityDesk uses a combination of Visual Basic 6 and Visual C++ 6/7--is this still valid?

Li-fan Chen
Sunday, July 25, 2004

Do you have a link to EXEBundle?  Google was no help...

anon
Sunday, July 25, 2004

if you use delphi your app will also
- be faster
- have less startup time
- eat less memory

What frameworks are you require?
- you have XML support (event pure delphi SAX parser)
- free report engine (see freereport at http://www.fastreport.com)
- lots of visual components (http://www.torry.ru http://www.delphi-jedi.org/ )
- ports of most APIs header files

I think .NET is applicable only when you develop a web or an enterprise appication, targeted to MS Windows only (see amount of .aspx'es today), or a development tool.

Max Belugin (http://belugin.newmail.ru)
Sunday, July 25, 2004

There's only one reason you might choose .NET: because you can't afford Delphi. :) You can get the .NET SDK, which includes the command line compilers, for free. You can add a build tool like NAnt or an IDE like #develop for free as well.

If you already have Delphi, or can afford to buy it, it's the better choice for stand alone apps today.

Brad Wilson (dotnetguy.techieswithcats.com)
Sunday, July 25, 2004

Do you have a link to EXEBundle?  >>

http://www.webtoolmaster.com/exeb_e.htm

but PEBundle and Thin$tall seem richer.

Fred
Sunday, July 25, 2004

I'm curious what tools might have been suggested if the platform was Linux.

RH
Sunday, July 25, 2004

Max,

<quote>
if you use delphi your app will also
- be faster
</quote>

Good to see you backed up that statement with a study or research proving your assertion.

Seeya

mjwills
Sunday, July 25, 2004

>Good to see you backed up that statement with a study
>or research proving your assertion.

I'm not Max, but I can tell you from a bit of my own research that this is true in some important cases.

I made a program that would approximate a Bezier surface, whose control points were varied in a simple way, every 100 msecs.  The triangles for the surface would actually be regenerated for every frame and the container class would be cleared and refilled (so clearly it's not the most efficient way of doing it).  Finally the triangles would be run through my small software rasterizer and thereby clipped/projected on the screen (the whole surface would undergo rotation and such also).

I made this program in Delphi and then I translated it to C#.  The Delphi version ran the animation smoothly, never going above 40% CPU usage (and using very little memory).  The C# version was pretty choppy and it used 100% of the CPU time (and it used a bit more memory).

This probably isn't particularly surprising to most people, and obviously the poorer performance of C# can be overlooked in a huge number of cases, but there's one data point anyway.

Actually I think that Delphi is an interesting case.  The performance that you can get with it is impressive (even compared to the typical C++ environments where compiler optimization research is put to greatest use), and the facilities that its IDE provides for building nice user interfaces are really pretty good.  The only complaint that I have about it is the poverty of language features.  I'd like reflection, multiple inheritance, generic types/functions, operator overloading, continuations, etc etc (my list of complaints here is long and I guess to some degree it applies to many modern languages).

C# is a good language too, and the libraries that come standard with VS.NET certainly do better than Delphi in a number of areas (a very simple example being regular expressions, which as far as I know STILL requires a third-party library with Delphi).l

Kalani
Sunday, July 25, 2004

Kalani - did you look at GDI+ for your rendering?

Philo

Philo
Sunday, July 25, 2004

I'm a Delphi fan from way back, now using C#. 

I understand the original poster's interest in a nicer, cleaner framework.  For instances, C#'s type unification lets removes the need for ugly hacks that creep in to Delphi code from time to time (e.g. casting integers to objects (or pointers) just so that you can stuff them a TList).  .NET's collection classes seem better than Delphi's, although admitedly the Delphi ones have improved over time.  On the whole the .NET framework seems richer, more extensive and more consistent.

Garbage collection is a _good thing_, once you get used to it.

On the other hand, Delphi has numerous advantages as listed by other posters to this forum.  Most importantly, its offers the best Win32 to .NET migration path.

One option is to get Delphi for .NET in addition to Delphi for Win32.  (I think Delphi 8 includes both.)  Write your code in Delphi for Win32, but at regular intervals do a test migration to Delphi for .NET.  You won't be able to use any .NET features in your Win32 version, but at least you'll know that, someday, you'll be able to migrate to .NET without too much pain.

Ultimately, the decision is a tough one, and depends on how well-matched Delphi is to the application that you want to write, and who your user community is.  E.g. a geeky user community will be (somewhat) more willing to download the .NET framework just to run your app.

John Rusk
Monday, July 26, 2004

<quote>
<quote>
if you use delphi your app will also
- be faster
</quote>

Good to see you backed up that statement with a study or research proving your assertion.
</quote>

I can not say anything about pure math apps, but i use SharpReader and The Bat everyday, and UI of the last is much faster.  Try to build hello, world with delphi and winforms and you'll see the difference

Also i have a study about Scripting languages COM interconnection

Language,Creation of the first 1000 objects, Creation of the second 1000, call simple method 000 time,    Source code, bytes
&#1057;++    201ms    30ms    20ms    3113    
&#1057;#    1812ms    200ms    240ms    221    
VBScript    1232ms    801ms    90ms    411    
JScript    791ms    751ms    90ms    398    
Python    4437ms    3135ms    351ms 485

the russian text with table at bottom is at
http://winscript.sourceforge.net/modules.php?op=modload&name=News&file=article&sid=7&mode=thread&order=0&thold=0

source code at
http://winscript.sourceforge.net/modules.php?op=modload&name=Downloads&file=index&req=getit&lid=4

Max Belugin (http://belugin.newmail.ru)
Monday, July 26, 2004

these experiments has the aim to evaluate languages for replace JScript wsc's for http://scrhostplugin.sf.net

Max Belugin (http://belugin.newmail.ru)
Monday, July 26, 2004

Ask your customers.  If your reply to that is "what customers?" then it really doesn't matter, because no one's going to use it!

Devin
Monday, July 26, 2004

*  Recent Topics

*  Fog Creek Home