Coded UI Test vs. Microsoft UI Automation library - ui-automation

I want to do UI testing of my complex WPF application. I have come across two libraries for UI Automation:
Coded UI Test
Microsoft UI Automation Library.
I am confused in above two options. Please let me know where should I use which library?
wanted to know prons and cons of both?
Thanks

See What is the difference between using System.Windows.Automation and Microsoft.VisualStudio.TestTools.UITesting for WPF UI Test automation?

Related

Integration of Coded UI

Is it possible to integrate coded UI with any other scripting languages?
Since Coded UI doesn't support many custom controls and third party controls, it would be better if we could integrate coded UI with scripting, like Perl scripting.
There is no official support for Pearl script from microsoft. But you can integrate it with VB script. For your kind information, CodedUI does support all the HTML and WIN custom controls, and partially supports the 3rd party controls like KendoUI, Telerik. You just need to produce the correct properties.. Good luck !!
We have switched to using FlaUI, https://github.com/FlaUI/FlaUI, to handle our Coded UI. We use C# so I'm not sure if it is usable by other languages but it is very helpful.

Using OpenUI5 view layer similar to Twitter Bootstrap on top of other web application frameworks

Hello UI5 enthusiasts,
I was wondering if it is possible to extract the OpenUI5 view layer in a way similar to Twitters Bootstrap.
The reason is that I work at an SAP partner that creates software outside of the SAP stack. We would like to add the UI5 look and feel to our own web applications though, which are build on Angular and Twitter Bootstrap.
The goal would be to let our customers become attuned to the Fiori look and feel and increase the familiarity of our SAP products. Which could eventually lead to more sales on that side.
But for that we would prefer a light-weight solution. I'm not aware of using the openui5 stack like that, because it needs to load the core and manages the application in its own way.
For that it would be great to have the view components isolated to use them on their own.
Is it possible to do that or would it be an option for the UI5 product team to create a Bootstrap like solution as described above?
Kind regards,
Michael
from OpenUI5 side, we have some concerns around this approach as there is quite some overlap between Angular and UI5, especially with regards to data binding and MVC. When using the UI5 controls outside the UI5 context, you cannot leverage the main assets that the UI5 data binding adds (some of them are described here https://openui5.hana.ondemand.com/#docs/guide/91f0ca956f4d1014b6dd926db0e91070.html and others like error handling will come soon with 1.28). Still, I'm not saying the combination of UI5 controls with Angular is not possible at all, maybe someone is trying as it is open source but there is an investment needed to close gaps that OpenUI5 already has solved in an excellent manner. On the other hand, it is quite easy to use bootstrap inside UI5 (not Angular). Might that be an option?
What you can examine as well is http://ui5strap.com/. I personally did not yet find the time to assess the approach but it might be worth for you to have a look.
Best regards
Stefan

building an app to cater for WP7,Iphone & Android

I am about to start building an app that will be used across all platforms. I will using monotouch and monodriod so I can keep things in .net
I'm a little lazy so I want to be able to reuse as much code as possible.
Lets say I want to create an application that stores contact information. e.g. Name & Phone number
My application needs to be able to retrieve data from a web service and also store data locally.
The MVVM pattern looks like the way to go but im not sure my approach below is 100% correct
Is this correct?
A project that contains my models
A project that contains my views,local storage methods and also view models which I bind my views to. In this case there would be 3 different projects based on the 3 os's
A data access layer project that is used for binding to services and local data storage
Any suggestions would be great.
Thanks for your time
Not specifically answering your question, but here are some lazy pointers...
you can definitely reuse a lot of code across all 3 platforms (plus MonoWebOS?!)
reusing the code is pretty easy, but you'll need to maintain separate project files for every library on each platform (this can be a chore)
MVVM certainly works for WP7. It's not quite as well catered for in MonoTouch and MonoDroid
some of the main areas you'll need to code separately for each device are:
UI abstractions - each platform has their own idea of "tabs", "lists", "toasts", etc
network operations - the System.Net capabilities are slightly different on each
file IO
multitasking capabilities
device interaction (e.g. location, making calls etc)
interface abstraction and IoC (Ninject?) could help with all of these
The same unit tests should be able to run all 3 platforms?
Update - I can't believe I just stumbled across my own answer... :) In addition to this answer, you might want to look at MonoCross and MvvmCross - and no doubt plenty of other hybrid platforms on the way:
https://github.com/slodge/MvvmCross
http://monocross.net (MVC Rather then Mvvm)
Jonas Follesoe's cross platform development talk: Has to be the most comprehensive resource out there at the moment. He talks about how best to share code and resources, abstract out much of the UI and UX differences, shows viable reusable usage of MVVM across platforms and nice techniques for putting together an almost automated build. (yes, that includes a way for you to compile you monotouch stuff on Visual Studio)
Best of all he has a available source code for the finished product and for a number of the major component individually placed in its own workshop project and a 50 + page pdf detailing the steps to do so.FlightsNorway on github
IMO the only thing missing is how best to handle local data storage across all platforms. In which case I would direct you to Vici Cool Storage an ORM that can work with WP7, MonoTouch and (while not officially supported) MonoDroid.
*Disclaimer* The site documentation isn't the most updated but the source code is available. (Because documentation is Kriptonite to many a programmer)
I think the easiest way to write the code once and have it work on all three platforms will probably be a web-based application. Check out Untappd for example.
You can start by looking at Robert Kozak's MonoTouch MVVM framework. It's just a start though.
MonoTouch MVVM

How to: Multi screen/regions Silverlight application?

I have to create now a multi-screen Silverlight 4 RIA application with MVVM.
Each of these screens has to be devided in multiple regions (for example master-detail scenario whereas each of them is a different section and one has control on the other).
Can you give me some ideas what should be the right way to implement such an application?
Is Prism the right choice? I started reading the Prism manual and liked very much the idea of having regions and screens switched and controls in a very flexible manner, but, as said above, I find it too overkill to split it all over many assemblies.
If Prism IS the right choice, then I would appreciate any kind of guidance or reference to guidance on this particular scenario (multiple screens & regions and OTOH not getting my solution spotted with a gazillion projects.
I believe that PRISM is the correct choice for building an application with multiple regions and views. You could argue that that is almost the definition of a composite application.
But I would also remember that you don't have to use all the components PRISM has, you can pick and choose. I would recommend that you consider each aspect of PRISM and test/prototype to ensure you are happy with the facilties offered. In a large application I have built I use PRISM but after some prototype investigations I only used EventAggregator and the Modularity capabilities.
I chose not to use the region support as I found working with ItemControl and ContentControl components in Silverlight gave me the ability to inject views and partial views into my interface.
I found experience from ASP.NET MVC proved useful in considering how to coordinate/break up my UI into partial views.
Hope that helps. The Stocktrader application is a great example to learn from (included with the PRISM distributable).

Is MEF about UI? If not, why are all examples about GUI composition?

The MEF team keep saying it is about plug-in model. So, are we talking about UI plugins? How can we use this stuff in non-UI code?
I downloaded the code and the examples are all about GUI. Am I guessing it wrong?
Ilya
MEF is absolutely not only for UI. Nothing about MEF is UI-dependent, which is why it lives in the System.ComponentModel namespace. You can use MEF in desktop apps, web apps, or services.
In terms of samples, thank you for the feedback. We do need better samples that illustrate that it is a non-UI based technology. I think the reason alot of the samples have gravitated around UI is that our chief partners like Visual Studio, are using MEF in desktop apps. I'll talk to the team about some non-UI based samples.
Thanks
Glenn
Ayende sums up MEF rather nicely here:
http://ayende.com/Blog/archive/2008/09/25/the-managed-extensibility-framework.aspx
Also the herding code lads had a great interview with Glenn Block, one of the MS MEF guys:
http://herdingcode.com/?p=28
http://herdingcode.com/?p=31
If you're talking about Microsoft Managed Extensibility Framework then no, it's definitely not just about UI.
By doing something visual in the samples you just make it easier for people to understand the concept. You could not make it clearer that an Tetris game with plug-in blocks.
MEF seems to be more about extending your application's functionality. In our applications we've been looking at MEF for allowing users to use different editions of a rating engine. There's no UI for those modules. It can add UI features, but it's not necessary.
Prism might be worth noticing. MEF can be used to define components that import / export arbitrary contracts while Prism can be used to define UI regions in a decupled UI app.