Fog Creek Software
Discussion Board




Linker available / framework penetration

>Almost none of these users
>has the .NET runtime yet.

You may be surprised.  Check your statistics for your citydesk web site or your web logs for your citydesk order form.  The user agent indicates if the framework is installed and what version is present.

e.g. Mozilla/4.0+(compatible;+MSIE+6.0;+Windows+NT+5.0;+.NET+CLR+1.1.4322)

Also, for a linker see http://www.remotesoft.com

Pete Jenkins
Wednesday, January 28, 2004

1/3 of the users who visit our public site have .NET installed.

Besides, Joel's rant is way off base. .NET is not a set of function calls; it's an entire platform which cannot be divorced. Sure, he's frustrated that he can't move CityDesk, but let's be honest: CityDesk isn't what .NET was aimed at. Windows Forms is primarily about fostering a rapid environment for smart client development. That it can make a CityDesk is really almost tangential.

Brad Wilson (dotnetguy.techieswithcats.com)
Wednesday, January 28, 2004

Im unsure as to what you mean by this?

"Windows Forms is primarily about fostering a rapid environment for smart client development. That it can make a CityDesk is really almost tangential."

For me, WinForms is about replacing VB6 for Desktop apps on Win2k3 and Longhorn.

Dan G
Wednesday, January 28, 2004

"CityDesk isn't what .NET was aimed at."

Are you sure? It seems MS is forcing .Net for everything and everyone, everywhere. Sure, there will always be a place for proper C++ (especially inside MS) but they seem to be saying even their own stuff will one day be .Net (not sure if this will eventuate, but some people in MS see managed code and .Net as the only future).

Mike Neale
Wednesday, January 28, 2004

I'm not saying you can't write simple desktop apps, but rather that wasn't the primary design purpose for Windows Forms.

.NET gives you smart client (rich client, Windows Forms) and thin client (ASP.NET Web Forms) ways to get at your enterprise data. This is not about dinky little stand alone apps any more, because that's just not the majority of what's going on in today's businesses.

Does that mean .NET is inappropriate for shrink wrap apps that don't wish to ship with or require the framework? Yes. Deal with it. *shrug*

Brad Wilson (dotnetguy.techieswithcats.com)
Wednesday, January 28, 2004

The real point is that any "linked" version of a .NET app would be:

size of app compiled normall + size of framework.

You have to link in all the code, due to the fact that with things like reflection, you can't necessarily determine what is and isn't required statically.

That's the reality with languages more dynamic than C++.

Sum Dum Gai
Wednesday, January 28, 2004

"You have to link in all the code, due to the fact that with things like reflection, you can't necessarily determine what is and isn't required statically."

They could easily give you a packaging tool which allowed you to manually include the classes that you use via reflection into the end package.  Not even close to an insurmountable problem.

Needless to say, I agree with Joel on this issue.  I'd love to use C#/.NET for my small web-downloadable software business, but I just can't right now, and I probably won't be able to for the next 3 years or so, simply because of issues related to the dealing with runtime distribution and my reluctance to introduce anything that will confuse the user or pad his/her download by dozens of megabytes.

IMO this is one of the major reasons Java has still not caught on as a client-side language despite the performance improvements and SWT, and I'm really surprised Microsoft hasn't done more to work around this issue with .NET.

Mister Fancypants
Wednesday, January 28, 2004

Mister FancyPants,

Yes, you are quite correct.  I, too, would love to use .net.

However, my customers are not tech savvy. I can't burden them with a huge .net install.

You're right about the lack of Java penetration in shrinkwrap.

WHEN will the programming language creators GET IT ?

The real Entrepreneur
Wednesday, January 28, 2004

Brad,

"1/3 of the users who visit our public site have .NET installed."

Which version of .net?
Let's assume 1/2 of that 1/3 have the most current version.

Are you willing to give up 5/6 of your sales from people who try the software first?

The real Entrepreneur
Wednesday, January 28, 2004

Neither Java nor .NET are programming languages. They're platforms in themselves.

Of course they seem stupid when you look at them from a "just a programming language" perspective.

Now the merits of creating a platform is debatable at best. However, you have to at least understand the beast before complaining about it. Complain that they're creating platforms not programming languages if you don't like it, don't complain about them not doing something they were never designed to do.

Sum Dum Gai
Wednesday, January 28, 2004

