[OT] Bitter about [Lack of] .Net Framework Deployment

  • Thread starter Chris Mullins [MVP]
  • Start date
C

Chris Mullins [MVP]

This is a bit off topic, but it's mostly on-topic for this forum and I'm
cranky.... I suspect I'll get a bunch of "Me Too!" posts, and no good
answers....

Anway.

We build products based on the .Net 2.0 Framework. Currently we have a rich
IM client that's built on top of the .Net 2.0 platform. This client is very
neat, and does alot of great things. This client is currently being rolled
out for consumer IM, and for an IM system we built that's integrated with
FaceBook'. Cool stuff.

As we roll it out, we're starting to get something intesting things back.

Yesterday my wife sent me an SMS message, "My friend is installing SoapBox.
It's taking Forever. New Win XP SP2 machine.". I'm at lunch so I ignored the
message. I get an SMS message AFTER lunch "Still Installing!". The app took
about a full hour to install. This happened to several of her friends, and
to her on her work computer. Clearly something is messed up!

Our app download is about 10 megs. We have a bootstrapper in the installer
to install .Net 2.0 if it's not already installed.

It turns out that even a brand new machine (Win XP SP2 - Vista doen't count
because nobody has it, and the 3 people that did uninstalled it and switched
back to XP) doesn't have the .Net Framework instaled. No version at all! Not
even 1.0, of 1.1, much less 2.0. This means our users are stuck installing
the whole fuc*ing .Net framework to run our app. Hell, I wrote most of our
app, and even I wouldn't wait an hour to install it. It turns out there are
ALOT of computers out there w/o .Net on them.

This is just... crazy.

How can Microsoft push this framework so hard, and get people to build on
top of it, then not include it with the O/S? I can see the original XP not
coming with .Net, but surely SP1 or SP2 should have the "current" framework
version included. Windows Update should be pushing this out by default, not
as an "option" update that 99% of people will never download.

Why are they relying on us to get users to install this gigantic thing? The
x86 download ALONE is 22 megs! That's 2x the size of our application! Even
Java 6.1 direct from Sun is only 13 megs.

I don't use a Mac, but I would be willing to bet they come with the current
Java installed. Heck, bet the iPhone comes with Java! (Note: My nice new
Motorola Q doesn't come with the current .NET CF. Nor did my XV6700. )

I don't use Linux, but I bet the popular Distro's come with Java installed.
Hell, I bet some of them come with MONO installed!

I think we're going to have to statically link (which gives us a 20-Meg
install) just so we don't required the .Net framework anymore. The negative
impact on users is just too big when they need to install the .Net
Framework.
 
R

Rory Becker

How can Microsoft push this framework so hard, and get people to build on
top of it, >then not include it with the O/S? I can see the original XP not
coming with .Net, but >surely SP1 or SP2 should have the "current" framework
version included.

Windows XP Service Pack 2 : Release Date: August 25, 2004
According to... http://www.betanews.com/article/NET_Framework_20_Final_Released/1130438027
....the .Net Framework 2.0 was made available on October 27, 2005

Therefore SP2 could never have included .Net 2.0
I grant you that perhaps the previous frameworks might have been installed,
but dude...

You developed a 2.0 app, apparently without checking when and where 2.0 was
included.

Come on...

I can see why you're annoyed at the choice MS made (me too BTW) but the choice
itself has been made for some time now.

Did I miss something?
 
C

Chris Mullins [MVP]

The assumption was that "most" machines (50%+) would have .Net 2.0 on them.

Between all the various flavors of Office, Windows Updates, Service Packs,
IE7, and other realted things, this wasn't really even questioned.
Especially as most of our background is with office machines, which (for
some reason) tend to have this stuff installed. After all, this is how MS
recommends writing code, and it's been this way since 2002. Why wouldn't it
be on most machines?

Writing a complex set of apps in our time frames with our dev resources
wouldn't have been possible in anything other than .Net or Java. It's very
frustrating that the deployment story for a 5 year old platform is so poor.
 
D

David Ching

Chris Mullins said:
This is a bit off topic, but it's mostly on-topic for this forum and I'm
cranky.... I suspect I'll get a bunch of "Me Too!" posts, and no good
answers....

I'm planning on a .NET 2.0 deployment also. But see below:

Yesterday my wife sent me an SMS message, "My friend is installing
SoapBox. It's taking Forever. New Win XP SP2 machine.". I'm at lunch so I
ignored the message. I get an SMS message AFTER lunch "Still Installing!".
The app took about a full hour to install. This happened to several of her
friends, and to her on her work computer. Clearly something is messed up!

