Tech Off Thread

74 posts

Conversation Locked

This conversation has been locked by the site admins. No new comments can be made.

A question on XP support in VC11

Back to Forum: Tech Off
  • User profile image
    devcodex

    I'm starting this thread to get an answer on why XP support was dropped in VC11. Not because I need it personally but because there are a number of people asking about it in the "wrong" places (overtaking blog posts, etc with this off-topic issue). I'm also re-posting a post from rab36 which is probably the best thought out of the complaints.

    It would be great to get a technical answer from someone on this. Even if its not feasible to continue XP support at least armed with the reason for dropping it people can make informed decisions about how to move forward.

    ----

    rab36 wrote

    *snip*

    Windows XP extended support lasts until April 9th, 2014. VS 11 is supposed to be released in 2012, right? So why not supporting to create C++ programs for XP in VS 11 with the latest C++ toolset?

    .NET 4.5 will very probably support Windows XP because it is an inplace upgrade from 4.0: http://reddevnews.com/blogs/rdn-express/2011/11/back-to-app-migrations-with-ms-net-vnext.aspx

    So why not offer C++ programmers the same possibilities?

    What is the motivation? What are the technical reasons, if there are any?

    I just want to elaborate a bit more about our motivation to support XP at least until 2014, maybe even longer with our software:

    We are a manufacturer of measurement systems that are sold with an industrial PC (with Windows XP or Windows 7) and a sophisticated C++ application for acquiring, storing, analyzing the data.

    Only recently we managed to offer Windows 7 64-Bit with all our systems because of driver issues of 3rd party data acquisition boards that are in the IPC.

    We have an OEM license agreement with Microsoft for embedded systems that still allows us to purchase Windows XP.

    We are selling maintenance agreements with our software and we have lots of systems on maintenance worldwide that are running Windows XP. Some of them are used in test lab or production environments that are not even connected to a network, so even the end of extended support of Windows XP in April 2014 will not force customers to migrate to Win 7. Upgrades to Windows 7 are difficult and expensive because hardware (because of the driver incompatibilities) with costs of several thousand of dollars (up to $15.000) has to be exchanged. The measurement hardware of the system is used typically for longer than 10 years, the IPCs are exchanged every 5-7 years.

    On the other hand, I am very interested in using the latest Visual Studio and toolset for our software. In the past, we managed to migrate to the latest Visual Studio release typically within one year after the release of Visual Studio. We have a demanding application that makes heavy use of multitasking and multithreading. New features are developed with the latest language features and libraries. We are using lambdas, auto, PPL and ConCRT and agents library right now with VS 2010 SP1 in our product.

    Not being able to use the latest toolset lets say in 2013 (because of Windows XP) would heavily impact this strategy. I expect that we have to support XP until at least 2015. So having no XP support in VS 11 comes way to early for us.

    Bernd

  • User profile image
    figuerres

    Simple:  it's not a "technical" problem it's a management and policy thing.

    VS / VC is targeting the "Platform" that Microsoft sells.  Microsoft is not selling XP any longer and is asking folks to follow the guidelines and policy that they have published.

    with the release of windows 8  xp will be 4 versions back. it has reached the end of support and sales.  and for the small number of developers who still must support XP they can use VS 2010 or VS 2008 to do that.

    that aside I personally would say that it's time to get the apps to WIndows 7 at least and stop using the XP OS for many many reasons.

    a company that is using multiple vendors to make a system or device should make sure they are not shooting thier own foot.  they should have known that xp is end of life  and started the update / migration long before this happened. if they failed to read the published notices and makie the right plans that is not Microsofts fault.

  • User profile image
    spivonious

    A somewhat related question...what's VB6 support like on Windows 7? I'd say 90% of our apps are written in VB6 and migrating them to .NET would be a huge effort.

  • User profile image
    figuerres

    , spivonious wrote

    A somewhat related question...what's VB6 support like on Windows 7? I'd say 90% of our apps are written in VB6 and migrating them to .NET would be a huge effort.

    in general normal stuff should work.  really you need to just start testing the apps and find out.

    heck there are a lot of things that a "vb6 app" might do that could be an issue and you have to know what the app does.

    for example: trying to write files in folders that apps are not supposed to use.  in say windows 95 or windows 2000 the app generally worked .... but in vista or 7 the same app would have issues.

    vista will be more in-your-face about it.  in fact i would even say test the app with vista ...

    if it works there then 7 should be fine.

    if vista complains see if it can be updated to fix it.

    if not you have two options: 

    1)  application compatibility settings

    2)  xp Mode - the virtual pc running xp that is a free part of windows 7.

     

    app compat settings:  as i recall there is a tool from MS to help with creating a profile to run the app on the new os with some settings to "smooth over" some issues.

    if all else fails XP Mode can run a lot of old stuff and to the user it looks like they are not even using a virtual machine other than the "window chrome" is the XP style.

  • User profile image
    AndyC

    Just because XP is "supported" by the Windows team (even if in a security-fix only state), it doesn't follow that the developer division should necessarily continue to produce newer tools for it, it is fundamentally a dead platform, the tools needed already exist and nothing is going to change that.

    Most of the major PC manufacturers have had 2012 as the last year they expected to produce XP-compatible hardware for several years now, I don't see that changing either. As with every release of Windows, attempting to continue using it right to the end of it's product lifecycle becomes an expensive and inconvenient option, the world moves on and it's best to strategically plan not to end up in that situation.

  • User profile image
    spivonious

    , figuerres wrote

    *snip*

    in general normal stuff should work.  really you need to just start testing the apps and find out.

    heck there are a lot of things that a "vb6 app" might do that could be an issue and you have to know what the app does.

    for example: trying to write files in folders that apps are not supposed to use.  in say windows 95 or windows 2000 the app generally worked .... but in vista or 7 the same app would have issues.

    vista will be more in-your-face about it.  in fact i would even say test the app with vista ...

    if it works there then 7 should be fine.

    if vista complains see if it can be updated to fix it.

    if not you have two options: 

    1)  application compatibility settings

    2)  xp Mode - the virtual pc running xp that is a free part of windows 7.

     

    app compat settings:  as i recall there is a tool from MS to help with creating a profile to run the app on the new os with some settings to "smooth over" some issues.

    if all else fails XP Mode can run a lot of old stuff and to the user it looks like they are not even using a virtual machine other than the "window chrome" is the XP style.

    That's good to hear. Generally, we should be fine as most apps don't write files. Some do make reads/writes to HKLM, which I assume will need UAC elevation.

  • User profile image
    AndyC

    , spivonious wrote

    *snip*

    That's good to hear. Generally, we should be fine as most apps don't write files. Some do make reads/writes to HKLM, which I assume will need UAC elevation.

    Possibly not, depending upon how important it is that it's in HKLM. Given that VB6 won't manifest executables as Vista+ compatible, they'll get File and Registry Virtualisation applied to them and thus writes to HKLM will be "faked" into HKCU so that only that app will see the change.

  • User profile image
    evildictait​or

    , AndyC wrote

    Just because XP is "supported" by the Windows team (even if in a security-fix only state), it doesn't follow that the developer division should necessarily continue to produce newer tools for it, it is fundamentally a dead platform, the tools needed already exist and nothing is going to change that.

    * We don't have to support Windows XP because it's end-of-lifed

    * Supporting Windows XP is expensive (since we have to test it on more platforms than if we didn't)

    * Supporting Windows XP can reduce the performance of our main product (since conditional execution to do one thing on XP and another on new OSes is slower and testing on Windows XP editions is time that could be spent making improvements on Windows 7 editions)

    * Supporting newer versions of Windows means we can use newer features (such as slim-read-write locks or NTFS transactions) without having to have crusty code for implementing that functionality on older OSes which don't have them built in.

    * There are tools already out there to build executables for XP - so we're not even constraining our customers by stopping Windows XP support in Visual Studio

    * If this helps to nudge our customers, or customers of customers to upgrade to a newer version of Windows, we get more money.

     

    So remind me again why Microsoft would want to ship a product that supports Windows XP?

  • User profile image
    Ted.w

    As one famous game industry developer said recently in my connect bug:

    This is not a sane decision.  Any real-world app developer, armed with this information, will pin their development tools to Visual Studio 2010 for the next five to ten years at least.

    We can't afford to alienate our customers by breaking our product on XP.  So we'll be skipping 2011 until Microsoft figures this one out.                                       

    I suggest you vote on the issue (both pro and con) at both:

    http://connect.microsoft.com/VisualStudio/feedback/details/690617

    and

    http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/2287078-allow-mfc-11-to-run-in-xp-sp3

    Ted.

  • User profile image
    evildictait​or

    , Ted.w wrote

    This is not a sane decision.  Any real-world app developer, armed with this information, will pin their development tools to Visual Studio 2010 for the next five to ten years at least.

    We can't afford to alienate our customers by breaking our product on XP.  So we'll be skipping 2011 until Microsoft figures this one out.                                       

    If you want to play chicken with the Microsoft product cycle, you're going to lose.

    No offence, but the number of developers dev-ing for Windows XP is such a tiny drop in the ocean compared with Win7 developers that Microsoft would prefer to make VS2012 more awesome for Win7 developers than spend time supporting it on WinXP.

  • User profile image
    Ted.w

    What about Windows Embedded Standard 2009 (based on XP SP3) - its lifecycle ends 2019.  "We" decided to freeze them in the past for the rest of their lives. 

  • User profile image
    AndyC

    That's a fairly odd comment from a game developer, given that any product in development now is probably going to have minimum requirements whose hardware exceeds what will be supported by XP anyway.

    As for Windows Embedded, it's a whole different kettle of fish. It has a long support lifecycle because appliances are developed, shipped and then sat out in the wild for a long time before they're replaced. As such they aren't generally subject to the same kind of continous maintenance and app upgrades that a normal application would be.

  • User profile image
    cheong

    This post reminds me of a tech support post I saw yesterday, regarding the user cannot play a game made available in last year.

    In the end, it was found that the user is using a PC bought in 2003, and the display card on it only supports DX7.

    Okay, perheps that means game developers should hold all the game development targeting DX10/11 and keep writing games only for DX7 now then... Tongue Out

    Recent Achievement unlocked: Code Avenger Tier 4/6: You see dead program. A lot!
    Last modified
  • User profile image
    spivonious

    , evildictaitor wrote

    *snip*

    If you want to play chicken with the Microsoft product cycle, you're going to lose.

    No offence, but the number of developers dev-ing for Windows XP is such a tiny drop in the ocean compared with Win7 developers that Microsoft would prefer to make VS2012 more awesome for Win7 developers than spend time supporting it on WinXP.

    Is it? I thought a majority of businesses were still on XP. I know we still are, and I have a hard time finding reasons to upgrade. As long as OEMs still make XP device drivers, we'll be on XP (much to my dismay).

  • User profile image
    evildictait​or

    , spivonious wrote

    Is it? I thought a majority of businesses were still on XP. I know we still are, and I have a hard time finding reasons to upgrade.

    I hate these "mini-factlets" that people keep repeating. Just because something used to be true doesn't mean it still is true, no matter how convenient the factlet happens to be.

    Windows 7 is the biggest user-desktop and has been for several months now. http://www.ubergizmo.com/2011/10/windows-7-surpasses-windows-xps-market-share/

    Ps, if you want a good reason to upgrade, I still think ASLR (http://en.wikipedia.org/wiki/Address_space_layout_randomization) is my favourite (and least well known one). It massively improves the security of your entire system, from the kernel, to the browser, to every app you choose to run on it - and is the reason why almost every single publically released exploit is either a logic-flaw or is targeted at Windows XP.

  • User profile image
    AndyC

    , spivonious wrote

    *snip*

    As long as OEMs still make XP device drivers, we'll be on XP (much to my dismay).

    Last time I was involved in PC purchase contract negotiations, pretty much all the OEMs involved had 2012 as the last year they expected to still provide any XP drivers at all and that was only on low-end, long-term compatibility focused models. It's already quite easy to buy hardware that you'll never find XP drivers for.

  • User profile image
    cheong

    @spivonious:Actually there is a good reason to upgrade. WinXP x64 has much poorer support on driver than Vista/Win7 x64. So you'll want to upgrade if you want to move on to x64.

    Recent Achievement unlocked: Code Avenger Tier 4/6: You see dead program. A lot!
    Last modified
  • User profile image
    spivonious

    , evildictaitor wrote

    *snip*

    I hate these "mini-factlets" that people keep repeating. Just because something used to be true doesn't mean it still is true, no matter how convenient the factlet happens to be.

    Windows 7 is the biggest user-desktop and has been for several months now. http://www.ubergizmo.com/2011/10/windows-7-surpasses-windows-xps-market-share/

    Ps, if you want a good reason to upgrade, I still think ASLR (http://en.wikipedia.org/wiki/Address_space_layout_randomization) is my favourite (and least well known one). It massively improves the security of your entire system, from the kernel, to the browser, to every app you choose to run on it - and is the reason why almost every single publically released exploit is either a logic-flaw or is targeted at Windows XP.

    But that's total market share. I believe that a large majority of consumers have upgraded or purchased new PCs, but a lot of businesses are sticking with XP because there are no compelling reasons to upgrade. Security is better, but our users are locked down and get a fresh VM every login (thin clients connecting to VMware VDI). Thin clients also remove the reliance on driver support.

    Word, Excel, and homegrown VB6 apps don't benefit at all from a move to 64-bit.

    As much as I'd love to be running the latest and greatest, there really is no business case for the upgrade. What I would like is to be able to develop in VS11, but I guess that's not going to happen.

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.