Could just be me but struggling to download the wmv (high), 'finishes' sub 100mb (its nearly 900mb).
edit: don't worry about it charles, I've give it another go tomorrow (btw the size doesn't bother me at all).
Sorry to hear that. Yeah, the WMV(high) for an interview of this length is going to be big (it's encoded at 2.5 Mb/s). When you say 'finishes' do you mean the downloader shows completion and exits?
(We don't need to have this conversation on this thread, however - Click on the Contact Us link on the bottom of the page and we can do this over email)
C
Compiled 2.0 applications not running on Windows XP with 4.0 CLR only installed is a problem. This will break all applications I have created to date. The old rules allowed the older exe to run on newer CLR. My install will test for 2.0 or higher CLR. If 4.0 CLR is found, the install will not put 2.0 on the machine but my application will no longer run. This is a breaking change that will affect many applications.
I don’t have an issue with this change but please make sure you get the word out to developers. I would also suggest adding an option to the manifest to allow the previous behavior (allow exe to run on any framework higher than the target).
Here's an in-process side-by-side scenario on the server: you have an ASP.NET 2.0 Web application with dependencies on .NET 2.0 assemblies. You would like to update your application to .NET 4.0. You don't own the dependencies to update them as well. What do you do?
I will be uploading a new version of the high bit rate file. Seems we have a problem with the current one. Thanks for the notifications. I'll edit this post to let you know when it's available.
EDIT: I have verified that there is no problem with the file itself and I've successfully downloaded it on two different networks. Seems the root cause is related to geographic location (CDN nodes are perhaps not evenly distributed) and network issues.
Thanks for the feedback, that's an interesting scenario we were hoping was going to be pretty rare. There's no doubt there's a trade-off here between a number of different types of 'breaking changes', and the principle we're relying on in this case is that we'd rather have an application refuse to run than run on a platform it hasn't been tested with and possibly behave poorly.
We did spend a lot of time discussing how we will support developers that want a different trade-off - i.e. are willing to take the risk of allowing their app to run on a future version of the framework without having tested it. This is one of the main reasons we now support 2-part version numbers in config files. So, you can get almost what you suggest by adding <supportedRuntime version="v4.0"/> to your app's config (and if you really want ALL future versions, you could add v5.0, v6.0, v7.0, etc. - but I wouldn't reccomend it, there's a reasonable chance a complex app tested only against V2 will NOT run well on some CLR released 10 years from now <grin>).
Anyway, I definitely agree with your point about needing to do a good job "getting the word out". I've forwarded your comments to the SxS team and we're discussing how best to document this and other potentially surprising behavior related to SxS.
Thanks!
Rick
Hi Joe. In most cases that scenario is not something that can be solved with SxS. In particular, SxS requires a pre-existing isolation in the code - just like app-domains or different processes. Most of the time when depending on managed assemblies, the code is tightly coupled at the level of managed code (sharing objects freely back and forth without any sort of marshalling/remoting, etc.), and so can't easily be separated by an isolation boundary (appDomain/runtime/process).
However, this sort of scenario (composable 3rd party components) is one of the main reasons why binary compatibility is still so important for the CLR. Just like with .NET 1.x->2.0, we fully expect assemblies compiled against .NET 2.0 to be loaded into the 4.0 runtime. So most of the time, rolling an application forward to 4.0 that has dependencies on 2.0 assemblies should hopefully just work fine. One notable exception I discuss in the video is IJW assemblies (C++/CLI compiled without /clr:pure or /clr:safe) - those will unfortunately either need to be recompiled or the application will have to be configured to disallow the V2 runtime from being loaded.
I can imagine some rare cases though where this could be useful (depending on, for example, code though a COM interface that is implemented in .NET 2.0 and doesn't work on 4.0). And the ASP.Net team does believe there is some value here. But it'll probably be rare, and not a high priority scenario in 4.0.
Rick,
Thanks for the reply. What will happen when a new OS does not support the older framework (ie .net 1.0 will not install on Vista)? You have forced the user to get an update for the application to support the new OS. Is the Windows team ok with that? It makes the OS look bad because it is no longer compatible with the application. The easy answer is to always ship the older framework with the new OS, but I don't think that is going to happen. This change is effectively putting a limit on the life of the app. Again I am not against this change, I am simply trying to help find the holes.
Like anything windows, legacy is dropped when it passes the balance of requirement vs. maintainability.. .net 1.0 is very obsolete in my opinion.