My Headlines

Tuesday, May 29, 2007

Silverlight 1.1 3D- Someone's working on it

by Don Burnett

the post says it all http://www.dolittle.com/blogs/einar/archive/2007/05/19/3d-in-silverlight-1-1-alpha.aspx..

Check it out.. Cool eh?

Is PopFly the Next MySpace??

by Don Burnett

People on the web have been talking about tools for making programming easier for sometime.. During the early days of multimedia there was a product called HyperCard. It spawned a whole generation of drag and drop tools for user created programming and authoring.  This was long before the web. Having an Amiga computer at the time I'd hear about all the things people were creating with it. Living in a college that also meant a lot of college courseware. I didn't get to join this drag-n-drop programming/authoring revolution until 1991 when Commodore and IMSATT Corporation released Amiga Vision. This was a bit different than it's competitors and ahead it's time because it offered true integration of video and video disc thru it's analog genlocking (video overlay)  feature which was unique to the machine at the time. Quality digital video was not a reality as of yet due to processor horsepower of the time. So AmigaVision much video disc based courseware was authored for it.

AmigaVision ended up selling two million copies and being highly successful at moving the Commodore-Amiga 3000  into the business and education markets. AmigaVision gave you programming thru a drag and drop flowcharting style of interface.  It along with the video toaster became the Amiga's break through applications (if you discount Deluxe Paint).

Well it's been many years since 1991. A lot of people still want a consumer way to do multimedia authoring today and the world wide web already gives us a great networked platform for multimedia. However, a lot of people still find it difficult to integrate information from one website to another and integrate information. So the next logical step which is already with us is web services.

Web services basically are extensions to a website . There are several issues holding back  consumer acceptance and usage..

  1. Each website doesn't implement web services the same way
  2. The interfaces aren't standardized (there are several competing standards)
  3. There are many different standard OUTPUT formats for data sharing (confusing YES!)
  4. Authentication and interop issues abound.

With the advent of MySpace.com a "consumer" web revolution was abound. People were making their own webpages in droves. Everyone from elementary kids to seniors could now create their own webpages with cool video and audio content. In the 60s people would invite others to "come see my etchings". Now they tell them to come see their profile on their MySpace page.

What's missing however? The next step. Today on MySpace people have videos, sell music and blog. A lot of people would like to add content from other sites. That can be done easily by the software community but the average user today really doesn't have the tools to integrate content well from other sites.. So what's logically next? Well the next "big" thing we here is called the "Mashup" page. The mashup lets you have content from other sites via web services. That's great for the developer community creating specialized applications, but honestly not for the consumer who really wants to do these things but can't because they are too technically complex.

Look up in the sky, it's a web service,.. it's a mashup... No!,... It's Microsoft Popfly..

Well who has the answer to all of this, where is it coming from? Well you might say MySpace? I'd have to say I am not sure I haven't heard anything from them about these types of developments, however we do have a great answer from one of the unlikeliest sources of all... Microsoft.. Microsoft is known for working with the professional developer community most exclusively. It does have a series of great consumer products, from Encarta all the way to the XBox 360, so why not?

Be Fly! Be PopFly!

Warning: PopFly is the second "codename" of what is currently an alpha product, so things still could change drastically before it's release. The details I am publishing including pictures is gleened from information that is publically available on the web and I am being very very careful not to say anything that isn't publically known.

What we do know about PopFly..

  1. It lets you create your own Webpage (ala MySpace) but with a Nicer "Office Ribbon" style user interface.. So if you know how to make a web page in Microsoft Word you'll feel at home in PopFly.
  2. It lets you create "Mashup Pages". Integrate mashups that you create onto your own pages. Mashups can also be publically shared with others.
  3. It offers a visual environment for creating mashups and integrating them together. Each website is a "BLOCK" and you can link blocks together as flows to pipe data between web services and other user created mash-up blocks.
  4. There will be a Visual Studio express (read FREE) add-on to let you create these "blocks".
  5. People are already using this with many web programs. The picture above shows three blocks linked.
  6. "Blocks" for services like Microsoft Virtual Earth, Flickr, and Twitter and many other websites already exist.
  7. Access to webservice based databases are being developed and tested.

What does this mean? Connected web applications will now be easy to create by teenagers. What does this mean for the professional development community? Simply the bar is raised. Think about it this way, when your boss sees his 14 year old daughter creating a mashup for him to book his airline trips with full Microsoft Virtual earth mapping, what he's gonna be expecting from the IT developers is probably nothing less. The bars and expectations will be raised. LOL I am not saying all of you should go out and download that source code to the "Silverlight Airline Demo", but you might find it helpful.

If you want a website that uses an office compatible "ribbon" control then you might also check out the Office 2007 Ribbon for website. It's silverlight based and quite cool. The PopFly image from above shows the mashup making screen, note the actual content behind it is a preview of the app that is being developed.

I believe PopFly really represents the next generation of consumer programming and authoring. I look forward to watching as the product progresses into later stages of development. . PopFly looks to be unbelievably simple and easy to work with. Everyone should have this one on their radar.. If you want to know more you can watch the video at PopFly.ms

 

Thursday, May 24, 2007

Blendables Component Review

by Don Burnett

I continue  to be amazed at the quality and functionality of the IdentityMine's Blendables..

I started using the 3d Carousel control tonight. As some of you know I am porting my web based personal portfolio as a Rich Internet Application with 1 click install on the internet. Mostly to test functionality but also to have a cool demo online of my RIA skillset.

I have found the 3D carousel very easy and flexible. It's also the first time that I have used the 3dTools.dll as well.

 

What you are looking at above is a series of images mapped to some surfaces and rotated in a carousel. The images were brought in thru an XML datasource and the code for doing so is pretty easy to work with.

The first thing I did was define a data template for the actual images and place it in app.xaml with a resource dictionary.

 

<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resources\Resources.xaml" />
</ResourceDictionary.MergedDictionaries>

