My Headlines

Monday, April 30, 2007

Pictures from Vegas/Mix 07 so far...

These are my pictures from the event so far..

From the Keynote

Ray Ozzie from the Cheap seats (the room was GI-NORMOUS)

The guy from CBS

A section from the Luncheon Area (just to give you an idea of enormity..)

The Silverlight session I am supposed to be at right now is FULL..

Ray Ozzie's Keynote (so far at Mix)

Great keynote! He was really focused on the software plus services model.

He talked about Silverlight and .Net 

  • xna
  • wpf
  • asp.net
  • silverlight
  • Compact .net framework.

New silverlight features high definition zooming in plug-in .

Scott Guthrie Speaks..

Silverlight 1.1 alpha now includes a version of the .net framework (a full version) and yes kiddos, it runs on the Mac AND PC.

Netflix and Avenue A | Razorfish Realtime silverlight movie player for online movies.. Chapter control Realtime DVD style special features from the site and instant messaging...

Metaliq.com showed off TopBanana a Video editing program that runs in the web browser over Silverlight and is only 50K in size. It runs on both the Mac and Windows.

Also some really cool stats/video function on MLB.com and CBS News had an app showing future live contributions over the web.

 More discussion in-depth later..

Sunday, April 29, 2007

Really cool 3d Site with XBAP

By Don Burnett

I can't read the site, but this site has some WPF browser apps in 3d on the site and it totally ROCKS..

Check it out

Cool 3d XBAP

 

http://www.cyberdelia.net/

Friday, April 27, 2007

Channel9.ca Controversy continued

According to the poster these are FAKES..

I am breathing a HUGE SIGH of Relief!!

Channel9.CA

by Donald Burnett

Apparently some folks can't wait until Mix for the official announcement, but this image (linked in from Channel9.CA) is all over the internet on various blogs.. 3 Guesses as to what it is.. For the record I haven't even heard mention officially of anything for real about the program this image may represent.. The link eminated from this BLOG which links to channel9 Canada. I found it on a random Google search for Mix 07 and ie8.

 

Another Photoshop CS3 Problem with X64

by Don Burnett

I follow a number of MSDN blogs, and apparently Photoshop CS3 does have more issues with Windows Vista x64 then was first thought. However, leave it to the steward of the Paint.Net project Rick Brewster to have an answer. I wonder what JD from Adobe thinks about this one! Just a little irony going on here..

Well, I am getting ready for Mix 07.. See you guys there..

Thursday, April 26, 2007

Apple: Been There! Done That!

by Don Burnett

I don't usually digress into matters concerning Apple but I thought I should for the moment, just to set the record straight.. A number of people have raised the question if Apple will join the Rich Internet Application arena.. With products like Adobe Flash and Microsoft Silverlight getting press as "Video" platforms, we should take a look back at Apple Quicktime and what we know about it and ask ourselves the question, "is Quicktime an RIA Platform?"..

My answer to everyone is YES! What? That's an astonishing answer, but if you remember back in history a little bit you'll find that I am right. Let's jump in the "wayback" machine to Quicktime Pro (past version) and Flash 5.

A little known feature of Quicktime that has been there for a while is one called "Sprite Tracks" and "Flash Tracks". You might be saying to yourself OOOHHH about now.. Because if you look at the definition of an RIA you'll see that it does the following things:

  • It's Cross Platform (yes, the Quicktime Player runs on both Mac and Windows)
  • It allows for interactive functionality (yes you can place buttons, sprites and animation in your movie)
  • It can be embedded in a web page or can be stand alone
  • it can go full screen
  • it runs on mac
  • it runs on windows

The big deal lately with Microsoft Silverlight is that it's not just a media control but it also uses XAML (a subset of the full WPF implementation) that makes cool video presentations possible wrapped around just about any UI elements that you could possibly want..

I would say that Adobe isn't the first to think about this (even with their own Media Player) and neither is Microsoft.

"Flash Tracks" allows you to add (in timelines), a flash movie as a track, with it's own interactivity (which is anything you could do in Flash already for UI, like buttons and interactivity). This has been used extensively in Apple's world famous movie trailers site to add interactive elements to trailer presentations. I would even go as far to say that they were maybe the first RIA applications ever created. But it goes further than that, besides buttons and input, they can control aspects of the quicktime movie (just like Flash can). In fact Flash can go the other way and import Quicktime to it's format already..

