The Blend-ed Family

Posted April 4, 2007 by donburnett
Categories: Uncategorized

by Don Burnett

If you talk to a designer you’ll hear many takes on design, everyone has a unique approach to the subject. That’s why you get diversity. If you talk to a programmer about programming you will get a significantly less diverse answer. Well he might talk to you about open source or closed source, he might talk to you about programming in a language (pick any of the 4-5 popular ones out there). However the likelyhood of talking to another programmer and not getting a bit of the same “content” mentioned in the conversation will be less likely.

I have been reading different people’s views on design tools and what they are. I hear a lot of things from both sides of the isle, one such polar opposite view from mine is from a guy named “Dave” who seems to be in the UK.. While his views are quite a bit different than mine, I still feel he does make some valid points from people of a certain point of view of a designer with no windows development experience.

My design experience comes from years of work and windows application design, including working for a company where they were scripting storybook screens with lots of little clickable hotspot animations and games and singing “M-I-C.. K-E-Y” or something like that all the time.. So I admit I am very subjective about this stuff oh since probably 1994..

While I was with this company I learned a lot about how people interact with computers including those from three years old to sixty years old.  It “instilled” upon me just how very important the user experience is. So things like click-throughs and making things as easy to navigate as possible, I find not negotiable.

One of the things I have always thought needing changed about Flash was that it was more timeline oriented than event based, and there was no way to describe all the elements of the screen and see them because of the dependence on timelines. Flex and Flash 9 adds a screen description system,  but until lately Flash was very much looked at as a timeline based system.. Events vs Timelines has always been a struggle for the interactive developer. I believe that WPF and Blend correctly makes events and triggers and timelines have the appropriate heirarchy.

When I started diving into Windows development this “screen description language” was still missing, but in it’s place was Winforms.  It was component based but at least it let you assemble a UI out of components that were layed out visually. It didn’t offer much in the way of the things I wanted to improve about how people use the applications developed for it. It was the winforms way or the highway until XAML and WPF came along.   On Windows development has always been about “events”.

When Microsoft started looking at what the next version of Windows UI would have to be like to be competitive with everyone else and they realized they could have a UI that was more open and flexible to move the platform forward.

Microsoft wasn’t out to clone some other platform they wanted to improve everyday Windows application development. They wanted to make them more internet aware, give them all the UI coolness that has been attracting people to other platforms like Flash, and of course the cool Apple style user interfaces but focused on not some generic extensions but how they could improve the standard windows UI.

Did they do this? Mission accomplished (in my opinion)..

The quality of the applications that have been showing up as proof of concept are attracting many people to writing new Windows applications however mostly people not familiar with the programming model behind Windows. Such as that is, WPF applications still have to be written like a Windows application. How difficult is that?  Well there is still a bit of a learning curve over writing a web site application in something like ASP.NET.

In a data driven website you usually have these minimum steps,

  1. Create the database
  2. Design the Web Interface
  3. Connect to the database and wire up the pages (databinding with a connection string)
  4. Start testing

 

 

When creating a WPF Application the process is different

Designer:

  1. Creates the UI design in your graphics design program
  2. Export Graphics to blend
  3. Create custom screen elements interactivity and components and style
  4. pass the completed UI to the developer

Developer:

  1. Take the UI project
  2. Create/Connect to the database
  3. Create your datalayer
    1. Create custom classes for your datalayer so you can represent Datasets and Tables as objects.
  4. Create business rules layer
    1. Connect busines rules to your datalayer classes
    2. code your application functionality
  5. Wire up the UI and DataBinding to your presentation layer
  6. Start testing

Where does Microsoft have a lot of work to do with WPF?  Well mainly with developer education as they try to make Windows application development more friendly.

WPF was not designed to make Flash, Flex or Apollo runtime apps, it was designed to make Windows application development more friendly.  Do they deliver on this? The best person to ask this of is a Windows application developer.

So where in this process will for instance a web developer trying to be a WPF developer go wrong?

Well lets see, if you are a web developer you might be asking yourself, well I know how to use a connection string and connect a web page to a database and databind, unless you are using the XML connectivity in Blend you might ask “where do I wire up my SQL database?”

The answer is the CLR object data source…

You can find a great tutorial in the Blend RC help system under “Home > Data > Create a CLR Object datasource”.

