<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/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>Search results matching tags 'silverlight' and 'Flash'</title><link>http://weblogs.asp.net/search/SearchResults.aspx?q=&amp;tag=silverlight%2cFlash&amp;orTags=0&amp;o=DateDescending</link><description>Search results matching tags 'silverlight' and 'Flash'</description><dc:language>en-US</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Interesting Finds: 2008.10.16~2008.10.18</title><link>http://weblogs.asp.net/yuanjian/archive/2008/10/18/interesting-finds-2008-10-16-2008-10-18.aspx</link><pubDate>Sat, 18 Oct 2008 04:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6689549</guid><dc:creator>gOODiDEA</dc:creator><author>gOODiDEA</author><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.codeproject.com/KB/directx/Quadrino.aspx" target="_blank"&gt;&lt;/a&gt;&lt;/p&gt; &lt;strong&gt;Web&lt;/strong&gt;  &lt;p&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://feeds.feedburner.com/~r/ajaxian/~3/421961005/fancyupload-for-flash-10" target="_blank"&gt;FancyUpload for Flash 10 to fix your uploader&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.noupe.com/css/using-javascript-to-fix-12-common-browser-headaches.html" target="_blank"&gt;Using Javascript to Fix 12 Common Browser Headaches&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeplex.com/IIRF" target="_blank"&gt;Ionics Isapi Rewrite Filter&lt;/a&gt; - 1.2.15 Release &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.thewojogroup.com/2008/10/10-easy-steps-to-great-website-optimization/" target="_blank"&gt;10 Easy Steps to Great Website Optimization&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeproject.com/KB/HTML/OptimizeLoading.aspx" target="_blank"&gt;Optimize Page Loading - 20 General Tips and Tricks&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://mootools.net/blog/2008/10/16/mootools-121-released/" target="_blank"&gt;MooTools 1.2.1 Released&lt;/a&gt; - &lt;a href="http://github.com/mootools/mootools-core/tree/1.2.1/CHANGELOG" target="_blank"&gt;Changelog&lt;/a&gt; - &lt;a href="http://mootools.net/download" target="_blank"&gt;Download&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/silverlightjs" target="_blank"&gt;Silverlight.js&lt;/a&gt; - a helper file which enables Web sites to create advanced Silverlight installation and instantiation experiences &lt;/li&gt;    &lt;li&gt;&lt;a href="http://highscalability.com/high-performance-memory-database-web-application-caches" target="_blank"&gt;A High Performance Memory Database for Web Application Caches&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://dzineblog.com/2008/10/30-animated-tab-interface-and-accordion-scripts.html" target="_blank"&gt;30+ Animated Tab-Based Interface and Accordion Scripts&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;.NET&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://weblogs.asp.net/podwysocki/archive/2008/10/16/functional-net-fighting-friction-in-the-bcl-with-directory-getfiles.aspx" target="_blank"&gt;Functional .NET - Fighting Friction in the BCL with Directory.GetFiles&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/stephenwalther/archive/2008/10/17/a-guide-to-learning-asp-net-mvc-beta-1.aspx" target="_blank"&gt;A Guide to Learning ASP.NET MVC Beta 1&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeplex.com/YUIAspNet" target="_blank"&gt;YUIAsp.Net - Yahoo! UI Library controls for ASP.NET Ajax&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://weblogs.asp.net/jguadagno/archive/2008/10/15/new-open-source-application-net-task-service.aspx" target="_blank"&gt;New Open Source Application: .NET Task Service&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Other&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://code.msdn.microsoft.com/DRMEncoderProfile" target="_blank"&gt;Using WM Encoder to DRM protect existing content&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.codeproject.com/KB/directx/Quadrino.aspx" target="_blank"&gt;A DirectX Game: Quadrino&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;</description></item><item><title>Silverlight 2 - Finally a version that can change the world!</title><link>http://weblogs.asp.net/joelvarty/archive/2008/10/15/silverlight-2-finally-a-version-that-can-change-the-world.aspx</link><pubDate>Wed, 15 Oct 2008 04:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6682062</guid><dc:creator>joelvarty</dc:creator><author>joelvarty</author><description>&lt;p&gt;Yes, folks - that title is not a joke.&amp;#160; Silverlight can completely change how we think about the web.&lt;/p&gt;  &lt;p&gt;We're not writing activeX controls anymore, we're not coding &amp;quot;ActionScript&amp;quot; on a &amp;quot;Timeline&amp;quot; - we're talking about something revolutionary here.&lt;/p&gt;  &lt;p&gt;If you look at the underlying premises of Asp.Net - Markup with Code-behind, and how well it has been received by the developer community, then the same paradigm in the WFP world has been waiting for Silverlight 2 to explode onto the scene.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Why will it succeed?&amp;#160; We've had 1.0 for awhile now, and it hasn't &amp;quot;changed the world.&amp;quot;&amp;#160; What gives?&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;This version brings &amp;quot;everything else&amp;quot; that 1.0 forgot.&amp;#160; &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;We have actual layout managers &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;like StackPanel and Grid - we won't talk about how the Grid layout manager is compared to table, but is really quite a different of a table than HTML.&lt;/li&gt;      &lt;li&gt;and a ton of Controls to work with and extend.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;We have real language support - &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;C#, boys and girls.&amp;#160; Go play.&lt;/li&gt;      &lt;li&gt;And some other languages too.&amp;#160; Whatever.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Cross Domain Network requests use the same policy file as Flash&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Here's where being just like Flash actually matters - since so many people have this policy file in place to allow for cross-domain requests, using it in Silverlight really makes sense.&lt;/li&gt;      &lt;li&gt;These networks requests can be truly asynchronous.&amp;#160; Not &amp;quot;fake&amp;quot; asynchronous like JavaScript.&amp;#160; &lt;/li&gt;      &lt;li&gt;This doesn't compete with AJAX - it is just way better.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;LINQ support.&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;This is becoming a staple of .Net development.&amp;#160; I have stopped bothering to follow ActionScript, but I am fairly sure it can't do LINQ.&amp;#160; If you are a Flash developer, and you want to do &amp;quot;real&amp;quot; developer, look long and hard at Silverlight 2.&lt;/li&gt;      &lt;li&gt;This is demonstrated by Scott Guthrie in his blog tutorial on Silverlight 2.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;We have actual TOOL SUPPORT (I'm getting more excited as I write this - calm down, man.&amp;#160; Calm down.)&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;The Visual Studio 2008 add-in works like a charm.&amp;#160; No problems reported from me except for a few Intellisense quirks.&amp;#160; This is a far cry from the crashy crappiness that saw me flounder around with the 1.0 tools for about an hour before I decided to wait for 2.0 to get serious about Silverlight development.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;The designer tools allow designers to be designers and developers to be.... developers&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;The code-behind model is supplemented with the style-templating mechansim that is not too dissimilar to Asp.Net skins, except it allow more declarative control over how and when certain properties (whether they be style related or Content related) can be set.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Download the add-on for Visual Studio 2008 &lt;a href="http://msdn.microsoft.com/en-us/silverlight/default.aspx" target="_blank"&gt;here&lt;/a&gt; - you need SP1 for this, so get that first.&lt;/p&gt;  &lt;p&gt;Scott's tutorial post series is &lt;a href="http://weblogs.asp.net/scottgu/pages/silverlight-2-end-to-end-tutorial-building-a-digg-search-client.aspx" target="_blank"&gt;here&lt;/a&gt;.&amp;#160; Read this first.&amp;#160; Then read it again and think about what it all MEANS.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;My final thoughts:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;This is the big chance for WPF development to finally supplant Windows Forms and take us out of the Visual Basic style of UI forever.&amp;#160; &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;This means that all of the crappy-looking corporate apps that people argue bring so much legacy value to desktop, can finally be re-written in a way that doesn't stink, and in a way that doesn't exclude non-Windows machines.&amp;#160; &lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;We can &amp;quot;sort of&amp;quot; share code between Silverlight and WPF Applications.&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Make this easier, Microsoft.&amp;#160; &lt;/li&gt;      &lt;li&gt;Go back in time and do this yesterday, then tell me how I missed this in the documentation.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Don't follow the examples when you see declarative event binding&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;This is my worst pet peave of Asp.Net and I have started seeing it in virtually every XAML demo app out there.&lt;/li&gt;      &lt;li&gt;Declare your events in the code-behind, not the XAML markup, folks.&amp;#160; Think about how hard it will be maintain code that has a ton of this event bindings - you'll insane with the ctrl-F to locate where your events are referencing, and then you'll wish you'd listened to me.&lt;/li&gt;      &lt;li&gt;I'm guessing the exception to this is where a control that you want to bind an event to is inside a data-bound template.&amp;#160; Then you're allowed to bind the event in the markup.&amp;#160; I guess.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;When will it take over the world?&amp;#160; &lt;/p&gt;  &lt;p&gt;In my opinion, as soon as everyone else realizes that the absolute BEST video streaming technology just got paired with the absolute BEST programming support is available in an a cross platform browser extension, this thing will take off big time.&amp;#160; &lt;/p&gt;  &lt;p&gt;I'll be putting it into my apps as soon as I can.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Rock on - joel.&lt;/p&gt;</description></item><item><title>Adobe to power NFL on the web, the race is on!</title><link>http://weblogs.asp.net/olakarlsson/archive/2008/09/05/adobe-to-power-nfl-on-the-web-the-race-is-on.aspx</link><pubDate>Fri, 05 Sep 2008 04:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6601543</guid><dc:creator>ola karlsson</dc:creator><author>ola karlsson</author><description>&lt;p&gt;The US National Football League (NFL) and Adobe, &lt;a href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200809/090408AdobeNFL.html" target="_blank" mce_href="http://www.adobe.com/aboutadobe/pressroom/pressreleases/200809/090408AdobeNFL.html"&gt;yesterday announced&lt;/a&gt; that NFL has chosen Adobe Flash technology to deliver their online video content. &lt;/p&gt;
&lt;p&gt;Personally I think this is great! But why you might say, aren’t you one of those Silverlight fan boy types? &lt;/p&gt;
&lt;p&gt;Well even thought there might be some truth in that ;) I think looking at the bigger picture, this can only be a good thing. Adobe taking a step like this after Microsoft’s &lt;a href="http://www.reuters.com/article/pressRelease/idUS23524+07-Jan-2008+PRN20080107" target="_blank" mce_href="http://www.reuters.com/article/pressRelease/idUS23524+07-Jan-2008+PRN20080107"&gt;deal with NBC&lt;/a&gt; to broadcast the &lt;a href="http://www.nbcolympics.com/" target="_blank" mce_href="http://www.nbcolympics.com/"&gt;Beijing Olympics&lt;/a&gt;, now means the race is on for who’s technology will get to provide us with rich media content over the web. This means competition, competition in a market, which for quite a while now has been dominated by Adobe. As I’ve &lt;a href="http://weblogs.asp.net/olakarlsson/archive/2008/05/21/silverlight-microsoft-s-flash-killer.aspx" target="_blank" mce_href="http://weblogs.asp.net/olakarlsson/archive/2008/05/21/silverlight-microsoft-s-flash-killer.aspx"&gt;previously pointed out&lt;/a&gt;, I don’t think Silverlight will be the Flash killer media like to portray it as, but rather I think that it will provide some healthy competition to Adobe’s Flash / Flex platform. I very much look forward to seeing how this will play out. Hopefully it will mean better service to all the users on the web and better tools for us developers.&lt;/p&gt;</description></item><item><title>.NET, Adobe Flash and Cross Domain Communication -How To AND How Not to LOL!</title><link>http://weblogs.asp.net/andrewrea/archive/2008/08/27/net-adobe-flash-and-cross-domain-communication-how-to-and-how-not-to-lol.aspx</link><pubDate>Wed, 27 Aug 2008 04:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6571564</guid><dc:creator>REA_ANDREW</dc:creator><author>REA_ANDREW</author><description>&lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&amp;quot;Is SilverLight going to use Cross Domain Poilicies?&amp;quot;&lt;/h3&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I hope no one is thinking, &amp;quot;FLASH?!?! why not Silverlight!!&amp;quot;&amp;#160;&amp;#160;&amp;#160; If so I apologise lol, but a project I am working on, the client has clearly specified they require this small &amp;quot;WIDGET&amp;quot; if you will in flash.&amp;#160; Due to the current market take up of flash I would say but either way I had to make a WIDGET in Adobe flash.&amp;#160; In hindsight now I think, or I am sure I would have had the same obstacles to over come if I did this in Silverlight as well.&lt;/p&gt;  &lt;p&gt;What the widget is, is a small badge which is able to be embedded in HTML code, for the likes of people on FaceBook, MySpace etc... If it was a static Image or Animation there would have been no problem, but the obstacle came when I needed to insert dynamic information into the widget.&amp;#160; In this case it was the name and a count of units for a user who was a member of the site.&amp;#160; A little bonus was that I could transform and rotate the text which is not possible to such an extent with AJAX, but as you know with Flash and Silverlight, that is there THING, GRAPHICS!&amp;#160; &lt;/p&gt;  &lt;p&gt;Also to point out I am using ActionScript 3.0 in Flash not Flex, (I will explain that also aswell lol)&lt;/p&gt;  &lt;p&gt;So from the outset I was thinking:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;.NET Web Service in C# published to a sub domain of the site. &lt;/li&gt;    &lt;li&gt;Client Code in Action Script 3.0 to use the WebService and AbstractOperation objects. &lt;/li&gt;    &lt;li&gt;Some imagination to get the widget a little more attractive. &lt;/li&gt; &lt;/ul&gt;  &lt;h1&gt;BANG!&lt;/h1&gt;  &lt;p&gt;I am not sure why I did not read this before, I will stand corrected if the book I am reading has already mentioned this but Action Script 3.0, LIKE Silverlight, LIKE AJAX throws a security exception for cross domain calls.&amp;#160; It just didn't occur to me with Flash, but then again I am still a novice, or &lt;strong&gt;some one who knows what they are doing but is learning a slightly different syntax&lt;/strong&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;Here comes another obstacle I encountered.&amp;#160; The WebService and AbstractOperation objects I spoke of are purely reserved for FLEX in the way they are not included in the standard libraries for Flash, but in the &lt;strong&gt;&lt;u&gt;mx&lt;/u&gt;&lt;/strong&gt; namespace and package for flex.&amp;#160; OK I thought no problem, so I copied the libraries into my working folder for my Widget.&amp;#160; Now straight away, I have an empty .flv file, I publish and I have a .SWF file approx 150KB!&amp;#160; So the over head of adding these libraries of course comes with this overhead of a minimum .swf size, but I thought this is a little over kill may be for my small widget.&amp;#160; I may look at .SQF compressors next, but anyway.&lt;/p&gt;  &lt;p&gt;So scrapping the idea of using the Flex WebService and AbstractOperation objects I was also left with this notion, &amp;quot;If I now want to use my .NET Web Service, I will have to code some objects which will manually construct the SOAP Request, this seemed to much work to be honest for this project timescale and the budget, so I scrapped the idea of a web service.&amp;#160; What I came up with was this:&lt;/p&gt;  &lt;h2&gt;&amp;quot;Using the Action Script 3.0 URLLoader, a .NET Http Handler and the .NET XML Serializer&amp;quot;&lt;/h2&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;As you might have guessed I will be using GET requests here as I am not sure the URLLoader can handle post requests, which means that my HTTP Handler will need to parse the information through the querystring.&amp;#160; So I will begin with the Action Script 3.0 Service which I made:&lt;/p&gt;  &lt;pre&gt;&lt;span style="color: #0000ff"&gt;package&lt;/span&gt; com.mypackage{
	&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; flash.net.URLLoader;
	&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; flash.net.URLRequest;
	&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; flash.events.Event;
	&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; flash.events.EventDispatcher;
	
	&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; Service &lt;span style="color: #0000ff"&gt;extends&lt;/span&gt; EventDispatcher
	{
		&lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; theResult:XML;
		
		&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; GetResult():XML{
			&lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.theResult;
		}
		
		&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; Service(url:&lt;span style="color: #0000ff"&gt;String&lt;/span&gt;):&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;{
			Init();
			&lt;span style="color: #0000ff"&gt;var&lt;/span&gt; loader:URLLoader = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; URLLoader();
			loader.addEventListener(Event.COMPLETE, processXML);
			loader.load(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; URLRequest(url));
		}
		
		&lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; processXML(e:Event):&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;{
			theResult = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; XML(e.target.data);
			dispatchEvent(&lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Event(Event.COMPLETE));
		}
		
		&lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; Init():&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;{
			 
		}
	}
}&lt;/pre&gt;

