WinFX 3.0 Renamed .NET Framework 3.0

Soma announced today that WinFX is being renamed to .NET Framework 3.0 to help out with developer confusion.  There are a set of common questions that have been asked in the post:

1.  What version of the compilers are being used?  .NET FX 3.0 is built on .NET FX 2.0 including the CLR and BCL.  This means you will be using the 2.0 C# and VB compilers from the redist when using .NET FX 3.0. 

2.  Will .NET FX 3.0 contain LINQ support?  No.  LINQ support is in the Orcas product which is shipping after .NET FX 3.0 (which ships in Vista).

3.  What directory will .NET FX 3.0 be installed to?  We have been working on the naming changes in the product since the decision was made.  After this is done it will live in %windir%\Microsoft.NET\Framework\V3.0.  This should hopefully be in the next public CTP we release.

When discussing the relationship between .NET FX 2.0 and .NET FX 3.0 internally, we often refer to it as the “Russian doll” model after the figurines which are embedded in their next largest sibling (lather/rinse/repeat). 

You can intersect this with the red bits/green bits discussion to get a feeling for how you will see Orcas added to the overall stack.

Is this too complicated?  Well I know it isn’t as simple as “xcopy this subdir”.  But I hope it is still easy to work with.  For example, you need only run one installer to get .NET FX 3.0.  This setup will automatically install .NET FX 2.0 if you don’t already have it on your machine.  You can then detect what stack you have on your machine and take one dependency on it.

As always community feedback is very valuable.  So if you do see any issues or places where we can make things easier for you, please let us know!

