Posted By: jmacdonagh | Jun 11th, 2006 @ 8:20 PM
page 1 of 3
Comments: 53 | Views: 16315

If you are a .NET developer, you've no doubt heard about the recent decision to brand WinFX as "The .NET Framework 3.0", essentially combining the WinFX libraries with the .NET 2.0 RTM release. A quick look at the comments posted on the above linked article show that the majority of the posters are not thrilled with the idea, and for good reason.

One meerly has to look at Microsoft's past versioning choices to realize that the inclusion of the WinFX libraries into the 2.0 framework will cause confusion. Let's take a look at the previous versions. Microsoft has released three versions: 1.0, 1.1, and 2.0.

Version 1.0 was the initial release and included the BCL, Windows Forms, and ASP.net among other small libraries.

Version 1.1 was released shortly afterwards (relative to the time between 1.1 and 2.0), and included many bug fixes and small improvements. As far as the developer was concerned, however, there were no real language improvements. Nothing was added to C#, VB.net, or other built in languages besides the inclusion of J#. I'd have to do some more research into this, but I believe that the compilers were relatively unchanged (besides bug-fixes), and the CLR remained the same (again, besides bug-fixes).

Version 2.0 came out of the door with a new slew of improvements. Not only were the individual frameworks (such as ASP.net, Windows Forms, etc...) updated with a huge new array of features, but the language specification was updated as well. C# and the other included languages were updated with support for generics, anonymous methods, visibility accessors on property getter and setters, and much more. It was well worth the wait. Compilers and the CLR were upgraded to support these new features.

And now we're presented with the .NET Framework 3.0. Instead of including any language improvements or bug-fixes for the 2.0 framework, it's being coupled with the WinFX libraries and being branded as an entire major version milestone. Is it just me, or does it simply seem like a marketing ploy to hype Vista up even more? "Microsoft Windows Vista! Now with the .NET Framework 3.0!" Why? Are you trying to draw consumers in? They couldn't care less about the .NET Framework. Are you trying to convince developers to program against Vista's new APIs? Any developer with any ounce of sense can see through the ploy and into the future versioning frustrations.

Most developers have accepted that it was only a matter of time before Microsoft's gigantic and clinically retarded Marketing department got hold of the .NET Framework. We were able to steer clear of Marketing hell for several years because .NET is purely a developer tool, and becuase they could have their way with Visual Studio (e.g. Team Suite). Did developers complain when Avalon and Indigo were renamed to three word mouthfulls? Not really.

So here's the problem, and the future source of headaches for all but the most up-to-date developers out there.

.NET Framework 1.0
- 1.0 compilers
- 1.0 language specifications
- 1.0 CLR
- 1.0 libraries

.NET Framework 1.1
- 1.0 compilers
- 1.0 language specifications
- 1.0 CLR
- 1.1 libraries (1.0 with added features)

.NET Framework 2.0
- 2.0 compilers
- 2.0 language specifications
- 2.0 CLR
- 2.0 libararies (1.1 with many added features)