Our app download is about 10 megs. We have a bootstrapper in the installer
to install .Net 2.0 if it's not already installed.

I'm planning a ClickOnce deployment. .NET 2.0 did take a minute or two to
download (DSL connection) and a few minutes to install on a clean WinXP SP2
VMWARE virtual machine with only 384 MB of memory. It took longer than I
was comfortable with, but it wasn't the whole lunch hour! And it didn't
require a reboot. In fact, my install kept going right after it got done
and finished up.

To put it in perspective, how many MB download is Adobe Acrobat Reader?
Hint: It's the same as the .NET 2.0 framework! Bloatware isn't reserved
for .NET by any means!

It turns out that even a brand new machine (Win XP SP2 - Vista doen't
count because nobody has it, and the 3 people that did uninstalled it and
switched back to XP) doesn't have the .Net Framework instaled. No version
at all! Not even 1.0, of 1.1, much less 2.0. This means our users are
stuck installing the whole fuc*ing .Net framework to run our app. Hell, I
wrote most of our app, and even I wouldn't wait an hour to install it. It
turns out there are ALOT of computers out there w/o .Net on them.

This is just... crazy.

Ahem. The .NET versions are completely separate. So even if they had
version 1.0, 1.1, etc. the fact you require 2.0 means they have to download
the *entire* 2.0 framework and not save anything by having the others.

The only Windows OS that comes preinstalled with .NET is Vista, and that has
2.0 on it. So at least you chose the right version if you want the largest
installed base. And these days, if you buy a new machine, it *will* have
Vista on it.

Again, to put it in perspective, how many MB does Adobe Acrobat Reader take?

How can Microsoft push this framework so hard, and get people to build on
top of it, then not include it with the O/S? I can see the original XP not
coming with .Net, but surely SP1 or SP2 should have the "current"
framework version included. Windows Update should be pushing this out by
default, not as an "option" update that 99% of people will never download.

Why are they relying on us to get users to install this gigantic thing?
The x86 download ALONE is 22 megs! That's 2x the size of our application!
Even Java 6.1 direct from Sun is only 13 megs.

I believe XP SP2 has it on the CD as an optional install. Windows Update
lists it as an optional download.

I think we're going to have to statically link (which gives us a 20-Meg
install) just so we don't required the .Net framework anymore. The
negative impact on users is just too big when they need to install the
.Net Framework.

How do you statically link a .NET app? Do you use a product like
RemoteSoft, Thinstall, or Xenocode? If the result is 20 MB, do you really
save enough to make it worth your while?

I am slightly concerned that my .NET 2.0 app also will require SQL Server
Compact Edition, but this is only a couple MB.

Actually my big concern is hardly the download size. These days 22 MB's is
nothing to look twice at. My main concern is that installing the .NET
framework and SQL Server Compact Edition both require Admin priviledge, and
most enterprise users won't have it.

-- David (MVP - Visual C++)
 
R

Rory Becker

The only Windows OS that comes preinstalled with .NET is Vista, and
that has 2.0 on it. So at least you chose the right version if you
want the largest installed base. And these days, if you buy a new
machine, it *will* have Vista on it.

Actually 2.0 is preinstalled on Win2003 Server and Vista comes with 3.0
 
C

Chris Mullins

[Me Ranting about lack of deployment for .Net 2.0]

I'm planning a ClickOnce deployment.

We played with that for a bit, but couldn't use it due to it's many
limitations.

We built a very nice auto-update framework, and all the bootstrappers
we need to get our prerequisites installed.
.NET 2.0 did take a minute or two to
download (DSL connection) and a few minutes to install on a clean WinXP SP2
VMWARE virtual machine with only 384 MB of memory. It took longer than I
was comfortable with, but it wasn't the whole lunch hour! And it didn't
require a reboot. In fact, my install kept going right after it got done
and finished up.

This is what we have always seen as well during internal testing. We
do lots of testing on Virtual Machines using VMWare, and it's never
been a problem at all. It's always been in the "quick enough"
category. It's certainly been my personal experience when installing
the framework.

.... but users are reporting radically different results for deployment
in the wild. Everyone my wife has interacted with has had it take in
the 30-60 minute range to install. Her computer at work (a virus and
trojan infected WinXP2 machine everyone uses for installing the latest
MySpace fad) took almost an hour. It just seems to sometimes take a
very, very long time to install.
To put it in perspective, how many MB download is Adobe Acrobat Reader?
Hint: It's the same as the .NET 2.0 framework! Bloatware isn't reserved
for .NET by any means!