Comments (60)

  1. Jason,

    Thanks for clearing things up, it helps quite a bit 🙂

    Honestly: I’m not sure how I feel about this. While I think it certainly makes sense (and love that you’ll now be installing it where it should’ve been all along), it seems like the way you’re versioning stuff now is certainly confusing. Just the simple fact that now the framework version number doesn’t match the runtime and compilers version numbers (at least for C#/VB) is sure confusing.

    Also, I was under the impression that Orcas would force a new .NET Framework upon us, so if that is true, does it mean that we’ll get *yet* another .NET Framework/Runtime version at that point? (or worse yet, end up with .NET Framework 3.0 with CLR 2.5 and Compilers 3.0?)

  2. Bueno, dicen las malas lenguas (Jason Zander General Manager del .NET Framework) que se va…

  3. Out of curiosity, what happens to Windows 2000 support?  Im guessing dropped.

  4. ChrisL says:

    I wonder why the jump to 3? why not 2.5 or 2.1? A major version number shift suggests to me new foundation (ie, new runtime features — like generics), whereas adding to the set of available classes seems a bit more like a minor increment, even if those classes are significant.

    My basic question is — are you versioning the runtime or the class library? Both?

    It seems you are trying to version two different things under one numbering scheme. The library and the runtime. I suggest developers can understand this situation, and would accept separate versioning. And as the runtime becomes more stable, it does not make sense to keep shipping it with every increment of the library.

    I think the ideal situation would be independent runtime and class library version numbers.  Each major operating system version would come with some pair of runtime and class library. Then developers would have a simple versioning system that makes targeting easy. (all Vista users have 2.0 runtime, 2.0 library, then Vista+n has runtime 2.5 and library 3.8) If I want to deploy a fancy feature that depends on runtime 2.0 and library 4.0 onto fresh vista machines, I would only need to install the library.

    Such a system allows that you might want to add features to the library which require a particular runtime. fine! once in a while you want to add library classes without changing the runtime (winfx). fine!  

    Versioned assemblies take care of DLL hell, but now we are stuck with framework hell.  

    My suggestion for framework versioning:

    Slow runtime version cycles and focus on library improvements like winfx. Save framework changes for OS version increases (or a similar time-scale).

    when targeting a class library that is *newer* than the target runtime library, statically link the newer classes into the compiled assembly. This way the assembly will be compact, complete, and will run on any runtime. Since the time between runtime releases will grow longer, we get less headache. And the problem of ballooning assemblies is manageable, since compiling to target the next runtime version will change any static links to dynamic links.

  5. Deepa Gill says:

    I don’t know about 3.0, maybe 2.1. My understanding is that WinFx is built on 2.0.

    What is "orcas" going to be 4.0?

  6. Arash Ghandi says:

    <script>windows.alet("This could be a cross script acttact");</script>

  7. You say that LINQ is in the Orcas product. LINQ is a compiler extension. New Compilers have always been part of new .NET Framework versions, not Visual Studio. Will this change?

  8. Chris says:

    This is just a big mess. Why not go with .NET 2.1?

  9. Foxfire says:

    If you like to get comments – here is mine:

    I really like .Net as a development platform, but this is one of the  most stupid ideas ever (and there were quite some stupid ones). I’ll tell you why:

    1) WinFX simply isn’t ready to become a core component of the platform! Hell – the .Net Framework is the CORE for most of modern Windows development and it needs to be STABLE (I don’t mean no crashes, but be reliable for developers and be around for years without significant changes).

    2) WinFX is FAR from being ready. It contains TONS of showstoppers (see point 1) that are said to not be fixed for "v1" (like Window being a Visual but not even remotely behaving like a visual, ignoring Transparency, Opacity and so on). It is ABSOLUTELY unacceptable to put something that is so extremely unfinished and volatile into the VERY CORE of the platform.

    3) Because of the above reasons lots of developers will not use WinFX for a period of time, but they will have to ship it with their apps. And the downloadsize of the .Net Framework 2.0 is already quite hefty. Integrating the three components into the core will most likely TRIPPLE the download size and use hundereds or Megabytes to install.

    You should release it as an external addon as it was and integrate it into the Framework as soon as it becomes somewhat stable (maybe v2, more probably v3).

    Replacing a part as big as Windows Forms is already a bummer that should never have happened in the first place, but replacing it with a technology that will itself be significanty changed to the next version *AGAIN* will drive TONS of developers AWAY from .Net – as far away as possible, because this is just a slap in the face of every developer using .Net.

    Doing a clean cut and developing an entirely new platform with .Net instead of Win32 was a good move, because Win32 was about 15+ years old and seriously outdated but you simply cannot do that every two or three years or you will be out of anybody developing in just about no time.

  10. Jason Zander (General Manager, .NET Framework) answers some questions about the decision to rename the…

  11. fc says:

    Does this mean there will be no "Vista-only" parts in .NET 3.0?

  12. Earlier today, I was working on my article on the timeline for .NET releases over the next 18 months….

  13. Josh says:

    One thought and I dont know if this has been addressed before. Because of the large size of the .NET framework wouldnt it be a nice idea to modularize its installation? Lets say someone does not have the framework on their pc and wants to run a .NET app. The installer could check for the required namespaces and if they are missing then it would install only what it requires.

    I like the idea because it reduces the installer size and would allow for a quicker install/download. Another nicety of doing this is compatability, If you have an app that is v1.1 and everything else on your machine is v2 you wouldnt have 2 full installations for an app that may only be using a small slice of the library. Im sure you have considered it before and there is probably some bad downside which Im not seeing.

  14. Даниил указал интересную ссылку. Итак, отвечены самые острые вопросы по этому па

  15. Fduch says:

    This just shows you (people who made the decision) don’t understand OOP and inheritance. IS vs HAS

    WinFX IS NOW .Net Framework.

    WinFX DEPENDS ON .Net Framework 2.0

    I don’t want to say how stupid this decision is, because stupid decisions are never undone.

    +I have seen this many times. COM and COM+  for example.

    Too bad MS does every thing it can to kill .Net.

  16. Fduch says:

    This just shows you (people who made the decision) don’t understand OOP and inheritance. IS vs HAS

    WinFX IS NOT .Net Framework.

    WinFX DEPENDS ON .Net Framework 2.0

    I don’t want to say how stupid this decision is, because stupid decisions are never undone.

    +I have seen this many times. COM and COM+  for example.

    Too bad MS does every thing it can to kill .Net.

  17. Tomas – Orcas has two sets of changes to it:  red bits are minor changes to existing code that already shipped as part of .NET FX 3.0 [which contains .NET FX 2.0].  These changes are in place to the existing files.  Green bits are new libraries that are being added.  Although the release has not been formally given a version number, it will likely be something like .NET FX 3.5.  Again, we will give you a simple installer so you don’t have to track all the pieces.

    Roberto – .NET FX 3.0 is supported on XPSP2, Win2k3, and Vista.  .NET FX 2.0 supports Windows 2000.

    ChrisL – Your comments on library vs core hint towards a direction I’d like to go in the longer haul.  In fact we are doing this with the Orcas release, where we will only make minor servicing changes to the core (“red” bits) and add more library support above that.  This is a good way for us to continue to add library coverage and features without forcing a new engine frequently.  In this way, you can think of .NET FX 3.0 and Orcas (probably called 3.5 in the end) as revisions to the library layers instead of the core engine.  At the same time, we have the CLR team hard at work on a new engine with many dramatic changes (too soon to talk about).  This will take longer to ship and will start another side by side installation point.

    Deepa – Orcas does not yet have an official version number.  It is my expectation it will wind up being called something like 3.5.  But in the end, we work with our marketing team to decide how major the updates to the release are to pick a version number.  We chose .NET FX 3.0 because Avalon, Indigo, Workflow, and Infocard are all major new pieces of platform technology.

    Martin – You should continue to expect compilers to come in the redist.  As you know they are an intrinsic piece of some library support (we use C# to do “code spit” when generating proxies for things like wsdl files as an example).  When you install Orcas, you will have both the 2.0 and 3.0 C# compilers.  You will be able to access either using CodeDOM or the command line.  We will still have the 2.0 compiler for compatibility purposes, so for example all your existing .NET FX 2.0 Asp.Net sites will keep working without issue.  Note that the same thing here is true of the VB compiler which also ships in the redist.

    Chris – We are shipping several major new features in .NET FX 3.0, including Avalon, indigo, Workflow, and Infocard (substitute the Windows{*} name as appropriate…).  These are all major new features and therefore we are calling the release 3.0.

    Fc – We are making .NET FX 3.0 available to XPSP2 and Win2k3 in addition to Vista.  But at the same time we have done a lot of testing to make sure it “pops” well on the new Vista OS.  As one key example, the new driver model only ships in Vista.  I’m running Vista Beta 2 with Office Beta 2 on a Toshiba M4 tablet and it all looks killer and works well.

    Josh – I have been paying a lot of attention to the size of the .NET FX as well.  Brad Abrams and I have spent quite a bit of time lately working through ways to both continue adding great value in the libraries but also ensure a download experience that works well.  As an analogy I look at the cpan libraries for perl of which there are basically 10,000.  It is my expectation that between Microsoft and our community, we will easily continue to have more and more library growth.  It is obvious that at some point we will hit a pain threshold in which having a gynormous download will simply not work.  The trick is trying to find the right size.  There is a real hard balance to maintain between download size, core features you can always depend on, complexity of “drizzled” components added to the core, and the ability to do central servicing when required.  I expect to have more to say on this in the future.

    There were a couple of comments on static linking of code.  I posted a lot of information on why I’m not a huge fan of that approach in an old entry here (


  18. Marco Russo says:

    Se serviva la parola &quot;fine&quot; all’ambizione di avere con Longhon un sistema operativo basato su una nuova…

  19. In a fairly quiet announcement, made on a blog (noteworthy all by itself!), Microsoft has decided to…

  20. OPC Diary says:

    Jason Zander’s WebLog : WinFX 3.0 Rename…

  21. [News]WinFXの正式名称は「.NET Framework 3.0」

  22. Go off the grid to enjoy a weekend of blue skys and 30c and this little number roles in (oh and the scoble…

  23. I ran across an amusing bit of news today that seems to be receiving mixed reactions among the .NET developer community. Yes, the .NET Framework 3.0 is upon us…

  24. Oneda says:

    Li no blog do Alfred que a Microsoft decidiu rebatizar o WinFX, nova API do Windows, para .NET Framework…

  25. I wanted to respond to a few comments..


    Keeron asked about what .NET Framework includes exactly….

  26. Daniel says:

    If Orcas will be just an addon to .NET Framework, why WinFX is not an addon, but a new version of framework???????

  27. Picked this up from Soma’s blog:

    …we have decided to rename WinFX to the .NET Framework 3.0.&amp;nbsp;…

  28. Ahora que ya sabemos que WinFX 3.0 ser&#225; llamado Microsoft .NET Framework 3.0 para no confundir a los…

  29. I’m sorry Jason, I don’t understand the objective of Microsoft with this change.

    I suppose that if you say .NET Framework 3.0 to (WinFX + .NET Framework 2.0), ¿which will be the name of .NET Framework with Orcas?.

    Hovewer, I think that now we have new problems with this decision, and is that other users (the newest users in .NET), will have some problems undertanding that .NET Framework 3.0 uses VB 2.0 and C# 2.0 instead of VB 3.0 and C# 3.0.

    I don’t know if this decision has other estrategical notes that now we aren’t prepared to know, but I think that use .NET Framework 2.5 instead of .NET Framework 3.0 will be a better decision,… or Orcas will be .NET Framework 4.0… and if Orcas is .NET Framework 4.0… Orcas will use C# 3.0 and VB 3.0.

    If Orcas is the 3.5 number version,… VB 3.0 and C# 3.0 will be used with .NET Framework 3.5 but don’t with .NET Framework 3.0.

    Please, think all these things first because in some times, to solve one problem the people create new problems. The solution has to be easier.

    Thanks a lot.

    I hope that helps.

    Jorge Serrano

    MVP – Visual Basic

  30. Jeff Stong says:

    This is all over the Microsoft blogs: so if you’re following them you’ve no doubt already seen this (more…

  31. Damian Reeves says:

    I really believe that the 2.5 version number would be more fitting. Jorge’s comment about Orcas possible being version 3.5 and requiring framework VB and C# 3.0 while version 3.0 would still use C# 2.0 and VB 2.0 points at some real points of confusion that I think will arise.

    You may ask, "What’s in a name?"; but I can already imagine the immense confusion about the name. Yet I get the feeling Microsoft has made up its mind already, and its disappointing.

  32. Dragan Sretenovic says:

    The name .NET FX is actually good: .NET Framework eXtension.

    That is what it is: an extension of the core (CLR+Framework)

    The version number is a bit problematic:

    is it a version of the "extension" or of the "whole package"?

    Maybe it is an attempt to come close to 3.1, a standard Microsoft

    version for a "good / really usable". So add LINQ, and call it 3.1 🙂

    More important is deployment issue.

    I would like to see a "custom app .net packaging"

    to make it possible to "bundle" needed DLLs along with application,

    without requirement for whole Framework and Framework eXtensions(s).

    If there was a way to install only "CLR core",

    and then bundle minimum set of DLLs with the application

    (preferably by a Visual Studio tool),

    this would make deploying "Smart Clients" much more popular.

    Even current distributions of 32 and 64 bit .NET have become huge, and installation is slow.

    Why not make the Framework auto-updateable (i.e. from,

    so only necessary DLLs get downloaded "as needed" when installing a new APP? Not to mention this would

    give a chance to download exact pre-compiled code for the current hardware (CPU).

  33. B# .NET Blog says:

    Formerly called WinFX, the official name of the piece of software art is now called .NET Framework 3.0….

  34. Lance says:

    This is retarded

  35. Just Coding says:

    Since Soma announced the official rename from WinFx to .Net 3.0 everyone is talking about it here, here…

  36. Jay says:

    Hey hey… a framework depending upon another framework?

  37. MarkDev says:

    Like to see the progress of .NET and Vista but I think that you need the marketing team thinking in a new name or in an add for the .NET 2.0 like .NET 2.0++ or something like that. BUT DON´T CALL IT .NET 3.0 !!!

    There is no major upgrade in the framework right ? near none ? so simply don´t call it 3.0.

    BTW I think that for the .NET developers is really important the SP1 for VS2005 and SP1 for .NET 2.0. In big applications or simply using the edit and continue in VB.NET VS2005 hands up 2 of 5 times !

    Anyway keep the good work, I LOVE .NET but I preffer stability than inovation (at last my customers like the first one)

    I know how hard must be creating Vista and all the new development plataforms but don’t forget the big number of developers that are trying to explain to their boss why they are restarting VS2005 or redoing the work because VS hand ups and why some time before they said that VS2005 give them more productivity and now that is not real… not a happy scenario isn´t ?

    Best Regards

  38. Jörgen says:

    The CLR shoud determine the version number so with CLR v2 the version should  be 2.1. Major version number should only be incremented when the CLR changes.

    .NET Framework 1.0 should have been WinFX 1.0

    I thing Microsoft should drop the name .NET Framework and fully adopt the WinFX name if they intend it to replace Win32.

    I also think they should drop the .NET suffix from names like ADO.NET and ASP.NET

    WinFX should be the managed API

    The WinFX could then consists of the following parts

    – CLR

    – Win Forms

    – ASP

    – ADO

    – WCS

    – WF

    – WCF

    – WPF

    – Linq

    – …

    the W in WCS, WPF, WCF should stand for WinFX and not Windows since WinFX is not part of (a specific) Windows (version)

    When the CLR is updated (to v3) and these parts are updated to require CLR v3 they should be v3.0. If another update comes that is based on CLR v3 that should be v3.1

    is new .NET Framework/WinFX versions supposed to ship along new Windows versions or new Visual Studio Versions?

    When new parts are released for WinFX without changes to the CLR then the Minor version should be incremented. If CLR 3.0 is released and later Linq is released then the WinFX should be v3.1

    I also think that all managed languages and compilers should have # in their name ie VB.NET should be VB# (like C#) and have the same version number as the CLR that they use (VB 2005 should be VB# 2.0 since it uses CLR 2.0)

    One installation directory per CLR version should be used ie

    WindowsWinFXv3.0. The Assemblies should have the major and minor version numbers in their name (ie ADO(.NET) v2.0:  System.Data.v20.dll and ADO(.NET) v2.1: System.Data.v21.dll)

    When releasing a Service Pack increment the third part of the version number (.NET Framework 2.0 SP1 should have version number 2.0.1.*)

  39. Check out Its the community site for everything 3.0 in the framework. To tell you the…

  40. Dave R. says:

    I agree with those who say that the .NET Framework should remain at 2.0 and the other components should be separate, installed as an extension library set.

    The bundling together of CLR, the regular runtime libraries and now Avalon/Indigo/InfoCard etc. is confusing.

    Some hard thought also needs to be given to how this is conveyed to end users of .NET apps – are they expected to download the entire Framework even if a dev only uses ‘Core’ 2.0 features?

    I’m also sad that this decision was made without consulting the community.

  41. Persone los pioneros non rabata. Great…

  42. lesbian rape says:

    Best of all people w can talk…

  43. lesbian rape says:

    Best of all people w can talk…

  44. rape movies says:

    Asaspal. Memrano tu es besta. Amigo.

  45. Robert says:

    Does the .net framework 3.0 contain updates, fixes and performance updates on the old 2.0 stuff?

  46. Se pare ca anuntata redenumire a lui .NET&amp;nbsp;FX 2.0+WinFx in .NET FX&amp;nbsp;3.0&amp;nbsp; nu a surprins comunitatea…

  47. Detect CLR version under which your BizTalk service is running.