<DataTemplate x:Key="FolioTemplate">
<Grid Width="160" Height="100">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Rectangle Grid.ColumnSpan="2" Fill="White"
Stroke="Black" StrokeThickness="1" />
<Image Margin="2" Source="{Binding XPath=fullSizeImage}" />
<Grid Grid.Column="1" Margin="5">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
</Grid>
</Grid>
</DataTemplate>
</ResourceDictionary>
</Application.Resources>
</Application>

later I added 3d meshes and the required 3d transforms etc.. for brevity of example I am not listing the geometry here..

<MeshGeometry3D x:Key="PlaneMesh"/>
<MeshGeometry3D x:Key="SphereMesh"
/>
<MeshGeometry3D x:Key="ConcavePlaneMesh"/>

<ScaleTransform3D x:Key="ContactTransform" ScaleX="2.5" />

<Transform3DGroup x:Key="MenuTransform">
<ScaleTransform3D ScaleX="2" />
<RotateTransform3D>
<RotateTransform3D.Rotation>
<AxisAngleRotation3D Axis="0,1,0" Angle="180" />
</RotateTransform3D.Rotation>
</RotateTransform3D>
</Transform3DGroup>

next in my resources section of the page I added my XML datasource

<xmlDataProvider x:Key="Portfolio" XPath="portfolio/portfolioItem" d:IsDataSource="True" Source="/Resources/portfolio.xml" IsAsynchronous="False" />

<XmlDataProvider x:Key="Contacts" XPath="portfolio/portfolioItem" d:IsDataSource="True" Source="/Resources/portfolio.xml" IsAsynchronous="False" />

The next thing I do is add the controls

 

<Grid>
<Viewport3D Grid.Row="1" x:Name="viewport">
<Viewport3D.Camera>
<PerspectiveCamera Position="0,0,22" LookDirection="0,0,-1" />
</Viewport3D.Camera>
<ModelVisual3D x:Name="light">
<ModelVisual3D.Content>
<Model3DGroup>
<AmbientLight Color="#777777" />
<DirectionalLight Color="#BBBBBB" Direction="-1,-1,-1" />
</Model3DGroup>
</ModelVisual3D.Content>
</ModelVisual3D>
<blendables:Carousel3D x:Name="_carousel" ItemsSource="{Binding Source={StaticResource Contacts}}"
UpDirection="0,1,.3" ExpandedWidth="12" ExpandedDepth="12" State="Expanded"
SelectedIndexChangedAnimationDuration="0:0:0.3">
<blendables:Carousel3D.ItemModelGenerator>
<blendables:DataTemplatedModelGenerator Template="{StaticResource FolioTemplate}"
DefaultGeometry="{StaticResource PlaneMesh}"
ItemModelTransform="{StaticResource ContactTransform}" />
</blendables:Carousel3D.ItemModelGenerator>
</blendables:Carousel3D>
</Viewport3D>
</Grid>

 

and viola we are in business.. I will talk more about the carousel again very soon, but it's very easy to use and very flexible.

 

You should check this out, it's very cool..

Wednesday, May 23, 2007

Great Scott!

by Don Burnett

No I am not talking about a supermarket, but a guy who works for Microsoft (Scott Barnes). I have been really enjoying his blogs. You can read them yourself at his blogsite.

His latest entry was quite interesting and I can totally agree with what he's saying.. He more or less relates that people familiar with game development probably would be good rich internet applications.

Why?

"Games are not only judged by their covers, but also their actual functionality and more importantly the user experience."

I totally agree with this, and it has been one of my secret weapons in this market since it's inception. My first big job was with a game development studio called "Media Station Interactive Family Entertainment". There we did a series of award winning childrens titles (mostly interactive animated storybooks with games included).

The importance of a great user Interface that was instantly understandable by the smallest of our "users" was very important. I would also say that we lead the field with our titles, due to their interactivity, playtesting, and overall "experience".

We knew that it wasn't just one aspect that brought things together for our users. It was not just shiney UI elements but story, sound/music, and how the  experience went for our young user base.

It's been a few years now, and these small kids today are now adults and they expect more from the "user experience" than ever before.  They have grown up expecting more.

As we work to understand ourselves our software useage behaviors and what works and what doesn't we have come a long way. It marvels me when I see things like Twitter and Microsoft PopFly. PopFly could end up being the "Mashup" software that is the next MySpace. I think to myself what a great world it is, and how we are still learning today.

I think as we understand the "user experience" with our software and keep expanding and improving it, we are also working to understand ourselves better and how we relate to things.

It's an exciting time to be alive and working in this field. Good going Scott for recognizing something game designers/developers have known all along. It's not just one aspect that matters.

Monday, May 21, 2007

Enterprise WPF and Goodies

by Don Burnett

Well I have read a great entry this week on the business rationale for updating your "enterprise" software to take advantage of WPF technology. It's by Kurt Brockett . So if you are a business professional or a decision maker, you should check out his blog. He has a great discussion on when and why a business should invest and upgrade to WPF.

He not only really discusses how it will benefit but where and what type of an investment could really find a good return on investment. If your business is indeed thinking about the impact that RIA (Rich Internet Applications) will have on your ROI (Return on Investment) you should read his article.

And now for something completely different...

I have been working on turning my online portfolio website www.donburnett.com into a one-click rich internet application. I ran into a little bit of a snag. I wanted to include my blog in a tab on the WPF Application..

My first thought was to just include an RSS feed, but it turns out XAML doesn't directly address HTML. I have code to convert HTML to XAML but that all just seemed a bit to much work, plus the richtextbox control only handles RTF in XAML. 

Sure there is code out there to do this but it seemed a little (okay a lot) silly that there wasn't a web browser control in WPF 1.0. After all in the old winforms I can embed a browser anywhere..

The whole idea of an RSS feed though I could do it was seeming to not give me the formatting or the actual look of the original site.

My solution was to (for the first time) use the WindowsFormsIntegration.DLL that comes with the release of the .net 3.0 framework and just embed the webbrowser control from winforms right into that page.

Guess what folks? It worked great. After properly referencing the DLLs and all the appropriate framework controls (in both XAML and the Codebehind file).

It ended up just being four lines of code..

