What are the risks of running VS2010 side by side with VS2012? - visual-studio-2010

Officially, it's supported. I get that. I've personally done it in a VM. My question is, are there any hidden gotchas of running VS2012.x side by side with VS2010 SP'd and hotfix'd? I recall reading about an issue with the version of .NET or the CLR, I don't recall the details and it was last fall.
My coworkers and I would really like to move to 2012 but we have a lead developer that refuses to move. We need to convince him, especially since we have a large project that was started on 3.5, moved to 4.0 (will not go to 4.5), but we've heard rumblings about the aforementioned possible problem.

.NET Framework 4.5 is an in-place update. This means that once you install it all apps (including VS 2010) will be running against .NET Framework 4.5 and not .NET Framework 4. While there has been a great effort to make .NET Framework 4.5 backwards compatible there are some (mostly minor) bugs where the behavior changed in .NET Framework 4.
I think the biggest thing you should consider is whether you are going to target .NET Framework 4 in your apps. The problem is that when you target .NET Framework 4 your VS2012 will only allow you to use APIs that as they were in .NET Framework 4 but your app will actually run using .NET Framework 4.5 runtime. I have seen cases where a legitimate bug in .NET Framework 4.5 was fixed (i.e. an incorrect exception is no longer thrown) but when you run your app against real .NET Framework 4 the app did not work even though it targeted .NET Framework 4 because the bug is still there. Note that you can get to the same situation even with VS 2010 if you install .NET Framework 4.5 on your box. I have been running both SxS and I have not had any problems (but am primarily using VS2012 - is so much faster and more stable).
I think the main take aways here are
if you are working on .NET Framework 4 make sure you test your app on real .NET Framework 4
try running VS2012 sxs with VS2010 on a limited set of machines and if you don't see any problem move on
you may also try running VS2012 only if you don't use any functionality that is not supported in VS2012 (the biggest risk in this case is the .NET Framework anyway and running VS2010 only will not protect you anyways)

Related

.net 4.0.3 On Windows 8? Is it possible

I just formatted my computer not even a week ago after being on Win 7 for a long time. I thought it was safe as at work I been using Windows for like a year now and have not had to go to load Windows 7 up since switching.
Now I just got a project that is apparently set to .net 4.0.3 version and won't be upgraded at this time.
I tried downloading .net 4.0.3 on Windows 8 but it always fails for me. I get
"KB2600211 does not apply, or is blocked by another condition on your computer."
I thought maybe if I install VS 2010(as they want me to use VS 2010 becuase they are a bit worried VS 2012 will do something funky to the project and mess everyone else on the team who are on Windows 7 and Vs 2010).
Anyone know how I can get at least 4.0.3 on windows 8? I don't want to format, took so long to get up to speed and won't be able to do Win Phone 8 programming anymore.
I would also have to stick it on my other HDD as my SDD can't fit both OS on with VS on it. So I will have a very slow OS and very fast OS.
The problem is that .net 4.5 is an in-place install which replaces .net 4.0. You cannot have both installed at the same time and Windows 8 comes pre-installed with .net 4.5. For the most part you should be able to just use .net 4.5 as if it were .net 4.0 but there are some breaking changes. You might be able to uninstall 4.5 and then install 4.0, but that sounds rather risky.
At a previous job, we didn't upgrade to .net 4.5 for exactly this reason. Until everyone is upgrading at the same time, there can be substantial compatibility issues.
For a list of incompatibility issues see here. Note that this doesn't cover any places where your app may have been depending on a bug in .net 4.0 which is now fixed in 4.5 or any things like this where a type is moved to a different assembly (these are not considered breaking changes, so they aren't listed in the incompatibility list).

How can we migrate existing web applications from .net 2.0 to 4.0 in installshield project

