The development team I am joining all use VS 2010 Pro, possibly with TFS or some other SVN system. I placed an order to have it installed but our procurement process screwed up and it seems they have ordered 2012...
Are there any compatibility issues? It seems it will work with TFS 2010 but I remember going from 2008-2010 a lot of programs just broke plus they have to upgrade the project.
There's a lot that's improved from the VS2008 -> VS2010 scenario, and a bit that hasn't (or has gotten worse).
Project Compatibility
In most cases, VS2012 will be able to open a VS2010 project without making incompatible changes. The main caveat to this is that the VS2010 user needs to have SP1 installed.
Some project types from VS2010 are no longer supported in VS2012. The top ones I can think of are Setup projects or Database projects. In VS2012, these projects simply won't open (but if you don't need to build them, possibly no harm done).
See http://blogs.msdn.com/b/visualstudio/archive/2012/03/28/round-tripping-with-visual-studio-11.aspx for more on this.
TFS compatibility
VS2012 should be compatible with TFS 2010, but any new functionality in VS2012 won't be available (which is logical since the server doesn't support it). For more, see http://msdn.microsoft.com/en-us/library/dd997788.aspx#compat.
Runtime compatibility
VS2012 installs .NET 4.5 (also shipped in-box with Windows 8), which is an in-place upgrade of .NET 4.0 - it replaces all of the binaries, as opposed being a side-by-side releases like 3.0 and 3.5 were to 2.0.
There are a few runtime differences that you might encounter in .NET 4.5. Some of these may be bugs in 4.5 which may be fixed in a future hotfix, and some may be intentional changes (i.e. bugs from 4.0 fixed in 4.5). The point here being, if you do run into one of these issues, your fellow developers might not encounter the same issue. Then again, if you're planning to support Windows 8, that could be a good thing.
(I don't have a list of known incompatibilities between 4.0 and 4.5... if someone does, please feel free to edit).
It depends on what features you use in Visual Studio. In our company, we have not considered an upgrade yet due to 2012 not supporting installer projects (*.vdp) - you now have to use WiX, InstallShield, or some other installer.
There are compat patches on top of VS2010SP1 specifically addressing some minor pain points for this scenario. You can find those on msdn. Link http://www.microsoft.com/en-us/download/details.aspx?id=29082
Other than that things should just work fine as long as you ensure you have the right target framework version and platform toolsets etc for your projects eg. dont target your project to v4.5 since it will not work for your devs using VS2010
Related
So I've made the program on windows 10 Visual studio Version 10 in c# as a console application. The program is just monitoring file changes with fsw. I'm now faced with the challenge of doing literally everything in my power to not have to install anything on the PC of which this program will have to run (as in company they don't normally like us installing anything on the old pc's). So I believe I need to compile the program in a lower version of .Net if possible?
Any help regarding the matter would be appreciated as most things I find is people wanting to move from 1.1 to higher versions or the odd reference to web applications or c++.
Also, (though it may be obvious) I'm not a coder, not even my job really and thus I am quite inexperienced so any answers dumbed down a lot would be incredibly useful.
Thanks in advance!
First of all, check if .Net framework is installed if you have not already, and in that case what version it has.
According to .Net version and dependencies windows XP does not include any .Net version. That page also include links on how to check version. The last .net release for windows XP is .Net 4.0. See .Net system requirements.
So there is no indication that you should use .Net 1.1. Either you would use whatever version is installed, or you install some version you want (i.e. the highest supported), or you do not install any version, and do something else.
Modern versions of Visual studio allow targeting of .Net framework from 2.0 and onwards. And I'm fairly sure you can run .Net 2.0 and later version on windows 10 if you install the framework. Using .Net 1.1 would probably require you to use windows XP as the development system, so I would avoid this if at all possible.
I would recommend using a virtual machine for testing, since it allows you to test on windows XP on your machine, and makes it easy to revert any failures. I would probably recommend migrating the entire PC to a virtual machine it at all possible, since this would reduce magnitude of hardware failures, and make backup and restoring much easier.
I am doing maintenance work on a VS2010 C# project built against .net v3.5.
I recently changed the project Target Framework properties to the latest version listed (v4) - due to an expectation of using a version of .net that is actually included in Win10 by default - and rebuilt without any apparent issues.
Unfortunately the embedded dependency in the generated .exe is still for .net v2.0.50727 (which is what is reported for v3.5 AFAIK) and the target machine (a clean install of Win10) is asking to install .net 3.5.
Using MS VS2010 v10.0.40219.1 SP1Rel.
Unfortunately upgrading the build tools isn't an option (building the program with VS2015 works just fine).
I have gone googling but don't seem to have found any similar reports.
Based on some of the comments already posted, I seem to have not made myself entirely clear - hopefully the following will help.
1) the intention/requirement is to be able to install this app on a clean install of Win10 without needing any further downloads. (installing .net 3.5 is easy to do, just not what is wanted)
2) the ultimate build environment for this is automated, visualized and not in my control and therefore upgrading the tool chain is a major pain that I'd like to avoid if possible.
3) AFAIK there are no third party libraries involved. All of the listed references (dll's) are v4.0.30319.
4) this is a XAML-based development, one part of three projects in the solution - the other entries are the installer and a C# custom installation library. As far as I can tell everything is set for .net v4.
Unfortunately the embedded dependency in the generated .exe is still for .net v2.0.50727 (which is what is reported for v3.5 AFAIK) and the target machine (a clean install of Win10) is asking to install .net 3.5
So there is some dependency in your project that targets that version of .NET. It could just be that you need to Build > Clean Solution and with a Build > Rebuild Solution the problem is solved.
Otherwise, assuming some library does require some .NET 3.x library, the installation request is entirely correct. Windows 10 does not have an option for installing .NET 2.0 and another for installing .NET 3.5. If you search for Turn Windows features on or off you will see this:
Any dependency on a .NET 2.x-3.x library will trigger the activation/installation of the first feature in the dialog.
As far as I can see, you have 2 options:
Move everything to a framework supported by Microsoft, most preferably .NET 4.7.2 given support and security.
Deal with the installation process and understand that Microsoft does not install these versions of .NET in purpose. You can, however, add these installers as a prerequisite and even bundle them with your installation, but that won't help much.
Thanks to all who have tried to help me!
The issue has been resolved.
There appear to have been two causes for this issue and my confusion:
it turns out that the blank install of Win10 that the testing was being performed on was not entirely clean - the pre-installed network drivers/utilities from intel also had a .Net v3.5 dependency...
one of the embedded resources in the project was effectively a uncompressed tar-ball containing a number of files; including an executable that had the dependency on .net v3.5 - this was a binary blob stored in svn so the content was had not been updated for several years (ie well before my involvement) ...
With both of these issues addressed it would appear that my problem is solved, so once again thank you for your feedback, suggestions and patience,
PeterT :->
Microsoft appears not to have consdiered the problems in managing Visual Studio projects when multiple versions of .Net or multiple versions of Visual Studio are in use. Can anyone recommend ways to manage these intelligently?
We have quite a bit of code that was written using Visual Studio 2008. If we want to update the code and choose to use VS 2012, VS does a one-way upgrade, and we can't use VS 2008 on those projects any more. We do have at least one machine running Windows Server 2003, and while it's not normally used for development, we do sometimes use it, and we can't install VS 2012 on it.
Worse, we have customers with computers of various operating systems, so we can't count on having a specific version of .Net. It would be nice to be able to select the .Net version in the project configuration, but we can't. The first tab of the Projects screen contains the .Net version selection, and that screen does not change with different project configurations.
I can't even really use the same source code files, because there are differences in available libraries between .Net 4.5 and earlier versions. The one that comes to mind is System.Threading.Tasks, which is included by default in .Net 4.5 files, and which isn't available in earlier .Net versions. And I don't know of any way to use compiler constants to differentiate between operating systems or .Net versions in C# as is (or at least used to be) possible in C++.
I have dealt with this same issue over the past few years and my solution has varied depending on the project. My optimum solution, and the one I use 90% of the time, is to migrate the project to the latest version of Visual Studio. For projects where that is not possible, I create virtual machines to hold the visual studio install that I need. Then whenever I need to work in the legacy project, I fire up VMware workstation and put it into full screen mode.
Not sure this would work for you, but it works for me.
You can have multiple versions of Visual Studio installed side-by-side (I have 2008, 2010, 2012, 2013, and 2015 preview all installed on the same development machine). If you have a project in which some developers cannot use the latest version of VS, then you will just need to use the older version. Though with 2012-2015 you can round-trip (i.e., there is no upgrade when you open a solution with a later version of VS).
For the .NET versions, you can target earlier versions of .NET from later versions of VS. Here you need to decide what is the minimum level of .NET that you plan to target for a given platform (expect your customers to have installed). The later versions of .NET add additional functionality so you need to decide if you want to use those features and thereby require your customer to upgrade .NET or if you will make do without those features. One option to consider is creating a simple setup program for application deployment that contains the requisite .NET boost strap installer. The next version of the framework will supposedly allow for deploying framework libraries in you application directory, which might mitigate this issue of what version of .NET the customer has installed on the system.
I found a couple of threads that touch on development of C#/Java apps but I don't think they go along with this question.
I was wondering if it was a good idea to be developing Java, C#, and .NET applications on one computer. That means there's ## .NET versions installed at one time, ### Java JRE's installed at any given time. Is that a good idea? I'm just thinking there is eventually going to be a huuuuuuuge conflict and the computer is going to say "I'm done. Poof".
It's fine.
If you have any modern system, you're already going to have all of these runtimes installed. Having the SDK installed doesn't add any overhead unless you're actually using it, so there is no problem. Both .NET and Java strive to allow multiple runtimes installed side-by-side, without conflicts.
Go ahead, develop away, and enjoy!
Well, C# targets .NET, so there's no conflict there. You can certainly have multiple .NET CLRs side by side on the same machine, and multiple versions of Visual Studio if you need to target the 1.x CLRs.
However, there is one thing to watch out for. .NET 3.0 and .NET 3.5 include updates to the 2.0 CLR, so some care is required when developing for 2.0 on a machine that has 3.x installed -- it won't go poof, but you may need to watch out for compatibility issues. This particularly problematic when developing for 3.5 RTM on a machine with 3.5 SP1 installed, as Visual Studio will not warn you of SP1/RTM compatibility issues in this case!
I'm just thinking there is eventually going to be a huuuuuuuge conflict
There should be no problem as long as you know how things work.
The main problem may be your machine resources ( CPU/RAM/HD etc )
I have had java 1.2, 1.3, 1.4, 1.5, 1.6 in the same machine without a single problem. I understand the same applies to .net
Nothing like this ever happened to me. I'm studying and I have to do many different kinds of projects. I had about 6 or 7 versions of java installed. Net frameworks from 1.1 to 4.0. VS 2008 and 2010b2. There is no conflict.
You could have many different versions of the .net framework and Visual Studio installed side-by-side, and you can also develop for different .net frameworks in VS2010 and VS2008.
As for the Java JRE's, I'll leave that part up to the JavaGurus...
I can't think of what might cause your computer to say "Poof". Mine has yet to say that and I run both dev environments on mine.
.NET code relies on the.NET Framework, 1.1, 2.0, 3.5 and even 4.0 run side by side with no big issues, the IDE also allows targeting your applications to specific versions of the framework. Not certain about Java's tolerance for multiple JRE versions, but 1.1, 2.x, 3.5 and 4.0 all behave just fine on a single machine.
Very blunt and to the point, but does anyone know how to convert a visual studio 2008 project to visual studio 2003, I'm meant to be delivering some stuff to a client and they only work in 2003.
Sorry someone makes a very good point, what language, C# is the answer.
I've done a bunch of searches on Google and tend to only come up with 2003->2008 and not visa versa, I would very much appreciate any help.
It cannot be done in the general case, as the VS2008 project may use .NET 3.5 features that don't exist in .NET 1.1 used in VS2003.
If you only have .NET 1.1 features in your VS2008 project, you could conceivably just copy the files, create a VS2003 project, then use "Add Existing Item" to get those items into the VS2003 project.
2008 has more settings than 2003. So if the project has some special settings your screwed.
Else create a new 2003 project and copy all the source files? (and use the same configuration)
It is going to be very difficult because VS2003 projects use .NET 1.1 and VS2008 use .NET 2.0, 3.0 or 3.5 (depending on the configuration of the project). The problem will be that there are features that have been to each version of the framework, and it is likely the code will use features that do not exist in .NET 1.1
There were converters to go from the old VS2003 project format to the MSBuild format used by 2005/2008, but I don't think any exist to go backward. Keep in mind that any non-trivial project in VS2008 might be challenging to move to VS2003 -- especially for an automated tool. For example, WinForms went through massive changes between VS2003 and VS2005.
Please correct me if I'm wrong, but doesn't Visual Studio 2003 only support .net 1.1? That means that if you have a .net 2.0 or 3.5 Application you have a problem. For C++ I guess it's a similar issue due to the old compiler.
Means: I believe it's borderline-impossible.