Automation Solution for both Web and WPF Applications - wpf

I wonder if someone has tackled the following challenge:
Automation Testing of a product which consist of both Web Application and WPF desktop application.
I'm looking for an automation solution which cover both under the same hood and technology.
for example: I thought of: Selenium + MS UI Automation libraries both under the same automation project by using C# and .NET.
is it possible? are there any other solutions for this type of product?
I know QTP might do it, but lack of good browser support - by far not as good as Selenium.
and also lack of solid programming language like JAVA or C#.
appreciate your help on this.

It is definitely possible to use Selenium (C#) with MS UI Automation. There would not be much in common besides code that you write yourself, but personally I think that this approach is a good idea if you are a strong programmer. MS UI Automation is not easy at all. An alternative would be to consider Silk4Net. You could use it for web and WCF, but if you wanted to use Selenium for web and Silk4Net for WCF, that would work. Just the plain ole Silk4Net 'library usuage' license is reasonably priced.

Related

Guide to migrate Silverlight application

We are planning to migrate our Silverlight application which having both business and UI logic to new technology. Is there any standard procedures or tools available for silverlight migration.
We want to move to standard technology like html and supported by all windows/mac/Linux browsers. Please give us any suggestions
There is no straight-forward migration path from Silverlight to any technology, despite probably to WPF to a degree, but as you mentioned that you want to run in the browser, probably the best way today is to use Blazor, which just got its first official release, and Microsoft is heavily investing in it right now.
On top of that, the French company Userware created the OpenSilver platform, which is a Silverlight replacement based on WebAssembly and Blazor, compatible with all major browsers. They even provide professional migration services based on this approach.
There is also rich ecosystem already evolved, with a lot of third-party UI components vendors (like Telerik, DevExpress, Radzen, etc.).
At Mobilize.Net we have a migration tool that converts the client side XAML and C# to TypeScript using Angular, Kendo UI, HTML, and CSS. It supports C# constructs like generics and interfaces.
You can watch a live stream from Twitch here This is an approach most suitable for very large complex SL web apps that would be too time consuming or expensive to rewrite into a pure native approach.

Can I reuse/call existing API in Selenium-Java Framework into the Protractor Framework?

Please bear with me if this is a silly question. But thought of getting an idea.
We have a very sophisticated Selenium Webdriver-Java framework. But now some parts of our application is being implemented in AngularJS. We would like to use protractor for test automation. But we have some API in the existing framework which we would like to reuse. Is there a possibility to do so or do we need to re-write all the existing API in protractor?
Thanks
Not probably the answer you are looking for. But, this can give you some hope.
Unfortunately there is no protractor java port at this moment. I use Selenium C# and my project started using some Angular recently. And, fortunately, there is a Protractor-net project done by some great people to accomplish same thing you are struggling with. I must say, if your project is big enough to leverage some time to write a java port for protractor you can follow this project easily. It's not that extensive. I am personally using it and started writing about this on my blog
Some one is trying to develop jProtractor - An angular/protractor implementation for Java Selenium API. https://github.com/caarlos0/jProtractor
This is still under development(not in a position to use yet), but this could be the right tool for people who are in similar situation as me.

Possible to embed WinForms into a VCL Delphi application?

We have a VCL Delphi 2005 application, and would like to use DevExpress's XtraReports components, which is for .NET. Is it possible to use it without converting the VCL Delphi application?
Perhaps by converting the components as COM objects, or creating a WinForms application, and somehow embed the form into a VCL form?
Doesn't sound too easy, but just want to know what possible solutions are available.
Yes, its possible. You need to host the CLR from your Delphi app to do it.
There are some examples on MSDN on how to do this (the examples are using C++ though, so you would need to translate)
Or you could use the Jedi jclClrHost unit from the JEDI site. (see this question for some details)
Robo, you can use the RemObjects Hydra 3.0 components, to integrate Delphi and .Net technologies using plugins.
This is a bad idea. Yes you can do this. No you should not.
First look at Developer Express "Express Printing System", and Fast Reports. The first is a document/component print solution, the best one out there, and the latter is the best database reporting component set out there, which also handles non-database (code-based) reporting/printing with great flexibility and style.
I have first-hand experience using Express Printing System to print spreadsheet documents that are based on Developer Express Spreadsheet component, and the combination is very powerful, and easy to use. Both Developer Express and Fast Reports have very active development, and good technical support.

Why would a developer use Silverlight?

I know virtually nothing about Silverlight. I'm considering creating a browser based app and really don't know if it should be built using Silverlight or ASP.NET (which I am familiar with). I'm curious as to the reasons why a developer chooses to use Silverlight.
Thanks very much.
ASP.NET and Silverlight aren't comparable.
Silverlight is a client-side framework, comparable (perhaps) only to Adobe's Flash while ASP.NET is a server-side framework.
You use those in conjuction, not one instead of the other and they're not connected in any way.
There are a few reasons you may want to consider using Silverlight:
You have a need for great looking and
interactive web applications (that
are not Ajax, jQuery, etc.).
You want to utilize your current
programming language (VB.NET, C#,
etc) skills.
You want your "web app" to be
available out-of-the browser.
There are other reasons - have a read: Top 10 Reasons to Use Silverlight. There can be a signifcant ramp you would need to make, but once made, you may prefer SL for certain things over ASP.NET and even in some cases, not really have option available to you in ASP.NET, like, for example, perspective transforms of images that can be animated from user interactively.
If you are building something that requires lots of UI interaction, and is reasonably non-static with its presentation then i would suggest Silverlight.
If you are doing (relatively) simple UI (i.e. tabular based presentation of data like clients and orders) with not too much UI trickery then i would suggest that you stick with ASP.NET.
Having done both, i find that Silverlight kicks butt when it comes to doing complex UI stuff, or you need to eliminate callbacks and postbacks to the server.
Reuse .NET code and skill on the client browser.
Achieve high performance.
Use Silverlight if you want a flash type site without using Flash. If you want to use the .NET stack Silverlight is the way to go to do what flash can do.
Silverlight was originally known as WPF/E. It is a light version of Windows Presentation Foundation, designed for the web and embedded devices.
But yes, you can think of it as Microsoft Flash.
You could also try using web standards also, sprinkled with some Jquery and Ajax, with maybe Modernizr to use html5. What do you need to do with this exactly?
Because it's the only option for third party software development on the upcoming Windows Phone 7 platform. (OK, also XNA, but that's for games)
Oh, and they also use it on the Web for some reason.