You might say what’s this? It’s unfamiliar to me, I usually just connect to a datasource through a data connection string and databind right to the onpage controls.

In Windows development there are multiple ways to access data sources and code them for efficiency. In a normal Windows application people create multiple  layers of code. One is a data layer, the other is a business rules layer, and a presentation layer.. The usual method is an ADO.NET datasource which talks to the datalayer. In a web application most people just talk to the database directly over ADO.

In an effort to improve efficiency of data access ,Windows applications usually have a layer of code that does all the talking for it. This is the DAL (Data Access Layer). Microsoft has been watching the fact that people are talking to data from other things than a SQL database lately and decided to support more than just that, so we now can do that one layer of abstraction higher with the object datasource. This lets the datalayer efficiently handle data easier and you don’t have to think about anything but the data as objects itself.

So how do you do it then? You create object “classes” that represetn the datatables and datasets as objects you call and work with instead of working with the database directly.

So you worried yet? This isn’t as hard as it sounds. Visual Studio gives you the tools to easily auto generate these classes (XSD, Schemas and others). I was able to do this in about 30 minutes and it’s very easy using the tutorial in blend.

Then after you are done with that (you just created your data layer) then you can use Expression Blend’s CLR object data source. You just reference the layer you have just created and then start binding your data right to your application.

Microsoft has made data connectivity very easy with Blend, but you do have to understand the layers of code in an Application and a little about programming and making “classes”.. I agree it’s not as easy as drag and drop or a timeline, but the tools make it very fast and not that bad and you don’t have to be a geek who knows much about constructors and delegates etc..

Yes, it’s a little different but actually quite easy and most developers will clue in quite quickly. Designers however will just have to do a little bit more to understand the design process but not very much.

I actually like the CLR object datasource because it means that at the level of implementation data can come from more diverse sources other than ADO.NET and it’s as easy to use as the XML datasource as well.

Is this a 5 year step backwards? Well I don’t think so. I would just say BLEND is not Flash and neither is WPF, and never was intended to be.  So stop making the comparison, and if you know of other people that are, well get them to stop too. It’s doing the whole platform comparison a disservice. If you understand Windows development it’s a big leap forward and a makes Windows development a lot easier and of course way more powerful.

Will you want to use WPF instead of Flash or Apollo? If you are doing fullblown Windows application development it’s definitely the way to go.  Otherwise, If you don’t mind a different approach and a different toolset you’ll find that you are very productive at creating Windows applications than ever before in history with these new tools. The applications you can make can have the feature richness you are used to in a real application, not just an RIA.

Anyway, I’d say just because something’s a little different don’t stop, or get lost. Keep at it slowly and you’ll get there quicker than you expect and be able to have a bigger arsenal under your belt than ever before.

I would also say click events in XAML and C# or VB.Net aren’t difficult, they work just like button events have always worked. I don’t see Blend as full blown development environment so things like this (which requires Visual Studio integration). People who don’t understand the event model which is again that of a Windows application, not an event on a timeline will make you very productive very quickly.

I would just say anyone who is a “true designer” should probably investigate a few things about Windows development before diving into Blend.  You should at least understand the concept of a Business Rules Layer, a Data Access Layer, and the Windows Event Model. Then you won’t feel so lost or overwhelmed and you’ll find yourself more productive.

I don’t think it’s true that Microsoft just sees Flash as “gaming and animation” environment, I think they see it as a path to robust windows applications that are on par with everyone else and will see Windows developers not as easily “migrating” to other platforms when they can produce the same amount of sizzle with something they already know and understand.

I do agree that Apollo ups the anti, but doesn’t have the depth yet of the Windows api’s for flexibility due to it’s need to be using features in it’s framework. WPF 3D is just one example of stuff missing. 

When you go to a system that has an event model, objects needing referenced and mapped there is a certain amount of pain in learning all of that, but it’s actually no different than the flash/actionscript people who will need to learn Flex 2 which they will have to move to for effective Apollo development and using an IDE similar to Visual Studio (okay in a generic sense, very generic) in Eclipse..

I also believe that for web browser applications Expression Web leaves Dreamweaver far behind in a cloud of dust and legacy plug-in features which people don’t use anymore..

Also I beg the question, if you weren’t creating a Windows WPF application where would you find a use for WPF anyway?

WPF and WPF/E are very different animals talking to different layers and handling things very different from each other..

