My Headlines

Showing posts with label Dot NET. Show all posts
Showing posts with label Dot NET. Show all posts

Tuesday, August 21, 2007

Flash Video and H.264

We consumers are seeing some really cool things from competition between Microsoft Silverlight and Adobe Flash. Today the Flash plug-in gets a major upgrade to join Silverlight in supporting HD video over the web. The exciting thing is the plug-in will also support playing other video formats including QuickTime. H.264 is supported by major video companies and is great for video and streaming over the web. Apple also is a big supporter of H.264. This really wasn't a surprise that Flash would add this kind of support; I expected this when Adobe Media Player was announced and it supported such multi-formats.


So where does this leave the competition with Silverlight you might ask? I would consider them dead even for web video, but really the 1.1 Silverlight release still shines ahead because of the .NET runtime that has been refactored into it. The one edge it has is the CLR (Common Language Runtime) which is almost a platform itself. The only way I'd consider that Flash has capabilities, beyond Silverlight, would be if Adobe and Sun were to get together and offer a plug-in that integrated Flash with a Java virtual machine.


Someone said to me today, "Now that Flash has high definition video, no one will even bother with Silverlight, because it has nothing people want, it's just a “want-to-be". My first thought was well," Wrong I don't see it that way. You are completely missing the point of having .NET in the runtime".


The CLR (.NET runtime) gives you things like extensibility and core features you expect from an operating system that arguably aren't present in Flash or Action Script at the moment. It's also language agnostic unlike Java. In a world where the operating system is quickly becoming the network and what framework you are running to provide your users with a set of services are make or break, you will start to see the difference in complexity of applications very soon.
It's possible with a combination of Silverlight and GOA WinForms to move entire windows applications (including enterprise applications) to the platform agnostic Silverlight (yes it runs on Mac and PC and soon Linux). Some of you might remind me that GOA also makes a Flash version, but it's not quite the same because of the CLR/.NET runtime. If you use another RIA platform you don't get that same rich set of APIs and functions that almost make it an operating system out of it.


In my opinion Silverlight's .NET runtime almost qualifies itself as a platform agnostic OS. Because of this, if you are in Flash or Flash with AIR your applications begin to look thin, or you have to resort to browser integrated applications to get the functionality. Both are designed not for the same purposes, so it's like comparing apples to oranges with their individual design sensibilities.


The CLR in Silverlight means things run faster (not like JavaScript based web browser applications), and they are ultimately easier to make SECURE. No one has talked about security in RIA's (Rich Internet Applications) yet that much. But believe me when they become common place, who will be better poised to be secure and offer more OS services type of support.
Don't get me wrong, I am glad Adobe brought Flash video into HD and the world of H.264, we all benefit from that, plus the ability to play other movie formats right from that one plug in. With a 98% of the browsers in the world having Flash installed, this will be a major upgrade in capability for most everyone. But why did they add this now? Why did it take Adobe so long, they have obviously been working on this for some time? Why try to cover playing so many video file formats (beyond H.264)? It's obvious that Silverlight is gaining momentum on Adobe Flash. But the reason isn't probably video, though Adobe needed to do this to stay in the game.
Does the new Flash version make everything that is in Silverlight's core functionality obsolete or negate people doing work in Silverlight? I don't believe so, not at all! I believe because of Silverlight 1.1's CLR we'll see a whole new class of capable Rich Internet Applications that compete successfully with Java and gives the web a framework that's really its own OS. That's something Flash on its own still isn't competing with.


I would tell developers and designers to just remember that Silverlight with the .NET CLR (common language runtime) is not just a platform for cool video and animated graphics, the core services it provides really bridges the gap from calling it just a plug-in, to making it full web platform, one that is language and web browser agnostic for development and platform as well, that we are just starting to see the benefits. Now a Windows platform developer can take his full windows application and implement most if not all functionality in Silverlight and have it run just about anywhere. It is a platform that doesn't care if you are on a Windows or Mac box or what browser you are running.
So, Adobe Flash got better, but is it good enough? I would question how rich an API and how functional you can make an Flash or AIR application, versus Silverlight with the .NET Runtime. I think our next battle the industry will see in the world of RIA's and which platform has the best most complete API's and set of functionality. Sure RIA's are new and not that functional yet, but would you rather go with a full featured framework to build your applications that people already build current platform applications daily? Or one that doesn't let you go as deep as you needed or something that is new and barely scratches the surface. I love the CLR and the extensibility and the fact that it's a real "web platform" not just a framework that just gets you as far as taking you out of the browser.


