| ||
|
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 |
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?
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.
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?
Although I haven't used it, I've heard really good things about thinstall. It's probably what you're looking for.
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
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.
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
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.
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
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
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.
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.
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)
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
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...
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.
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.
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 | |
Powered by FogBugz