What are the topics to ramp-up on when starting Silverlight\Web development?

I've been asked to do some work on an existing Silverlight project, mainly extending it a bit and doing bug fixes as needed. But there are a couple of ASP.Net pages too and a WCF service to deal with too. My background is desktop development with .Net so I think this is a good opportunity to start getting more involved in Web development.
So I'm trying to figure out what background knowledge I need for a project like this. Clearly I need to get familiar with Silverlight, but I'm not sure what other Web technologies, etc I need to ramp up on for this project. Obviously I would like to know as much as possible but in reality with limited time and resources I really need to focus on what I important in the near term for this project. Then expand my knowledge as things arise.
The things I'm thinking that are important in the immediate future are:
The basics of Web Development (I'm thinking this might be the most important\fundamental area to build a good foundation)
But what are consided the basics?
What is technology\language independent?
What is important for Silverlight?
The basics of ASP.Net (since there is some ASP.Net code)
What are the basics? ASP.net seems so huge, I have a 1000+ pg book here which seems daunting.
If you focus on Silverlight is knowing ASP.Net important, or is ASP.Net something I will continually run into?
How does ASP.Net MVC fit into the overall development picture and especially as related to Silverlight?
The basics of WCF
As compared what?
Any suggestions\comments on the list above?
What other topics\technologies will I run into if I continue doing Web development?
Note: Beyond this project I would focus on the Microsoft stack.
Generally speaking the amount of knowledge of ASP.Net you need to do Silverlight development is very very low.
Silverlight applications are hosted in a browser, usually via the <object> tag. This can sit on an asp.net page or a html page. The Silverlight template creates that for you, so you can forget its there and just get on with the Silverlight app.
Of course if you are integrating into an ASP.net environment (for example, islands of Silverlight sprinkled through an ASP.net site) then thats another thing. There are ways to get Silverlight talking to the HTML dom via the HTML Bridge but its not necessary. Really depends on what you are developing and integrating with. (new site vs existing)
I avoided ASP.net for as much as i could as the richness compared to desktop (WPF) just wasnt there. Silverlight changed all that. Its a Rich world on the web now!
Best place to start learning Silverlight is www.silverlight.net on the getting started part of the site. great Quickstarts and tutorials there.
Good luck
Only cursory knowledge of traditional web technologies (css, html, js, etc.) are necessary for silverlight development. As a consequence, you also don't need to understand the many cross-browser dependencies as well.
Here is my list of things that you must get a really good understanding of to be proficient at Silverlight development:
Understanding WCF (the Silverlight-supported parts) is essential. It can be a configration nightmare, but once working it is pretty stable/ reliable
You need to understand serialization used by WCF and how to debug the mysterious 404 errors. Get good at Fiddler and/or Firebug.
You must understand multi-threaded applications and how do debug them. Silverlight makes extensive use of threading to not block the UI thread. This creates numerous opportunities for race conditions that create what appear to be "magical" results. That said, it is incredibly powerful and IMHO one of the dominant reasons to use Silverlight.
What you learn about serialization and WCF will ultimately help you cache some data in IsolatedStorage. Learn about IsoStorage, it will reduce our bandwidth requirements and cost and improve your user experience
Learn about Linq - again this is one of the most powerful features of Silverlight. Combined with a smart client-side caching strategy you can offload lots of processing to the client.
Figure out how you going to support printing. SL3 does not at all and you will need a server side component. SL4 beta does, but it is not go live
Understand the Silverlight Roadmap as much as possible and plan out your roadmap to match/ sync with it as best as possible. I first built a SL2 app and I spent a lot of time building things by hand that were ultimately released in SL3. As it is getting more mature, there is less of this.
Download the Silverlight Toolkit and use it. But more importantly examine the source code, the structures, its build process. There is not better real world place to look for inspiration & best practices.
Good luck.

Resources