So would I say Quicktime is an RIA itself? the answer is YES and through it's symbioship with Flash already, it may go down in history as the first Rich Internet Application platform without ever even getting credit for it. This is not to say there aren't limits (I doubt you'll see a word processing app ever in the Quicktime player), but it was the first in it's area to meet all the definitions.

If you want to read more about this feature of Quicktime Pro:

Check out the following:

QuickTime Pro: How to Create a Movie With a Flash Track

QuickTime Pro: Capabilities of Sprite Tracks

QuickTime Pro: About supported file types

Live at Mix07

by Don Burnett

Great Shades of Elvis, I am going to Mix

I just wanted to make a post to let everyone know who reads this blog that I will be at Mix 07. I'd like to thank all who have helped me to make this trip possible, because of personal circumstance, I don't get to travel very often. I really appreciate all the help and assistance from everyone involved, thank you. I am very much looking forward to mixing it up, and meeting all those people involved with the great technologies. I am also looking forward to meeting those that write about them too.

There are two things I am looking very much forward to in the agenda. There were over 120 sessions to choose from. All are great and were VERY tough choices. Each track offers something for everyone. One of the most exciting sessions I am looking forward to is integrating asp.net/Ajax and Silverlight. My hope for ASP.NET 4.0 was to have the asp.net server controls render out to both xaml as well as HTML so it could be passed right to the Silverlight plug-in.

The other session I am looking forward to is called "Great User Experiences for Ad-Supported Content" and one of the panel members is David Watson, a great guy that I worked with long ago at a company called Media Station, who is now with ABC. The thing that totally amazes me about this event is the number of high value content presenters that will be there in every session. It is definitely a hit, and I hope it continues for many more years to come.

I will be reporting during the conference some,  but mostly after the conference. I am hoping to get some in-depth time with a couple of product team members and really corner some folks about general product direction. I also hope to have a lot of fun getting to know people and making some new friends for the future. If you will be at Mix and want to meet me my cel # is 734-223-9171. It's best to TEXT message me, as my cel doesn't always work great when there is spotty coverage. I'll also try to be on MSN Messenger during the conference (don@donburnett.com is my IM ID).

Keep an eye on the blog from Sunday through Wednesday if there are any "WOW" events, I'll definitely post them..

Neatware

I am always very excited when companies find new ways to take advantage of the GPU for rendering. This is one that I didn't hear about from NAB coverage but I think we should have. There is a great new video player out there by a company called Neatware that has a new product that takes advantage of the GPU. It's called LadyBug Professional and it looks like this...

So what's it good for,  is a real-time multi-channel digital video mixer with programmable effects. It supports HD videos, customization, and international languages. It is suitable for Home Video Network, Digital Signage, and Surveillance applications.

Quoting their website:

"Playing vivid videos, showing stunning visual effects and super high resolution pictures, Ladybug Player Vista is suitable for many applications such as video remix, digital signage, and home video network." There is a one hundred use download trial on their site. I am really impressed with the quality and capabilities of this player. It really shows off Windows Vista's new media capabilites well. The product's the video engine allows multiple video streams to flow into a multithread pipeline for each channel. Each pipeline applied video splitter and decoders to split video and audio streams and further uncompress media streams. Each decorded video streams are rendered and mixed in the GPU through a programmable shader. Thereafter, the final result is sent to frame buffer of the graphics card to display.

 

 

I really recommend you check this out as it provides a lot of options and has some major implications for multimedia playback.

Monday, April 23, 2007

What the Pundits are Missing about Silverlight

by Don Burnett

It always amazes me when I hear about Rich Internet Apps that the press always seems to go for comparisons of Adobe and Microsoft. They look at the now but kinda are missing the historic perspective. A lot of these tech writers out there have been talking about it as a new video platform versus Flash. Some have even been comparing it to Flex which is a little bit unfair. Why is it unfair? Well here's why... They are completely ignoring ASP.NET and the integration there and what that gives.

I think it's time to stop the apples to oranges thing here and go for the jugular (usually mine! he he) and talk about Flex versus ASP.NET (with ASP.NET AJAX to make it fair).

Microsoft's web technologies are very modular. One builds ontop of the other and they all integrate well together. They take a very multi-layer approach.

 ASP.NET runs from the web server and is a server-side technology. Microsoft AJAX (formerly Atlas builds atop the typical ASP.NET controls and adds new ones). The technology works in just about any browser out there. Now we can add Silverlight to that mix.

Silverlight, like Adobe Flash is a plug-in that sets ontop of the client's browser. Flex is component based (taking advantage of Flash based components and is a server technology a lot like asp.net.  It's been my experience that it lacks some of the database niceties of ASP.NET and Microsoft SQL server. However, it does render out a nice looking display that is cross platform. 

ASP.NET renders it's controls in HTML/Javascript.  Silverlight when working with ASP.NET is basically a "presentation layer" that sits on the client and javascript is used to pass it data and information. 

When we start seeing ASP.NET rendering out it's controls as Silverlight based components, then it will  be more eqivalent to what Adobe Flex is doing.

Silverlight is new, and very much is like a flash plug-in at this point. There aren't Silverlight based components yet. Maybe in the future there will be server-side components that do their rendering out to the Silverlight plug-in, I think that would be mighty cool, or they could just add new functionality to silverlight itself and have the asp.net just keep passing xaml pages as updates to it. Right now though Silverlight is more like Flash (not flex/apollo) because it is at this point a stand-alone thing..

How might an ASP.NET 4.0 Silverlight combo might work? ASP.NET components right now render out javascript/HTML. What if the components also could render out to the Silverlight Plug-in. Remember Silverlight can be full-screen and also composite it's rendering right in with the html (thanks to it's transparency). So you could have asp.net controls that render out both the standard HTML controls as it does now composited with the Silverlight (XAML) display simultaneously for a "composite" display featuring both.

