(Not logged on) | Register | Log On

You can subscribe to this discussion group using an RSS feed reader. The Joel on Software Discussion Group

A place to discuss Joel on Software

This community works best when people use their real names. Please register for a free account.

Other Groups:
Joel on Software
Business of Software
Design of Software (CLOSED)
.NET Questions (CLOSED)
TechInterview.org
CityDesk
FogBugz
Fog Creek Copilot


The Old Forum


Your hosts:
Albert D. Kallal
Li-Fan Chen
Stephen Jones

Is .NET a viable development tool for downloadable software?

In this article http://www.joelonsoftware.com/articles/PleaseLinker.html , from January 2004, Joel writes that ".NET is fatally flawed for consumer, downloaded software" on account of the constant changing runtime, and it not existing on that many end-users installation.

I am just about to start a consumer, downloaded piece of software. I have no existing code for it, but will be developing from scratch in VB. The question is, should I use VB6 pr VB.NET? I'm hesitating about VB.NET because of the article mentioned above, but on the other hand, support for VB6 seems to be gone now, and who know what problems that will cause with future windows versions.

Have things changed in the year and a half that have passes since that article, or are the points still as valid?
Mattias Gustavsson Send private email
Tuesday, August 16, 2005
 
 
Pretty much, although you can buy a linker from a 3rd party. There are some good ones on the market, allegedly.

I wouldn't do it in VB6 - it's not a great language, plus it's no longer supported by Microsoft. Do it in Delphi if you can.
Colm O'Connor Send private email
Tuesday, August 16, 2005
 
 
Thanks for that. I'll definitely look into the linkers, that might be what I need.

Well Delphi is not an option, it will have to be VB, so at the moment I'm leaning towards VB6, to maximize compatibility. But these linkers seem interesting, anyone got any experience of them for real applications?
Mattias Gustavsson Send private email
Tuesday, August 16, 2005
 
 
Although I haven't used it, I've heard really good things about thinstall. It's probably what you're looking for.
Colm O'Connor Send private email
Tuesday, August 16, 2005
 
 
Too bad Thinstall is $5000 per application.

ILMerge might work for this, and it is provided for free from Microsoft.
http://www.microsoft.com/downloads/details.aspx?FamilyID=22914587-b4ad-4eae-87cf-b14ae6a939b0&displaylang=en
NathanLaan Send private email
Tuesday, August 16, 2005
 
 
I've played around with the RemoteSoft linker (Salamander, I think it's called).

I created an app with all the controls from the palette. Compiled and linked it.

Size: about 11 MB as I recall.

Ran it with Virtual PC on a fresh install of Windows 98SE *(+ IE, 5.1 I think). Ran just fine. A bit slow with a simulated 32 MB of RAM.

I've not made up my mind about the vb.net vs. Delphi decision. (It's been ongoing for years now.  I was screaming about the lack of a linker on JoS long before Joel wrote his article).

My verdict: I'm leaning toward vb.net + RemoteSoft linker ($500. Much cheaper than the competition which wheighs in at $1500 to --get this-- $3000 per application PLUS $600/year royalty (thinstall). WTF??


Remotesoft website looks rinky dinky, but seems fine.
Mr. Analogy {uISV} Send private email
Tuesday, August 16, 2005
 
 
Yeeargh. I hadn't checked thinstall's prices.
Colm O'Connor Send private email
Tuesday, August 16, 2005
 
 
How do those linking apps work legally? My presumption is that they're in a gray area, and technically it conflicts with Microsoft's redistribution guidelines for the .NET framework.
Dennis Forbes Send private email
Tuesday, August 16, 2005
 
 
Why is Delphi not an option?
jthurman Send private email
Tuesday, August 16, 2005
 
 
First, I don't know Delphi, but have years of experience developing with classic VB, and quite some experience developing with VB.NET. I'm just going to be able to be much more productive with VB right from the start.

Second, I don't own a copy of Delphi, but have both VB6 and VS.NET
Mattias Gustavsson Send private email
Tuesday, August 16, 2005
 
 
I hope so. I have some downloadable software at http://www.florencesoft.com that is bundled with the .NET runtime. I also added the option so that users can download the software with and without the 20 Mb .NET runtime.

