Is VB.Net Practical for Shareware Apps?

Captain Dave

New member
Joined
Jan 22, 2003
Messages
2
Location
Florida Keys
After browsing this board I was dismayed to learn that applications written in vb.net require an enormous runtime file of over 20 meg. An additional file is required for applications which access data. :eek:

Nobody using dial-up is going to download these files so they can try out your shareware app. It shouldnt be a problem for broadband users but I wonder what percentage of shareware users have broadband.

Does anybody have an opinion on the merits of writing new shareware applications in vb.net rather then vb6?
 
For the time being, I would say that VB.NET is not practical for shareware
apps; not many people have the framework yet. However, in the
future, Windows is going to come shipped with the framework, so
all you will need is the EXE and required files to run it.

Right now, though, youre right. Not many dial-up users will want to
download 20MB DLLs to run a shareware program.
 
I never thought VB was good for shareware in the past anyway. Who wants to download at least 5MBs just to try a simple little program that may be less than 100KB???

However, with .NET youll only have to download the .NET framework once, and then you can run any .NET program - which should be quite a small download and simple to install.

I think its an improvement, even for dial-up users.
 
Its the same with VB6... XP even ships with the VB runtimes, so you
dont need to include them if you want to run on XP only.
 
I think all currently supported Windows versions ship with the VB5 runtimes, and VB6 since Windows 98 SE (I think). Future Microsoft products will ship with the .NET framework as they shift their own development towards the new platform.
 
I have to wonder how many versions of .net runtimes there will be. Are there going to be vs.net upgrades every couple of years - each requiring a new runtime?

I thought compiling to native code eliminated the need for runtimes.
 
If your question was "will a user have to re-download 20meg every year or so to get an updated runtime", the answer is unknown. I would guess there would be smaller service packs, hotfixes, etc. to cover the majority of "necessary" upgrades. When it comes to updating a system, there are generally two categories of users: those that upgrade everything and those that never upgrade. For those that never upgrade you only have to worry if you develop on the *newest* version that isnt compatible with an older version. For those that upgrade constantly, you only have to worry if the new framework breaks your code - a very unlikely scenario. Ive never had an issue with the MS runtime causing problems because of an upgrade. The worst thing Ive seen is a bunch of controls getting a white background instead of grey one because of an outdated DLL - still not the runtime. Now 3rd party DLLs on the other hand - well, dont get me started :)

You might think of it this way - if there were issues with programs breaking because the runtime wasnt backwards compatible, there wouldnt be many people developing with it. Thats good enough for me, especially since I dont want to write a compiler (Ill let MS do their job on that one). :)

Im not sure what you mean about native code...
.NET doesnt compile to native code normally - it compiles to an intermediate language that the runtime compiles "just in time" as the program is loaded. As a developer you have the option of compiling the code into native code for better startup performance using the tool ngen.exe but you run the risk of decreasing performance later. The "compiler" optimizes for the machine its run on and cant be recompiled later. This means future compilers, which might optimize better, cant be used later on. Also, if you "compile" on a machine different than the end-users machine, your app may be optimized incorrectly. This could be especially true a few years from now as 64bit processors come out - not to mention a new OS.

To help out with preventing "DLL Hell", MS has changed its strategy on deployment. You should check out the help file at:
Visual Studio .NET -> .NET Framework -> Deploying Applications
It contains a ton of information on what you need to worry about when deploying your app, including upgrades and how the framework finds the right DLL at runtime. Theyve put a lot of effort into helping us developers get the program running on every machine. It does still mean we have to know a *lot* about whats going on at runtime to figure out how to get our installations to work right *every* time.

For the record, what kind of shareware program are you writing or thinking about writing? :)

-Nerseus
 
If youre offering your app for download, you can have the exe seperate from the Framework. The user can determine if they need it or not.
 
That depends on how savvy your users are. If youre aiming for the techy types like us then thats not a problem, but say you were writing an IM system (a common affliction amoungst novice programmers) you will often find that your users are too dumb to work out whether they need the framework or not.
 
You could somehow cause your program to explain to them that they
need the framework, and where to get it, instead of just having
that MSCORE.DLL not found error or whatever it is.
 
Banjo, I agree with you on that, its the same way that most novice folk cant figure out if they need Acrobat Reader or not.
But as Volte said, you could explain it to them either with your app or on the download page.
 
Or use the built in installer which could offer to download the framework direct from MS if its not already installed... :)

-nerseus
 
Yeah but that generally requires either an expensive installer program or detailed knowledge of MSI databases (not nice ;)).
 
Back
Top