It's a very neat idea and this is what I am hoping for ASP.NET 4.0. A lot of the press isn't really thinking about this possbility, but I think they should because it really shows the uniqueness and the possibility to take existing asp.net applications and make new mash-ups are incredible and they could leverage everything already done in ASP.NET with improved SilverLight functionality.

Sunday, April 22, 2007

Playing Around with 3D and XBAPs

by Donald Burnett

A Feature Request for Visual Studio "Orcas"

Well I have been playing with the Release candidate of Blend and the New Beta 1 of Visual Studio Orcas and all I can say is that I am very impressed. Microsoft has once again rose to the task of making Visual Studio the preminent developer tool. I spend a lot of time these days with webservice APIs and find anything that makes working with them easier a great thing. If you have worked with a web service you'll notice that there are several formats for Web Services. Expression Blend has a very nice XML datasource that can capture the schema and work with any of them graphically and handle databinding. That is the one great thing about Blend, and I don't just mean SOAP and WCF web services.. the Graphical Databinding and the schema inferencing is just one of it's best features.

However if I go to Visual Studio 2005 or even the new "Orcas" beta and lay down a XML datasource, calling a Rest, JSON, RSS webservice API (and there are hundreds, check out programmableweb if you don't believe me), the XML datasource checks for SOAP or WCF and if it's not present, spits out errors that look something like this (even with the XPATH), making me go further into the data to transform it to something useable.

and the error looks something like this..

 

However when I use the XML Data Source in Expression, I get a nice datasource with the XML datasource listed and drag and drop databinding. Like this..

 

Now I realize that Visual Studio Designers don't quite work that way and we are already at Beta 1, but honestly the Visual Studio team should be taking a look at what the XML data source and binding can do in Blend. I am a lot disappointed that the Visual Studio XML datasource isn't as flexible when it comes to looking at and mapping XML data, because it offers basically the same input parameters. I get an error message in Visual Studio, but blend makes nice even with data that doesn't quite fit it's data formats.  I think if they are trying to make Visual Studio better they need to take a few lessons from Blend (and maybe some code). I also have to give it a reference namespace, so if I had code for some other format (in another namespace) I could probably do it. But that seems like more coding and an extra step.

It's very true that half the world uses web service formats that don't follow Microsoft's standards, and maybe Microsoft in their infinite wisdom could make it a lot easier to support these in Visual Studio (REST, JSON, etc.). It wouldn't hurt to open up to the world a little more and not be strictly SOAP or WCF without having to do transformations on the data..

So that's my Question to the Orcas xml datasource folks.. It seems like old school Microsoft that they don't directly recognize the formats that every other company is using.. Instead of the vastly open company that they are claiming to be.. I don't want to spend extra time coding and massaging XML data or heaven forbid having to parse it myself. Now I know you can probably do this in a different way, but how about some consistancy and doing the right thing to make your developers lives as easy as you are making it for the designers.

Why can't you folks in Visual Studio make this as easy and flexible as it is in Blend. Save your people sometime and set up the mapper like in Blend too.

Anyway, if you want a good reason to go into Blend and you are a Visual Studio developer, I just gave you one..

 

XBAPS and 3D

I have been playing around a little with WPF 3D and doing some modeling. Then taking these into WPF and making them work as a "browser based" WPF app. I am fascinated with WPF's great 3D and it's something I am exploring more to find potential uses for because it's 3D is not something available in "SilverLight" (formerly WPF/E).

Anyway, I put some objects on a page and just for kicks played with several types of animations and attaching them to timelines. This one just is attached to the page.loaded event to automatically run and play the timeline. It zooms the director's slate out once in Z order making the object bigger. I also have a timeline attached to the Film Reel and CD's beside it.

I used the StoryBoard.TargetProperty tag to set the two objects up individually to loop and reverse direction and play in a continual loop..

Storyboard.TargetProperty="(Model3DGroup.Transform).(Transform3DGroup.Children)[2].(RotateTransform3D.Rotation)" Duration="0:0:5" AutoReverse="True" RepeatBehavior="Forever" >

http://www.donburnett.com/WPFSamples/Xample1/Xample1.xbap

This is some simple animation, but next I will be putting together a tutorial on using mouse events to use these as 3D buttons in your own applications using the 3DTools library. I am pretty happy with the brushmapping on the objects and how it all turned out. I'll be talking about doing this more in an upcoming blog entry as things slow down..

Tuesday, April 17, 2007

Don's Handy Dandy Blend Developers Toolkit

by Don Burnett

I have been blogging a lot about Blend from the designer's point of view lately. I figured it's time I share with you the toolkit of must have utility program arsenals. I have also included a few Silverlight tools in here, just because I find them very helpful too..

Database Tools

If you are a designer or a developer that doesn't have Microsoft Windows development experience, but you may be a web developer who has done some ASP.NET/Database development the first wall you run into is the database. In ASP.NET you simply use a database connection string (dragging a database source onto the design surface and it sets it up for you and that's all you have to do.

If you are developing a Windows app in visual studio, you need to generate classes from the database so you can databind them to the CLR datasource (sometimes called the Object Data Source in Visual Studio). Now this is because most Windows applications divide things up into three layers, one called the data layer which handles all database access for you (efficiently), a Business layer which handles business rules for your data, and a model layer.

The first problem is generating the Data layer. Now the normal process is to go in and create these class by class using the XSD tool. I personally still find that a task of mortal drudgery. I would like a tool that goes in and does this all for me.

Is there anything out there? Well you are in luck there are two solutions..

CodeSmith Studio

This is the premiere code generation tool for creating multi-layer windows applications and it works from within Visual Studio. Now if you are a designer beware, if you get this tool it's like buying a Porsche. This product integrates with Visual Studio and let's just say if you are not used to working with a toolset or you are uncomfortable in Visual Studio you might get a little frustrated. It's more aimed at the professional developer. I am really hoping they create a version of this specifically for Expression Blend that creates classes automatically and lets you tie right into the CLR datasource in blend for that automagic databinding. Only time will tell.

SubSonic Zero Code DAL Layer

Don't need a Porsche but a Volkswagon would fit the bill? This is hardly a VW!  This tool was originally designed at users of ASP.NET who want to connect a database, and have it generate their own Data Access Layer with classes. To use this tool with Blend I basically go into Visual Studio with my completed database design (yes this supports MySQL, and other common database formats too in case you aren't a fan of SQL server), attach the database connection string, then include the subsonic DLL and wire up the web.config with all the necessary provider info. Then I run the batch class generator, and create the data layer classes using the generator. Next, I export the classes, and move them and the subsonic dll (which I have to reference) into my blend project and go.  Now this tool wasn't really designed to work directly with Blend but I find subsonic really easy to work with. I basically take the output from the batch class generator and adapt it to my needs.