.NET Framwork 3.0
- 2.0 compilers
- 2.0 language specifications
- 2.0 CLR
- 2.7 libararies (hey, WinFX is pretty big. I'd consider it worth about 0.7)

.NET Framework 4.0 (what else do you think it'll be named?)
- 3.0 compilers
- 3.0 language specifications
- 3.0 CLR
- 3.0 libaries (inclusion of LINQ and its derivatives).

And the confusion will contine on as subsequent versions of the .NET Framework are released. To the casual developer who many have read all about the upcoming changes in C# 3.0 (LINQ), ADO.NET 3.0, and other improvements that are targetted at Oracas, the .NET Framework 3.0 is a slap in the face. "Didn't I just read that I could do language integrated queries?" I could go on from here, but I think my point is made.

Why is Microsoft cheapening the .NET Framework package by branding it with a version number that it does not portray? Launching it with Vista is NOT going to help you sell more copies, and is NOT going to draw in more developers (in fact, I would say that it could drive developers away). Please, Microsoft, rebrand it with a 2.x version number (2.7 anyone?). All you're adding are a few libraries. It's nowhere near the leap from 1.1 to 2.0. WinFX is a fantastic set of libraries, but it's not worth an entire major version number increment.

Does anyone agree with me? Should I post a suggestion on the MSDN Product Feedback page? If I feel that I have some support from the .NET developer community, I will.

i am not technically qualified to agree with you - but i agree (just by the urgency,thoroughness and care in your post)

*if its got winfx - maybe a new name entirely - NetX

? pheh - i shut up now... goodnight Wink
No, this is a good thing.

In the ideal world the CLR would never ever change. All the fancy language improvements and additional libraries would just work on the current release (think of it as a CPU architecture and this should be obvious.) Of course, like CPUs, newer versions will eventually come out with performance improvements and the occasional compelling new feature but not nearly as often as libraries are improved.

How successful would Win32 have been if developers had insisted each new feature be tied to a required CPU upgrade?
Um-mm the WinFX run-times aren't really that large, I think they are around 2.5 MB and if you compare this to similar sized frameworks in the industry I believe .NET still falls within margin.  Besides with the ClickOnce stuff it builds the wrapper for you so if you don't have .NET it will stream it down for you anyways!

I can download 700 MB files in a matter of minutes so this isn't an issue for me since I have 15MB/2MB FIOS and most people have DSL/Cable which is quit good also...That's just the commercial side of things however...

The Consulting side of things which .NET is primarily targeting the size of the framework plays very little in its overall goal.  Most of it will be ASP.NET and if its not just deploy it through SMS and then do the ClickOnce deployment, send an email to your users with a link to your CickOnce and boom your done... Easy Schmeezy!

I like the idea of WinFX built into .NET, it pushes FX development more heavily and that's a good thing!

pacelvi
pacelvi
Phear
I'm glad they're rolling back the name of WinFx.  The .Net Framework "brand" is what everyone has been calling mscor* since it came out.

I saw no clear reason why they were going to rename ".Net Framework" to be "WinFx" and it took me a while to distingiush that from WinFs.

If you look at newsgroups there are tons of questions like

"What will happen to Windows Forms when WinFx comes out"

or silly comments like

"WinFx means that MS gives up on .Net Framework"

All because by choosing this new name for something that already existed people assumed it was a new distinct thing and it's not.

They're doing the sensible thing by reducing the branding namespace and thank God too, because enduring all the variations of the above two quotes is tiring.

.net framework 3.0 is not introducing anything that will require recoding, it's AN ADDITIVE release.. it's simply the production release of WPF, WCF etc...

I think it's too early to raise a big stink about the possible mismatch between the branding of NetFramework 4 and the version numbers given to C# etc...

Windows NT 3.1 was not the 3.1th release of the system so there is no reason to believe that they just wont bump up all the internal version numbers to 4 and skip 3.

Renaming WinFx now prevents another round of marketing confusion in the mass market and is the right choice.  Leaving WinFx as the name and enduring endless confusion about why its called soem new thing when most of it composed of the old thing is much worse.

At the end of this year no one will even remember this... if the WinFx name stuck, it would never be fixed.

Yggdrasil
Yggdrasil
Pour me a cab, 'cause I can't drink no more.

I agree with Brad Abrams' latest post on the matter.
Basically, new features like LINQ run on the 2.0 runtime. LINQ is a great improvement - it's a major language change, and we all seem to agree it warrants a major version upgrade. But should a language change like LINQ pop up our CLR version from 2.0 to 3.0, even though no changes were made to the CLR to warrant it?

.NET Framework 3.0 is the version number of the package. It contains, as you said, v2.0 of the compilers and runtime, and v3.0 of the BCL.
It allows us to specify minimum requirements for our software - no more ".NET 2.0 + WinFX", but only ".NET 3.0" and that's unambiguous.

I don't know if the old, unchanged namespaces in the BCL will be upgraded to v3.0 as well. I dropped Brad Abrams a question on his blog, and I'll wait to see what he says.

Cybermagellan
Cybermagellan
Live for nothing, or die for everything
I'm going to throw out my two cents...

From a consumer standpoint I do think it's nice they added everything under the .NET 3.0 branding...however from a developer standpoint no.

.NET framework is nice but once you start chucking in other technological advances I think it needs to be broken off...
Cybermagellan wrote:
From a consumer standpoint I do think it's nice they added everything under the .NET 3.0 branding...however from a developer standpoint no.


And which of those two groups should be more important? Which should be better able to cope with versioning issues?
Personally, I thought WinFX was a much better name for Microsoft's managed runtime (not just W*F+WCS, but the whole everything including the CLR, BCL and so forth). Given the confusion that seemed to result transition, however, the .Net 3.0 branding is probably the clearest path towards minimizing confusion.
Cybermagellan
Cybermagellan
Live for nothing, or die for everything
AndyC wrote:

Cybermagellan wrote:From a consumer standpoint I do think it's nice they added everything under the .NET 3.0 branding...however from a developer standpoint no.


And which of those two groups should be more important? Which should be better able to cope with versioning issues?


#2, however try introducing someone to .NET and explaining it to them.
jmacdonagh wrote:
A quick look at the comments posted on the above linked article show that the majority of the posters are not thrilled with the idea, and for good reason.


A couple of months ago I ordered two items from Amazon UK. One of which was a CD ("The Rock" soundtrack) and the other was a cheap USB Drive. They both arrived together, and I enjoyed listening to my CD, but unfortunately the USB Drive had corrupt sectors out of the box and I had to returned it.
 
Later on, while using Amazon, I noticed the same USB drive that I had returned... So I took the opportunity to write a short review. I gave it two stars, and said:

Manip wrote:
The packaging, and overall devices build quality were fine, but unfortunately had to return it due to bad sectors, I guess you get what you pay for. Ordered a more expensive drive from Company X.


But I didn't take the time to write good things about my CD, why? Because people use their anger to "bite back" at the thing that made them angry or upset. But rarely use positive feelings for the same end.

Thus, I think it is logically flawed to assume that everyone in the community is upset by the re-branding because everyone that is posting has negative comments.

A more accurate bar of measure would be to ask everyone what they think as part of a random sample of the community. That way, because you are going to them, it is likely that you will get more views, good and bad.
TommyCarlier
TommyCarlier
I want my scalps!
I don't mind the rebranding. It's nothing to be frustrated about. Remember the turmoil when Microsoft officially renamed Longhorn to Windows Vista? How long has that lasted? Just relax. Like the youngsters would say now: chill.
Raghavendra_Mudugal
Raghavendra_Mudugal
This is how it feels when you do not upgrade to the latest technology...

hello sir,


By reading your post, i was breathing bit healthy, as microsoft was comming up this fast growing techs, i was thinking i was only the person left behind in this pace. So i am not alone.
your vision on different set of versions was really great and what you explained in you post was really help full in understanding the inside truth of  diff versions.


And I am very eager to know how you personally think and do the update of your skills on these tech?  Do you think we peoples are
left behind and we are slow, OR,  microsoft is moving to the next
gen where even its difficult to understand it by microsoft programmers
what they are doing.

phew !!!

hope to see your valuable response on this.

W3bbo
W3bbo
The Master of Baiters
jmacdonagh wrote:
As far as the developer was concerned, however, there were no real language improvements. Nothing was added to C#, VB.net, or other built in languages besides the inclusion of J#.


I'm tempted to disagree here.

VB7.1 (that went along with .NET1.1) introduced shorthand declaration/assignment:

Dim strFoo As String = "Foo"

That's illegal in VB7 but legal in VB7.1 (and functions the same "string strFoo = "Foo"; in C#)

I'd like to add that in .NET1.1 many of the assemblies are actually versioned "1.0.500" instead of "1.1"

Sven Groot
Sven Groot
My name has 9 letters. Coincidence? I think not...
W3bbo wrote:
VB7.1 (that went along with .NET1.1) introduced shorthand declaration/assignment:

Dim strFoo As String = "Foo"

As far as I know, VB7 did have that (it's illegal in VB6 though). VB7.1 did introduce the ability to declare variables in a for-loop (For x As Integer = 1 To 10).
It makes it easier to say you need .NET 3.0 in your system requirements but people will say things like I'm using ASP.NET 3.0 when it means the same thing as ASP.NET 2.0; that is going to confuse people since it doesn't add any new features. I think 2.1 or 2.5 or something would make more sense, then you know it is still the 2.0 base but has more just like 1.1 is the 1.0 base. It will also break the way Microsoft has made a major version of .NET tied with each Visual Studio release.

It would become very strange, you end up with mixed up VS releases:
.NET 1.0 = VS 2002
.NET 1.1 = VS 2003
.NET 2.0 = VS 2005
.NET 3.0 = VS 2005 Patched (SP1 I think)
.NET 4.0 = VS Orcas
jmacdonagh wrote:


.NET Framwork 3.0
- 2.0 compilers
- 2.0 language specifications
- 2.0 CLR
- 2.7 libararies (hey, WinFX is pretty big. I'd consider it worth about 0.7)



It's even more complicated than that - it is:

.NET Framwork 3.0
- 2.0 compilers
- 2.0 language specifications
- 2.0 CLR
- 2.0 BCL
- 1.0 WCF/WWF/WPF

And what is FAR worse is that the 1.0 WCF/WWF/WPF is even most likely to change again before the rest of the stuff. Just read a few blogs and newsgroups: Every 5th question about WPF ends with an: "Will not be available for v1" so it may even be:

.NET Framwork 4.0
- 2.0 compilers
- 2.0 language specifications
- 2.0 CLR
- 2.0 BCL
- 2.0 WCF/WWF/WPF
Why do you assume the version number of the CLR will increment linearly? If they need a new runtime for v4, why can they not just call it CLR 4.0? Honestly, this is all a lot of fuss over nothing.
This whole numbering nonsense is just that: nonsense.  How big will the NET 3.0 download be?
Cornelius Ellsonpeter wrote:
How big will the NET 3.0 download be?


Why does it matter? Clearly the focus for small shareware-type consumer .NET apps will come once the framework is guaranteed to be installed on end-user machines, i.e. Windows Vista.
staceyw
staceyw
Before C# there was darkness...
IMO, WinFX was the bad name.  .Net 3.0 make perfect sence.  It is after all the next version of the framework.  I don't want many additional libraries to install and version.  The more they can simplify and consolidate things, the better.
staceyw
staceyw
Before C# there was darkness...
jmacdonagh wrote:
Let me clarify. I'm excited that they're including WinFX into the standard .NET installation. Although it will increase the size of the downloadable file, at least it will be available for any new developer to use.

What I'm not so excited about was the actual choice of "3.0" for the version. The reasons are pretty simple, and I state them in my first post.

On a side note, it would be nice if the traditional .NET install routine allowed you to choose the frameworks you wanted (e.g. you could only install Windows Forms and WCF and the BCL if you wanted).


I am confused.  It seems your issue is now only with "2.7" vs 3.0.  It seems to make perfect sense to me and I welcome it.  For a long time the next version of c# was 3.0.  So c# 3.0 requires framework 3.0 seems to be natural.  All the new stuff in the next framework warrent the new version number IMO (at least).
page 1 of 3
Comments: 53 | Views: 16315
Microsoft Communities