Too true. It's the uncertainty of it all. They may need to
install .Net, they may need to install Windows Installer v3 (Reboot!).
It may not work at all. If, during installation of the .Net framework,
their machine goes screwy, they're going to blame us.

Also, the user's perception is reality - and our app install sucks,
for whatever reason, then (by definition) our app sucks.

While I haven't had problems with the .Net 1.1 or .Net 2.0 frameworks,
I have personally seen the .Net 3.0 framework fail to install a number
of times, and it's been ugly.
Ahem. The .NET versions are completely separate. So even if they had
version 1.0, 1.1, etc. the fact you require 2.0 means they have to download
the *entire* 2.0 framework and not save anything by having the others.

Well, duh. Gimme a little bit of credit... :)

But if 1.1 was there, we could build a .Net 1.1 application. If 1.0
was there, we could build a .Net 1.0 app. With none of the versions
there, the option is C++, VB6, or risk requiring .Net installation.
None of the options are at all attractive for desktop software, to be
honest.
The only Windows OS that comes preinstalled with .NET is Vista, and that has
2.0 on it. So at least you chose the right version if you want the largest
installed base. And these days, if you buy a new machine, it *will* have
Vista on it.

Does vista come with 2.0? I thought it was 3.0. We're not currently
deploying 3.0 application, so I've not paid that close attention. And
it's going to be many, many years before Vista is the "default"
platform. Everyone is running WinXP, and most are on SP2.
Again, to put it in perspective, how many MB does
Adobe Acrobat Reader take?

It's not really relevant, to be honest.

You can't compare a well known popular app that people NEED to use to
a small app from a small company trying to gain mindshare. People will
be willing to wait for Adobe because they're already familiar with it,
and they need it.

.... plus, the Acrobat Reader doesn't sometimes require an additional
20+ meg download that sometimes takes 60+ minutes to install.
How can Microsoft push this framework so hard, and get people to build on
top of it, then not include it with the O/S? [...]
I believe XP SP2 has it on the CD as an optional install. Windows Update
lists it as an optional download.

Neither one helps at all. It needs to be widely deployed - and it's
not. End of story.
How do you statically link a .NET app? Do you use a product like
RemoteSoft, Thinstall, or Xenocode?

Yea, that's what we've done in the past for .Net 2.0 applications that
had to run on "locked down" and older (Win98) machines. It's worked
out well so far.

(We have used RemoteSoft for what it's worth. I can't speak to the
other ones...)
If the result is 20 MB, do you really
save enough to make it worth your while?

As you say, it's not the download size. At 20 megs, we're about the
same size as any of the other common messaging products. I can live
with this. Our users can live with this.

.... what I can't live with is making the majority of users
install .Net 2.0. So far, it's been.... problematic and is presenting
a real barrier to deployment.
I am slightly concerned that my .NET 2.0 app also will require SQL Server
Compact Edition, but this is only a couple MB.

Our IM server (SoapBox) has a bootstrapper for SQL 2005 Express. This
has worked quite well, although it's a server application, which
changes all the expectations.
Actually my big concern is hardly the download size. These days 22 MB's is
nothing to look twice at.

I agree. 100%. However a 30 or 60 minute install time for some random
# of users is not at all acceptable.

Also, if our app is 10 megs, and .Net is 22, now we're at 32. Add in
the 3 meg Windows Installer and now we're at 35. Both the framework
and the installer may require reboots as well. Installing .Net
requires admin rights (I suspect the Windows Installer does as well).
My main concern is that installing the .NET
framework and SQL Server Compact Edition both require
Admin priviledge, and most enterprise users won't have it.

Yea. Although most Enterprise workstations are Imaged these days, and
a good SysAdmin will have .Net 2.0 on the Image.

Ah well. The basic problem isn't going anyway - I'm just ranting and
raving out of frustration. Microsoft really need to be deploying this
stuff widely.

It's bad enough that none of Microsoft's stuff is written in .Net - if
they're not eating their own dogfood (so to speak), then you've really
got to wonder.

Yea, I do know exactly which apps they have that are written in .Net -
but the number is really pretty pathetic compared to what it should
be. All of the Vista Components that started life as .Net apps were
scrapped and written as native apps. How much in Longhorn was supposed
to be .Net code? How much of it actually is?

Whereas if you look at Sun, tons and tons of their stuff is written in
Java. At least they're using their own development platform!