Advertisements

Microsoft Relents! Expression Products come to MSDN

Posted April 3, 2007 by donburnett
Categories: Uncategorized

by Don Burnett

Just when you thought it was safe to come out of the water, Microsoft has relented and given Expression out to MSDN subscribers. Personally I was hoping the product would stay within the design community but I understand Microsoft’s need for it’s development community to understand the products better and embrace them as part of their workflow environment. It will enhance Microsoft’s acceptance of these tools.

This reminds me of the days when Microsoft had “SiteBuilders” and special tools for web designers, later we were forced to meld with MSDN..We were all disappointed when those little site builder level logos ended up meaning nothing after we had to earn them.  

I really hope this all doesn’t mean that Microsoft is giving up on keeping their  “Design Division” a separate entity because the changes we have seen signal a very different path for Microsoft that everyone has been very approving of. I hope this doesn’t signal a return to “past” ways of working.

Either way this is a good deal for developers, though I for one think they should have had to pay for these just like the designers who don’t code do as well. I know that’s not very friendly of me, but I think Expression Studio means long term enhanced revenue for Microsoft and I think MSDN folks should have to pay for these tools just as they would if they bought the Adobe Studio product. I would also note that Expression Design wasn’t announced as part of the MSDN bundling.

If you want to read the official announcement it can be found at..

Expression comes to MSDN

AROS finds a Home

Posted April 2, 2007 by donburnett
Categories: Uncategorized

by Don Burnett

Well for the past two years I have been watching a new operating system grow out of the reminants of the Amiga community. Today for the first time I was able to make a new pc out of scrap hardware from a number of older systems I own and make a working machine out of it. I could have easily installed a Microsoft operating system on it, and who knows maybe in the future I will, but I do like keeping an eye on other systems.

 

AROS runs on very cheap generic x86 hardware. I took a CPU that was about 3 years old added an Nvidia FX graphics card and downloaded the ISO, and boom in about 5 minutes I had the hard drive partitioned and was staring at a very high resolution screen and UI that looked a lot like Old AmigaDOS 3.x/Workbench3.x but higher resolutions and all those enhancements I have missed starting with MUI (the magic user interface).

What’s new with AROS over the last few months? Well USB 1.1 support is one thing, a networking stack based on AmiTCP is another along with support for ethernet cards and wireless.

Aros has grown significantly and is seeing much development in Europe. I have been wondering when this OS  will become a watershed, and it looks like we are approaching this very quickly.

 

There were many fans of the original Commodore-Amiga platform because of it’s multi-tasking, multimedia features and OS design. AROS brings  a lot of the original OS design concepts that made the operating system popular. For many years with the original architecture you could just here people ask the question, “So why use it?” and the answer was it just works better.

AROS will probably never become my “ONLY OPERATING SYSTEM” but it sure brings back a lot of the things I liked about the first computer I ever loved.  Some people are closet Linux and BEOS users, I am a closet AROS.  I like it because it’s really great technology created by people and for people and community driven and created and it’s fun. When I do stuff outside of work I like it to be very different than work and AROS fits that bill for me. It’s a great hobby OS and maybe someday could be a lot more.

My Mix’07 Wishlist

Posted March 27, 2007 by donburnett
Categories: Uncategorized

by Don Burnett

 

Here’s my wishlist for Mix’07 coming up in a few months.. Please note these are my hopes, not anything I have heard officially or unofficially. This is just a wish list, let’s see how many comes true. Again I haven’t heard of any of this offically

 

  1. Microsoft Dot Net Framework 3.5 announced
    1. DataGrid with Xaml Databinding support, and other winform equivalents that are missing, etc..
    2. Support for WPF XBAPs in Mozilla FireFox
    3. Improved WCF integration with XAML
  2. WPF/E improvements
    1. Databinding in XAML
    2. more winform equivalent controls
    3. Text and input controls
    4. 3D support (software only on the Mac)
  3. Expression Blend
    1. Improved WPF/E Support
    2. Interfacing changes more themeability in the interface
    3. Better Visual Studio WPF designer integration
    4. Enhanced WCF and webservices support in the designer (open a web service and directly databind in Blend Designer)
  4. Expression Media
    1. Gold 1.0 product
  5. Expression Designer
    1. Features missing from the Original Expression product aimed at artists for deisgn work comes back to the new interface..
    2. More WPF/E XAML function on the export..
    3. HD photosupport
    4. onionskinning and animation
  6. Expression Web
    1. WPF/E support plug-in, no more going to the SDK for aghost etc..
    2. A rich media plug-in that handles flash, etc.
    3. Customizable toolbox (ASP.NET controls available that aren’t in your GAC) and automatic recognition of user-installed ones (like Visual Studio’s VWD)
    4. Expression Web  gets a new UI, more in line with Blend and the other expression application.

