I have a couple quick questions about Windows Phone applications. How does one know the type of Windows Phone application? For example, is the WP email client XAML or Silverlight?
The reason I am asking is that I have been assigned the task of writing some automated testing scripts for an already developed application (or WP core app) and I'm not sure which automated scripting method to use (CodedUI vs VSTO Test UI). It's my understanding that CodedUI only works for XAML based applications.
Thanks!
From just looking at the app I don't think there is anyway to tell. However, whether it is SilverLight or new Store App (appx) they both support XAML. If you have the source code you can load it in Visual Studio. After the project name you will see:
Windows Phone 8.1 Silverlight
Windows Phone 8.1
The second one is the newer Store App possibly a Universal App.
If you need to know if it is xaml then certianly asking the developer will be the easiest option. I assume they are both XAML no matter what as I am not aware that WinJS is supported for phone.
One other option that could help you get to what you need to know is if you have the executables. Silverlight will be an XAP file extension and the new Store App will be have an APPX file extension.
Good luck & Have fun,
Tom
Related
I have a Windows phone 8.1 Silverlight application.
Now I need to make it run also on windows 10 phones and tablets. I checked and the app is available on windows 10 phones, even if deployed for windows 8.1 but it seems like I can't install it on windows 10 tablets.
My question is pretty simple:
Is there a "fast way" for converting the 8.1 project to UWP?
Can I deploy my app for tablets without re-writing all the code?
Thanks all
This question is oddly similar to one that I answered just yesterday. It's not really a duplicate so I will restate the answer here along with a link to the other question (1)
Unfortunately there is no easy and fully automated way to port your Silverlight app to UWP mostly because the API footprint has changed and updated between the 2 platforms. There are a lot of similarities but also a lot of breaking changes that require some manual changes.
here is Microsoft's guidance for this particular upgrade path.
From the article above:
Note This guide is designed to help you port your Windows Phone Silverlight app to Windows 10 manually. In addition to using the information in this guide to port your app, you can try the developer preview of Mobilize.NET's Silverlight Bridge to help automate the porting process. This tool analyzes your app's source code and converts references to Windows Phone Silverlight controls and APIs to their UWP counterparts. Because this tool is still in developer preview, it does not yet handle all conversion scenarios. However, most developers should be able to save some time and effort by starting with this tool. To try the developer preview, visit Mobilize.NET's website.
[1] Can a Silverlight out-of-browser app be converted to Universal Windows Platform (UWP) app?
I have two simple questions since I'm very new to Windows Phone programming:
1:
How do I cange the root frame, or show a different Page on startup, in a Windows Phone 8.1 Silverlight application? I have a LoginPage and then I want to check if the user is logged in show MainPage as root frame and if the user is not logged in show the LoginPage.
2:
Windows Phone Silverlight applications seems so different to me compared to the Windows Phone WinRT applications, or maybe I'm just not experienced enough. For example I can't put a placeholder/hint text in a textBox in Silverlight but it's super easy in WinRT, why is it like that? Isn't that something very basic that many IDE's implements? Or have I missed something mayor when I'm developing a Silverlight application for Windows Phone?
I know that Windows Phone WinRT is used to create universal apps and Silverlight is used to create only mobile apps for Windows Phone, but why is developing a mobile app in Silverlight so much different (at least to me) compared to build a Windows Phone app i WinRT?
For your first question, use the UriMapper.
The basic principle is that you check if the user is logged in or not and based on that, navigate to the correct view.
The code is not all that complicated, there is a very good tutorial up on Shawn Kendrot his blog here...
For question 2, how to add some sort of hint/watermark can be done in several different ways.
But a very simple version is presented on MSDN here... it uses events to set and clear the watermark.
Point 1
You have to go to Package.appxmanifest and under the tab called Application the second field contains the startup page name. Currently it should be MainPage.xaml, just change it to LoginPage.xaml.
Point 2
I don't quite understand your question. Silverlight and Windows Runtime are two different platforms, they have in fact many different libraries. The goal of Windows Runtime is to run the same application on several different devices, so different hardware requirements and different resolutions. It was a need to organize the environment differently and of course Microsoft added some minor changes such as the hint text (e.g.).
What is so different to you? I did the porting of an app from SL to WinRT but it's not difficult nor tricky at all.
I have a Windows Phone 8.1 Silverlight application which is in the store now. Since i see that Microsoft is moving all the attention towards WINRT and Universal Apps, i suspect that there will be limited or no support for Silverlight Apps in Windows 10.
There might be a tablet project that i might roll out for the same project in the future. So i am in the dilemma to convert the Silveright projects in my solution to WINRT or convert them into Universal Apps.Also, i hear that converting to Universal projects are pretty hard as well.And I understand that the bulk of the work will be in porting the UI to Hub Style UI.
Any ideas? Comments on the best approach to take here.
A WinRT app is a Windows only app (not for Phone). Other than that, WinRT and Universal apps are quite similar. They have the same namespaces, classes, controls... almost everything. You can use many WinRT libraries in Universal apps without any problem. And so, porting to them is generally the same, too.
Windows Store and Windows Phone apps generally need different UI anyway, so you would have to work on that, no matter what you do.
One difference is that a WinRT app would work on Windows 8.0 and up, and a Universal app would require Windows 8.1 (or WP 8.1 for phones). Actually, a Windows 8.1 app IS a Universal app. Just like a Windows Phone 8.1 app (not the Silverlight variation) is a Universal app.
I'd recommend porting to a Universal app as you would get used to working with these apps, and they work on both platforms (Windows and Phone). For any future project, that's the way to go.
In the company I work for, we switched to Universal apps a few months ago. Figuring out what UI we would use on both platforms and how to do it properly, as well as porting our existing libraries did take some time (not too much), but now making a new app and supporting both platforms is very easy. So, for me, that's the way to go.
It is quite unlikely that Microsoft will stop supporting Silverlight Apps in the Windows 10 version for phones. Even WP8.1 still supports XNA Games from the WP7.0 era.
Depending on the APIs you are using in your libraries the majority of changes when converting from Silverlight to WinRT will be on the UI side, e.g. if your Silverlight App already uses the LocalStorage-APIs instead of the IsolatedStorage-APIs that won't even have to be changed.
My advice would be the following:
evaluate wether all functionality you need is supported in Universal Apps (some functionality is currently only available in Silverlight Apps)
evaluate wether the actual APIs you are using are supported in Universal Apps or need to be replaced (IsolatedStorage => LocalStorage, etc.)
Armed with that knowledge I'd guess you will be able to better plan on when to port your App to the new APIs. If a tablet version is likely in the future and all required APIs are supported in the Universal App Model porting sooner will likely require less effort than porting later.
I begin to use windows phone 8.1 SDK but there are some strange things i don't understand, one of this complicated things why there are different frameworks Silverlight and the default xaml, also what is the difference between them and when i use this or this ?
One huge difference is of course that the Store Apps supports Universal Apps, where you can easily share almost all all of the code across WP8.1 and Windows 8.1 (including XAML).
But it is Worth noting that there are several features which some apps might require which is only available for WP8.1 Silverlight apps, such as:
VoIP support
Act as Lock screen background provider
Act as a Lens app
Let app extend search results using search extras
Provide ringtones
And a few other listed here along with a feature mapping from WP8 to WP8.1 Silverlight and Store Apps: http://msdn.microsoft.com/en-us/library/windowsphone/develop/dn642486(v=vs.105).aspx
If you are starting a new app and will not need any of these features a Store app is probably the better choice though.
If I understand your question correctly, let me put some sentences from MSDN...
why there are different frameworks Silverlight and the default xaml,
also what is the difference between them and when i use this or this ?
In Visual Studio 2013 Microsoft has come up with an approach where you can build Apps for
Phone as well as for Desktop and tabs simultaneously. A unique concept of Universal Apps.
Build an app for Windows 8.1 and Windows Phone 8.1 at the same time,
and share code, user controls, styles, strings and other assets between them
So if you are going to develop an Apps targeting both the platform, then Universal apps concept is good.
But if you are targeting only the new features of Windows Phone 8.1 then you should start with Silverlight "Blank App (Windows Phone Silverlight)"
As in MSDN its clearly mentioned.
The names of some templates have (Windows Phone Silverlight) appended
to the end. Consider using these templates if you've previously developed
for Windows Phone 8 and just want to access some of the new features available
to Windows Phone apps without having to significantly modify your existing
code. You can use these templates to create apps only for Windows Phone 8.1
More details MSDN Link
Windows Phone Silverlight is Windows Phone 8 deployments where obviously the WP 8.1 is deployment for WP 8.1
The main difference is that the WP 8.1 can use the cross platform DLLs where as WP 8 can not. There are many other framework differences but this is a huge one.
What is the best way to write for iPhone, Android and Windows phone ? If I'm writing in C# and using Xamarin will my app run on the windows phone as well ?
You can share any code written with the BCLs that are included with Xamarin (or any library built on top of those).
You will then need to write a custom Windows Phone application that uses those libraries. It is easiest to think of this as the "UI" of your application. You cannot share UI code between iOS, Android, and Windows Phone.
The MWC app is probably the best example of how to architect a solution that spans the 3 platforms.