CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Raymond Lewallen

Framework Design, Agile Coach, President Oklahoma City Developers Group, Microsoft MVP C#, TDD, Continuous Integration, Patterns and Practices, Domain Driven Design, Speaker, VB.Net, C# and Sql Server

WPF/E requires a Javascript Master?

You know I haven't dug just a whole lot into WPF/E.  I did spend about 4 hours yesterday giving a hard and quick look at it though.  What did I get out of it?  Well, how is something that requires and ties into javascript the way it does ever going to compete with Flash?  Not only that, but you have to have the client install something that will render the xaml (it installed something, this is what I assumed it was, for the vector graphics and animation and whatnot).  WPF/E resources on the web are lacking in info from what I've found, and the expression series of tools website doesn't have any good information either.  All the demos and tutorials are too remedial to make an informed decision about the products and technology.  I spent 2 hours on a tutorial on Expression Blend, and at the end of it, my synchronization of databound elements wouldn't stay in sync like they were supposed to, which was the entire purpose of doing the demo.  I could have done the same thing in VS in about 5 minutes and made it work fine.  The only advantage was that I could slap some nice coloring and layout stuff onto the page with Expression Blend.

BTW, Expression Design is pretty damned slick.  You can create full vector images just like if you were using Photoshop, and export them out to XAML.  I thought that was impressive.  The demo on that was nice too.

So I downloaded about all the demo's and websites I could find on WPF/E, and every one of them is filled with a TON of javascript.  How is that easier than anything else I'm doing?  Seems like going backwards to me.

I also got the trial of Expression Web and downloaded the starter kit.  I thought there was going to be something cool in there, but turns out, there is nothing (that my untrained eye can find) that has anything to do with WPF!  Its just a plain Asp.Net 2.0 website!

Is WPF/E really a viable solution?  Is it going to get widespread use in the future?  My first impressions after spending about 4 hours with it is no, at least not for enterprise applications.  Its use is primarily for media, vector graphics and animation - period.  All interaction with these elements requires javascript, and what appears to be a lot of it, and that's a big downer to me.  I admit I know nothing about Flash except that it looks cool and requires a plug-in to run in my browser.  From a user perspective, WPF/E will be the same thing.  However, from a developer prospective, are you going to quit using your Flash model and switch to WPF/E?  Is it really going to be better?  Javascript and untyped form data... oh joy.  Cross platform is a plus though :)

I went through quite a bit of WPF/E stuff yesterday and I have to say, that's probably as far as I'm going to go with it for quite awhile.  The technology doesn't fit what I do, because I don't build Amazon or YouTube or anything of those websites that would benefit and look snazzy with this type of ability that WPF/E provides.

Those of you have do have more than 4 hours of "getting to know you" time with WPF/E, feel free to set me straight on this.



Comments

Raymond Lewallen said:

How will managed code play into WPF/E?  That's going to add weight to what is supposed to be a very lightweight client driven model.  From what I understand, that's going a bit against the grain of WPF/E.

# February 22, 2007 9:35 AM

Karthik said:

That really sucks. I was hoping WPF/E would finally give us the Flash-like interactivity that our business users are craving from their web applications.  The fact that it was more Enterprisey by being connected to .NET was one of its main selling points for us.  But if its just a rehash with lots of javascript that also requires a browser plugin then we'll stick to ASP.NET and AJAX.

# February 22, 2007 9:57 AM

Ryan Stewart said:

Hey Raymond, I think one thing WPF/E is lacking is a tool that is built specifically for that platform. You can use a combination of Blend and whatever JS editor you want (Visual Studio) but it's tough to really build an application that way. Hopefully Microsoft is working on a solution that makes it easier to develop WPF/E apps end to end without having to be a JavaScript master.

Also, managed code, which won't be in the first release, should help the developer side. And they're planning on keeping the footprint small, which may be what is taking it longer.

# February 22, 2007 10:35 AM

Raymond Lewallen said:

I agree Ryan, a unified tool would help out a great deal, but for me, personally, there better be some serious JS code generating going on when I want that vector model to be interactive.  Seriously, who wants to sit and code all the stuff with JS?  Its a nightmare.

# February 22, 2007 10:55 AM

scottgu said:

WPF/E targets a number of scenarios.  I generally bucket these into three categories:

1) Media

2) Interactive Content

3) Rich Internet Applications

For the first two you actually want a lightweight, JavaScript programming model that is easy to integrate within HTML sites.  WPF/E provides this and delivers a really easy way to add video, audio, vector graphics, and animation within HTML and AJAX based sites.  For people doing this, writing JavaScript isn't a nightmare - but rather really useful glue. :-)