Okay these are just wishes but I wonder how many of them will come true. I know a lot of people who use the toolsets now are clamoring for this functionality.. I hope we at least see a couple of these items hit reality soon..

Apple TV makes it’s debut

Posted March 26, 2007 by donburnett
Categories: Uncategorized

by Don Burnett

Well AppleTV has made it’s debut and shortly after in a moment of internet mayhem and DMCA occlusion the boot screen animation and most of the graphics made their way to the internet on various websites. Which since a ZDNET blog post have now disappeared. Gotta give those Apple guys credit for plugging up the holes instantly.

However that hasn’t stopped Unix hackers who have already put up and AppleTV Hack Site. Some of the functionality is nice, someone has already described how to boot the OS from a USB key. Other things include booting an apache web server and enabling remote desktop.

If you want to know more PC Magazine has a review of it.. There were several points I didn’t agree with however..

 

  1. that Xbox Live has less content available. Sometimes less is more, I think the offerings Microsoft has up there are very strategic and winners. Also, the resolution (at least on my X-box 360) is better for content playback.
  2. AppleTV doesn’t play NFL 2K7 or Dance, Dance Revolution: Universe at the moment. Although some enterprising hacker will no doubt port SDL to it and a bunch of unix/linux games.
  3. Their method of communication with the PC or Mac looks possibly  like “infringement” to me. You have to type in a 5 digit number to connect the two. Considering that this is an Apple product I thought they’d make this more plug-n-play. That isn’t the easiest setup for streaming. Apple could have done better and made you not think about it. Instead it’s a copy from the Microsoft Media Center Extender Playbook. This stuff should link up by just recognizing the device out there and asking if it wants to connect.
  4. I miss dvr functionality. I think that should have been a feature from the beginning. I wonder what enterprising hacker will put the TiVO software on this system and enable TiVO playback first..

 

I really look at this and wonder what the cable company is thinking about this product. Apple basically has their own “Pay Per View” box now for $300 on conceivably every TV in America, and besides the monthly broadband fee they aren’t getting their usual monopoly cut.  Because of the ease of use factor I predict that the cable companies will be the next to try to partner with Apple.

Verizon already has entered the IP based streaming tv market with their FiOS product that streams television over broadband for a cheaper $42.99 a month and you get over 200 channels. Sounds like a great deal, they don’t seem to have caught onto the new nifty jargon that Apple is using yet because their ads mention “cable boxes” and other terms to make it sound just like digital cable tv which they are selling against.

Quick Note of Thanks to The Blend Team

Posted March 21, 2007 by donburnett
Categories: Uncategorized

by Don Burnett

Wow, I have heard that things have changed at Microsoft for the better but you only have to see it in action to be totally amazed at the quality of service and support they are giving us users.

I’d just like to thank some folks from the Expression Blend team for being ultra responsive to a comment I made about a problem with the Expression Blend RC..

Anand Thakker, Adam Ulrich,  and Unni Ravindranathan

Replied and responded very quickly to make sure the issue I commented on was documented, and resolved almost immediately. It just really goes to show what great people Microsoft has working for them and the great customer commitment they have and their dedication to making a great product even better.

Thanks guys and I hope others at Microsoft see the quality of service, support and work you are doing. I hope it inspires others to match your dedication and work ethic. You have truly inspired my own to greater responsiveness.

In the Wake of Adobe Announcements

Posted March 21, 2007 by donburnett
Categories: Uncategorized

by Don Burnett

CS3 Disappointment

Well it’s been an exciting week for Adobe announcements. I was looking forward to the Creative Suite 3 announcements. I was a little disappointed when Adobe offered a beta copy only to people who have CS2 right now. It’s obvious they are only concerned with keeping their current customers and promoting it to those using CS2 now. This is a little short sighted because I know tons of people who have and still use older versions of Photoshop and have never updated to any of the CS products. You might find this shocking but I know artists who have been using Photoshop since version 4.x and they still only use version 6.0 or 7.0.