Things subsonic does for you:

  • A Data Access Layer (DAL) builder that requires no code on your part, it builds itself at compile-time with a full object layer and strongly-typed collections
  • A complete utility toolset, complete with Rails-like scaffolding, migrations (DB Versioning), and code generators
  • A dynamic query tool, that lets you use SQL Server and the Enterprise Library without having to know SQL
  • An OR Mapper that extends to views and stored procedures so you're not locked into the OR/M thing

What SubSonic does for you:
  1. Trim hours from your DEV cycle. This not only happens because the code is generated for you initially, but it's also maintained by SubSonic whenever you change your database.
  2. Gives you the option to go full-tilt OR/M, or use SPs/Views. We don't want to tell you what to do, you already know best. We just want to help.
  3. Help your application build itself. With our generators (class, scaffold, and batch-class) your site can build itself in no time. The scaffolding will help you work with your data quickly.
  4. A solid foundation from which to extend. Get your project from idea to prototype in a fraction of the time. That's the strength of this project - using our starter kit you can have a sharp prototype up and running in the merest fraction of what it used to take.

Please note in a non web app you have to reference the subsonic dll and there is a nice help support forum for this tool.. The tricky part is just getting the web project and the web.config wired up so that you can use the class generator before exporting the code to your blend project from the temporary asp.net one.

Check out this support thread in their forums if you have trouble..  Non-Web Subsonic Project Support

There is a walk thru also at this site if you are having problems with it..

DevInstinct.com has the custom tool for integration of subsonic directly with Visual Studio you should download and try it out.

XAML Utilities

HTMLTOFLOW-  This utility lets you take HTML and convert it to well-formed XAML, so you can convert content from html to XAML/XML format..

XAMLSTRINGBUILDER for Silverlight (WPF/E)- This tool lets you encode a XAML text file into appropriate javascript string format so that you can pass XAML files into Silverlight so you can control interactivity and graphics..

Monday, April 16, 2007

Microsoft is Dead, Long Live Microsoft!

By Don Burnett

Last week Paul Graham rather surreptitiously announced that Microsoft was Dead! I am sure this was news to Microsoft and many other people. I avoided joining in the fray of a million or so people and about 40 bloggers who had to comment on this so-called "news". I found it very hillarious because there is nothing further from the truth.  Anyway, I hadn't really seen a response to this that I found totally perfect until today. I love reading Don Dodge's perpective on technology, people and all things Microsoft..

Anyway, Don has came out with the perfect response article that is aptly titled "Since when does growing $4 Billion a year = Dead?". You can read this for yourself on Don's Blog aka "The Next Big Thing" . Anyway if you want to put some perspective on growth revenue, you should read his blog and you will truly get some scope and reality on everything.