I placed the whole thing in a docpanel layout control and then referenceed the windowsforms host control then the web browser control, and I was DONE..

It looked like this:

<DockPanel Margin="0,28,0,25" x:Name="myFrame" Background="#000000">

<WindowsFormsHost x:Name="BrowserHost" >

<wf:WebBrowser x:Name="Browser" Url="
http://blog.donburnett.com" />

</WindowsFormsHost>

</DockPanel>

It was as simple as that and I get a cool WPF app that looks like this:

 

 

Friday, May 18, 2007

H1-B Visa Politics

by Don Burnett

A Politcal Aside.. Please grant me your indulgence, but I feel this is a very important issue..

It seems like everyone in the world has a point of view in the world when it comes to high stakes immigration issues like H1-B Visas.. I normally don't dive into politics, but it's very obvious that the current program is broken.

Original intent of the program:

Bring high-tech workers and talent over to U.S. companies where needed to bolster our companies availability of skilled workers..

This is a very noble idea..

According to a report I viewed on CNN's Lou Dobbs program, the reality of this program is being subverted. Due to a high demand for this limited program the current administration has wen't to a lottery program to award these. In doing so there is little oversight to check these folks qualifications so in short the following things are happening.

1) Unskilled workers non holding advanced degrees are being awarded these Visas because there aren't proper checking into the backgrounds due to the implementation of the current "lottery" system. This does not follow the intent of the original programs or the law.

2) Certain industries are taking advantage of this program to import unskilled labor and paying them less that top dollar wages and paying them less than the people already here are getting for the same work.

CNN according to a report I seen surveyed workers awarded these H1-Bs over the past few years and has found that the intent of the program and the entire program hasn't been doing what it's supposed to.

I read a really great blog called "Better Living through Software" by Joshua Allen at Microsoft, who has been following a new bill by Senators Durban and Grassley in which he says  "Senators Durban and Grassley are now sounding the alarm over H1-B Visa applications, claiming that big evil Indian outsourcing firms are scamming the system to move American jobs overseas."

He really isn't seeing the other side of this story. It's obvious that Grassley and Durban are responding to a new bill by Senator's Lieberman and Hagel that would remove limit caps on the number of H1-Bs awarded in this country. That bill is a recipe for disaster if indeed the problem that CNN's Lou Dobbs program is alleging is anywhere near fact.

Putting no limits on a "lotteried" program that doesn't check the qualifications of it's applicants is a HUGE mistake. We need oversight built into any bills that would remove limits onto how many people could enter the country with this type of Visa, so we know that skilled workers originally intended for the program are the ones getting in and U.S. companies aren't taking advantage of this to import a non-skilled labor force and then pay these people less money that what they'd pay people already here that do the same job. That is what's apparently happening.

I would say that both bills before congress are not well written bills and should incorporate more oversight. I am not against removing caps on these Visas if it's indeed benefiting high-tech companies working INSIDE our country and not bringing a flow of people in who shouldn't be getting these visas. It's time we all stopped being partisan about this and do what's right for the nation and reform these program and demand better oversight and overhaul on the existing program to make this work for us, not against us. Both bills need better language and better oversight.

Joshua and I do seem to agree on one thing, the Senators are not doing their jobs and bowing to corporate interests over the interests of the American people as usual here..

I don't really want to use this blog as a "bully pullpit", but we all need to communicate to our government that they need to do something to fix what's really going on here.. It seems like both approaches of both bills don't really address the real problem and that's the current administration of the program. I don't feel this is a partisan issue it's government not working as usual because someone's trying to shortcut and circumvent aims and goals of a noble program that should be bringing us deserving "talent".

Feel the Power of Silverlight Custom Controls Part 2

by Don Burnett

Well there have been a number of things I missed in terms of custom controls when moving from regular WPF to Silverlight. However custom controls that replace this functionality are beginning to pop-up everywhere. I can't wait to start seeing commercial controls.

On Mike Harsh's blog I read that Dave Relyea had released new Silverlight controls, so I raced over there and was totally suprised and very HAPPY... Check this out...

Dave Relyea has released a new set of controls for Silverlight 1.1 (still in alpha) that is news for excitement. He has included a layout framework control with LayoutContainerControl base classes, this is a neat new control that I am not aware of existing elsewhere. You can download the project here.

He also put together a Border control, stackpanel, grid, label control, a Button Control, and FINALLY a TextBox CONTROL..

This totally made my day because Silverlight is now very interactive and no more mixing HTML with Silverlight just to get a TextBox there is now one inside of SilverLight finally.. TEXT ENTRY.

This is very very cool, and really adds functionality to Silverlight that some argue should have been in the original 1.0 silverlight feature spec.

Considering how quickly all of this is coming I expect great things within a year for Silverlight 1.1 CLR based controls. I think there will be a huge market for custom controls because Microsoft is leaving base control functionality sparse.

Wednesday, May 16, 2007

Feel the Power of Silverlight Custom Controls

by Don Burnett

Well it's finally happening the dam is starting to burst and we are starting to see a whole bunch of new incredible things including 3rd party Silverlight Custom Controls.

