I am trying to automated testing of windows apps using coded-ui-test project using vs2013 ultimate edition.
I can see those templates for C# desktop applications under test category and for phone application under windows phone category.
I cannot see such template for Windows Universal Apps.
How to automate universal apps?
If I choose the coded ui template available under category Store Apps -> Coded UI Test Project (Windows)
After project creation, recorder gives me a message "recording action steps is not supported for windows store apps"
I don't believe there is a CodedUI Test project for UWP. Since you're coding UI tests, you're test project should be targeting a specific device platform. There's CodedUI templates for Windows, and also Windows Phone. I would make two different CodeUI tests (one for Phone, one for Desktop), to make sure everything is working on either platform.
For testing common functionality, you can use unit tests.
Microsoft has not yet released support for recording step definitions for mobile or universal Windows apps. The recorder is there mainly to observe UI elements and to auto-generate code and assertions on elements that have been identified with automation ID's or point references which most of us wish to avoid. This is something I am currently dealing with an I'll update this question if and when I find solutions unless someone else beats me to it, which would be welcomed.
Related
I have a Windows 8.1 C# project for windows store ready.
I want to make a copy of it for Windows Phone 8.
Is there any good and easy way to do this?
I use Visual Studio Ultimate (2012 and 2013).
There's no simple/automatic way to do it, but the code will be mostly compatible. The UI will probably need to be adjusted significantly.
If you target Windows Phone 8.1 WinRT you will find more of the code will work (Windows Phone 8.0 does not support WinRT, which is what Windows Store 8.1 apps use).
A possibly better way would be to create a new Universal Windows 8.1 WinRT project and copy your existing project code in, placing as much as possible in the shared project (or in class libraries), then create a new UI for the phone version (you can keep most of the actual code behind in the shared project - see my blog post here: http://grogansoft.com/blog/?p=760 - to minimise duplication. Note that this must target WP8.1, not 8.0.
If you absolutely must target WP8.0 then you may have no better option than to just copy in the code and adjust it where necessary. This will be relatively easy for a simple app, but relatively messy for a complex app that happens to use APIs that don't match up.
Well, they are different platforms, so you'll still have to adjust your code for that, but maybe converting your portable code to a portable class library will help you:
http://msdn.microsoft.com/en-us/library/vstudio/gg597391(v=vs.110).aspx
I want to create an app that runs in desktop mode when installing in Windows 7 and runs in metro mode when installing in Windows 8 (like google chrome).
I have Visual Studio 2013 and I can create apps than run in desktop mode or metro mode, but not both modes
In any case, thanks
Unfortunately that is not possible by designing one application. You need to create two different application and through the setup, understand which version the operating system has and install the corresponding version. Although you can take advantage of Portable Libraries (See Cross-Platform Development with the .NET Framework) to write most of your codes and then write the UI separately for each environment. The easiest way might be to design your application based on MVVM and then almost you need to write your Views twice one for Metro style and one for WPF application although the codes would be quite similar.
I know I need a mac to deploy but can I at least use my PC to develop the application? It would really help me a lot if I can develop on Windows where I can focus on writing the app.
This answer covers only Xamarin 2.0. Unfortunately I don't know MonoTouch.
Take a look at this statement about Xamarin 2.0:
Xamarin 2.0 bundles the company's Android, iOS and Mac development
tools in a single affordable package aimed at all tiers of developers.
The free Starter edition includes the Xamarin Studio IDE enables
developers to create Android, iOS and Mac apps using C#. However, the
free edition doesn't allow developers to exceed 32k of compiled IL
code and it cannot import or call upon any third-party libraries. The
$299 Indie edition removes this restriction. Things start getting
really interesting for .NET developers with Xamarin Studio's $999
Business edition. This version adds the ability to code iOS
applications within Visual Studio. Yes, you read correctly — code
iOS applications in Visual Studio! Granted, you still need a Mac to
compile and deploy the application to iOS devices (more on that
later), but the fact that you can use a familiar IDE to develop iOS
applications is a game changer.
To make it short: Yes you will need a mac to deploy your application and
yes you can develop on windows using Visual Studio.
Source: http://www.drdobbs.com/tools/xamarin-20-review/240150634
No you don't need the 1 k version to compile on windows. When you want to deploy your app you need to buy it! If u are making a app for windows 8 or whatever you dont need to pay. Monogame is a open source project. For the deployment to the phones your paying to the xamarin project.
"This means that your Xamarin iOS for Visual Studio installation requires a networked Mac OS-X computer to perform these tasks for you. Once configured, Xamarin’s tools will make the process as seamless as possible, but the fact remains that a Mac is required in addition to the Windows computer running Visual Studio."
So still need to hook up my mac and perform all the installations and configurations. Will take time but not a deal breaker I guess.
It is possible to use cloud build services for such a task. One such service worth giving a try is http://ship.io - they offer a free plan to get started.
Usually it is recommended to have two projects for both wp7 and wp8 platforms. Wp7 project contains .cs and .xaml files, and WP8 project contains links to that files.
I think that there is no reason to compile non-platform specific business logic code twice, since it can be referenced to WP8 project.
I'm thinking about following solution structure:
Business logic dll compiled for wp7 (not a PCL)
UI comliled for wp8
UI comliled for wp7
Such application can be compiled and I can deploy it to device/emulator.
The question is: will this app pass certification in Windows phone store? Or it is necessary to recompile shared dll?
UPD:
My crazy idea was born after this steps:
Create new WP7 app (WindowsPhoneApplication1)
Create class library targeted to WP7 (WindowsPhoneClassLibrary1) Use it in WindowsPhoneApplication1
Use Upgrade to WP8 menu. WindowsPhoneApplication1 will be updated to WP8, but the referenced project will be still targeted to WP7!
Such app can be deployed to WP8 devices.
Unless you use a Portable Class Library, you'll need to have separate project files, and compile separately for WP7 and WP8.
Thanks to Claus,
I made some research, and it looks like the answer is - you can use such solution.
I didn't find related information in documentation, but here is a proof from one of MSFT tech. evangelists from Netherlands: link to blogpost
The basic idea is to move all our code that can be used from both our existing Windows Phone 7 app as well as the Windows Phone 8 build, which we will add soon, to a Common project in the solution. The bad thing about this approach is that we have to create the Common project as a Windows Phone 7 class library, which will be used in our Windows Phone 8 build. I haven’t really noticed any negative impact of this decision in my existing apps, but note that you will be referencing a Windows Phone 7 library in your Windows Phone 8 build.
So it is a possible, but not the best solution.
Can anyone guide me, how can i create a metro app using Microsoft Visual Studio 2010.?
What are the templates needed to Create Metro Apps.
Updated :
If there are some third party libraries available, please let me know.
Metro development is purposed to be done in Windows 8 and Visual Studio 20212 environment. You can use Diskpart (Windows 7 command tool) together with Windows Automated Installation Kit to install a Windows 8 instance in parallel with your current system.
You need
1 ISO; http://www.microsoft.com/sv-se/download/details.aspx?id=5753
2 Automated Inst Kit: http://www.microsoft.com/sv-se/download/details.aspx?id=5753
3 About one-two hours (depends on your count on visual studio setup).
The result will be a file on your disk which is about 50-60GB. The bootloader will, after complete setup, give you both current Windows version and Windows 8 as option.
Perhaps you don't want to spend time on setup, so this may not be the answer you want to see. Which I fully understand. Though, there are several experience benefits using a complete Windows 8 environment. I can type a more detail on that, if requested.
Diskpart can be used like this,
create vdisk file=c:\VHD\Win8.vhd maximum=60000 type=expandable
select vdisk file=c:\VHD\Win8.vhd
attach vdisk
create partition primary
assign letter=v
After that, you can see the actual file which hold space for your virtual disk. In the source folder of the unpacked ISO file, you can find install.wim. That file will be used together with the next command based tool Automated Installation Toolkit.
imagex /info i:\sources\intall.wim
imagex /apply i:\sources\install.wim 1 v:\
Which will instantiate a silent installation from unpacked ISO to the boot disk.
Lastly the virtual boot file should be added as an optional bootup
C:\Windows\System32\bcdboot v:\Windows
From reboot and that you select Windows 8, the installation of Windows 8 will continue from the Metro design. Though after you type the product key. The best part of this, is that while in Windows 8, you still have full access to your current Windows drive.
Please note! This is a brief explanation of a process that make a Windows 8 installation without affect the current Windows, except take a lot of disk space.
You can't create Metro style apps directly in Visual Studio 2010 without using third party libraries e.g. DevComponents . Please do remember that it will be a winforms application which looks like metro style app.
For a real metro style app you have to use Visual Studio 2012 on Windows 8
Metro applications can only be developed on Visual Studio 2012.