<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Say what? Microsoft Malaysia One ISV Technology Blog : screen scraping</title><link>http://blogs.msdn.com/fai/archive/tags/screen+scraping/default.aspx</link><description>Tags: screen scraping</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>I want sexy applications, at least my customers are demanding it</title><link>http://blogs.msdn.com/fai/archive/2008/04/03/i-want-sexy-applications-at-least-my-customers-are-demanding-it.aspx</link><pubDate>Thu, 03 Apr 2008 09:29:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8353163</guid><dc:creator>hoongfai</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/fai/comments/8353163.aspx</comments><wfw:commentRss>http://blogs.msdn.com/fai/commentrss.aspx?PostID=8353163</wfw:commentRss><description>&lt;p&gt;Often in my role, I hear many of my ISV partners lamenting the fact that their customers think and feel that the UI of their application is less than appealing, or shall I quote their customers who said "Your UI sucks!". But I also hear of ISVs who have no concern whatsoever with their UI design, because "it works", and if it ain't broken (at least when it comes to the functionality) why fix it.&lt;br&gt;&lt;/p&gt; &lt;p&gt;However in this blog post I'm going to talk about the former. You want to light up your application and you know that Microsoft has a myriad of technology that assists both the designers and developers to achieve the "sexed" up effect applied to your application. You name it; WPF, Silverlight, ASP.NET, ASP.NET AJAX control, etc. So you may think, what's the big deal, just develop your WPF application if you intended to develop a smart client or a thick client, Silverlight web app, or a combination of ASP.NET and ASP.NET AJAX to deliver a rich interactive application (RIA). &lt;/p&gt; &lt;p&gt;I'm going to address a scenario where it is not a viable option due to many factors. Let me count some reasons why you may be shouting out for help to address your issues. As an ISV, you have made significant investment in your existing solution/application. R&amp;amp;D and marketing efforts count as those investment you had made. You would be leaning towards a win-win situation; satiating your customers' demand for a sexy application, while not disrupting your R&amp;amp;D investment. You're looking for an approach that gradually migrates your application to use one of these new technology, at the least.&lt;/p&gt; &lt;p&gt;Allow me to delve further into some of the approaches that I think may be useful. &lt;/p&gt; &lt;p&gt;1. Develop a new "skin" that contains all the bells and whistles, eye candies in a WPF application. The code-behind then invokes your existing functionality by means of invoking a well-defined API, or consume the services exposed as a WCF client.&lt;/p&gt; &lt;p&gt;2. Develop a new sexy "skin" using WPF. Every mouse and keyboard interaction with this new "skin" results in underlying calls to the UI of your target application. In other words, you want to have a programming interface to &lt;a href="http://msdn2.microsoft.com/en-us/library/ms752090.aspx" target="_blank"&gt;invoke the UI elements&lt;/a&gt; in your target application. I introduce you to the UI automation API, which in my opinion it was developed to provide accessibility of your application to assistive technology such as screen readers and other software to assist those who require it. Another very important usage of the UI automation API is to develop &lt;a href="http://msdn2.microsoft.com/en-us/library/aa348551.aspx" target="_blank"&gt;automated testing&lt;/a&gt; tools for Windows-based clients, functional testing, an automated UI test robot, whatever you want to call it. It's interesting that by studying these sample applications, such as the &lt;a href="http://msdn2.microsoft.com/en-us/library/ms771275.aspx" target="_blank"&gt;Test Script Generator sample&lt;/a&gt;, you learn how to use the UI automation API to suit your needs. In fact what's that available in Visual Studio Team System Test Edition is an automated testing functionality. Yes some of my ISVs do crave for such a feature, not so much for automated functional testing for Windows-based applications (after all a QA person could easily do that) but for regression testing. I will leave the discussion around this topic for a later blog post. &lt;/p&gt; &lt;p&gt;3. Remember those good ol' host terminals, the green terminals, 3270 mainframe, yes, I bet this brings up feeling of nostalgia for some. You would then rely to use some screen scraping technology for host integration. It may be the quickest way to integrate to legacy systems. I know one such ISV who has a product for that, a &lt;a href="http://www.zephyrcorp.com/net-screen-scraping-technology.htm" target="_blank"&gt;.NET Screen Scraping Technology for Host Integration.&lt;/a&gt; Terminal emulation techniques can be used to perform the &lt;a href="http://www.microsoft.com/technet/archive/interopmigration/network/integrat.mspx?mfr=true" target="_blank"&gt;integration between Windows-based Client/Server Systems with Legacy Hosts in the Enterprise&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;4. Interop! I love the interop story. Think about sharing the screen real estate among different UI frameworks in Win32, WinForms, and WPF. There are some limitations of course, and &lt;a href="http://msdn2.microsoft.com/en-us/library/aa970688.aspx" target="_blank"&gt;this article&lt;/a&gt; on MSDN2 explains it best. There's a &lt;a href="http://msdn2.microsoft.com/en-us/library/aa970061.aspx" target="_blank"&gt;tutorial&lt;/a&gt; that teaches you how to create a WPF client that hosts Win32 content. &lt;/p&gt; &lt;p&gt;Whatever you choose, I suggest that you really plan this effort well. You begin your application "beautification" project with good UI design in mind, NOT as an after-thought. You wouldn't really want to end up with a Frankenstein! Yes if you simply build a new UI by assembling UI of many different frameworks, you end up with a "frankenapp"! Do not limit your ideas for a good UI. Think out-of-the-box, think 360 degrees, think the impossible. This is your &lt;a href="http://www.cookingwithxaml.com/meals/financials/default.html" target="_blank"&gt;food&lt;/a&gt; for thoughts.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8353163" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/fai/archive/tags/UI+automation/default.aspx">UI automation</category><category domain="http://blogs.msdn.com/fai/archive/tags/screen+scraping/default.aspx">screen scraping</category></item></channel></rss>