&lt;p&gt;so what is happening here.&amp;#160; The object is called Service and I instantiate the object with a URL.&amp;#160; I attach a callback to the URLLoader which is executed when the request has completed.&amp;#160; You will see further down that the request generates XML, which I store as such in ActionScript.&amp;#160; I then raise another Complete event for the Service object for use in the .flv file, or the WIDGET.&lt;/p&gt;

&lt;p&gt;So the next bit of code I would like to show you is .NET and is the IHttpHandler.&amp;#160; In hindsight I should have used an IHttpHandlerFactory, but hey, this is what it is for now. &lt;/p&gt;

&lt;pre&gt;    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; MemberServiceProxy : IHttpHandler
    {
        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; MemberService m;
        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; HttpContext context;
        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; NameValueCollection queryString;
        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; userID;

        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; ProcessRequest(HttpContext context)
        {
            &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.context = context;
            &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.context.Response.Clear();
            &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.context.Response.ClearHeaders();
            &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.context.Response.ContentType = &amp;quot;&lt;span style="color: #8b0000"&gt;text/xml&lt;/span&gt;&amp;quot;;
            &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.queryString = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.context.Request.QueryString;
            

            &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.m = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; MemberService();

            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (String.IsNullOrEmpty(queryString[&amp;quot;&lt;span style="color: #8b0000"&gt;fname&lt;/span&gt;&amp;quot;]))
                &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;
            &lt;span style="color: #0000ff"&gt;else&lt;/span&gt;
            {
                &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.userID = Convert.ToInt32(queryString[&amp;quot;&lt;span style="color: #8b0000"&gt;userid&lt;/span&gt;&amp;quot;]);
                &lt;span style="color: #0000ff"&gt;switch&lt;/span&gt; (queryString[&amp;quot;&lt;span style="color: #8b0000"&gt;fname&lt;/span&gt;&amp;quot;].ToLower())
                {
                    &lt;span style="color: #0000ff"&gt;case&lt;/span&gt; &amp;quot;&lt;span style="color: #8b0000"&gt;getnumberofbricks&lt;/span&gt;&amp;quot;:
                        GetNumberOfBricks();
                        &lt;span style="color: #0000ff"&gt;break&lt;/span&gt;;
                    &lt;span style="color: #0000ff"&gt;case&lt;/span&gt; &amp;quot;&lt;span style="color: #8b0000"&gt;getuserhandle&lt;/span&gt;&amp;quot;:
                        GetUserHandle();
                        &lt;span style="color: #0000ff"&gt;break&lt;/span&gt;;
                    &lt;span style="color: #0000ff"&gt;default&lt;/span&gt;: &lt;span style="color: #0000ff"&gt;break&lt;/span&gt;;
                }
            }
        }

        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; GetNumberOfBricks()
        {
            Requests.NumberOfBricksRequest num1 = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Requests.NumberOfBricksRequest();
            num1.UserID = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.userID;
            num1.NumberOfBricks = m.GetNumberUserBricks(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.userID);

            XmlSerializer x1 = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; XmlSerializer(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(service.package.com.Requests.NumberOfBricksRequest));
            &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; (MemoryStream ms1 = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; MemoryStream())
            {
                x1.Serialize(ms1, num1);
                context.Response.BinaryWrite(ms1.ToArray());
            }
        }

        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; GetUserHandle()
        {
            Requests.GetUserHandle handle1 = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Requests.GetUserHandle();
            handle1.UserID = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.userID;
            handle1.Handle = m.GetUserHandle(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.userID);

            XmlSerializer x1 = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; XmlSerializer(&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(service.package.com.Requests.GetUserHandle));
            &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; (MemoryStream ms1 = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; MemoryStream())
            {
                x1.Serialize(ms1, handle1);
                context.Response.BinaryWrite(ms1.ToArray());
            }
        }

        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;bool&lt;/span&gt; IsReusable
        {
            &lt;span style="color: #0000ff"&gt;get&lt;/span&gt;
            {
                &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;;
            }
        }
    }&lt;/pre&gt;