In this sense I think it will be a battle between Java and Silverlight, not Adobe Flash and Silverlight. If you just even look at the functionality, you should think about what can do with a Java application today versus a Flash application. You will see there is a decent amount of disparity of functionality for core services, just like the situation when comparing Adobe Flash and Microsoft Silverlight.


I was hoping today (instead of just adding HD video) that the Flash runtime was to be totally reworked from top to bottom, improving the runtime, making Action Script just one of the possible languages. I'd like to see the runtime reworked to support multiple languages, a better set of core framework functionality that goes way beyond Action Script. I hope the competition continues because we users are heavily benefiting.


Someone asked me today if I thought Flash with HD Video, would trump Silverlight or stop the defections to Silverlight? Until Adobe gets a framework refactored into with all the services of .Net, or partners with Sun/Java to make Flash and Java one big plug-in, the defections will continue.


Who will win the RIA battle? I can't really honestly guess at this stage.. I think the winner will be whoever gets RIA development to the stages where they are just as capable as an enterprise platform application with all the same available services. Whoever gets there first will no doubt win all the marbles. Right now, I believe personally, Silverlight has the win here because of the .NET runtime (CLR). The heart and soul of Windows development now works everywhere. The way I see it, Silverlight is more a competitor to Java than it is Flash, because it's almost an entirely self contained platform. Its original purpose (still in definition) isn't just cool graphics and video on a web browser. Silverlight is much deeper. I think it's Microsoft's recognition that the OS is no longer on the PC but inside the network and web browser. It's a framework that runs on many platforms and gives you services everywhere.


These of course are just opinions and how I see things. Tell me what you think. Have you worked with both? Am I off the mark? Or missing points?


Technorati tags: Adobe, core OS services, Dot NET, Flash, Flash plug-in, H.264, HD Video for Web, RIA, Rich Internet Application, Silverlight

Saturday, July 28, 2007

Dot Net 3.5 beta 2 Improvements for WPF

By Don Burnett

At today's meeting of http://MichiganInteractiveDesigners.org we explored Visual Studio 2008 Beta 2's WPF support. This version has a new final name and is no longer called "Orcas"..

It was exciting to install and start an exhaustive review process.. We found a bunch of new goodies. First thing we found is that the WPF designer is vastly improved. It's so nice it will probably keep most of the developers out of Blend for a while (unless they are die-hard animation geeks), or not require them to enter Expression Blend at all.

image

The biggest win for the new WPF designer is the new language service based Intellisense which works much much better than in Beta 1.

Databinding is improved in this release as well as they have included XLINQ binding. If you haven't already read about LINQ it's a great way to incorporate data from a SQL server or other types of data sources (anything that LINQ supports really and I hear that's very extensible). A lot of developers were clamoring for data binding to SQL server in WPF and this is a very good solution to that need. They have also taken care to add support for data validation, so you can trap data errors and catch thrown exceptions.

TextBox and RichTextBox (aka RTB's) controls are seeing functional upgrades, from the new Undo "history support" to RTB's now supporting things like buttons and other inline elements from things like flow documents.

A few things not related to Visual Studio has been improved about WPF as well, there is now hardware accelerated graphics on layered windows within WPF (in Vista of course). Something that should increase performance for UI generation by quite a bit.

Another XAML improvement is UIElement3D. I have been using the 3dTools.dll for a while now to map 2D interactive content and controls to a 3D surface, now it's built right in and looks like it works great (not a big change from 3Dtools).

Browser based WPF applications (known as XBAP's) are seeing some improved capability. One of the drawbacks to doing a browser based application is it ran in a sandbox, for security and passing data in and out via web services and interacting with cookies were very difficult. That has all changed now, as you can now use Windows Communication Foundation (WCF) in partial trust mode in a browser application and security has been changed so you can now read and write to cookies over HTTP and works in partial trust mode (a feature developers have been begging for). Also better support for pen based input (in the wake of Microsoft Surface) has now been implemented for browser applications. Oh, and if this wasn't enough of an improvement you can now also run an XBAP in Firefox directly (no more reverting to IE 7).

The "App model" has been extended, this is something I was looking for in a later Acropolis CTP but didn't have to wait for long and has been extended to all types of WPF applications. There is support for things like versioning of applications, lifecycle management, discovery and dare I even mention this "ACTIVATION" which is probably one of the most controversial features, but good for developers who need to manage application distribution and usage.

Other things improved: Animation, they fixed frame rates and animation smoothness. Thanks for listening on this one Microsoft, this probably wasn't easy to do.

So that scratches the surface, these are great improvements and it's only beta 2. We haven't had time to look at the new Expression Web "type" support that is now built-in to Visual Studio 2008, but from the looks of it, there are many improvements there as well

Look for more news this week as the Adventure Continues...