I love .Net - I know it backwards, forwards and inside out. I'm an
expert in VB/C# and the Framework itself. More and more I'm convinced
that .Net it's the wrong platform for developing apps that need to be
mass deployed. In fact, VB6 is starting to look more and more
appealing for a huge variety of software.
 
D

David Ching

Rory Becker said:
Actually 2.0 is preinstalled on Win2003 Server and Vista comes with 3.0

Ah, you're right, Rory. Thanks for the correction. But 2.0 apps can run on
3.0 framework, so if you have a 2.0 app, the .NET framework does not need to
be installed on Vista. I believe the 3.0 framework was the first one that
was completely backwards compatible with the preceeding one.

Cheers,
David
 
D

David Ching

Chris Mullins said:
[Me Ranting about lack of deployment for .Net 2.0]
I'm planning a ClickOnce deployment.

We played with that for a bit, but couldn't use it due to it's many
limitations.

We built a very nice auto-update framework, and all the bootstrappers
we need to get our prerequisites installed.

Maybe I am being naive about ClickOnce. I haven't played with it enouogh to
learn of its gotchas. Funny, I also implemented my own auto-update
framework that will update any machine with NT4 or later to work with .NET
(this was for a client that was distributing a 1.1 app, before ClickOnce was
available). But I was hoping not to have to use it. Maybe I'll have to!
What are the biggest limitations that prevent you from using ClickOnce?

This is what we have always seen as well during internal testing. We
do lots of testing on Virtual Machines using VMWare, and it's never
been a problem at all. It's always been in the "quick enough"
category. It's certainly been my personal experience when installing
the framework.

... but users are reporting radically different results for deployment
in the wild. Everyone my wife has interacted with has had it take in
the 30-60 minute range to install. Her computer at work (a virus and
trojan infected WinXP2 machine everyone uses for installing the latest
MySpace fad) took almost an hour. It just seems to sometimes take a
very, very long time to install.
[snip]
It's the uncertainty of it all. They may need to
install .Net, they may need to install Windows Installer v3 (Reboot!).
It may not work at all. If, during installation of the .Net framework,
their machine goes screwy, they're going to blame us.

Also, the user's perception is reality - and our app install sucks,
for whatever reason, then (by definition) our app sucks.

While I haven't had problems with the .Net 1.1 or .Net 2.0 frameworks,
I have personally seen the .Net 3.0 framework fail to install a number
of times, and it's been ugly.

This is very disturbing. My guess is the trojans had injected a lot of file
and registry hooks, and since the .NET framework alters a lot of these, the
performance is impacted a lot. Unmaintained machines like this also tend to
have heavily fragmented disks and registries which slows performance also.

No reboots will be necessary when installing the .NET framework on WinXP or
above. Although I would prefer my app to also be used on Win2K as well, if
it doesn't install or work well (or at all) on Win2K, then that is fine.
The sweet spot for system requirements now is XP or later.

But if 1.1 was there, we could build a .Net 1.1 application. If 1.0
was there, we could build a .Net 1.0 app. With none of the versions
there, the option is C++, VB6, or risk requiring .Net installation.
None of the options are at all attractive for desktop software, to be
honest.

That depends. I am developing an office (not an MS Office) productivity
app, and almost all my competitors are deploying .NET apps. OTOH, I also
develop utilities that ship with hardware (extremely widely deployed, in the
millions), and definitely there, the consensus is that just because the
customer wants to use the hardware, it doesn't mean they want to install
..NET. Since hardware utilities tend to run all the time, the memory
footprint is also a concern, and .NET is a pig. OTOH, I 've heard that the
utilities shipping with ATI graphic adapters require .NET. So maybe even
this is changing.

Does vista come with 2.0? I thought it was 3.0. We're not currently
deploying 3.0 application, so I've not paid that close attention. And
it's going to be many, many years before Vista is the "default"
platform. Everyone is running WinXP, and most are on SP2.

No, Rory on another thread corrected me... Vista ships with 3.0 as you say.
But 3.0 is fully backward compatible with 2.0 (the first version that is
this way), and so your 2.0 app will run on Vista without the need to install
the 2.0 framework. I would say it won't be "many, many" years before Vista
is the default. With almost every new PC shipping with it, it will be a
matter of 2-3 years.

It's not really relevant, to be honest.

You can't compare a well known popular app that people NEED to use to
a small app from a small company trying to gain mindshare. People will
be willing to wait for Adobe because they're already familiar with it,
and they need it.

... plus, the Acrobat Reader doesn't sometimes require an additional
20+ meg download that sometimes takes 60+ minutes to install.