&lt;p&gt;So what is happening above is ProcessRequest is called.&amp;#160; I clear out the content and the headers because I will be outputting XML, and then I attached the QueryString to a System.Collection.Specialized.NameValueCollection, making it a little quicker to code with.&amp;#160; I read what function is being called by looking at the fname value of the function.&amp;#160; I could have used Reflection here to avoid the tightly coupled switch statement. &lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;In each of the functions I then make a request to a WebService (I still wanted to abstract that part) and then serialize it to XML ready for the output.&amp;#160; This is placed inside a MemoryStream and then I use Response.BinaryWrite to output the information to the browser.&amp;#160; I have created sort of Data Transfer Objects which I have added instruction to for how they should be serialized.&amp;#160; Here is an example of the &lt;strong&gt;Requests.NumberOfBricksRequest&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;    [Serializable]
    [XmlRoot(&amp;quot;&lt;span style="color: #8b0000"&gt;Result&lt;/span&gt;&amp;quot;)]
    &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; NumberOfBricksRequest
    {
        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; userID;

        [XmlElement(&amp;quot;&lt;span style="color: #8b0000"&gt;UserID&lt;/span&gt;&amp;quot;,&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;))]
        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; UserID
        {
            &lt;span style="color: #0000ff"&gt;get&lt;/span&gt; { &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; userID; }
            &lt;span style="color: #0000ff"&gt;set&lt;/span&gt; { userID = &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;; }
        }
        &lt;span style="color: #0000ff"&gt;private&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; numberOfBricks;

        [XmlElement(&amp;quot;&lt;span style="color: #8b0000"&gt;NumberOfBricks&lt;/span&gt;&amp;quot;,&lt;span style="color: #0000ff"&gt;typeof&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;int&lt;/span&gt;))]
        &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;int&lt;/span&gt; NumberOfBricks
        {
            &lt;span style="color: #0000ff"&gt;get&lt;/span&gt; { &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; numberOfBricks; }
            &lt;span style="color: #0000ff"&gt;set&lt;/span&gt; { numberOfBricks = &lt;span style="color: #0000ff"&gt;value&lt;/span&gt;; }
        }
    }&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Do the above makes things so easy to go back into flash with.&amp;#160; For example the sample output of the above produces the following:&lt;/p&gt;

