<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-30070315</id><updated>2011-04-21T10:45:13.585-07:00</updated><category term='cairngorm IResponder async flexunit'/><category term='Flex WebService debugging'/><category term='Flex Logging'/><category term='cairngorm webservice'/><title type='text'>Flex blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://flexapps.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30070315/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://flexapps.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Vishnu Varadaraj</name><uri>http://www.blogger.com/profile/03021388439150345778</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/_m-NekkJrpY4/SwF8QrKDk-I/AAAAAAAAC5s/4W1jq3TEv5E/S220/n701795483_470.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-30070315.post-346057647589686854</id><published>2007-03-21T18:18:00.001-07:00</published><updated>2007-03-21T19:58:36.145-07:00</updated><title type='text'>Web 3.0</title><content type='html'>&lt;p&gt;Web 3.0 is already here.&lt;/p&gt; &lt;p&gt;It is Flash/Flex/WPFe.&lt;/p&gt; &lt;p&gt;AJAX is good for certain applications, but it doesn't have the horsepower to provide the next generation user experience to web users.&lt;/p&gt; &lt;p&gt;Development experience - You do not have to practice voodoo to write cross browser UI anymore.&lt;/p&gt; &lt;p&gt;Customers - You don't have to be scared to click that link because you never know which link will take the server roundtrip.&lt;/p&gt; &lt;p&gt;The main reason Flash doesn't get acceptance is because of ActionScript, it would have been an entirely different story if it was support javascript. You can't blame developers for not wanting to learn yet another language ECMA or not.&lt;/p&gt; &lt;p&gt;The main issue with WPF/e so far is it's unsuitable to create application like Flex is.&lt;/p&gt; &lt;p&gt;Let us wait and see whether Adobe or Microsoft executes best this vision!&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:f248b9a8-deaf-4774-ab79-e31f3be02bc6" contenteditable="false" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati tags: &lt;a href="http://technorati.com/tags/web3.0%20flex%20wpfe%20ajax" rel="tag"&gt;web3.0 flex wpfe ajax&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30070315-346057647589686854?l=flexapps.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flexapps.blogspot.com/feeds/346057647589686854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30070315&amp;postID=346057647589686854' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30070315/posts/default/346057647589686854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30070315/posts/default/346057647589686854'/><link rel='alternate' type='text/html' href='http://flexapps.blogspot.com/2007/03/web-30.html' title='Web 3.0'/><author><name>Vishnu Varadaraj</name><uri>http://www.blogger.com/profile/03021388439150345778</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/_m-NekkJrpY4/SwF8QrKDk-I/AAAAAAAAC5s/4W1jq3TEv5E/S220/n701795483_470.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30070315.post-193086813881686366</id><published>2006-11-19T10:52:00.000-08:00</published><updated>2006-11-19T13:28:55.986-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex Logging'/><title type='text'>Tracing and logging in Flex</title><content type='html'>This is another area which is pretty simple and powerful, but still many end up writing their own version.&lt;br /&gt;&lt;br /&gt;All you have to do is define a new logging target or use the existing 'TraceTarget' to direct logging statements to it.&lt;br /&gt;&lt;br /&gt;var traceTarget:ILoggingTarget = new LogViewerTarget(debugBox);&lt;br /&gt;traceTarget.filters = ["com.adobe.*"];&lt;br /&gt;traceTarget.level = LogEventLevel.DEBUG;&lt;br /&gt;Log.addTarget(traceTarget);&lt;br /&gt;&lt;br /&gt;Then, to log use one of the methods in the logger class:&lt;br /&gt;&lt;br /&gt;private var logger : ILogger = Log.getLogger("com.adobe.SomeClass");&lt;br /&gt;&lt;br /&gt;The logging target class looks like, pass the textarea in constructor if you wish to view the log during development:&lt;br /&gt;&lt;br /&gt;use namespace mx_internal;&lt;br /&gt;...&lt;br /&gt;public class LogViewerTarget extends LineFormattedTarget&lt;br /&gt;{&lt;br /&gt;....&lt;br /&gt;public function LogViewerTarget() { super(); }&lt;br /&gt;&lt;br /&gt;override mx_internal function internalLog(message:String):void&lt;br /&gt;{ this.logs.text += message + "\n"; }&lt;br /&gt;}&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30070315-193086813881686366?l=flexapps.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flexapps.blogspot.com/feeds/193086813881686366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30070315&amp;postID=193086813881686366' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30070315/posts/default/193086813881686366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30070315/posts/default/193086813881686366'/><link rel='alternate' type='text/html' href='http://flexapps.blogspot.com/2006/11/tracing-and-logging-in-flex.html' title='Tracing and logging in Flex'/><author><name>Vishnu Varadaraj</name><uri>http://www.blogger.com/profile/03021388439150345778</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/_m-NekkJrpY4/SwF8QrKDk-I/AAAAAAAAC5s/4W1jq3TEv5E/S220/n701795483_470.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30070315.post-8203447128682727940</id><published>2006-11-19T10:46:00.000-08:00</published><updated>2006-11-19T10:52:00.769-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Flex WebService debugging'/><title type='text'>Debugging flex webservices</title><content type='html'>For debugging webservices, the first tool is obviously http monitors like Fiddler or Ethereal(WireShark). Almost everyone who has developed a webservice knows that. It is also true that these tools works well when your webservice is not hosted locally. There are of course other tricks to make it work. But, when it comes to Adobe flex, the challenge is not over even if you got the SOAP response xml back from server. You have to bind it appropriately to see the results. That is where the top secret *j/k* API is useful.&lt;br /&gt;Use "mx.utils.ObjectUtil.toString(resultEvent.result)" to see the structure of result object and get your binding expression correct. Also, see my upcoming post about tracing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30070315-8203447128682727940?l=flexapps.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flexapps.blogspot.com/feeds/8203447128682727940/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30070315&amp;postID=8203447128682727940' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30070315/posts/default/8203447128682727940'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30070315/posts/default/8203447128682727940'/><link rel='alternate' type='text/html' href='http://flexapps.blogspot.com/2006/11/debugging-flex-webservices.html' title='Debugging flex webservices'/><author><name>Vishnu Varadaraj</name><uri>http://www.blogger.com/profile/03021388439150345778</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/_m-NekkJrpY4/SwF8QrKDk-I/AAAAAAAAC5s/4W1jq3TEv5E/S220/n701795483_470.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30070315.post-4348764747851179995</id><published>2006-11-19T10:26:00.000-08:00</published><updated>2006-11-19T10:43:14.448-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cairngorm IResponder async flexunit'/><title type='text'>Cairngorm IResponder Async Flexunit testcase</title><content type='html'>Didn't find any posts addressing FlexUnit async tests using IResponder.&lt;br /&gt;Here is one method of using async flexunit tests with Cairngorm IResponder which involves modifying the flexunit source code.&lt;br /&gt;&lt;br /&gt;TestCase.as&lt;br /&gt;------------&lt;br /&gt;public function addResponder(responder : IResponder, timeout : int, passThroughData : Object = null) : IResponder&lt;br /&gt;{&lt;br /&gt;if (asyncTestHelper == null)&lt;br /&gt;{&lt;br /&gt;asyncTestHelper = new AsyncTestHelper(this, testResult);&lt;br /&gt;}&lt;br /&gt;asyncMethods.push({func: responder.result, timeout: timeout, extraData: passThroughData, failFunc: responder.fault, responder: responder});&lt;br /&gt;return asyncTestHelper;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;AsyncTestHelper.as&lt;br /&gt;---------------------&lt;br /&gt;import mx.rpc.IResponder;&lt;br /&gt;public class AsyncTestHelper implements IResponder&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;public function result(event : Object) : void&lt;br /&gt;{&lt;br /&gt;var wasReallyAsync : Boolean = timer.running;&lt;br /&gt;timer.stop();&lt;br /&gt;//if we already failed don't do anything&lt;br /&gt;if (shouldFail)&lt;br /&gt;return;&lt;br /&gt;objToPass = event;&lt;br /&gt;if (wasReallyAsync)&lt;br /&gt;{&lt;br /&gt;testResult.continueRun(testCase);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;public function fault(event : Object) : void&lt;br /&gt;{&lt;br /&gt;var wasReallyAsync : Boolean = timer.running;&lt;br /&gt;timer.stop();&lt;br /&gt;//if we already failed don't do anything&lt;br /&gt;if (shouldFail)&lt;br /&gt;return;&lt;br /&gt;objToPass = event;&lt;br /&gt;if (wasReallyAsync)&lt;br /&gt;{&lt;br /&gt;shouldFail = true;&lt;br /&gt;testResult.continueRun(testCase);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Then, in your test case function, use the result of&lt;br /&gt;'this.addResponder(this, 5000)' when you need to pass an IResponder callback&lt;br /&gt;&lt;br /&gt;eg.&lt;br /&gt;myDelegate.runAsyncFunction(param, this.addResponder(this, 5000));&lt;br /&gt;instead of&lt;br /&gt;myDelegate.runAsyncFunction(param, this);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30070315-4348764747851179995?l=flexapps.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flexapps.blogspot.com/feeds/4348764747851179995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30070315&amp;postID=4348764747851179995' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30070315/posts/default/4348764747851179995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30070315/posts/default/4348764747851179995'/><link rel='alternate' type='text/html' href='http://flexapps.blogspot.com/2006/11/cairngorm-iresponder-async-flexunit.html' title='Cairngorm IResponder Async Flexunit testcase'/><author><name>Vishnu Varadaraj</name><uri>http://www.blogger.com/profile/03021388439150345778</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/_m-NekkJrpY4/SwF8QrKDk-I/AAAAAAAAC5s/4W1jq3TEv5E/S220/n701795483_470.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30070315.post-5216579961200995801</id><published>2006-11-19T08:30:00.000-08:00</published><updated>2006-11-19T08:32:59.075-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='cairngorm webservice'/><title type='text'>Cairngorm &amp; Webservice</title><content type='html'>Cairngorm is good, but here is something you have to watch out for if you are using webservices.&lt;br /&gt;If you locate a webservice using 'ServiceLocator' you have to also call 'loadWsdl()' on the webservice before invoking an operation on it. Otherwise, you don't get any errors nor does the webservice call reach the server (obviously, no result either)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30070315-5216579961200995801?l=flexapps.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flexapps.blogspot.com/feeds/5216579961200995801/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30070315&amp;postID=5216579961200995801' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30070315/posts/default/5216579961200995801'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30070315/posts/default/5216579961200995801'/><link rel='alternate' type='text/html' href='http://flexapps.blogspot.com/2006/11/cairngorm-webservice.html' title='Cairngorm &amp; Webservice'/><author><name>Vishnu Varadaraj</name><uri>http://www.blogger.com/profile/03021388439150345778</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/_m-NekkJrpY4/SwF8QrKDk-I/AAAAAAAAC5s/4W1jq3TEv5E/S220/n701795483_470.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30070315.post-115093730629931533</id><published>2006-06-21T17:47:00.000-07:00</published><updated>2006-06-21T17:48:26.310-07:00</updated><title type='text'>Developing flex apps</title><content type='html'>More information to be available soon...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30070315-115093730629931533?l=flexapps.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://flexapps.blogspot.com/feeds/115093730629931533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30070315&amp;postID=115093730629931533' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30070315/posts/default/115093730629931533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30070315/posts/default/115093730629931533'/><link rel='alternate' type='text/html' href='http://flexapps.blogspot.com/2006/06/developing-flex-apps.html' title='Developing flex apps'/><author><name>Vishnu Varadaraj</name><uri>http://www.blogger.com/profile/03021388439150345778</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='30' src='http://1.bp.blogspot.com/_m-NekkJrpY4/SwF8QrKDk-I/AAAAAAAAC5s/4W1jq3TEv5E/S220/n701795483_470.jpg'/></author><thr:total>2</thr:total></entry></feed>