Just because they are "platforms" doesn't mean they couldn't (or shouldn't) do what Joel is asking.  Step away from the marketing-hype glue for a moment and look at things from a practical point of view.

Mister Fancypants
Wednesday, January 28, 2004

" don't complain about them not doing something they were never designed to do. "

Reality check:  MS is advertising .net as EASY TO DEPLOY.



From Microsoft's website.

VB .net 2003:
"Build more responsive, powerful and EASY-TO-DEPLOY applications..."

from:
http://www.microsoft.com/products/info/default.aspx?view=22&pcid=b8310ada-9e77-4aab-947a-14eabe785fd0

The real Entrepreneur
Wednesday, January 28, 2004

Well, even with all the doubt about penetration of the framework, I am still moving forward and writing shareware and small desktop apps on the .NET framework? Why? Because it's fast and I know it fairly well.

My download site will have a Pre-req section with a .NET Redist download so if I can convince people my program is better than the rest from the sales pitch, I'm confident they will get what they need.

Dan G
Wednesday, January 28, 2004

"Does that mean .NET is inappropriate for shrink wrap apps that don't wish to ship with or require the framework? Yes. Deal with it. "

Well therein lies the rub, huh Brad?

Joel isn't alone in this complaint. If you want to develop an application that is targeted towards consumers then you have to have serious reservations about doing it in .NET.

And that sucks.

I love .NET. It's great for my clients, and it's my main development environment. But what if I want to develop something for the unwashed masses? Hmmmm..Well, guess I gotta switch back to C++ or VB 6.0 or brace myself for the impending support calls, bad press and complaints.

Mark Hoffman
Wednesday, January 28, 2004

"Reality check:  MS is advertising .net as EASY TO DEPLOY."

They are easy to deploy, once the user has the framework installed on their box.

I've heard all these arguments throughout my career. "I can't count on the user having Windows!" "I can't count on the user having the VB runtime!" "I can't count on the user having DirectX!" "I can't count on the user having the JRE!"

Get used to a world where you have dependencies that your users may not have, because it's where you live. The fantasy land of programs with no dependencies ended in the 1980s, folks.

Brad Wilson (dotnetguy.techieswithcats.com)
Wednesday, January 28, 2004

"Which version of .net? Let's assume 1/2 of that 1/3 have the most current version."

Looking, it seems like it's about 95% having 1.1, and about 25% having 1.0 (yes, they can be installed side by side, which accounts for the > 100% total).

"Are you willing to give up 5/6 of your sales from people who try the software first?"

I'm not the one whining about the framework not being linkable. You assume that:

- 1.0 and 1.1 are mutually exclusive;

- writing an app for 1.0 won't work on 1.1;

- user won't install the framework.

The first two are patently false. The last, it depends on your user base. If you're coding for a user base that doesn't have, and won't install, the framework, then you can't code for .NET. The world's not over, and Microsoft doesn't "owe" anybody a mythical (and impossible) linker as a result.

Brad Wilson (dotnetguy.techieswithcats.com)
Wednesday, January 28, 2004

The framework is dead easy to deploy too.

The only unfortunate thing is it's rather large by modem standards (over 20 mb), and takes several minutes to install.

At least it doesn't require a reboot. Unless you insist on doing it through windows update, rather than the far easier stand alone distribution (which is superior anyway, because you only have to download it once, no matter how many machines and reinstalls you have).

Sum Dum Gai
Wednesday, January 28, 2004

I would say that what this boils down to is people are worried about the impact of having to include the runtime in downloadable apps or demos. However, I can't see any real problem with using it for shrink-wrap software if you're delivering on CD, etc.

It's fairly trivial to write an installer which will check and install the runtime if needed. Heck, you can even check and install IE 5.5 if needed too (you may want to ask the user about this one I admit... ;)  ) I've created installers which do both of those things and do it reliably.

It seems to me that this whole argument of size is really only relevant to internet distribution. And even these days, how many serious apps, not desktop widget-ware are delivered electronically?

Andrew Cherry
Wednesday, January 28, 2004

This is Microsoft we are talking about folks.  Use vb6 until the new rad for Longhorn is out.  You know there will be one.  Forget about .net for desktop apps.  You don't use J2EE for desktop apps do you?

Handel
Wednesday, January 28, 2004

Sure, us VB6.  And it too requires a runtime to be distributed with your apps, and while it's a bit smaller in size, it's still required.  And I'm pretty sure it's not on all desktops out there (and there is no way from a browser to check to see if the user needs it, unlike the .NET framework, which can be checked).  So take an extra few hours, write a smart web site that can tell the user that they will need the .NET framework, and provide a means to assist them in installing it.

If you don't think that your application is compelling enough to download the runtime (assuming the user doesn't already have it) then it's probably not compelling enough to pay for anyway, so what's the complaint. And if the download is too much for a trial version, then again, it's probalby not compelling enough to the end user for them to pay long term either. 

And if you are distributing on CD or other media, then you can give up ~20MB and distribute the runtime and provide an install for the user integrated into your application installation.

Lee
Friday, January 30, 2004

*  Recent Topics

*  Fog Creek Home