About 10 people a day download the software from www.florencesoft.com and about 400 people have downloaded the software from CNET.
Martina Send private email
Tuesday, August 16, 2005
 
 
Funny, everyone so far just accepts Joel's premise without argument.

Joel believes that is true, but that doesn't make it necessarily so.

I've said this before, and I think Joel would agree, that whether somebody will download a framework (.NET, Java, etc) depends on who 'somebody' is.

Before deciding how to write it, you need to know who is going to use it.  Are they (mostly) developers?  Are they (mostly) using broadband?  Are their Internet IQ's (mostly) above 60?  Is the segment to which your appealing already have .NET/Java saturation, making it a moot issue?

If you're dealing with intelligent people with broadband, they'll install it because they know it's not a problem.  If they're dumb people on a 28.8k modem, they'll still install it because they do whatever any web page tells them (since NO ONE would EVER lie on the Internet).  The only worry is people who know that downloading 20MB is a long time on dial up.

Simply put:
Blanket technology policy == bad
Just saying 'ba' when Joel speaks == could be bad
Knowing your user base == good
Frank "Grimey" Grimes
Tuesday, August 16, 2005
 
 
Hi Mattias.

Since it sounds like you plan on creating a downloadable piece of software for the average end-user, I would say your best bet is to use VB 6 simply because you know this development environment the best.

I suppose you could try to contact some third-party companies and ask if they have demo version of their product (i.e. Thinstall) that they are willing to let you try. That said, there is a relatively expensive third-party product that does the same thing for VB 6 apps that I checked-out several years ago (I forgot the name of the product). I believe it wasn't until a year or two ago that most/all of the showstopping bugs had been removed from their product. In other words, it took that company several versions (and several years) to get it right.
One Programmer's Opinion
Tuesday, August 16, 2005
 
 
Why not C#?

Go with what will be the de facto for .Net.
vic
Tuesday, August 16, 2005
 
 
Things to consider if you are using DirectX.

- DirectX updates are coming out every few months.
- Managed DirectX ix never backwards compatible.
- You are not licensed to distribute the Managed DirectX dlls seperately from the rest of the DirectX redistributable.

The results of the above is that you have an excellent chance of needing to distribute the 35 Meg DirectX redistributable every time you issue an update for your program.

Phil
Phil Send private email
Tuesday, August 16, 2005
 
 
I think you have a tough case to make to go with anything but .NET.  As far a downloads go, 25 meg is a breeze on anything but dial-up.  Reality is, there just aren't that many 56k users willing to fork over $$$ for software.

The .NET runtime install is really pretty painless.  Our company has a couple thousand end users on .NET 1.1 and we've never had a problem with the runtime install.

Development times and software lifecycles are often much longer than you anticipate.  You really have to ask yourself "In 3 years am I going to be sorry I didn't go the .NET route?"
Bill Carlson
Tuesday, August 16, 2005
 
 
FYI,

I'm a pragmatist. I see serious issues with vb.net's runtime (and have ranted for LITERALLY years).

Delphi is actually closer (as a langauge) to VB6 than is VB.net.

Delphi has a clearer inheritance implementation.

HOWEVER, VB.net seems to have more tools support. And that support will grow, while Delphi's stagnates or shrinks.  And there are more learning resources for VB.net. Lots of people are "in your class" learning with you.

Delphi has some good resources as well, but not as many students.

I HATE picking VB.net because of a better supporting "ecosystem", but that's a big factor in the cost.

BTW, Thinstall, last I checked, did NOT have a trial version. Their prices are abso-f**ng unbelievable.

But, if you're going to have users downloading your trial or running it with a non admin account (say, at a hospital like we do), you'll need the linker.
Mr. Analogy {uISV} Send private email
Tuesday, August 16, 2005
 
 
Another good question to ask is if these solutions actually do free you from the .NET framework. The framework is more than just the System.* libraries - it also includes the code to manage the execution of your code: the JIT engine, whatever it is that manages App Domains and the garbage collector. Its not evident to me that Thinstall replaces the need for those. If it doesn't, then it seems like Thinstall is fairly useless - there's no point in linking MS framework libraries that would be there anyways in a normal install of the framework, if that normal install is needed to run your application.
John Christensen Send private email
Tuesday, August 16, 2005
 
 
I don't know - somehow it just feels slighthly incongruent to include / link a full OS framework as part of an application download.