Are you ArcReady?

by Don Burnett

Microsoft continually works with the developer community to  improve and provide quality solutions and developer education programs. This year is no exception,  they are putting on a great program (multi-city) aimed at Solutions Architecture.

It's called ArcReady, and is basically a strategy session aimed at platforms, tools, and  practices development. It's real focus is the user experience and creating the next generation of computer software. The program will feature Mr. Chris Bernard, Microsoft's User Experience Evangelist and focus on WPF, WPF/E (Starlight), XAML, and the Expression product line. There will also be discussion of new new technologies from Microsoft Patterns and Practice as well.

The program will also discuss and underscore the business value proposition of  user experience design and development in your projects and how to improve communication with your audience through improved user experience design.

You cannot afford not to attend this session if you are an applications developer, architect, or designer. It's also free and will be in 18 cities across the nation.

Check out the details and register at:

http://www.arcready.com

GoodBye "WPF/E" Hello SilverLight

by Don Burnett

Microsoft SilverlightWell most blogs today and press are talking about Microsoft Silverlight and talking about specs. The new name is really cool. The best source of facts that will tell you what you need to know about this technology (that I have seen this morning so far) come's From Mr. Tim Sneath's Blog.. 

That's a lot to say but it basically tells the story. I have been using this technology on my website for a while now (http://www.donburnett.com/media.aspx) right now if you go there I have the example filler video, but I am going to replace that with a nice high definition video featuring snippits from my long career in multimedia with video.

You might ask why not just use Flash? Well Personally I like the higher definition video and XAML makes great customizable video players and interfaces. In other words you are not stuck with one of the very uncustomizable flash video player components and you can really customize to your heart's content. With XAML you can style your buttons, and totally transform the interface is a way that you have always wanted to do. There is very unprecedented freedom here.

