.NET 4.5: Eric St. John - Reducing Reboots During Framework Installation

Download this episode

Download Video


Software developer Eric St. John explains the work he and team have done to limit the necessity for reboots during the installation of the .NET Framework version 4.5 (now in Developer Preview mode). It's quite amazing how complex installation can be and the amount of work an installer has to do to enable the best possible experience for users installing the software. Eric and team have done some great work in the next release of .NET to limit the amount of time it takes to get the framework on your system (rebooting = time spent waiting). Tune in to hear the story behind this and meet Eric.



Available formats for this video:

Actual format may change based on video formats available and browser capability.

    The Discussion

    • Adam​Speight2008

      Then how can some Linux OS do OS level updates without requiring reboots / restarts?

      Is time that Microsoft / Windows rein-visioned update, for going some backwards compatibly?

      Why wasn't a CVS / NuGet type of approach considered? Then on next shutdown / restart, re-adjust to so it point to the latest version, sweeping away the old version as it does so? 

    • EricStJohn

      I agree with you on re-envisioning update if we could forgo backwards compatibility, however .NET 4.5 is a replacement of .NET 4.0 where compatibility (even down to the existence of files in a particular path) must be maintained.  I am all for major effort to eliminate this problem entirely when we have a framework release that doesn't have such a strong compat goal.

    • stefant

      MS has a pattent hot kernel patching :)


      and the linux kernel I think they use this


    • Allen Feinberg

      Feedback - Why can't the dialog say "If you do NOT close the following apps then a MANDATORY reboot of yours system will be required. To avoid the MANDATORY reboot please close the following apps". Users aren't aware the consequence if they do not close the apps in use.

    • felix9

      So, no 4.5 for XP/2003 ??? bummer ...... Perplexed

    • deiruch

      Maybe one could approach from a different direction. Maybe if you added some special sauce to the current release the next release could easily perform in-place upgrades?

      Also I didn't fully understand why you can't just have newly started applications use 4.5. You say that a 4.0-using app might delay-load some more code - but why don't you keep that old code around until the next restart? 4.0-using apps could then delay-load the old versions and all newly started apps would run with the 4.5 release. Win-win, right?

    • EricStJohn

      The special sauce is already present in how the shim and loader/binder work.  We could do an upgrade by installing a new set of files side-by-side and automatically rolling 4.x apps forward to this version.  The crux of the problem is framework entrypoints: if we can ensure that all of our entrypoints go through some shim that does version/path selection we can easily lay down a new version and make it behave as the old one.  We have shims for most entrypoints (COM, CreateProcess, hosting, perfcounters, clickonce, finding the framework directory, etc), but we still have enough apps that use the framework without going through these, and those are the apps that break when we change the path.  I am not saying that these apps are the ones that are at fault here, though.  We need to do better at providing the right set of APIs / documentation so that folks don't take dependencies on the absolute paths to framework binaries. 

      The reason why we can't keep old code around is our compat contract around not changing file paths.  The old apps would be expecting to get code from the same path as the new ones and we can't have that resolve to the same file.  In some cases we can't even move the old file out of the way since it is open without FILE_SHARE_DELETE.

    • Adam​Speight2008

      Why shouldn't Microsoft break compatibility of application not coded correctly?;- By using absolute paths.

      Man up Microsoft, You did it for Device Drivers, don't blame us, blame the manufactures.

      Maybe by having them break will teach them. Don't do it that way, a you run the risk of it breaking.

    • deiruch

      @Adam: Disagree. Saw what happened with Vista? MS got all the blame.

      @Eric: Thanks a lot for the clear explanation. I wonder how app developers can make their app dependent on .NET file paths or why they'd open the runtime files themselves. Guess nothing's impossible... Smiley

    • Adam​Speight2008

      @deiruch: Microsoft should have held fast, and insisted that drivers / applications be coded to correct. Especially for Logo Status. Instead they acted like Geeks being bullied by the Jocks.

      "Yes, Mr Quarterback Sir, I'll make sure you don't experience that problem  again. Please don't hit me!"

      Imagine if .net started out with generics, Linq, first class events and TPL. (I reckon Java Developers would have left their desks that fast, the seat and coffee would be still warm.

      . Windows OS with only compatible with the two previous releases. Win 8 would support only back to Vista Applications. Or the 255 char limit was lifted on filepaths. Or a only Async APIs. A full managed code GUI OS based on Singularity.

    • Spongman

      couldn't you just make sure everything's installed below a single directory and use junction points to switch the currently installed version?

    • manuella21

      Thanks for making this installation easier, I had a lot of problems with the 4.0 (I'm a real newbie when it comes to this platform, been looking for information on Google and) version and I hope that it keeps getting faster. Dans les techniques pour le referencement dans les moteurs de recherche, nous proposons des positionnements en français ou anglais, spécialisés dans le marché suisse ou mondial. It's fascinating how much work goes into making it simpler for the end users.

    Comments closed

    Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.