That's true, the more people need something, the more pain they will endure
to get it. Still, I'm betting that the developer productivity that .NET
affords will allow compelling products that people will want (and put up
with the .NET framework for). Besides, with all my competitors getting the
..NET developer productivity, I can't afford *not* to be using it! (Even
though due to my history I am far more productive in C++/MFC than .NET, I
need to switch over to .NET.)

How can Microsoft push this framework so hard, and get people to build
on
top of it, then not include it with the O/S? [...]
I believe XP SP2 has it on the CD as an optional install. Windows Update
lists it as an optional download.

Neither one helps at all. It needs to be widely deployed - and it's
not. End of story.

Yup. If XP SP2 had shipped with .NET 2.0 installed by default, we wouldn't
be having this debate. The question now is, is the current situation
enough?

Yea, that's what we've done in the past for .Net 2.0 applications that
had to run on "locked down" and older (Win98) machines. It's worked
out well so far.

(We have used RemoteSoft for what it's worth. I can't speak to the
other ones...)

As a huge fan of static linking, I may well choose to go this route also.
Thanks for the plug for RemoteSoft. I'll have to look at them carefully.

Our IM server (SoapBox) has a bootstrapper for SQL 2005 Express. This
has worked quite well, although it's a server application, which
changes all the expectations.


I agree. 100%. However a 30 or 60 minute install time for some random
# of users is not at all acceptable.

Also, if our app is 10 megs, and .Net is 22, now we're at 32. Add in
the 3 meg Windows Installer and now we're at 35. Both the framework
and the installer may require reboots as well. Installing .Net
requires admin rights (I suspect the Windows Installer does as well).


Yea. Although most Enterprise workstations are Imaged these days, and
a good SysAdmin will have .Net 2.0 on the Image.

Ah well. The basic problem isn't going anyway - I'm just ranting and
raving out of frustration. Microsoft really need to be deploying this
stuff widely.

It's bad enough that none of Microsoft's stuff is written in .Net - if
they're not eating their own dogfood (so to speak), then you've really
got to wonder.

AFAIK, they never deployed anything written with MFC Doc/View either, but
that didn't stop me from taking full advantage of it! :)

Yea, I do know exactly which apps they have that are written in .Net -
but the number is really pretty pathetic compared to what it should
be. All of the Vista Components that started life as .Net apps were
scrapped and written as native apps. How much in Longhorn was supposed
to be .Net code? How much of it actually is?

Whereas if you look at Sun, tons and tons of their stuff is written in
Java. At least they're using their own development platform!

I love .Net - I know it backwards, forwards and inside out. I'm an
expert in VB/C# and the Framework itself. More and more I'm convinced
that .Net it's the wrong platform for developing apps that need to be
mass deployed. In fact, VB6 is starting to look more and more
appealing for a huge variety of software.

LOL, back to the future! ;) I suspect C++/MFC will continue to be my bread
and butter for some time, but these days you can't call yourself a Windows
Developer and not know .NET. It's just too compelling. Whether or not it's
the time to switch over for mass deployed apps, I think it really depends on
the app and how mass deployed it is.

The auto-update utility I wrote to install the prerequisities for .NET was
written for a client who was mass deploying a simple Internet-connected
utility that he would have been far, far better off if he had written it
native. The .NET overhead was too much to ask to install for this piddly
app. But if the app has "substance" the .NET framework won't be perceived
as too big a pre-requisite, any more than SQL Server is. If the user is
willing to clog up their machine with SQL Server services starting every
time Windows is started, the .NET framework isn't too much to ask. Maybe
that's a good rule of thumb.

-- David
 
R

Rory Becker

Ah, you're right, Rory. Thanks for the correction. But 2.0 apps can
run on 3.0 framework, so if you have a 2.0 app, the .NET framework
does not need to be installed on Vista.
Absolutely.

I believe the 3.0 framework
was the first one that was completely backwards compatible with the
preceeding one.

Depends on the level of backward compatability you are after. as far as running
1.0 or 1.1 apps on the 2.0 framework, I beleive you should not notice any
differences.

Although I have heard of a few minor issues.

Can someone confirm if the binary serialisation changes affect people running
1.x apps on 2.0 or if it just code recompiled against 2.0 that cannot load
1.1 saved binary serialisations?

I really can't remember. At one point I thought that the 2.0 framework contained
an image of the 1.x framework but I suspect that it only contains images
of the CLR for those frameworks... I really can't remember at the moment.

Can someone jog my memory :) thanks.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top