I am really looking forward to seeing more silverlight content, you should check out their Developer Center for some really great and cool samples at (http://www.microsoft.com/silverlight).

-Don

 

Without further adue...

I am going to quote most of the blog entry here at the bottom as Silverlight Facts, courtesy of Mr. Sneath (because you need to know):

  • It supports playback of WMV files on both PC and Macintosh, with many options for interactivity during playback; with just a couple of lines of code, you can provide a platform-neutral way to handle all your movie files. Silverlight supports full-screen 720p video and offers seamless transitions between full-screen and windowed mode without losing your position in the video (something that media sites are crying out for today). 
  • By separating markup (XAML) from code, Silverlight provides a familiar web metaphor for designers and developers. You can embed XAML directly within an HTML file if you want a simple, monolithic solution, or you can keep the two separate to enforce a delineation between different web development roles.
  • Silverlight and HTML integrate seamlessly together. Every XAML element can be accessed or manipulated from the same client-side JavaScript that would be used to interact with any DHTML element: there are no artificial boundaries or barriers, and you can even overlay HTML elements on top of Silverlight content (simply by creating a windowless frame). We'll also make it very easy for an ASP.NET AJAX developer to add Silverlight content.
  • You can embed XAML directly into your HTML pages; there's nothing binary or opaque about the format. There are only three steps necessary to add animation or media to your RIA application: (i) include a standard JavaScript file in your HTML header; (ii) call a function to create the Silverlight object anywhere on the screen; (iii) add some XAML content (an animation, some media) for runtime delivery.
  • You have full runtime interactivity with Silverlight content. The contents of the XAML file can be completely server-generated, to contain information populated from a database. From JavaScript, it's just a matter of calling the createFromXaml method to add or remove elements dynamically at runtime. There's nothing that you can only create or manipulate at design-time.
  • Silverlight is just a 1MB download on a PC (slightly more on a Macintosh because the universal package contains both Intel and PowerPC versions); it supports Windows XP and above, with Windows 2000 support to come.
  • Silverlight is blindingly fast - for example, you can play many videos simultaneously without stuttering or dropping frames (subject to network bandwidth, of course). We're introducing a new video brush in Silverlight that allows you to use video as a texture for any 2D object (a rectangle, an ellipse or a path). This is going to allow designers incredible power to use media in new ways that have never been accessible through other existing technologies.
  • Silverlight is both client- and server-agnostic. There's no difference between the Macintosh and PC runtimes; you don't need any Microsoft software on the server if you don't want to - you can deliver a great Silverlight experience from an Apache / Linux server to a Mac OS 10.4 client.
  • Silverlight is almost 100% upward compatible with WPF. Animation, 2D vector graphics, media, text - they're all present in Silverlight and the concepts you've learnt in WPF carry forward (although Silverlight is a subset - it doesn't support WPF features such as 3D, data binding or templates). You can use the same tools (e.g. Expression Design) to generate content for Silverlight; you can take XAML from Silverlight and use it in a WPF application when you want to scale up and take full advantage of your local machine."

     

     

     

  • Saturday, April 14, 2007

    The Faces of Twitter

    by Don Burnett

     

    Twitter has inspired lots of people to create clients for it, not just on Mac, but on Windows as well.. It's a very busy field. Let's take a look at some of them.

     

    Twitter Apollo Application (Windows and Mac)

     

    Twitter Camp Apollo Application (also Windows and Mac)

    Twitteroo (Windows Application)

     

    WPF Twitter (Windows, the name says it all)

    TriQQr (Windows App - Not WPF)

    Twessenger (Windows Live Messenger)

    TwitBox (not wpf)

    Whooo! are you Tired yet? There are quite a few left but I decided that I think I will stop here. If you are looking for more of them I'd check out lockergnome's list of over 76 twitter apps.

    Just looking at these you can see just about the same feature (the public timeline) all implemented using different UI standards.. When I started my blend tutorial I wondered if anyone was working on this stuff. I see now, that there is a virtual army out there. I hope you found the tutorial how-to I provided some insight into working with web api's (an obviously popular thing today). 

    Anyway, the design decisions are kinda interesting to review. What do you guys think?

    Thursday, April 12, 2007

    HTML to XAML Flow Document (yet another GEM)

    by Don Burnett

     

    Here's another great utility. If you have seen the Seattle Post-Intelligencer, or the New York Times Reader you know that they are WPF based and they use something people are referring to as the "reader SDK". Xaml offers you great formatting and control over content. The tags it uses to control these things are very similar to HTML, but not really the same thing. So if you have HTML content you want to use in the XAML, you'd need to convert it to the XAML markup tags.

    Well the folks at the WPFSDK have came to the rescue with a conversion utility.

     

    You should really check this out as it's a very useful tool.

    Snipshot to the Rescue!

    by Don Burnett

    Today I noticed yet another entry to the web, when I was reading someone's ridiculous posting claiming Microsoft was dead. The only real revelation I came to is the person realized that he probably could do all his computing needs without a Microsoft product on his machine. This is something I have known for years, but apparently it's new news to those who haven't used other operating systems.

    Anyway part of the document said that even Photoshop could be done on the web and they provided a link. Well I kinda baulked at that and went to the link anyway.

    Okay well Adobe you are safe, it's not Photoshop by a long way. Snipshot is a very nice tool for basic image editing including cropping, format conversion, and basic image processing stuff (the kind of thing you can do with free applications like Photoshop Album).

    Snipshot Features:

  •  Firefox extension to put Snipshot in your right-click menu
  • free API lets you use Snipshot for your own website
  • No download necessary—100% browser based, no plug-ins required
  • One-click import from any web site (including Flickr) with our bookmarklet
  • Save to a free permanent URL at WebShots or to your Flickr account
  • Save as GIF, JPG, PDF, PNG or TIF
  • One-click enhance improves most images
  • Basic editing tools like crop, rotate, resize
  • Basic image adjustments like contrast, brightness, saturation, sharpness and hue
  • Unlimited undo and redo (Ctrl+Z and Ctrl+Y, or ⌘Z and ⌘Y on your Mac)
  • Nondestructive editing—we always work from the original
  • Edit big pictures—up to 10 MB, or 25 megapixels (5000x5000 pixels)
  • Import PDF (first page only), EPS or SVG
  • The best feature may be the product's API.. I am looking at it right now to see if I can incorporate it into my own website and hopefully WPF/E application. It seems simple and easy so far. 

    With Snipshot people can do things like upload photos to company websites and make the pictures look better without opening an image editing tool and they don't have to be familiar with image editing and that's really cool.

    Wednesday, April 11, 2007

    WPF/E Javascript Gem

    by Don Burnett

     

    Gavin Gear has just wrote a small tool that will save an inordinate amount of time. If you do WPF/E development you know that WPF/E is a control that gets embedded on the page that can be scripted thru javascript. You can pass new xaml code in through javascript to the WPF/E control for rendering by the control using the

    CreateFromXAML()

    Well getting that XAML code in a format javascript will pass to the control can be a royal pain especially if you have a lot of it. Well not anymore! Thanks to Gavin Gear we now have a tool that formats the XAML into parsable javascript to pass the XAML into the control in a scripted way..

     

    This is quite a nice little tool and I wish microsoft would include it in the WPF/E SDK as it's a real time saver..

    Check it out at Gavin's Blog  for more details or

    download it

    Monday, April 9, 2007

    WPF/E Users... Stop what you are doing...

    by Don Burnett

    Okay stop what you are doing, run over to the ADOguy's Blog and download his WPF/E Template for Expression Blend.. You will be glad you did..

     

    WPF/E Item Template for Expression Blend

    Sunday, April 8, 2007

    Programmers aren't Designers but it doesn't mean you shouldn't try!

    by Don Burnett

    Recently on another blog I publish about Microsoft adding Expression Blend and Expression Web to MSDN. I reluctantly said I thought it was a good idea Microsoft is providing their designer tools to developers.. The developer community should understand and be able to use the toolset. Why is it a good idea?  Mainly to improve windows platform applications and to make them competitive with Adobe Apollo and MacOS X applications they will have to embrace design. That means (in a lot of cases) throwing out old design methodologies and  specifically their Winforms applications.

    When I tell a developer he shouldn't be the "designer" I get mixed signals.. That's because everyone believes they are an "artist" and yeah just because your UI doesn't suck, doesn't make you a designer.. 

    Anyway, here is my response to this guy's comments. I think I raise some good points about this..

    "... I actually agree with you, the developers need to start embracing design too. Giving them the tools is a very good idea to start the process moving.

    When you mention: "Most of our dev shops don’t have or will not budget for designers, so I hope MS is planning a lot of dev ed. "

    You make a very good point in that they don't embrace designers, and they should and one of the things the developer shops will need to do is start making room for the designers and hire them and pay them. That's a sad fact of life, most Windows programmers don't understand the same principles of design that someone who is educated in "design" does. It also makes most "Windows Designers" starving artists. Development teams for Windows now need to add two new positions to their team and need to learn to work with them. Those two positions being a "designer" and a "design integration specialist". Programmers in general do not make good designers because it's a totally different methodology of thinking. 

    The "design integration developer" (also sometimes known as the interaction designer) takes the design and wires it up to the developers functionality. This role is very important because the integrity of the design must be carried over.  In Windows design this rarely happens today due to how restrictive Winforms really is for user interface design. With WPF this could change. Either way as a team hiring manager you really need to be thinking about hiring a Designer and a Design Integration Specialist from the start.

    Art folk (designers) don't even think like programmers (in general) and it's a very different mindset and you can't usually get there from here. In my over 20 years I have only seen a very few people (less than 10) who could do both well. Programmers think of logic and code. Artists think about the asthetic. 

    That's been the problem all along with Windows applications, there hasn't been room for the designer, but if you look at Adobe and Apple this isn't the case at all. Their products looks and works so much better because they thought about design first and foremost and programmed around the designer's work.

    Microsoft needs to hammer this point home to their developers. My suspect feeling is about two years from now when all the developers who are trying to be designers release applications that look and work like randsom notes (remember when typefaces/fonts were new on the mac?). After many failed attempts and programmers keep releasing WinForm Apps instead of WPF and their sales decrease, then the development houses will see the need for the designer and start embracing them and hiring them.

    That's why  right now the people best poised to take advantage of creating new Windows applications with WPF are the design firms (like IdentityMine, Thirteen23.com, and others) because they know this.. Most of them have been developing on the Mac and other design platforms (such as Adobe) where they know design comes first.

    Sure I am not saying knowing a little WPF won't help you look better with your apps. Microsoft has raised the bar. But designs for applications like you see on the pages of these design firms is a completely different process than you go through for design, interaction and UI design.

    You will have to go through and learn that process, and if you don't have the "designer mindset" you won't be as successful and your application will suffer. I am really hoping that Microsoft starts seeing that a good MSDN coding demo isn't the same kinda of presentation that is needed for the design community to embrace the product. See this article if you think it is:

    http://synapticburn.com/comments.php?id=233_0_1_0_C

    The same goes for a developer trying to be a designer.. It's all about focus... You really can do one or the other, and developers probably should open themselves to a designer deciding what your app should look and work like. That's what happens with the very successful development houses on other platforms like the Mac. Most Adobe developers are designers to start with and Apollo is aimed at the design community by default. Most programmers I know program because they like the idea of control and crafting the whole application themselves and probably will be resistant to the change. 

    Why is this change important though? Because it really will affect the overall successfulness of the Windows Platform as a whole. Embracing change isn't easy, but with new platforms such as Apollo where the designer can generate a very full featured application that runs cross-platform (which means the same app right now runs on the Mac and Windows), we will start seeing less and less (real) Windows platform applications as the lines start to blur and robust-ness starts equalizing more.

    Remember the old saying "Change or Die.." we really are there with this, and a lot of folks aren't seeing this yet..

    Saturday, April 7, 2007

    Twittering Around in Expression Blend Part 1

    by Donald Burnett

    Expression Blend has some really cool features that expose a lot of web functionality. Today I will start a tutorial about how to create a WPF application  I have been using a service called "Twitter" one of my friends called it the greatest internet "stalking" program in the world. Sometimes your friends or associates need to know what you are up to and what's going on. Twitter works from your instant messenger or your phone.  One of the nice things about twitter is it offers both a public and private log. People only know what you tell them about what you are doing, and you can have private info available to others that you specify.  It's great around work or even if you have friends that want to see what you are up to and find yourself too busy to talk to on the phone.

    Anyway let's dive in.. For this first tutorial you will need just Microsoft Blend, no visual studio required. So lets dive in, open blend and create a project in C# or VB.net.. Right now since we won't be doing any code-behind pages or any customization you won't really need it. We will just be focusing on the XAML and XML.

     

    Step 1: create a new project

     

     

    A little background on the twitter web service which we will be connecting to and pulling information. It is a webservice based on a very old and simple API called REST. REST is a very common web service API, it's used by Amazon, Google, and a number of webservice providers, it sends data out in standard XML, JSON, RSS and ATOM formats. Microsoft was really great with their databinding inside blend and you can literally attach an XML data source from the webservice and instantly do one way or two way data binding to the application. Binding allows you to pull data from the web service or push it back to it if you have permissions of course.

    Step 2: create an XML datasource

    In the Data area in the lower right corner of the blend screen click on the +XML button

     

    Step 3: in the datasource dialog type the following:

    If you are having problems reading it, type what you see below:

    http://twitter.com/statuses/public_timeline.rss

     

    Step 4:  Make sure your schema useage is set correctly (click on the down arrow before the okay in the dialog box) make sure it's set to infer schema from XML Data, there are other options here including setting up an XPATH but we'll cover those in a later tutorial.

     

    Step 5: Click Okay on the dialog

     

    Now you have just created your XML datasource, and if you look down in the right corner you will see the fields and the datasource ready to databind..

    Note: it polled the datasource and apparently came to us as an RSS formatted feed..

    The next step is filling in the application with data and binding..

     

    Step 6: drill down to the item (Array) line and then click and drag and drop that on the blend design surface..

     

    Step 7: A menu item will pop up when you drop onto the surface you will then get an opportunity to select the type of WPF control you will bind to. Since this is a list of data I am going to select "LISTBOX".

     

    Step 8: Next a list box will pop up with ITEMSOURCE selected, and it will ask the type of databinding (one way, two way, etc.) leave it at default for this tutorial.. For now just click OK.

     

     

     

    Step 9: Next another dialog will pop up asking you about how the data should look when inserted in the ListBox..

    Note under item there are a number of drop downs, it allows you to bind the fields from the feed into different types of XAML controls. For now Item being a stackpanel is fine and the fields: Title, Description, pubDate, guid, link all can be just a TextBlock which is the standard text control.

    Click OK

    Step 10:  The design surface now has a list box with some sample data polled from the source, and you are done, you have just pulled data from the webservice.

     

    Step 11: To test this works now go up to the project menu and select test project

     

     

    Step 12:  your application now compiles and runs and bam you have a feed from Twitter, it's their unauthenticated feed public timeline

     

    You will notice that it might not be very useful but it is a working example of how to access the twitter API.. If we wanted to check out  what your friends were doing from a certain timeframe (say since tuesday march 27, 2007)  you could just go back up to step 3:

    Where it says URL for XML data type the following instead:

    http://twitter.com/statuses/friends_timeline.rss?since=Tue%2C+27+Mar+2007+22%3A55%3A48+GMT

     

    The twitter API is very open you can specify just one person (if you want to spy on them) or a number of people. We will work on this during the next tutorial session. If you want to learn more about the Twitter API in the meantime you can check out the API documentation at:

    http://groups.google.com/group/twitter-development-talk/web/api-documentation

    They have more examples about how to poll the web service.  All of this without even entering Visual Studio for anything pretty neat huh?

    If you want to see the code generated (it's pure XAML) see below:

     

    Code Sample 1.

    <Window
     xmlns="
    http://schemas.microsoft.com/winfx/2006/xaml/presentation"
     xmlns:x="
    http://schemas.microsoft.com/winfx/2006/xaml"
     x:Class="TWITTER_APP.Window1"
     x:Name="Window"
     Title="Window1"
     Width="640" Height="480" xmlns:d="
    http://schemas.microsoft.com/expression/blend/2006" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d">

     <Window.Resources>
      <XmlDataProvider x:Key="rssDS" d:IsDataSource="True" Source="
    http://twitter.com/statuses/public_timeline.rss"/>
      <DataTemplate x:Key="itemTemplate">
       <StackPanel>
        <TextBlock Text="{Binding Mode=OneWay, XPath=title}"/>
        <TextBlock Text="{Binding Mode=OneWay, XPath=description}"/>
        <TextBlock Text="{Binding Mode=OneWay, XPath=pubDate}"/>
        <TextBlock Text="{Binding Mode=OneWay, XPath=guid}"/>
        <TextBlock Text="{Binding Mode=OneWay, XPath=link}"/>
       </StackPanel>
      </DataTemplate>
     </Window.Resources>

     <Grid x:Name="LayoutRoot">
      <ListBox Margin="115,59,67,73" ItemTemplate="{DynamicResource itemTemplate}" ItemsSource="{Binding Mode=Default, Source={StaticResource rssDS}, XPath=/rss/channel/item}"/>
     </Grid>
    </Window>

    Friday, April 6, 2007

    Welcome to Don.NET

    Welcome to my first posting. This blog will focus on designing for the user experience and will cover topics such as Microsoft's Expression products, WPF application design and XAML.