&lt;pre&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;xml version=&amp;quot;1.0&amp;quot; &lt;span style="color: #0000ff"&gt;?&amp;gt;&lt;/span&gt; 
&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Result&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;xsi&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;:&lt;span style="color: #ff0000"&gt;xsd&lt;/span&gt;=&lt;span style="color: #0000ff"&gt;&amp;quot;http://www.w3.org/2001/XMLSchema&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; 
&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;UserID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;2248&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;UserID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; 
&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;NumberOfBricks&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;0&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;NumberOfBricks&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt; 
&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Result&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;The next part is to use my Action Script Service class and to consume my Http Handler with it.&amp;#160; To do this I create some action script in the first frame of my .flv file.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;pre&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; com.package.Service;
&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; flash.events.Event;
&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; flash.events.MouseEvent;

addEventListener(MouseEvent.CLICK,Redirect);
m_movie.addEventListener(MouseEvent.CLICK,Redirect);
&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; Redirect(e:MouseEvent)
{
	ExternalInterface.call(&amp;quot;&lt;span style="color: #8b0000"&gt;recieveInstructionFromFlash&lt;/span&gt;&amp;quot;,&amp;quot;&lt;span style="color: #8b0000"&gt;http://www.msn.com&lt;/span&gt;&amp;quot;);
}
				 
&lt;span style="color: #0000ff"&gt;var&lt;/span&gt; userparams:Object = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.loaderInfo.parameters;
&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;(userparams.userID != &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;)
{
	&lt;span style="color: #0000ff"&gt;var&lt;/span&gt; service1:Service = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Service(&amp;quot;&lt;span style="color: #8b0000"&gt;http://service.package.com/MemberServiceProxy.ashx?fname=getnumberofbricks&amp;amp;userid=&lt;/span&gt;&amp;quot;+userparams.userID.&lt;span style="color: #0000ff"&gt;toString&lt;/span&gt;());
	&lt;span style="color: #0000ff"&gt;var&lt;/span&gt; service2:Service = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Service(&amp;quot;&lt;span style="color: #8b0000"&gt;http://service.package.com/MemberServiceProxy.ashx?fname=getuserhandle&amp;amp;userid=&lt;/span&gt;&amp;quot;+userparams.userID.&lt;span style="color: #0000ff"&gt;toString&lt;/span&gt;());
	service1.addEventListener(Event.COMPLETE,Complete1);
	service2.addEventListener(Event.COMPLETE,Complete2);
	trace();
	&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; Complete1(e:Event):&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;{
		&lt;span style="color: #0000ff"&gt;var&lt;/span&gt; resultString:&lt;span style="color: #0000ff"&gt;String&lt;/span&gt; = &amp;quot;&lt;span style="color: #8b0000"&gt;I have &lt;/span&gt;&amp;quot; + e.target.GetResult().NumberOfBricks.&lt;span style="color: #0000ff"&gt;toString&lt;/span&gt;() +&amp;quot;&lt;span style="color: #8b0000"&gt; bricks&lt;/span&gt;&amp;quot;;
		m_dynamic.text = resultString;
	}
	
	&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; Complete2(e:Event):&lt;span style="color: #0000ff"&gt;void&lt;/span&gt;{
		&lt;span style="color: #0000ff"&gt;var&lt;/span&gt; resultString:&lt;span style="color: #0000ff"&gt;String&lt;/span&gt; = e.target.GetResult().Handle.&lt;span style="color: #0000ff"&gt;toString&lt;/span&gt;();
		m_handle.text = resultString;
	}
}
&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;{
	m_handle.text = &amp;quot;&lt;span style="color: #8b0000"&gt;no parameters&lt;/span&gt;&amp;quot;;
}&lt;/pre&gt;

&lt;p&gt;If you notice any variable which are prefixed with m_ I am referring to instances I have added to the stage.&amp;#160; I am creating two instances of the Service class I showed you above.&amp;#160; I pass in the URL I want it to load and then add an Event Listener for when it has finished.&amp;#160; I have defined two complete events which get called by their respective services and simply change the text property of the dynamic text instances which I have added to my stage.&lt;/p&gt;

&lt;h2&gt;&amp;#160;&lt;/h2&gt;

&lt;h2&gt;Allowing the WIDGET to be added to any HTML.&lt;/h2&gt;

&lt;p&gt;The final part of this is overcoming the fact that we are allowing users to take some code and embed it on any site they choose where they have access to customise page objects.&amp;#160; This is where the security exception will get thrown if we simply add the object tag straight in.&amp;#160; I am not sure if YouTube have achieved this, but they do allow you to simply embed the object tag.&amp;#160; I am not sure how they have got around the security exception which warns of cross script url requests.&amp;#160; I would imagine they use an SWY Loader and now thinking about it that might be a miles quicker option that what I have gone through here.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h2&gt;Arrrgghhh! LOL&amp;#160; ... Labour in Vain!&lt;/h2&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;So basically I compose a Blog while I work, and it is now apparent that my inexperience of the platform and its capabilies is shining through, but hey &amp;quot;I'M learning here!&amp;quot;&amp;#160; It also makes me start thinking now, &lt;strong&gt;if Silverlight is using any kind of cross domain policies!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It turns out &lt;/strong&gt;that you can insert a xml file in the root of your domain called crrossdomain.xml, to get this to work I also had to include the following ActionScript in the stage script.&lt;/p&gt;

&lt;pre&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; flash.system.Security;

Security.allowDomain(&amp;quot;&lt;span style="color: #8b0000"&gt;*&lt;/span&gt;&amp;quot;);&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;And my cross domain xml file is the following:&lt;/p&gt;

&lt;pre&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;xml version=&amp;quot;1.0&amp;quot;/&amp;gt;
&amp;lt;!DOCTYPE cross-domain-policy SYSTEM &amp;quot;http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd&amp;quot;&amp;gt;
&amp;lt;cross-domain-policy&amp;gt;
	&amp;lt;allow-access-from domain=&amp;quot;*&amp;quot; /&amp;gt;
&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;cross&lt;/span&gt;-domain-policy&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;span style="color: #0000ff"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;OK, so to bring this to a close I will explain how I went about achieving what I needed to without knowing this &amp;quot;Correct Method.&amp;quot;&amp;#160; I use Javascript to dynamically create an iframe of a certain size and I then write it to the document.&amp;#160; I pass variables through the querystring so that I can then pick these up inside flash.&amp;#160; It is surprisingly easy to get these values using a combination of variable assignments and the split methods.&amp;#160; So anyway that was how I originally achieved it but now, NOW! I create a second swf which acts as the containing SWF and I then load in the external SWF.&amp;#160; A couple of bonuses to notice here are:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;It is the correct way to do this &lt;/li&gt;

  &lt;li&gt;You can progress the loading of your movie so easy and in a custom way it is fantastic for both your ego lol and the users' experience. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So below is the final part of this mamoth part of my day. It is the loading swf if you will and the code is straight out of the Adobe Flash Documentation and I think really nice code.&amp;#160; If you are .NET C# you should have very little trouble becoming accustomed to this code, expecially with the advent of C# 3.0 and anonymous types.&amp;#160; I am not saying forget SilverLight, I am actually saying &amp;quot;LEARN BOTH!!&amp;quot; why not? ah go on!&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h2&gt;The loading SWF&lt;/h2&gt;

&lt;pre&gt;&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; flash.net.URLRequest;
&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; flash.display.Loader;
&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; flash.events.Event;
&lt;span style="color: #0000ff"&gt;import&lt;/span&gt; flash.events.ProgressEvent;

&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; startLoad()
{
&lt;span style="color: #0000ff"&gt;var&lt;/span&gt; mLoader:Loader = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Loader();
&lt;span style="color: #0000ff"&gt;var&lt;/span&gt; mRequest:URLRequest = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; URLRequest(&amp;quot;&lt;span style="color: #8b0000"&gt;http://service.package.com/service.swf?userID=2248&lt;/span&gt;&amp;quot;);
mLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
mLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
mLoader.load(mRequest);
}

&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; onCompleteHandler(loadEvent:Event)
{
        addChild(loadEvent.currentTarget.content);
}
&lt;span style="color: #0000ff"&gt;function&lt;/span&gt; onProgressHandler(mProgress:ProgressEvent)
{
&lt;span style="color: #0000ff"&gt;var&lt;/span&gt; percent:&lt;span style="color: #0000ff"&gt;Number&lt;/span&gt; = mProgress.bytesLoaded/mProgress.bytesTotal;
trace(percent);
}
startLoad();&lt;/pre&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h2&gt;Conclusion&lt;/h2&gt;

&lt;p&gt;I would like to now investigate SilverLight cross domain scripting policies since I now the possibilities in Flash and Flex for that matter.&amp;#160; I am really content that I did not have to hack out the javascript method.&amp;#160; &lt;/p&gt;

&lt;p&gt;Sorry for the staggered conclusion but I kind of like this type of blogging which I am kinda writing in real time.&amp;#160; An extension I suppose would be to tiestamp each entry as you work.&amp;#160; I will try and coin a phrase for it lol.&amp;#160; HOW ABOUT UNTIDY! lol&lt;/p&gt;</description></item><item><title>The Ubiquitous, Mobile Web: The Final Frontier</title><link>http://weblogs.asp.net/joelvarty/archive/2008/07/16/the-ubiquitous-mobile-web-the-final-frontier.aspx</link><pubDate>Wed, 16 Jul 2008 04:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6408107</guid><dc:creator>joelvarty</dc:creator><author>joelvarty</author><description>&lt;p&gt;The web works better when web sites are tailored to the capabilities of the platform.&lt;/p&gt;  &lt;p&gt;That's a given, as far as I am concerned.&amp;#160; &lt;/p&gt;  &lt;p&gt;I have avoiding dealing with this issue in the past in terms of mobile devices in the hopes that the browsers mobile phones will eventually mature to point of approaching desktop capabilities.&amp;#160; Also, I am sure that there is some amount of push back to browser quirkiness following the Netscape/IE browser quirk wars of the past decades.&lt;/p&gt;  &lt;p&gt;But now, as I await delivery of an iPhone 3G, I wonder if I might be doing more to push development for the mobile platform in general.&lt;/p&gt;  &lt;p&gt;For example, I have used the Opera 9.5 browser (a leaked beta :) on my HTC TyTN for the past few months and I am amazed by how fluidly and quickly it renders and zooms fairly complex web pages - even on a QVGA (320x240) screen.&amp;#160; I am hoping/assuming that mobile Safari, which Opera is ostensibly attempting to surpass with it's mobile browser efforts, will be even more useful and amazing.&lt;/p&gt;  &lt;p&gt;It does beg the question, though, about where the responsibility for the overall mobile browsing experience lies: the browser implementation, or the web developers themselves.&amp;#160; As an architect, it makes perfect sense that we should design and build web controls that will degrade their functionality based on the mobile browser's known capabilities.&amp;#160; This rarely happens.&lt;/p&gt;  &lt;p&gt;Most web sites, in my experience, are envisioned by people who haven't had exposure to the Internet on the kinds of mobile browsers, like Safari and Opera, that actually make mobile browser worthwhile.&amp;#160; That being said, it should also be noted that most web site are also envisioned as a set of features that must answer to features on competing web sites.&amp;#160; Far from being able to think about what the user experience ought to be on a handheld platform, we often can't even escape the vertical market that we operate within.&lt;/p&gt;  &lt;p&gt;So what is the answer?&amp;#160; &lt;/p&gt;  &lt;p&gt;Should a mobile web site come &amp;quot;out of the box&amp;quot; when a developer drops a custom web control on a page?&amp;#160; &lt;/p&gt;  &lt;p&gt;Should we be pushing for a second stream of mobile development to complement the &amp;quot;standard&amp;quot; mobile development?&lt;/p&gt;  &lt;p&gt;Or should we just let the mobile device handle the page that was designed for the desktop?&lt;/p&gt;  &lt;p&gt;Should Flash and Silverlight be expected to run in these environments?&lt;/p&gt;  &lt;p&gt;At this point, do we even know what a &amp;quot;mobile device&amp;quot; mean?&amp;#160; Does it include UMPCs, MIDs (Mobile Internet Devices), or the smaller laptops like the Asus EEE PC (and all of its copy cats)?&lt;/p&gt;  &lt;p&gt;So many questions, and no answers.&lt;/p&gt;</description></item><item><title>Silverlight, Microsoft's Flash Killer - NOT</title><link>http://weblogs.asp.net/olakarlsson/archive/2008/05/21/silverlight-microsoft-s-flash-killer.aspx</link><pubDate>Wed, 21 May 2008 04:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:6204509</guid><dc:creator>ola karlsson</dc:creator><author>ola karlsson</author><description>&lt;P&gt;As an early adopter of Silverlight etc. the one phrase that grates me each time I hear or read it is "Silverlight, Microsoft’s Flash killer". &lt;/P&gt;
&lt;P&gt;And why does it so bother me? Well in my mind it's not a matter of one technology killing the other! As with most technologies, I believe that they'll quite happily live side by side, some people favouring one, some the other.&lt;/P&gt;
&lt;P&gt;At least for the foreseeable future, it's not even a matter of who's got the bigger feature set etc., the hard reality, like it or not, is that corporate enterprise type of companies favours Microsoft technologies just like they lean towards Microsoft over open source solutions. While the smaller more fast moving Web 2.0 type companies favour technologies like Ruby on Rails, Flash/Flex and often use open source software.&lt;/P&gt;
&lt;P&gt;I recently read a very interesting blog post called &lt;A class="" href="http://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html" target=_blank mce_href="http://jessewarden.com/2008/03/post-microsoft-mix-2008-thoughts.html"&gt;Post Microsoft MIX 2008 Thoughts&lt;/A&gt;, it's by a Flex/Flash developer called &lt;A class="" href="http://jessewarden.com/about" target=_blank mce_href="http://jessewarden.com/about"&gt;Jesse Warden&lt;/A&gt; and it gives an interesting insight into how Silverlight is probably viewed by many in the Adobe Flash/Flex camp. &lt;BR&gt;&lt;BR&gt;The post is well written and fairly objective (not much of the MS bashing you might expect from a Flex/Flash developer), it covers his impressions of MIX 2008 and especially the Silverlight related topics that were demoed there. One thing that has stuck in my mind after reading it is how he felt frustrated over the "oohs" and "aahs" of the audience, over things now possible with Silverlight 2 but which according to him have been easily achieved with Flex and Flash for quite some time.&lt;/P&gt;
&lt;P&gt;That exact type of thing however is one of the main reasons, which makes me believe that the feature set of the technologies play a lesser role than most may think. &lt;/P&gt;
&lt;P&gt;Most people developing in the .Net space, who are often mainly focused on corporate enterprise type applications, just simply don't know anything about what is or isn't possible with technologies like Flex/Flash.&lt;/P&gt;
&lt;P&gt;If we lived in a perfect world, we would all live and play together, .Net developers and architects with experience in building large scale enterprise applications, would be bringing their skills end experiences to the table. While the often more UX focused Flex and Flash developers would be bringing their expertise in building visually compelling and well functioning user interfaces along and together we'd be creating truly great User Experiences for the end users.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;One can but dream ;)&lt;/P&gt;</description></item><item><title>Is Silverlight for real?</title><link>http://weblogs.asp.net/daveconder/archive/2007/09/28/is-silverlight-for-real.aspx</link><pubDate>Fri, 28 Sep 2007 04:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:4230370</guid><dc:creator>daveconder</dc:creator><author>daveconder</author><description>&lt;P mce_keep="true"&gt;Most of my team gets pretty excited about new technology, and we really enjoy digging into new things. So we're all pretty excited about the concept of Silverlight, especially in v1.1 with built-in CLR support.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;I have two big questions though:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Is Silverlight supposed to be&amp;nbsp;taking on Flash head-to-head?&amp;nbsp;&lt;/DIV&gt;&lt;/LI&gt;
&lt;LI&gt;
&lt;DIV mce_keep="true"&gt;Will Silverlight become a common, standard plugin, like Flash?&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P mce_keep="true"&gt;Let's face it, Adobe owns the market pretty well at this point. Thousands of Flash developers have mastered the strange world of Actionscript and timelines. We try to avoid Flash like the plague but always seem to be stuck working with it, and it's no fun. The idea of being able to add a rich experience to the front-end without having to bring on Flash people is really cool in my mind, but I'm still sitting on the fence about jumping in.&amp;nbsp; Is Silverlight really going to be just another necessary plugin that people install without hesitation? Is it something that we can tell our customers that they need to have as a standard on their PC's? Is this a platform that's worth taking a shot at?&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;When we moved to .NET as our primary development platform, I felt it was a big leap...there was some risk but I felt that the potential rewards were far greater. This turned out to be the case and I'm really happy we did it 4 years ago. I'm getting the same kinds of feelings about Silverlight now, and I'm still trying to figure out if it makes sense to take a plunge and see where we go. &lt;/P&gt;
&lt;P mce_keep="true"&gt;If anyone has any thoughts on this, please share! &lt;/P&gt;</description></item><item><title>Is Adobe Really Playing the Lock-in Game With Flash Video?</title><link>http://weblogs.asp.net/jezell/archive/2007/08/24/is-adobe-really-playing-the-lock-in-game-with-flash-video.aspx</link><pubDate>Fri, 24 Aug 2007 04:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:3609250</guid><dc:creator>Jesse Ezell</dc:creator><author>Jesse Ezell</author><description>&lt;P mce_keep="true"&gt;So, you aren't going to be locked in to buy On2's codec... but looks like despite the fact that they are using an open standard, if you want to intelligently stream the video you will be locked into buying Flash Media Server:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P mce_keep="true"&gt;The Motion Picture Experts Group (MPEG) is responsible for licensing of all the MPEG technologies including H.264. As an open industry standard, H.264 content should be playable on any number of devices. And this is where Adobe is making a terrible mistake. Most websites, YouTube included, use a technique known as progressive downloading to stream content from the servers to the client. This technique uses HTTP and therefore is quite limited in what types of interactions can take place between the server and client. Content that is progressively streamed must first be downloaded to the client before it can be played. There are techniques that provide pseudo-streaming using HTTP, but still, interaction is limited to the HTTP protocol. Real Time Streaming Protocol (RTSP) was developed in 1998 by the Internet Engineering Task Force (IETF) to overcome many of the shortcomings of using HTTP for streaming and to provide a open, standards-based way to stream content from a server to a client. The benefits of using RTSP are numerous and include the ability for a client to request a start time of a audio or video file and the ability for the server to monitor the available bandwidth of the client in real time.&lt;/P&gt;
&lt;P mce_keep="true"&gt;According to Tinic Uro’s blog, Adobe will not be implementing RTSP in it’s Flash player. Rather, they will be streaming H.264 (and FLV for that matter) via their own proprietary protocol, RTMP. This is quite unfortunate because even though H.264 is an industry standard, in order to benefit from true streaming technology, you’ll have to use Adobe’s proprietary Flash Media Server which implements RTMP. This is bad news for everyone.&lt;/P&gt;
&lt;P&gt;Because RTSP (and RTMP) implements client/server interaction, bandwidth could be drastically reduced. Imagine YouTube, or any other video sharing site, having chapters or sections of a video that could be played without having to start at the beginning or having to wait for the video to progressively download. Imagine being able to click anywhere on a videos timeline and have that video start playing , instantaneously. This is possible with a true streaming solution, but with Flash it will only be possible with Flash Media Server.&lt;/P&gt;
&lt;P&gt;Vendor lock-in seems to be the game Adobe is willing to play. To me, this is completely outrageous and I implore Adobe to reconsider this decision. I understand that Adobe is a business and must make a profit. But the decision to not support RTSP hurts education, non-profits and small business, most of whom could not afford the high price tag of Flash Media Server in the first place. By contrast, a number of open source RTSP server implementations exist which are free of charge, including &lt;A href="http://developer.apple.com/opensource/server/streaming/index.html" target=_blank mce_href="http://developer.apple.com/opensource/server/streaming/index.html"&gt;Darwin Streaming Server&lt;/A&gt; from Apple. If Flash supported RTSP, I believe the Internet would spawn a new generation of video sites, with new functionality and even greater interactivity. Think of a JumpCut, YouTube, Digg and Pownce fusion. This process alone would help Adobe sell users on their AIR and Flex platform because of the increased interactivity. With Adobe’s decision, it’s unfortunate that innovation in the online video arena will crawl along at it’s current rate [1]&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I don't think it's fair to say that Adobe is merely doing this to force you to buy copies of FMS. FMS hasn't had a reason to support RTSP, since it's been using proprietary video formats for all these years.&amp;nbsp;So, there probably have been zero plans and few good reasons to take the time to implement RTSP in FMS. However, now that FMS will be getting H.264 broadcast support, it will be able to stream to other clients. This opens up FMS itself to be a platform for media delivery to all kinds of consumers instead of just the Flash player. But... at that point it really isn't FMS anymore is it? &lt;/P&gt;
&lt;P&gt;I'm not sure that Adobe is really wanting to get in the media encoding business right now... but if they did, they would be wise to just flat out buy On2, lower the cost of licensing the encoder below what MPEG-LA or anyone else is offering for H.264 encoding,&amp;nbsp;and then keep all the profit to themselves. Not only would that give Adobe a way to monetize content views and make some additional money off of the player, but they could also be doing their customers a service at the same time if the price was right. Could it be that they are smart and just trying to scare On2 into a desperate low price per share buyout? Probably a bit too much of a conspiracy theory, but if that is the case, I reserve the right to tell you I told you so ;). A &lt;A class="" href="http://www.ft.com/cms/s/2/d5269c32-08b3-11dc-b11e-000b5df10621.html" mce_href="http://www.ft.com/cms/s/2/d5269c32-08b3-11dc-b11e-000b5df10621.html"&gt;rumor was circulating&lt;/A&gt; a while back about the possibility. &lt;/P&gt;
&lt;P&gt;With Microsoft pushing Silverlight as the lower TCO video solution and Adobe not owning it's own video codec, it may just be a requirement if they want to play the TCO game. Encoding Flash based On2 content certainly isn't cheap today if you want to make the next YouTube (try about $3000 per server last time I looked into the pricing for the Flix SDK. I'm not sure what the H.264 encoder costs are for large sites, but Adobe has no control over that and isn't in the patent pool, so they don't make a dime off of the encoding process. For smaller sites, you'll be in the clear with MPEG-4 based codecs:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Nonprofit organizations whose primary purpose is not multimedia do not have to pay licensing fees for distributing MPEG-4 encoded content (whether over the internet or not). 
&lt;LI&gt;Subscription services with fewer than 100,000 users do not have to pay royalties. 
&lt;LI&gt;Non-subscription sites providing free content over the internet do not have to pay royalties.&amp;nbsp; [2]&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Of course, if you want to use Flash Media Server as well to stream the content after it's encoded&amp;nbsp;that's another $4,500 a server... but there will be &lt;A class="" href="http://osflash.org/red5" mce_href="http://osflash.org/red5"&gt;Red5&lt;/A&gt; for that.&lt;/P&gt;
&lt;P&gt;Interestingly, Silverlight is not&amp;nbsp;much better regard to RTSP--though at least they mention they have been thinking about it. Microsoft does have a server that supports&amp;nbsp;RTSP by default (WMP11 and the Windows Media Server components fully support RTSP... actually they completely dropped their proprietary MMS streaming format with WMP11).&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;For streaming, &lt;STRONG&gt;Silverlight only supports&amp;nbsp;http&amp;nbsp;as the streaming protocol&lt;/STRONG&gt;, it will not do the actual mms or rstp protocol. In the beta we differentiate between streaming and progressive download by the mms:// vs http:// monikers. This will be addressed for RTM, while we will try progressive and streaming for both, http:// will try progressive first and mms:// will try streaming first, therefore is you keep these monikers as hints to the client, you will get better perf....mms is really http streaming. You do have the abilty to specify a port by setting your source as mms://server:port/publishingpoint. Since we are really targeting the internet as our primary medium for video distribution rtsp has had a lower focus and is not in the 1.0 plans right now [3]&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;[1] &lt;A href="http://www.6000rpms.com/blog/index.php/2007/08/24/h264-and-flash-too-little/" mce_href="http://www.6000rpms.com/blog/index.php/2007/08/24/h264-and-flash-too-little/"&gt;http://www.6000rpms.com/blog/index.php/2007/08/24/h264-and-flash-too-little/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;[2] &lt;A href="http://discerning.com/topics/audiovideo/video_encoding.html"&gt;http://discerning.com/topics/audiovideo/video_encoding.html&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;[3] &lt;A href="http://silverlight.net/forums/t/586.aspx"&gt;http://silverlight.net/forums/t/586.aspx&lt;/A&gt;&lt;/P&gt;</description></item><item><title>Silverlight Forcing Macromedia to Rethink</title><link>http://weblogs.asp.net/jezell/archive/2007/08/23/silverlight-forcing-macromedia-to-rethink.aspx</link><pubDate>Thu, 23 Aug 2007 04:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:3594264</guid><dc:creator>Jesse Ezell</dc:creator><author>Jesse Ezell</author><description>&lt;P mce_keep="true"&gt;Many Flash developers have been complaining about&amp;nbsp;the choice of On2's codec over a standard&amp;nbsp;like H.264 for years. Interestingly, Adobe is finally adding support for some standard video codecs in the next version of Flash. The question is, how much did Silverlight have to do with this decision? The timing sure makes it seem like a reactive decision. In any case, it's good news for video on the web.&lt;/P&gt;
&lt;P mce_keep="true"&gt;[1] &lt;A href="http://www.kaourantin.net/2007/08/what-just-happened-to-video-on-web_20.html#comments"&gt;http://www.kaourantin.net/2007/08/what-just-happened-to-video-on-web_20.html#comments&lt;/A&gt;&lt;/P&gt;</description></item><item><title>Flash: Now Slowing Down Your Multi-Core PC</title><link>http://weblogs.asp.net/jezell/archive/2007/06/16/flash-now-slowing-down-your-multi-core-pc.aspx</link><pubDate>Sat, 16 Jun 2007 04:00:00 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:2832504</guid><dc:creator>Jesse Ezell</dc:creator><author>Jesse Ezell</author><description>&lt;BLOCKQUOTE&gt;
&lt;P&gt;"As I mentioned in Flash Player Update 3 we finally realized that multi-core CPUs are here to stay. So why not follow the times and take advantage of it? As most of you hard core Flash developers know, rendering is a huge bottleneck. I've seen a couple of blog post complaining that their second core/CPU is&amp;nbsp; not doing anything when they run the Flash Player. Well people, this is about to change in this update." [1]&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I suppose you could argue the ability to split work across multiple CPUs is a good thing... however, this is just a sign that they really just need to start pushing some of this work to the GPU instead of taking up more and more CPU power (both Silverlight and Flash will be using the GPU to some degree with video... why not push a little more down the pipe?). One GPU can do far&amp;nbsp;more rendering than&amp;nbsp;a couple CPU cores, and the&amp;nbsp;gap is only going to widen in the future.&amp;nbsp;I can see how multi-core rendering might be useful, but I actually like the fact that on my multi-core machines the processes that are going bonkers are capped at 100% of one core. That means I still have 50% of my CPU power available to make sure the rest of my machine is still responsive and I can still click on buttons in other apps. Are Flash movies really getting to the point where they need to suck up this much juice? Looks like with the next update of the Flash Player, an over the top Flash movie will once again be able to drag down the performance of my entire machine.&lt;/P&gt;
&lt;P&gt;[1] &lt;A href="http://www.kaourantin.net/2007/06/multi-core-support.html"&gt;http://www.kaourantin.net/2007/06/multi-core-support.html&lt;/A&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;</description></item></channel></rss>