inline...
Jonathan Wood said:
Mercury,
I'm not sure I follow. Are you saying that tens of MBs of runtime should
not
be an issue at all when considering sales?
Yes. Yes. Yes. RT's (and libs, DLL's) give functionality. If you don't use
an RT or static linking then how do you add a lot of functionality to an app
unless you write every line yourself? That heads down the unprofitable path.
For the types of apps I do (none are shareware at the moment although I am
thinking about the trialware / freeware approach for many of the utilities I
have written) which are predominantly substantial, the overhead of .Net RT
is still 'large', but trivial as it is a once only install for each version.
You seem to ignore that at the moment MFC has a runtime. IMO the OLE
components were the most vulnerable.
If so, we'll just have to disagree.
A while back you were being very insistent on writing in assembler /
optimising code to the n th degree. this follows the same pattern - no
offence but it is a very dated approach.
I'd consider this an issue even if customers were not downloading
the software over the Web.
I know people *do* toss out s/w when they download from the web and find
hidden surprises. I have. EG on my dev.system I won't install Java. I hate
Java apps, their slowness and aged design - but thats me. I have no choice
for Java on the servers for UPS and other support and this really erks me as
it is usully only 1 app on a given server that requires the huge runtime
(the memory footprint).
I think it is really important to say up front if your app needs .Net RT in
a place a peron will read it prior to downloading. This pre-empts p**ing off
prospects.
..Net RT is inappropriate for small (in internal functionality) utilities...
to be downloaded from the net. IE if you use none / v.little of any of the
more sophisticated .Net RT capabilities and the app is small then I agree
with you.
I've distributed thousands of VB programs, and I've dealt with the support
issues of various problems and incompatibilities associated with the
collection of shared support files.
..Net RT avoids most of this as the install location and files are
controlled.
Support issues are v.important... but then I have never really had any with
run-times for systems that I build. Mind you I sell to financial outfits and
impose requirements for security, admin, desktop lockdowns and so on. I use
a conservative methodology (minimalism) that requires very little runtime
support. MFC runtime is stock as is ODBC that doesn't leave much else.
1. Large downloads.
2. Increased complexity (which equals increased potential for support
issues).
I agree that unnecessary complexity must be avoided, but I don't see .Net RT
as a complexity - it is a jutifiable requirement. This is perhaps also
because of the confidence that has grown in it over time.
I see .Net RT as reducing complexity (particularly with VS2005) due to the
very many advanced classes there for use that are "debugged" already (with a
very low incidence of bugs too) - you write less lines of code to do the
same thing = less chance of bugs.
If it is such common sense, I do not understand the push for me to shift
to
.NET.
No push. There are easy ways to do things and expensive ways (time coding
wise).
I (and others) provided a viable solution that uses .Net and is simpler to
implement in .Net (that is what happens to COM in .Net - it becomes so
simple).
I recommend trying the following:
1. Get RC1 of VS2005
2. Build a simple MFC app in VC6.
3. Convert the project (IE open it)in VC8.
4. Compile
5. Convert to CLR.
6. Add a managed class and learn how *easy* it is to integrate.
7. Expose some COM - its easy see Interface.
8. Follow through on the links others have provided.
I've sat down with Microsoft engineers and told them my concerns about
distributing .NET runtimes with shareware and other downloads.
Ok, I know what they are like. I had a drastic conversation with an MS Dev
Product manager in Sydney a while back saying that there was no way I would
convert systems to current VS versions (IE not the coming VS2005) because of
the huge quantity of work involved. In this case MS must have heard what
many many were saying as this issue is *solved* in VC8.
After all the
hoopla, they simply told me that perhaps .NET doesn't make sense for me at
this time. I must agree with them.
I think you had decided that already.
If .NET justifies requiring your
customers to install an additional tens of MBs of runtime, then by all
means, use .NET. .NET doesn't come close to justifying this extra overhead
for me.
It is not .Net justifying anything...
I think you mean If your App justifies .Net RT for web download then it is
not an issue?
I'm not out to convince anyone. I'll only say that I use static linking
and
*I* am happy with it.
Sorry, what I was meaning is that use of RT's is a dynamic loading style of
programming as opposed to static. .Net does the same, so I was trying to
empathise with a parallel. IE static = no RT, non static = RT of some sort.
This is *supposed* to be an eye opener for you. When you pop open the VS2005
/ VC8 box and take a good like there is a diabolical amount of functionality
there to use when programming (ignoring the IDE). There i o much tht you do
have to pause for a while and think about how you / we all program to ensure
that you write less & better code and produce more functionality in less
time.
So, .Net RT should come last in sales (really should) - if the app justifies
its use then use it. If a person looks at an App on your web site and goes
'wow' at the functionlity in 1 app & its shareware "so what it needs .Net
RT". That is my point.