Either the users PC is able to run the application or it's not. If it's not, then direct the user to download the prerequisite files from MS or include the separate files as part of the installer.

Linking the core OS files into the executable seems so 1987...

(I seem to recall the first versions of Excel/Word came with a runtime version of Windows 1.0 for the DOS users)
HS Send private email
Tuesday, August 16, 2005
 
 
John,

The product wouldn't make any sense at all if it didn't link in the runtime. The only logical conclusion is that it yields an executable that runs on non-.NET equipped PCs.
Dennis Forbes Send private email
Tuesday, August 16, 2005
 
 
I recently faced a similar problem where I needed to create Win32 based application. .NET was not an option because of runtime size and we wanted to create an application without need of an installer. Finally we decided upon Delphi and it has been great. If you are experienced VB programmer, you will be productive with Delphi in just 2/3 days, trust me on that one. Not only Delphi offers everything VB has + it has many more tools to make your life easier. Delphi has components for threading, collections, Internet connectivity (Indy is what we used), excellent OO support... Once you have used Delphi, you simply won't like to go back to VB. Now I understand why Bored Bystander and other forum members are so much in love with Delphi.

BTW, Delphi 2005 IDE is VERY VERY buggy. You are better off with Delphi 7.

JD
JD Send private email
Tuesday, August 16, 2005
 
 
I would recommend Delphi also. You can build Exes that have no dependencies whatsoever, which should fit your distribution model perfectly. Compressing the Executable with upx will reduce your download size even further...
Fritz Huber Send private email
Tuesday, August 16, 2005
 
 
Another one for Delphi - and yes, D7 is preferable to D2005. (cheaper too)

However, OP clearly stated Delphi wasn't an option. In which case I'd recommend VB6. After all, strictly from the users viewpoint, is there any difference at all between a VB6 & VB.Net application...
HS Send private email
Tuesday, August 16, 2005
 
 
Definitely VB 6.0, if you're not interested in Delphi. VB 6.0 lets you develop and distribute first class applications.

The hype about .NET is really oriented towards enterprise developers. It's part of catering for dumber programmers.
Happy ISV
Tuesday, August 16, 2005
 
 
"Another good question to ask is if these solutions actually do free you from the .NET framework"

Remotesoft's does.

They claim you can run it from a CD on any Win 98 PC with IE 5 (or whatever the IE req't is for .net).

As I said above, I've seen that in my tests. Fresh install of Win 98, Win2k , Win XP, and it runs just fine.

And, I am no .net appologist. I've got issues with .net, but the remotesoft linker seems pretty good.
Mr. Analogy {uISV} Send private email
Tuesday, August 16, 2005
 
 
Can one still buy Delphi 7 and if so, how?
OneFlew
Tuesday, August 16, 2005
 
 
Thanks everyone for all your answers!

I've decided to go with VB6, on account of me being experienced with it and it being able to produce stand alone executables.

It would have been nice to use VB.NET instead, but it does seem like it is more suited to enterprise development, where you have better control of deployment. Oh well.

Again, thanks everyone.
Mattias Gustavsson Send private email
Wednesday, August 17, 2005
 
 
For VB6
http://www.theserverside.net/news/thread.tss?thread_id=32806
Let use:
API instead of MS Common Controls.ocx  and other's if possible
DirectCom.dll for loading activex dll objects from file
http://discuss.joelonsoftware.com/default.asp?joel.3.17304.14
http://www.molebox.com/ is interesting product, like PE bundle it pack executable with Win32dll's and also vb6 tuntime and ActiveX's

.NET is realy cool thing, but in desktop applications case it's cool for developers, not for users or customers
Ervins
Wednesday, August 17, 2005
 
 

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
 
Powered by FogBugz