We have a number of Installshield projects that install and configure IIS applications. We have shipped several versions of the different applications (over 7 versions of 3 applications) and would now like to upgrade to use .net 4.0 instead of 2.0 & 3.5.
After modifying the "Internet Information Services" settings to change the ASP.NET Version on the web sites/application to 4.0.30319 and the .Net Framework version to v4.0 under the application pool, the installer correctly creates an application with the 4.0 version in IIS 6 and below, and in IIS 7 and above it correctly sets the pool to use v4.0, but upgrades do not work for any targets.
The upgrades install OK, but the .Net version of the virtual directory or application pool remain unchanged. Changing it manually works of course, but this would lead to increased support issues.
I have tried changing the upgrade to be a major upgrade, with no success, I am currently working on a custom action to change the .Net version after installation, but I don't have much experience with this feature of Installshield.
Has anyone experienced this issue? Are there any preferred ways of achieving this? (custom actions, or a .Net installer class, WIX is not an option)
Thanks
Without spending hours to dig into it... one quick solution would be to rename the app pools in your new installer and let a major upgrade create the new and remove the old. After all, if you are changing from .NET 2.0 to 4.0, in a sense you are creating a component that is not backwards compatible and thus should be a new component.

Can Visual Studio 11 Beta be installed side by side with Visual Studio 2010? [closed]

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center.
Closed 10 years ago.
Will the side-by-side installation of these 2 versions of Visual Studio interfere with each other if installed on the same machine?
VS11 comes with a "go live" license and you can install it side-by-side with VS2010. Be careful though since VS11 installs the .NET Framework 4.5 which is not a side-by-side install. When you install .NET Framework 4.5, it is an in-place upgrade of 4.0 which means you are replacing the 4.0 DLLs with the new 4.5 ones. There aren't supposed to be any compatability issues, but with any in-place upgrade there may be some subtle ones that pop up.
I have installed both of them and they live with absolute peace :) VS 11 supports side by side installation with vs 2010 officially, so install it, you won't have any problem.
Also as a side note, VS 11 is in beta stage, but it's very stable. I've switched to VS 11 from the day it went public and found no bug yet.
I have installed it, there was no problem. But since I uninstalled VS 11, 3.5 winforms project with images defined on form doesn't work properly any more. When loading buttons images, exception "Could not load assembly System.Drawing 4.0" is thrown. Since I mainly develop web applications and they run fine I didn't bother more with this.
I know at a minimum it will break StructureMap and I've read others have compatibility issues.
The .net 4.5 release is an In-place upgrade.
This means that the binaries for .net 4.0 will be REPLACED by the binaries for .net 4.5.
Microsoft has attempted to mitigate the problems this causes by making a "Target .net 4.0" feature. But this is very different from the targeting previous versions of .net (which have been side by side since .net 2.0).
Because it is a in-place upgrade, "Target .net 4.0" cannot really target it. The best they can do is try to manually remove some "features". They have done this (Scott Hanselman had a blog post covering this).
But don't let this fool you into thinking you are really using .net 4.0. Any bugs fixed by .net 4.5 will be fixed on your development machine and not for your users.
So if you are developing an application "targeting .net 4.0" and you have .net 4.5 installed then you are at risk. If you accidentally use a fixed bug, it will not break for you while debugging.
When you deploy your app to a machine running only .net 4.0 (ie windows xp) then those bugs are not fixed for your user.
For all intents and purposes, those fixed bugs are now "Hidden Bugs" (for developers that still need to target .net 4.0.
The best part is that it does not matter if you use VS 2010 or VS 2012. Once .net 4.5 is installed the bugs are hidden.
See this post for more details: http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/c05a8c02-de67-47a9-b4ed-fd8b622a7e4a/

How to target .net framework 4.0 from a SilverLight 4 Application Project?

Issue:
When creating a new SilverLight Application Project from Visual Studio 2010, the SilverLight application project's reference pointing to .Net Framework 2.0 assemblies. But I need to use some features only available since .Net Framework 4.0.
Had done a few Google searches but reached no conclusion.
Is there a way to update the targeted .Net Framework version for SilverLight application project in Vs2010?
Silverlight and the full-on .NET Framework are separate things, that just happen to share an awful lot in common. The version numbers of these gets even more confusing, but here goes...
Silverlight 1 didn't have managed code so I'll skip that.
Silverlight 2, 3, and 4 all have version numbers like "2.0.5.0" for the various assemblies (System.dll, System.Core.dll, etc...) - the "5" is meant to look like an "S" for Silverlight, and also makes it unique vs. the "2.0.0.0" that the full .NET Framework uses. This is important because Silverlight is a subset of the .NET Framework, so if an application loads a DLL they may think that 2.0.0.0 means "I can use API Foo" but that API might be subsetted out of Silverlight - so at least "2.0.5.0" implies "this is not exactly the same".
Silverlight uses a CLR called the "CoreCLR" whereas the full .NET Framework uses simply "the CLR" - CoreCLR is a subset of the full CLR and doesn't have all of its functionality (but does run on Mac, so that's a plus). Silverlight 2 and 3 use CoreCLR 2, which is fairly close to full CLR 2 (used by .NET Framework 2-3.5). Silverlight 4 uses CoreCLR 4, which is fairly close to full CLR 4 (used by .NET Framework 4).
To throw another wrench in these works, Silverlight for Windows Phone 7 uses the .NET Compact Framework, which has yet a different CLR (the NETCF CLR).
Last thing to note is that recently Microsoft has started the "Portable Library Project" (see here : http://blogs.msdn.com/b/bclteam/archive/2011/01/19/announcing-portable-library-tools-ctp-justin-van-patten.aspx ) which aims to make it easier to build class libraries that can run on all the various ".NET-like" things out there (full .NET, Silverlight, Windows Phone, XNA on XBox 360, perhaps others like Mono) without the developer having to worry about the morass of stuff I just mentioned above.
Hopefully that makes things clearer, but it is rather confusing.
So to get back to your question - you can't "target .NET 4 from Silverlight" but if there's a feature of the CLR or the Base Class Library from .NET 4, it may be in Silverlight 4 as well. If you can list specific features you're seeking, I can tell you if they're in Silverlight 4.

Should I start using VS2010 Beta 2 for development work now?

Should I start using VS2010 Beta 2 for development work now?
What reasons are there for and against?
You can take two angles with this; using Visual Studio to build your solutions in a .NET 3.5 or earlier OR using it to build applications in .NET 4. Firstly, familiarise yourself with what’s new in both the IDE and the framework (I’ve got a quick, illustrated overview here and there's heaps of other info on the web) and see what you’re actually going to be able to take advantage of in your situation. Secondly, be aware of your target environment; If you’re publishing to shared hosting or client machines you need to consider whether the .NET 4 approach is wise while it's in beta.
I’ve previously built solutions on the last couple of generations of Visual Studio and .NET whilst in beta 2. You’ve got a go-live license so you can actually productionise solutions and both previous generations have been very stable without any significantbugs or changes from beta 2 to alpha versions.
If you can address the issues above, I say go for it!
Only if you're interested in trying it out. Don't use it for real work as it. It's a beta, which means that significant bugs may still be lying around in the code.
We started using VS*2008* Beta 2, when it came out, as our main dev environment - but targeted .NET Framework 2.0 only initially. This was mainly because VS2005 was such a dog. As to whether you want to start targeting .NET 4.0 now is your decision - but I can't see the harm in using it for targeting .NET 2.0 - 3.5.
I think we'll stick with VS 2008 for our main dev environment until at least a 2010-compatible version of CodeRush/Refactor Pro comes out.
I say whats wrong with 2008? You could use 2010 to build for 3.5 framework if you really wanted to, but I'd seriously leave it, it might be more trouble than its worth..who knows?
I have it installed and I've had a play with it and I've even installed resharper beta that works with 2010. But this is only to give the new tools a test run.
The company I work for are really good at keeping up with the latest tools, for example we have already rolled out windows 7 to some developer machines, but we wouldn't go as far as using a beta IDE in a production environment.

Resources