If you want to start making these controls yourself. I think many people will want to (if not just to fill in holes still in the Alpha of 1.1, remember folks it's Alpha and still under developement).  Run don't walk, over to Scott's Blog and read the article and check out how to make controls for yourself.

It should be noted he plans an entry on going from AdobeFlex to Silverlight later in the week. Scott's blog rocks and you should definitely make it part of required reading.

Something interesting he mentions in his Blog:

"I'm not kidding, with enough time I think I could easily code-port the framework into Silverlight (given Adobe Flex soon will be open source - it may even be legal! hehe)."

Go Scott! We designers would love to see Flex inside Silverlight.. I am not sure that's what Adobe had in mind with Open Sourcing but hey I am all FOR technology integration that benefits the users. Wonder what Ryan Stewart thinks about all of this..

I think that this is well worth your time and his example on creating Video Thumbnails is quite cool.

 

 

 

Monday, May 14, 2007

Silverlight for Mac Designers

by Don Burnett

I have some friends who are Mac designers, and they have came up to me asking me some questions about Silverlight development on a Mac. So, I thought I'd sit down and try to answer them.

Questions first then answers

 

  1. Can I develop for Silverlight on the Mac? Do I need ASP.NET and a PC...
  2. What languages are supported on the Mac?
  3. Can I use Silverlight on a PHP site?
  4. Does Silverlight work well with an Apache Web Server?
  5. Can I really DO 720P HD video on a Mac without hardware acceleration?
  6. Most Designers are working on Macs and Using Adobe products. Apple advertising is telling people to just use Macs for everything, how does Silverlight solve this?
  7. How does Flash video really compare to Silverlight objectively? Can I do full screen video? Can I control the interface?
  8. Is there a resource out there for controls? I use Flex right now, and this 1.0 Microsoft product doesn't look as full-featured, am I missing something?
  9. What tools do I use to get started on the Mac?? Any suggestions?
  10. Can I move my SWF flash files over to Silverlight or WPF?

 

Answers
1. Yes you can develop for Silverlight on a Mac.. Silverlight is a control that gets embedded in a web page very much the same way you are doing with Flash now. Either with a small bit of client-side javascript .T he preferred method is with the scripts Microsoft gives with the plug-in and SDK.  Microsoft has revamped the plug-in detection and install experience. The files are now referenced from a Microsoft server out on the net rather than having a million different versions out there. There is a more friendly image-based message telling you that you need to install the Silverlight player.

There is a great tool out there for prototyping Silverlight from the Web browser (yes it runs on the Mac) called SilverlightPad it now features Javascript editing and a run button. You can download it here..

 From there you should download the Silverlight SDK. For the Mac the files have been ZIPPED for greater accessibility. Microsoft is working on improving the packaging of these things. If you need to access a CHM file (compiled help) there is a Mac version a CHM viewer available.

For instructions on creating a silverlight project in your favorite web development environment check out this page and begin reading what's in a basic silverlight project.  Ignore any discussion about Visual Studio "Orcas" for the moment.. After reading down the page you will see that it's easy to add Silverlight to just about any standard HTML page including those generated by other development systems (PHP, Java, etc.) mostly because adding support is basically passing script to a client side object.

2. If you are using the 1.1 version of the silverlight plug-in which includes the .net CLR runtime you will see that you can use just about any .Net supported language including Ruby and Python.. A good example of a "Dynamic" language is Python.. Because it runs in any web browser and gives you Silverlight graphics and GUI support... If you want to try out Python on Silverlight CLICK HERE. This sample works great on the Mac on Safari. You probably also want to download the 1.1 alpha SDK which includes the .NET CLR.

3. Yes, it's a client side technology you can pass data from PHP through javascript/html.

4. Yes again same answer as number 3.. Nothing is server-side here so it works great with any server.

5. Yes, some have doubted it but I have seen it.. If you want more proof install the plug-in and check out video samples @ http://www.silverlight.net especially the FOX/Silver Surfer video, it's way cool. Silverlight can use the VC-1 Codec which way outshines Flash video at the moment. Creation of a player is more flexible too thanks to XAML.

6. Sure Apple wants you on Mac OS instead of Windows, what's new there? Silverlight works everywhere (yes the mono folks over in the Linux community want it over there too and likely will be there. Plus you don't just get a graphics plug-in you get a full .Net version runtime with all the happy features the .Net framework provides including custom controls, garbage collection, multiple languages, code that can run hundreds of times faster than typical Javascript/HTML. Microsoft is new at doing product families for designers, that is certain but they offer a very nice cross-platform alternative.  The .Net CLR in Silverlight compares nicely feature-wise to Java, plus you get incredible graphics as well. Why wouldn't you develop for it?

7. That's a good question, I don't really believe in Benchmarks, I believe in what my eyes show me and I really am tired of looking at smudgy drop-frame videos on YouTube and other places like that, so Silverlight is a treat for the eyes. Check out this video and tell me what you think. Click on the fullscreen button too.

8. Are there controls out there? Well if you aren't using Microsoft's expression tools on a PC they might not be as available. There are samples of custom controls in the SDK. The big advantage is that Silverlight (thanks to the addition of the .Net CLR) very extensible. I expect a whole industry to pop up just like it has for .net Visual Studio controls, because they are developed very much through the same process for very much the same .Net framework.  So expect big things in the long term here. Right now the market for controls is wide open.

Some have commented that Flex controls are more rich, and that might be true because of the maturity the product has on the market. I won't argue that. I will say however that the nice thing about all Microsoft technologies is that they have a high level of integrations with other things Microsoft. Microsoft already has a Silverlight video player and XAML control set up for ASP.NET so they will integrate well with ASP.NET/AJAX and their cool databinding technologies.  Check out the ASP.NET Futures release. It also includes  new functionality for ASP.NET AJAX Extensions, dynamic data controls, enhancements to dynamic languages, and more. It matches the new .Net 3.5 release that will be released later this year.

9. Mac Tool Musts

10. If you have stuff in Flash and want to convert it, you have two options, one community supported and the other from a familiar Mac developer Electric Rain with their new product HARMONY (for both WPF and Silverlight).

If anyone has more questions or you are stuck on something please ask me by commenting on the blog on this entry, or better yet attend our MichiganInteractiveDesigners.org meeting ..

Still Sorting through all the Mix 07 Material

by Don Burnett

Post Mix Craziness

I have to admit that when I got back from Mix, I figured I would have a very daunting task ahead of me and I have. Besides all the things I learned in sessions, Microsoft supplied a whole bunch more material on CD/DVD and I have been combing through that with every given moment. I am here to report that I am still on Mix overload. With the announcement of Silverlight a lot of what's going on with WPF is kinda going unnoticed. Well I am here to try to right that wrong tonight by talking about one of the coolest things I have seen done with WPF so far.

Okay some of you might not know this but yes I am a comic book fan. No I don't go to comic conventions but I still pickup my monthly stash of favorite DC Comics every month (always a little behind), but IdentityMine has came up with a way to make comics more exciting and even updatable online. They showed this off to a very excited audienced that can only be described as JAW DROPPING comic fans. They shown what is possibly the first truly interactive comic book with animation. I think the whole thing is a big winner and I can't wait until I can read Wonder Woman, Batman and Superman in this format.

Even more exciting is the mechanisms that were used to create this experience are now available for use in your own Expression Blend  projects. They are called Blendables and they are custom controls that work with both Expression Blend and Visual Studio.. Just what's so important about these that saves you time over trying to create these controls yourself? Well they are for one very polished and easy to work with. Also, IndentityMine being the great design/developer resource they are really know what you guys are wanting for use in Blend.

If you want to see them yourself, they are now available in a Community Technical Preview which you can download at www.blendables.com. One of my favorites is something called the Timeline Panel. Recently in part One of my tutorial of creating a Twitter application in WPF I noted that since everything in Twitter happens according to a timeline, a Timeline type control would be something I was creating for part two. Well I think IndentityMine heard my prayers answered with Blendables and now for part two of the tutorial I probably will just use their control as it does everything I was looking to do with it. It also makes part two of the tutorial 100% easier to come up with for you folks.

Thank you IndentityMine for creating some very useful controls. I will be adding the to my repetoire as soon as they are publicly available for sale..

Here's a list of all the controls and what they do..

CTP Controls

Zoombox

Great for apps that have schematics, maps and other content that benefit from zooming and panning functionality.  The Zoombox control allows content to be panned in any direction or zoomed in or out using the mouse, keyboard, or programmatically through methods and properties exposed by the control.  It allows the user to track their location using a viewfinder containing a scaled down map of the content.  Optionally, the user can retrace their steps through old views using Back and Forward navigation.

 

ElementSnapshot

Say Cheese!  ElementSnapshot is a control that allows rendering any FrameworkElement into the Visual Tree without it actually being in the Visual Tree itself.  The primary scenario is to enable the use of bitmap effects within an application without the performance degradation that is incurred when a bitmap effect is in the Visual Tree. The control also supports an IsLive mode for when FrameworkElement is needed in the Visual Tree.

 

Carousel3D

Moving into 3D and missing the good old ItemsControl?  Carousel3D provides ItemsControl like functionality in 3D.  Items in the Carousel3D are positioned in a configurable elliptical layout and full collection change support is included in Carousel3D.  When your underlying items source changes so does the Carousel3D, just as you would get from the 2D ItemsControl, with one advantage: all changes are smoothly animated in 3D!  Additionally, Carousel3D exposes multiple properties to give you great control over all its animation.

 

ChromelessWindow

Create custom branded window experiences!  ChromelessWindow is a utility class which can be used to give Glass effect on a window, resize the window, and drag and move the window.  The resize utility will redefine the way a typical window resize happens on a WPF window. This utility also provides a draggable functionality to a window using XAML code since there is no default draggable behavior associated with a chromeless window.

 

DragAndDrop

DragAndDrop allows WPF ItemsControls to support drag and drop via attached properties.  The goal is to allow the designer to support the drag and drop metaphor easily via a single line of XAML code.  It uses an adorner to show a visual of the item being dragged and automatically uses the data object to move or copy items.

Pie

A little treat for creating charts and radial based controls like speedometers and gauges.  The Pie shape is a WPF shape that represents a portion of an ellipse, often in the shape of a slice of pie.  More specifically, the Pie shape consists of an arc of an ellipse whose endpoints are joined to the center of the ellipse by two line segments.

 

OSChecker

Simple, but a great time saver for anyone creating applications targeted at multiple OS’s.  OS Checker is a control that exposes the current OS version as a DependencyProperty that can be easily used in any number of scenarios such as triggers in styles and templates.

 

TimelinePanel

Time for a new perspective in the way you present your data?  Extend WPF’s rich data visualization capabilities by arranging your data or UI elements along a timeline!  TimelinePanel makes it easy to create compelling data visualizations that emphasize the chronological nature of a data set.  Simply drop it into any application, set a handful of properties and watch as elements get arranged in time and space!

 

EvalBinding and SimpleBinding

These make binding even more powerful and easy....how is that possible?  The EvalBinding class provides a XAML markup extension for establishing bindings that include code expressions.  This allows a WPF dependency property to be dynamically bound to a code expression that is dependent upon zero or more other properties.  A change in any of these properties causes the expression to be reevaluated. 
The EvalBinding extension is built upon another markup extension called a SimpleBinding.  A SimpleBinding encapsulates a native WPF Binding using a simplified, compact syntax.  It can be used anywhere that a native Binding can be used.  In addition to the simplified syntax, it provides intelligent type conversion, often eliminating the need for custom value converters.

 

NumericRangeToObjectConverter

Ever wanted to trigger values based on a range?  Create complex template solutions with ease, change your app’s style based on the time of day or even the weather outside. NumericRangeToObjectConverter is an IValueConverter implementation that allows creation of a converter that will return an object for a configurable range of numeric values.

Friday, May 11, 2007

Microsoft Introduces Collaboration for Small Groups with SharedView

by Don Burnett

Today over at WindowsConnected.Com I learned about SharedView over at Josh Phillips' blog. It's kinda like the new Office Groove but designed for smaller groups and different types of collaborative meeting.  This is a really great tool and seems very fast and efficient.

Here is an Overview...

More effective meetings and phone calls
Connect with up to 15 people in different locations and get your point across by showing them what's on your screen.
Work together in real time
Share, review, and update documents with multiple people in real time.
Use anytime, anywhere
SharedView is easy to use, from anywhere, at a moment's notice.

System Requirements
  • Supported Operating Systems: Windows Server 2003 Service Pack 1; Windows Vista Home Premium; Windows Vista Ultimate; Windows XP Service Pack 2
A computer with a 700 MHz processor or higher that meets the following requirements:
  • Memory: Minimum 256 MB of RAM (512 MB recommended)
  • Hard disk: 10 MB of free hard disk space
  • Display: Minimum 800 × 600 screen resolution (1024 × 768 recommended)
  • Applications: DirectX 8.0 or higher installed on your computer.
  • Internet connection: Broadband Internet access, 300 kbs minimum. Slower connections may work, but the experience may not be optimal.
  • A Windows Live ID if you want to start your own sessions (you do not need one to join someone else's session).
  • This isn't quite WPF or Silverlight but it's worth checking out..

    Sunday, May 6, 2007

    Now for Something Completely Different

    by Don Burnett

    A lot of Adobe design folks this week who use Flash are taking a look at Silverlight this week and asking questions. I have seen this out there with customers so I am going to take a stab at helping out and making some suggestions to Adobe users if you are indeed interested in Silverlight..

    1. This is Microsoft's first shot at this kind of thing, so give them a break. Not everything is as polished as a version 9 or 10 product from Adobe, remember they are at a 1.0 product level (if that!)
    2. Microsoft assumes that you have some programming knowledge, knowing how to animate in flash and use components with flex and even databind to an ADO datasource doesn't necessarily mean that you have the knowledge to put together some programming concepts that Microsoft (coming from software development background) assumes you might know with some of the stuff I'll talk about below.
    3. This is really great technology. The learning curve might be a little steep for you, but there are resources out there that can help you take advantage of this great new technology.

    Okay here's some criticisms of Silverlight so far.. This one comes from a Blend 2.0 user.. I am going to try to answer some of these..

    "HELP there are no UI controls in Blend 2.0" for Silverlight..

    Silverlight is still in the early development stages so a lot of the UI controls are still being developed. The first version relied on javascript, the 1.1 alpha now includes support for the .net CLR runtime. This lets you add custom controls quite easily. In the Alpha 1.1 sdk they have included some controls that you can use. The unfortunate thing is they don't really give you instructions for incorporating their use into Blend yet. I see this as a big issue if you don't already know how to use WPF custom controls. It's okay to do this for the developer community, but the designer community will need a little more support on how to do things and incorporate stuff to get a functional environment they can actually use.. They want to focus on design and not coding.

    Controls supported currently in the 1.1a sdk
    Button
    Slider
    ScrollBar
    ScrollViewer
    ListBox

    These controls work great if you are familiar enough with Visual Studio (most designers are not) and you can even go in and edit their look and feel in the XAML. Microsoft is still finalizing what controls they will subset from WPF in Silverlight. This is because this capability is so new to this version of Silverlight.

    I don't think the extra UI controls even made it into Blend. Blend supports user controls in regular WPF so I assume when they have ironed out supporting both the CLR and Javascript and just what UI controls from WPF they will include in the final 1.0 release. We'll then see them supported. Right now Blend really only supports those Silverlight features found in the 1.0 beta in terms of controls. It is possible to use the custom controls from the SDK but it will take some knowledge about how to add them to your project in Blend and have the program recognize they are there.

    Another way around this is to just use the HTML controls along side Silverlight on your page. You can either add regions of Silverlight controls alongside regular html ones.. There are several demos out there that do this rather effectively, so it is possible you just have to learn the technique.

    I'd point you at the following examples.. of HTML controls alongside XAML (Silverlight)

    Viewing Albums with Silverlight and ASP.NET AJAX

    The Socializer Demo

    Silverlight Airline Sample

    And many more samples at http://www.silverlight.net

    I am not sure many non-developers will understand placing basic controls in an SDK instead of the Blend 2.0 preview but I am sure that time was an issue about getting all this out the door in the timeframe they had...

    NOT TO BE LEFT OUT ASP.NET

    If you just want to play with video and XAML and you are an ASP.NET kind of developer you need to download the ASP.NET futures release which includes a Silverlight VIDEO control, and a XAML Control for Visual Studios "ORCAS"..

    More designers in need of help to get started questions later this week.. Stay Tuned for More Detail..

    EDIT:

    PS Someone mentioned that I shouldn't assume all Adobe folk are designers, I don't, it's just the question I tried to answer above was something I saw on other forums that more than one person was asking about.. I fully realize there will be some people out there who won't have any issues with this but there are people that are and my point in this post is not just to help them out but point out that for those people having trouble we shouldn't just leave them out there floundering.

    One of the things I really do admire about Adobe is they support all types of customers in all types of situations from beginners on up. Microsoft up until these new products have only supported a more rigid defined customer type. Dealing with support for designers is a little different than dealing with programmers who code C# classes in their sleep (for instance), so it's very important to craft the support and the provided tools to audiences.

    Information I present to a designer on how to do something might not be the same way I'd present to a .Net developer. It's not meant to offend anyone but when I see questions like that above, it's obvious to me that there are people out there who just aren't getting it and I'd like to see these people favorably be able to use the toolsets out there as well even if they aren't comfortable diving into an Alpha quality SDK from Microsoft.

    If you are in Michigan for instance looking for resources on programming and designing with Silverlight and WPF, you should check out our WPF Design Group. We hold monthly meetings. Our website can be found at: http://www.michiganinteractivedesigners.org.

    Eastern Michigan Day of Dot Net

    by Don Burnett

    Why Day of Dot Net is So Special for Local Developers..

    The Day of Dot Net is a yearly event sponsored in part by the Ann Arbor .Net Developer's Group. The morning started off with an excellent presentation by Josh Holmes on the "user experience". Josh talked a lot about developing for an improved user experience. He shown several great examples including local.live.com's 3d Mapping, AJAX (asynchronous Javascript and XML), WPF, and SilverLight.

    Josh showed off the incredible Silverlight Airlines Demo and talked about the CLR integration into SilverLight and the new DLR.

    The day continued with great presentations all around including deep dives into such topics as architecture and the ubiquitous Linq. What makes this event so special is that it's a meeting of the entire local development community. It happens once a year. This year I think was the first year having designers in the audience were embraced. I was happy to see people excited about the new technology and how much they had already been following what was happening at Mix 07.

    People are excited about the new technology (especially Silverlight) and are ready to start rocking with it and generating some next generation user experiences. I was amazed at the sheer number of ideas I heard when talking to the people about how they could improve their own application's usability.

    If you haven't been to one of the "Day of Dot Net" Presentations you are sorely missing out. The day ended with lots of prizes and cool things given out. I came out with a sense that our community was a alive and well and moving forward at the local level. I believe it will also mean Dot Net 3.0 acceptance will be at an all time high.

    Saturday, May 5, 2007

    The Real Excitement at Mix 07

    by Don Burnett

    The really exciting thing about Mix 07 that I think will really make a difference, isn't the video from Silverlight but Microsoft's integration of their CLR (Common Language Runtime) into the Silverlight plug-in itself for the Mac and PC. If you read Ryan Stewart's blog you will also see that Silverlight is coming to Linux's Mono project as well.

    Scott Hanselman has just posted a new diagram about how this all fits together.. Here it is courtesy of his blog..

    This is incredible news, because the news is very far reaching. This for all intent ande purposes means you aren't stuck making apps in Javascript any more and you can program applications in either compiled or dynamic languages like Ruby, Python, C# and VB and a number of other .Net lanugages that might come along (PHP anyone?). Finally, strongly typed data has come to the web.

    The implications of all of this is code that executes hundreds of times faster than browser based scripting. If you wanted runtime code you were stuck with Java with all of it's UI and performance limitations. You didn't have a great graphics subsystem to work with either that offers declaritive mark-up. It also means you can include user created custom controls. If you want more information on the ones already listed see Mike Harsh's Blog.

    The implications of the CLR running on the Mac and being able to DEBUG the application on the Mac using Safari are pretty wild too..

    Anyway, the web just got a whole lot better for all of us..

    Wednesday, May 2, 2007

    The Backlash Begins

    by Don Burnett

    Everytime something new is done it gets hit with a healthy amount of skepticism. I am suprised at how "FAST" this has been the case With Microsoft Silverlight and Adobe Apollo. Check out this blog posting at diveintomark.org, it definitely brings you to the other side of the coin and I guess it's just me but I find Silverlight "McDreamy", where as Mark seems to see things quite differently. Maybe his girlfriend will start watching CSI instead.

    More Mix 07 in Pictures

    by Don Burnett

      

    OpenMic at the Mix SandBox

    by Don Burnett

    One of the cool things at Mix 07 open mic at the "SandBox" was the UltraMobile PC demonstrations.

    A sub-two pound Vista box is how it's being described.

     

    Developers from Lagotek.com (from the concurrently going MDEC conference) came over to show some really cool HOME CONTROL software. They are deploying on the ultra-mobile pc. You should check this out it's very cool.

    Other Happenings

    Rob Reylyea gave a great WPF Fundamentals talk this morning. Things mentioned in the talk are available on his site as well.

    Subsonic 2.0 Final Ships!

    By Don Burnett

    Just when you think Mix is the center of the universe as we know it, everyone's favorite zero-code DAL (Data Access Layer) has shipped a major new release. Here are new features courtesy of Rob Conery's Blog.

    Features

    • Multple Databases are supported
    • You can now use SubSonic in any project, not just Web Sites. We now have command-line tool so you can generate code however you like and do all kinds of cool stuff with MS Build or BAT files if that floats your boat, and Martin's come up with a nice set of macros.
    • Query tool has been revamped to allow ORs and INs, and expressions. You can query now by saying IDataReader=new Query("Products").WHERE("ProductID > 10").ExecuteReader(); Love that...
    • Code Generation now uses ASP.NET-style scripting so creating your own is ridiculously simple
    • We now have ODS Controller-friendly controllers that really make life very simple with the Object Data Source.
    • A whole mess of time-saver controls has been added, like dynamic drop-downs, radiobutton lists, server-side paging/sorting tables, and many to many checklists.
    • an OracleDataProvider
    • many improvements to our MySQL provider
    • SubSonicCentral is our new "Sample" web site that will allow you to generate your code, setup your config, and do all kinds of magic on your local machine. It's like our commandline tool, but it's a website. Refer to this for sample code and if you want a good time! It's included with the new installer.
    • Scaffolding has had a major facelift and it works a la post-back so you can have multiple on one page. He also made the "AutoScaffold" page - you drop it in your site and it creates an editor on the fly for all your tables.

    Mix Day 2 Wrap Up

    by Don Burnett

    The user experience story never shined so brightly as it did at Mix today. We heard from many different companies and people today about how Microsoft technologies is enhancing the user experience. Everyone from CBS to ABC and Disney was at Mix today..

    I attended a panel discussion on ad-supported content with a number of experts including David Watson of ABC/Disney. It was very informative because it's focus was how to enhance the user experience and how advertising is being further focused and tuned to support the content it is paying for broadcast with.

    The audience came up with some great points too, including the fact that Web banners aren't really going away. The science behind their metrics are changing however, it's not just measured by "impressions", but something called a click-thru and how that the user experience of these things are reflecting content pairing and generating better demographic information.

    Tuesday, May 1, 2007

    Some Folks Just aren't getting it..

    by Don Burnett

    Someone said that Microsoft is getting too complex having multi-layer internet applications. If I hear another developer say "well which technology should I use?" I probably will scream. If you are an Adobe developer or someone who does basic web development I might tend to agree with you. But if you are a full fledged "Windows" developer you might think differently.

    Microsoft for a long time has been working with multi-layer development for a while. Typically if you learned to write "enterprise" level applications you wave a multi-tiered application, consisting of multiple layers including a Data Layer and a Business Rules layer.

    Microsoft designed most of it's technologies to be integratable such as ADO.NET with ASP.NET.. All on different levels. Adding a presentation layer like silverlight isn't unecessarily complicated but is very powerful in it's own right due to the benefits you can gleen as a developer by combining these technologies.

    A point that one blogger, the Lazycoder (for instance)makes some points on his talk on the Mix 07 announcements, that he doesn't know which technology to choose. Well the brilliance of all of this is that you don't have to choose which one, you choose which ones do the best for your particular task and you can integrate them to create some really cool "mashups" with all of them together.

    It does point out that one needs to know the technology strengths of each of them to know how best to integrate it. It also means as a developer you need to know your "product's audience" better. Yes it's more work if you are a "lazy coder" but you end up with a much better app in the long run that works smarter and provides a better solution and user experience for your application's consumers.

    It also points out that knowing how to code in just one area probably will mean your won't get as much business in the future. It's all about growth folks, as a developer or a designer. It used to be "the early bird" gets the worm. Now it's whoever wears the most hats wins!

    Get Your Own 4GB Free Hosting account for Silverlight Video Streaming

    by Don Burnett

    Want to put your videos online to be streamed? Want to make sure you have the best possible streaming anywhere on the internet?

    If you have ever streamed video on the internet you'll know that smooth peformance for streaming is important and that requires a good internet infrastructure. Now if you want to put your own videos on the net and stream through Silverlight you can. Just by signing up for a free 4GB Windows Live Silverlight streaming account..

    Click Here to Sign Up!

    Want to see how good Silverlight cross-platform streaming looks vs Quicktime Trailers

    Check out Fox's new Trailer site on Silverlight.net (the Fantastic Four Silver Surfer Trailer is the obvious demo to check out..)

    Roxio Gets their Buzz On! 

     

    Roxio Buzz

    Not had enough WPF video options yet? Check out Roxio's Buzz, a simple video editor developed for file sharing on the web. It features a WPF interface that is easy to use. It will also publish directly to YouTube! and GoFish!

     Features
    • The free version of Roxio Buzz supports Windows Media Video, AVI, MPEG-1, QuickTime, and Divx.*
    • Buzz with the Decoder pack ($19.99) adds MPEG-2, MPEG-4, 3gp, and H.264 support.
    • Super easy to learn. One-button editing lets you cut the pieces you don’t want out of your video clips.
    • Built on Windows Vista next-generation user interface technology.
    • Add tags, description and more, then upload directly to your YouTube or GoFish user account without ever leaving the application. Microsoft Silverlight Streaming support coming soon!
    • Automatically optimizes video file size and quality to match the upload requirements for each site.
    • Make photo slideshows with motion, transitions and a soundtrack with just a few clicks.

    TopBanana Video


    I mentioned earlier that today at the Keynote, Metaliq.com was there showing off a Silverlight (WPF/E) application done with the new 1.1 alpha.. It's a video editing app that runs from within a web page and it's totally cross-platform (runs on Mac with Safari and IE 7.0).. This is only 50k in size.. Click on the image of the video below to see this video editing app that runs from a web browser in action. Challenge: Do this in flash with 720p HD video folks.. Did I mention this also directly supports DRM transparently on both the Mac and PC..

    Watch The Video




    The "King" was sited at Mix 07..

    Look who I caught at Mix 07! You can't keep a good rock legend down, after all wouldn't you want to be at Mix too??

    Mix 07 Day 1 Wrap

    By Donald Burnett

    The first day at Mix was quite a great day.. The following things happened notably..

    • Expression Studio 1.0 shipped
    • Blend 2.0 was released for preview support both Silverlight Javascript and Silverlight CLR project types.
    • ASP.net with Silverlight support was released
    • Silverlight 1.1 alpha was released with full .NET CLR supported on both Mac and PC
    • Silverlight 1.0 beta was announced
    • New Visual Studio "Orcas" Silverlight support was added
    • The Dynamic Language layer was added to .Net meaning you can now program in Ruby, Python and a number of different languages that work interactively.
    • A new Expression Web with full Silverlight support was demonstrated.

    All in all it was a great day. The amazing thing about Silverlight (with CLR integration) is you can now do basically full blown Windows apps in a browser and they run on the Mac with Safari. What does this mean, well Microsoft Windows applications done with Silverlight are just as cross-platform as Adobe Apollo applications. Linux suport is also expected to follow. During the keynote we saw an amazing online video app capable of high def 720p video editing from a web browser. The amazing thing is the whole application was less than 50K.. This was followed up by CBS News talking about their new HD content news aggregation service which allows viewer contributed video and how it can be immediately made available in a newscast.

    Probably the most cool thing being shown was NetFlix new online movie viewer which incorporates "DVD-Style" extras with information right from their site.

    Expression Studio 1.0 Ships!

    Expression Studio 1.0 Shipped. The 1.0 version I received came with Visual Studio 2005 Standard edition, so you don't have to worry about being able to be productive with this set of tools if you don't own Visual Studio. Some of the versions of the software (after I uninstalled the pre-releases before loading up the studio, still said Preview or release candidate after it installed. A change of the product-key seemed to solve this issue. The new UI for Expression Media seems improved over the older iView Media version.

    Other Cool Things Category
    Microsoft announced it is planning a Windows Mobile platform version of Silverlight.

    Must-Have Downloads from Mix 07

    Silverlight 1.1 alpha with CLR support (works on a Mac and PC)
    Microsoft Silverlight 1.1 Alpha Software Development Kit (SDK)
    DLRConsole- Write IronPython code in this dynamic editor written in IronPython! You can also edit and view XAML too.
    Video Library 1.1 - Custom media player built on top of Silverlight. Select from a list of WMV videos and play them in the browser.
    Chess- This sample pits Javascripted Silverlight apps against the NEW CLR support and shows hundreds of times faster performance.
    Visual Studio Code Name “Orcas” Beta 1
    Microsoft Silverlight Tools Alpha for Visual Studio Code Name “Orcas” Beta 1-Update Visual Studio “Orcas” with the JavaScript and managed code functionality needed to develop Silverlight applications.
    Microsoft ASP.NET Futures (May 2007)-Compatible with both Visual Studio 2005 and Visual Studio “Orcas,” this package contains ASP.NET-based Silverlight controls.
    Microsoft Expression Blend 2.0 free Preview- with Silverlight CLR and Javascript Project Support. Other new features. I'll be reviewing this in the next two days when I have time for full evaluation.
    Microsoft Expression Media Encoder- Encode your videos, now with live video thumbnail support and overlay functionality.
    ASP.NET Silverlight Media Control- Add rich Silverlight media to your existing ASP.NET application.
    ASP.NET XAML Control- XAML +ASP.NET = WOW!