Judging from the discussion above, I think you are primarily looking for scenario #3 - which is more rich internet applications (and primarily for enterprise development).  WPF/E will in the near-future add support for a controls based encapsulation model, and allow you to use any .NET language (C#, VB, etc) to program against it.  I believe this will give you what you want in terms of having a very flexible developer platform.

Stay tuned for more details this spring...

Scott

# February 22, 2007 11:15 AM

Raymond Lewallen said:

Scott,

I can see the lightweight model for the first 2, but its certainly not lightweight for the developer.  I've seen samples of WPF/E that had a total of 200 lines of xaml, yet 2000 lines of javascript.  How does this compare to Flash?

Scenario 3 is certainly where my interests lie.  I'm interested to see what you ship out in the next CTP, but aren't you just moving closer to an XBAP type application at that point?  XBAP - install Fx 3.0.  WPF/E - install WPF subset.  Once you add in the support for .net languages and control based encapsulation, how much does the WPF/E subset differ from that of WPF?

I'm certainly looking for more resources, so point me in the right direction for answers.

# February 22, 2007 12:43 PM

Raymond Lewallen said:

And I can see that JS isn't a nightmare for those who love to do it and design those WPF/E targeted applications.  I speaking merely from my personal opinion.  No doubt designers and scripters are going to love working together to build some very nice WPF/E interactive applications.  The underlying question there is can you convert the Flash developers?  Can WPF/E take over as the mainstream interactive application type?  How do you approach the conversion process of Flash developers to WPF/E developers?

# February 22, 2007 12:45 PM

Jay Kimble said:

One thing I can mention to ya... Check out the Script# (http://projects.nikhilk.net) plugin for VS... A script# project builds JS code from C# and has interface libraries for WPF/E... I'm not saying it's the answer, but at least at the end of the day you are only dealing with C# and WPF/E...

# February 22, 2007 1:58 PM

Damien Guard said:

"Well, how is something that requires and ties into javascript the way it does ever going to compete with Flash?"

Flash uses ActionScript which bears more than a passing resemblence to JavaScript therefore nulling most of this point.

[)amien

# February 23, 2007 9:26 AM

aludanyi said:

I believe WPF/E won't really compete with Flash, it is a technology for enhancing the presentation layer for web applications (ASP.NET). Flash is mostly used for static web design, and not so often for dynamic web applications (I mean dynamic in a sense of data intensive user interaction). It isn't a better Flash, it's market is only in a small part in overlapping with Flash's market. Anyway if you wish to master Flash you have to be an ActionScript master, so no big deal JavaScript is essential to every presentation layer developer (and AJAX make this even more important), WPF/E is just another area one can use his JavaScript knowledge, without learning ActionScript required for Flash.

# February 23, 2007 1:59 PM

Sahil Malik said:

Ray -

XBAP = IE only.

WPF/E = cross platform/cross browser.

And like we had discussed, my personal view is, (ClickOnce + WPF) > XBAP :-/

SM

# February 24, 2007 9:19 AM

box said:

people... just can't someone freaking tell me what is the METHOD/TECHNIQ/WAY  or whatever you want to call it (coz i can't seem to google it) for converting or transforming or JAVASCRIPTING the XAML file made with BLEND so that I finally publidh my finished WPF... thank you ! lol

# March 13, 2007 12:56 PM

TrackBack said:

http://codeproject.com/lounge.asp?msg=1911349
# March 19, 2007 3:23 PM

chuck said:

WPF/E = cross platform/cross browser.

It's not cross platform.  MS is only doing Win and Mac. Won't run on Linux.  MS said 3rd party will make Linux.  Maybe so but when?  I don't want to invest the time if Linux support isn't going to be available at RTM.

# April 3, 2007 7:47 PM

Leave a Comment

(required)  
(optional)
(required)  

Enter the numbers above:
Add

About Raymond Lewallen

Working primarily in the public sector during his career, Raymond has designed and built several high profile enterprise level applications for all levels of the government. Raymond now works as a solutions architect for EMC. Raymond is an agile coach, Microsoft MVP C# and also president of the Oklahoma City Developers Group and Oklahoma Agile Developers Group. Raymond spends a lot of his time learning and teaching such things as Test Driven Development, Domain Driven Design, Design Patterns and Extreme Programming practices and principles, to name a few. Raymond is also an advocate of Alt.Net. Raymond is primarily a framework guy, so don't ask him anything about UI :) Check out Devlicio.us!