Alain Dekker said:
Thanks Scott.
I looked in the AssemblyInfo.vb file he sent as part of the 2008 project:
Assembly: AssemblyVersion("1.0.*") // taken from AssemblyInfo.vb
Does that mean only 1.1 is required?
Your should not be looking at the AssemblyInfo.vb file for the assemblies
that are required by the project. This file gives you information about
YOUR project. When it says 1.0.*, it's talking about what version number
YOUR finished product will have.
You need to look at the project file for the project in question. A project
file is a file that ends with .vbproj (VB) or .csproj (C#). This file will
list several assembly names along with with version numbers for those
assemblies.
What exactly does it mean that 2008 only supports 2.0 or higher? Does it
mean that even the simplest app will *always* require .NET 2.0 or higher
installed?
Yes. Any applications and libraries you create using Visual Studio 2008
will require, at a bare minimum, the 2.0 Framework.
The last time I looked at Micrsoft .NET 3.5 on the Microsoft Update
website, it was 3.5GB, not 30MB.
No, that's incorrect. First, you've got to understand that when people say
the 3.0 or 3.5 Framework, it is understood that they are talking about the
2.0 Framework with 3.0 or 3.5 added on top of it. The 2.0 Framework has the
meat and potatoes that is necessary for basic functionality of any .NET
assembly, but 3.0 adds libraries for Windows Communication Foundation,
Windows Presentation Foundation, and Windows Workflow. That's it for 3.0.
So, in the strictest sense, the 3.0 Framework only adds about 33MB to the
required 2.0 Framework. The 3.5 Framework adds support for ASP .NET AJAX
and LINQ which again sits on top of the 2.0 Framework.
To install the entire 3.5 Framework (2.0, 3.0, and 3.5) you need about 300MB
of disk space (although, the following link says you need 500MB). You can
download it via:
http://www.microsoft.com/downloads/...FD-AE52-4E35-B531-508D977D32A6&displaylang=en
We need to clone the entire OS onto a flash card that is 4.0GB, preferably
under 2.0GB because of the way we reclone systems. I accidentally
installed .NET 3.5 when making the latest clone and when we ghosted it
into a drive image, it exceeded what we could put on the flash card.
Ok, I understand that, but I think your going to find that limiting yourself
to 4.0 GB is going to put you into a corner that is hard to get out of.
Nonetheless, the 3.5 Framework is not in the GB's, it's in the MB's.
I redid the entire clone (a half days work so was not happy) and this time
did not install .NET 3.5 and it easily fitted onto the flash disk (less
than half the size if I remember correctly).
If you are saying that what you installed was nearly 2.0 GB in size, then
you are installing something other than the .NET Framework.
One problem with the hordes of .NET evangelists is that they happily tell
you every new piece of functionality in .NET is making things "more
robust", "more secure", "moving with the times". Probably true some of the
time but also disingenous. More complexity means higher maintenance and
development costs, leaving aside the issue of bugs in the actual
functionality. Even if 3.0 and 3.5 require "only" 60MB if installed
optimally, it does mean that calling one thing that requires 3.5 means an
extra 60MB of data.
True, but it can also be said that if you continue to stay with some older
Framework, that you now don't get the opportunites to utilize advances in
technology. The simplest example I can think of is with multi-core
machines. .NET 1.x has nothing in it to take advantage of these processors,
which means that if you build a 1.x application and run it on a multi-core
machine, your particluar application won't run any more efficiently than
with a single core processor.
So, in the end, you've got to decide if you want to stay stagnant or take
advantage of new ideas and technologies as they come around. This doesn't
mean you have to be on the bleeding edge of technology though.
And sure, its easy to say its "nothing in the modern world" but thats also
disingenuous. Firstly, some people have legitimate reasons for keeping
binaries as small and as fast as possible.
There is no reason that a .NET 3.5 assembly can't be small and fast. In
fact, that is the whole point of expanding and improving the Framework. In
the old days, we used to have to bloat up our applications with utilitarian
code that didn't really have anything to do with the business reason we were
creating the application in the first place. Now, much of that utilitarian
code is in the Framework and doesn't have to be repeated over and over again
in each application you write.
High speed imaging applications for one. Many people have perfectly
legitimate reasons for not wanting to buy a whole new computer which ran
XP SP2 fine until SP3 came along.
I'm not aware of any hardware requirements that XP SP 2 or 3 has that would
not be compatible with a machine that is currently running XP.
A perfectly legitimate reason for keeping binary sizes down is that you
might use a Windows 98 tool (we do for recloning from ghost images) that
has an upper limit of binary sizes. Another legitimate reason is that you
might have an installed base of hundreds or thousands or even millions of
computers that need updating. They are fast, powerful computers...but
every time .NET "moves on" it shifts the goalposts. Surely an intelligent
.NET evangelist can at least understand the point. Secondly, its not
nothing. It all adds up.
I'm not sure how to respond there. First, I don't think I'm evangelizing
anything here, I'm just answering your questions. The only *opinion* I've
offered is that if you can't afford to add 300MB to your .NET development
platform, then that platform isn't sufficient for .NET development.
If you have a need or desire to be backwards compatible with Windows 98 (or
DOS for that matter) that's your buisiness, but your post is clear evidence
that you are now paying the price for the need to stay with these older
hardware and software requirments.
I think bottom line is .NET and its increasingly bloated frameworks is a
bad move for the computing industry and when the dust has settled a few
years from now, I think you'll find a lot of developers will have stuck
with fast, proven native programming or even ditched MS altogether. I am
one developer, a keen Windows developer with over 10 years experience, who
has been more than a little sickened and disheartened with the way .NET
has swamped the landscape. I'm not looking to ditch MS or Windows but I'd
like a little more consideration from them for the loyalty and evangelism
(and cash I've handed over!) I've given them over the years. And there are
increasing numbers who feel just like I do.
Ok, that's your personal perception and you are entitled to it.
Unfortunately, it doesn't change the way .NET is set up or the requirements
for its use. I'm simply telling you how it works, I'm not advocating
anything.
Thanks for the answers to the other questions. I'll be asking the customer
what features are required and to check whether 3.0 or 3.5 is actually
required. As its a fairly simple proxy app (to communicate between my app
and a low-level PLC in their system) I hope not.
Many thanks,
Alain
Sure. Good luck Alain!