I've got a small app that was built and shipped for Windows Phone 8.0. I need to publish a small update and I'm encountering all sorts of IDE bugs & missing classes/types when upgrading to VS2015/WP8.1 platform.
So, I'd like simply to keep the app at WP 8.0 but:
Question 1: Will this app run on WP 8.1 and Windows 10 phones?
Question 2: Will Microsoft's app store let me publish this update despite target platform being 8.0?
Firstly, Microsoft provides awesome backward compatibility when it comes to running your old OS apps on new devices. As per your question,
Yes, all your apps that were built to target windowsphone 8.0 OS will run successfully with no issues on all latest windows supported MOBILE devices.
I have tested my old Windowsphone 8.0 OS apps on latest windows 10 preview without any issues.
You can easily support your app with new updates based on windowsphone 8.0 OS. You will have no problem submitting your ( .xap ) packages on the new Windows 10 dashboard.
A large portion of windowsphone mobile devices ,the old lumias still don't have windows 10 yet so there is still a market for your apps. You don't have to consider your apps dead just because you belong to an older OS version.
You're encountering these missing types because Windows Phone 8.0 apps are written in Silverlight and Windows Phone 8.1 (on VS 2015) and Windows 10 are Windows Runtime apps. This is a different API, so some types are moved to other namespaces (most likely for small apps) or completely missing.
Your app should still run on WP 8.1/10 devices, although they might not scale perfectly to the newest screen ratios and will miss access to the newest features of these platforms.
For extra help on getting your app packaged and published, check this reply on another SO question.
Related
i have one project that runs on windows 7 machines
Well windows 7 embeded, but that still uses win7 SDK.
Its a combination of windows C# and C++
Under vs2017 i no longer have the option to build to the windows 7 target platform (C++ and c#), the lowest i have is windows 8.1
Trying to install 7 sdk results in all kind of chickken egg problems
Took me 2 days install vs2017 with a working c++ crt, so i hope there is a way to re-add win 7 sdk for vs2017.
Or maybe I wonder is there an option to build 8.1 but not use too advanced futures, as 8.1 and 7 besides the glitter graphics was not such a huge change (ea most win 7 apps run fine on 8.1, and i never saw serious programs who worked only on 8.1) Maybe even 8.1 SDK has some backward compatibility build in?
Okay, I m new to windows development. My task to build a small app which will run ONLY on windows 8.1 tablet. (NO app store, nothing like that)
After lots of research on Microsoft site, I am lost in the plethora of information and completely confused. e.g Microsoft says, surface tablet apps can be developed on windows vista/7. and then they say somewhere else that windows 8.1 apps can only be developed on windows 8.1 (or 8. I forgot) and I would need a developer license.
Questions:
1- is building apps for surface is different than building apps for windows phone?
2- I want to do it in WPF/c#. possible?
3- for an app running on ONLY windows 8.1 Surface tablet, what are hardware and software requirements? (including windows/ VS version etc.)
Learning something new isn't as issue. The issue is if im learning the Right thing which can help me achieve my task.
Please guide
Thanks in advance.
You will need a developer licence to debug locally on a machine.
You cannot install (sideload) apps onto a device that isn't developer registered, for consumer deployment, everything must come signed and through the store. You can override this is business and enterprise version of windows, but afaik this has to be done/deployed at an administrator level.
If you want to develop for windows 8.1, you need to be running 8.1, as deploying and debugging are done on the local machine, then optionally displayed in an emulator-like virtual session, there's no actual 'emulator' for desktop windows runtime apps.
Previously, yes, surface was winRT, and mobile was silverlight based. Now with the shared app platform the process is shared across the two, both are winRT and you can deploy one application across the two.
First you need to know that there are two types of apps for devices like Surface. The first one is desktop applications which are commonly referred as WPF Applications. The second one is Modern application commonly called Metro Apps.
The desktop applications can run windows 7/8.1/10 where as metro apps can only run on windows 8.1/10. If you want to build desktop apps you can build them on windows 7/8.1/10 using visual studio 2010/12/13/15, but if you want to build metro applications you need to build them on 8.1 using VS 2013 for windows 8.1, and for windows 10 you need to use windows 10 and vs 2015.
Your question is a bit confusing. If you want to build applications only for windows 8.1 tablet you need to build a metro app and only way to distribute the app is through the App store.
There are two main versions of Windows 8.1. RTM and rest of the versions(like home, pro etc.). Tablets running windows 8.1 RTM can not run all kinds of desktop apps. They only run metro apps. Hybrid tablets running windows home, pro or enterprise can run both desktop and metro apps.
If I am not mistaken surface pro 3 run windows 8.1 pro and can run both wpf and metro apps.
It depends. If you want to build WPF apps it is different from windows phone apps. If you want to build metro apps, it's not that different from WP Apps.
As I mentioned, surface pro 3 can run desktop apps. So WPF/C# apps are possible.
OS: windows 8.1 and visual studio 2013.
For further clarification, Check out the difference between different version of windows, and also differences between desktop and modern(metro) apps.
Starting points for WPF:
http://www.codeproject.com/Articles/140611/WPF-Tutorial-Beginning
http://www.wpf-tutorial.com/
See Microsoft Developer Network MSDN
Microsoft Channel9 Tutorial Videos
The app is live on the Windows Store and has a 8.0 version. If I re-target to Windows Phone 8.1 and publish with new features, will it be available for Windows Phone 8.0 users?
Most of our users are still on 8.0.
The user (OS/Store) downloads the most suitable package of the app. If user has WP8.1 and your app has a 8.1 package, then this will be installed, otherwise 8.0 app package will be downloaded.
From what you have written, you already have a working WP8.0 version of the app, now if you want to add some new features from 8.1 then, once you retarget the app, you have to add new package to your app when you are updating it. Do not replace the old working 8.0 package. Once you have added new package and it has passed certification, all users that have 8.0 version of your app and 8.1 OS version, will be prompted that there is an update available.
What is important:
you can retarget to both 8.1 Silverlight and Runtime (of course the second option needs some more changes and some things to be rewritten),
IsolatedStorage is preserved,
when you retarget to Runtime, you will have to parse IsoalatedStorageSettings from file in LocalStorage.
I've done similar thing with WP8.0 -> WP8.1 Runtime, I also recommend to test it on beta app, so you will be sure how it works.
If you re-target the app to Windows Phone 8.1, it'll be available to only Windows Phone 8.1 users. If you submit such an app to Store, it'll be displayed only in devices running Windows Phone 8.1.
However, you can submit two packages for same app in Windows Phone Store. So while submitting an update for your app, instead of replacing the existing Windows Phone 8.0 package, you can add another package for the Windows Phone 8.1 version which will have new features. The Windows Phone Store will ensure that it shows the correct XAP to correct OS version. This way, Windows Phone 8.1 users will be able take advantage of the new features, while Windows Phone 8.0 users will still be able to access the old app.
Going forward, if you want to support both OS versions, I'll suggest to keep a copy of Windows Phone 8.0 project before re-targeting to Windows Phone 8.1.
Yes, if you just re-target the project! But make sure you aren't using native WP 8.1 features, as they wouldn't work on WP8.
I am working on VOIP app and build the sip library for Windows Phone 7.1 OS. IT is working fine when i run the project on any Windows 7.5 devices. But when i try to run the same project on WP8 device it not working well. It start giving me various exceptions like Null Pontere Refernce Exception in System.Windows.ni.dll . My understanding was if anything which is running fine in WIndows 7.5 device will work fine in Windows 8 device. Can anyone help what will be the possible reasons?
Here is an MSDN page that could interest you: App platform compatibility for Windows Phone.
In general, the Windows Phone app platform enables apps that target Windows Phone OS 7.1 to run without modification or
recompilation on Windows Phone 8.
[...]
There are other scenarios in which a Windows Phone OS 7.1 app may
behave differently when it runs on Windows Phone 8.
The short story is: I have my laptop that has a processor without Virtualization and Second Level Adress Translation capabilities that are required for running the new Windows Phone 8 SDK.
I can however use the windows phone 7.1 sdk, but for testing my apps i will use a windows phone 8 device.
Is it possible to deploy and test my apps on the connected WP8 device, altough i am using the 7.1 SDK that predates the WP8 os?
I don't think it's possible to deploy apps using WP7.1 SDK on WP8 devices, however, you can install the Visual Studio 2012 + Windows Phone 8 SDK (if you have Windows 8 x64) even when you don't have SLAT enabled CPU. The Windows Phone 8 SDK will work, only you won't be able to launch the WP8 emulator.
No you cannot, The .xap packing mechanism in Windows phone 7.1 and 8 are different so you cannot deploy this xap using deployment tool. But, if we are using windows 8 + wp8 dev tools you can debug the application that developed on 7.1. In future after the launch of wp 7.8 ms may provide a solution for this. for now there is no other alternative is available in front of you