Why is this? Most like the UI in the older versions and know how to use it and just do not want to update to changed UI. When I ask these people why they still use old software versions. I hear things like “they just changed the UI, and there has been no serious functionality changes that I would use in anything newer that they have offered.”

So, when I decided to evaluate Photoshop CS3 with the two day non-registered evaluation, I spent time looking at why I might buy this version of Photoshop based on these comments.

I did a direct feature comparision from Version 7.0 to CS3 and here’s what I found. Let’s say they are still very much the same product. There is improved animation/video support and better support for digital photography, but really I am not seeing that much in the way of changes to Photoshop or how it works.

Maybe it’s the old story don’t argue with success, but I wouldn’t mind seeing new features and functionality and new ways of working with layers and filters, in more inspiring realtime ways.

One of the things, I, for instance like about the new Microsoft Office is that when you see some feature it gives you an animated example of how something will change and changes can happen in realtime including realtime undos. I don’t understand why Photoshop doesn’t do this in a more realtime way, as CPU power is there to allow for these things. Also support of graphics cards with GPUs to improve rendering times should be there (not just multiple CPU and core support).

I may be old fashioned here, but, I did not see anything cutting edge or new here or something that was new that wasn’t being done somewhere else in another program already. I guess for the price, I expect more (especially with free gems out there like Paint.Net which runs all as managed code and is available for free and has full HD Photo support).

You may ask why mess with success? Well considering it’s 2007 I think Adobe should go back and take a fresh look at Photoshop and creating an interface and featureset implementation that is worthy of a 2007 product launch. Photoshop is a grand old program now and very mature, but is beginning to look a little aged. I challenge Adobe in the next version to start totally from scratch, redesign Photoshop’s interface add more realtime features and feedback and make it the program it deserves to be.

This has been my main beef with Macromedia studio apps, is they are beginning to have to much legacy bloat still on their coat tails. I got tired of Dreamweaver updates when all they did was change the UI, but not add new features like ASP.NET 2.0 support even years after it was released.

It’s not enough to rework the interface a little bit (just enough to issue a new beginners book or training system) and not give new function and features.

I honestly can’t see a good reason to buy CS3 as a new user of it, but maybe they are only interested in keeping their base.  I am sure I’ll end up working yet another company however that will buy it because it’s a “standard” and require use of it. Even though for everyday use there are other less expensive products that are on par with it.

My message to Adobe: Sometimes folks who set standards need to really go back and remember why things they did in the past became a standard ( with revolutionary feature set). Adobe you need to go back and find that innovation again. Take a risk, re-invent things and how they work. It’s time. You won’t loose base if you can make it easier and more functional and more instantaneous and realtime.

APOLLO

Okay after having said that about CS3, I am happy to report I love the alpha of the Apollo runtime. I love that it’s cross platform and you can integrate all those Flash, Flex, and HTML functionality into a real Rich Internet Application as a full cross-platform application that works on the Mac and PC. I wish they had also added Linux support, but maybe that will still happen.

Apollo applications are great, small and do some incredible things. I was really excited about one of the sample applications called maptacular that integrates an HTML application (Google maps) in a mashup with VCARDs in a full desktop application.

Apollo is very very cool.

I do have some reservations about the development environment. I have never been a fan of Eclipse (a now open source IDE, which was based on an old IBM IDE). I would very much like to see Adobe open Apollo and Flex development to other IDEs. If they did this I would be more likely to embrace it more wholeheartedly. You might ask why I feel this way. Well it’s mostly not so great experiences with Eclipse in the past and the fact that it’s very Java centric. Adobe might find that there are more than a few developers who feel this way. The SDK certainly can be used elsewhere, so why not extend and embrace or create their own.

Will I be using Apollo very much? I am not sure, it’s certainly cool technology. Most of my time is spent in Microsoft development environments these days, and with WPF I don’t have to have a runtime installed to create an XML markup based UI that just runs in Windows environments.

To OZ and back…

I have heard there are several developers working on MXML to XAML and XAML to MXML markup translators to make markup more transportable between these environments. I am looking forward to seeing betas come out because I think this will make everything a more connected world. I hear these will include webservices and data access support too. Mighty cool huh?