Check out this article about the Microsoft Store Software Kiosk over on MSDN. They interview my colleague David Kelley, who was part of our Wire Stone team that helped build this WPF application.
You can watch the video interview here:
Check out this article about the Microsoft Store Software Kiosk over on MSDN. They interview my colleague David Kelley, who was part of our Wire Stone team that helped build this WPF application.
You can watch the video interview here:
I’ve been playing around with the Arduino more and more lately and really wanted to find a way to make it work with my other world of C# and WPF. The idea was to make an application that changes the screen based on how far away the user is. The only way that I could easily think about doing it was to use an Arduino as a serial device to help communicate with the sonar sensor.
The official release of Silverlight 3 and Expression Studio 3 was last Friday and I’m really excited about how these products have been evolving. My favorite new feature is Sketch Flow, which I’ve been playing around with for a little while now and have found it to be a great way to build dynamic prototypes. From my previous post on Wireframe Prototype Fidelity I would have added a bit on Sketch Flow if the product had existed at the time. I think it fits a gap in the tools of the UX professional who works on rich interactive applications. For myself I was either building static images in OmniGraffle or Adobe Illustrator or I was mocking things up in HTML with JavaScript. Sometimes I’ve built stuff using Flash or even modeling and rendering an animation in 3D tools like Maya to best get the concept across. I think Sketch Flow really brings it all together for a quick way to rough out the experience. My favorite part is how Sketch Flow lets you put in fake data driven content. It’s hard to explain how awesome this is, to get a good understanding check out the video below.
Check out this great video introduction to using Sketch Flow from Mix earlier this year:
To keep up to date be sure to follow the Silverlight team blog, Soma’s blog and Scott Guthrie’s blog
I’ve been thinking about this for a couple of days now and what we really need is a Twitter affiliate ad network like service. I often post tweets about products I like or things that I find interesting. In most cases that is valuable to those companies. I’ve done some small tests with my twitter account @futileboy and found that my click through is very high for each post about 7% of my followers click my links. Which is a much higher number then online ads get. Of course that’s because my links are not always trying to sell something. On twitter if you stop being genuine the people see that and stop following you.
Aside from all that, it would be great if there was service for users of twitter to make a little money off of their recommendations. What I would like to see is a service that’s sort of like Google Adsense, but instead of suggested ads, a user would type in the product they are about to promote and then if available receive a URL with their code and the clients in it. along with a short URL version that’s easy to post to Twitter.
Companies could go one step further with this, on demand adverting, and even offer discounts to top influencer’s followers. Which in turn would give the tweeter more street cred. Just imagine a tweet from someone you follow pointing out a product you’re interested in and a discount if you click the link now. This may be just enough to push someone in to purchasing.
Would this service get abused? OF course it will. However the natural filtering process of over advertising will ultimately make authentic influencers stand out.
Sure it’s a little evil, but if someone is willing to pay for it and someone is willing to take that money in the offer then the service should exist.
If you’re reading this and you’re attending PDC then hit me up on Twitter @futileboy
If you want to learn more about PDC then check out this sites:
There are two excellent Silverlight 2.0 books now on the market:
If anyone out there has any recommendations let me know and I’ll update the list.
There are more challenges when it comes to optimizing for search engines to consume your content if it is a dynamic Rich UI application that doesn’t rely on Ajax. While Google is able to pick up Flash SWF files during its crawl, this does not guarantee that the content is parsed correctly or given the same weight as any other file formats or a pure HTML/AJAX page. Worse, if the application uses a web service, how can it be guaranteed that all the pages are crawled and returned correctly?
In most cases you will need to make sure that the page hosting the application has some html text that describes the application and what it offers. So in essence treat the page in the same way you would HTML.
When possible expose the content of the application so that it too can be indexed.
Simple Silverlight application – XAML to XHTML with XSLT
For a Silverlight element that contains all of its content in the XAML the best method would be to transforms the XAML using XSLT into friendly XHTML. The goal is to contain the translated XAML into a <div> element that would be replaced by the Silverlight control. Search engines would find the XHTML while browsers with Silverlight installed would see the Silverlight app.
1: <div id="SLHost">
2: <asp:Xml ID="XHTML" runat="server" DocumentSource="seo.xaml"
3: TransformSource="XAML2XHTML.xslt" EnableViewState="False"/>
4: <script type="text/JavaScript">
5: createSilverlight();
6: </script>
7: </div>
Then use the following XAML2XHTML.xslt
1: <?xml version="1.0" encoding="utf-8"?>
2:
3: <xsl:stylesheet version="1.0"
4: xmlns:sl="http://schemas.microsoft.com/client/2007"
5: xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
6: exclude-result-prefixes="sl">
7:
8: <xsl:output omit-xml-declaration="yes" indent="yes"/>
9:
10: <xsl:template match="/">
11: <xsl:comment>This is the text that is in the Silverlight XAML:</xsl:comment>
12: <xsl:apply-templates select="*"/>
13: </xsl:template>
14:
15: <xsl:template match="sl:Canvas">
16: <div>
17: <xsl:apply-templates select="*"/>
18: </div>
19: </xsl:template>
20:
21: <xsl:template match="node()"/>
22:
23: <xsl:template match="sl:Image">
24: <div>
25: <img src="{@Source}"/>
26: </div>
27: </xsl:template>
28: <xsl:template match="sl:MediaElement">
29: <div class="Media">
30: <a href="{@Source}">Media</a>
31: </div>
32: </xsl:template>
33:
34: <xsl:template match="sl:TextBlock">
35: <div>
36: <xsl:value-of select="@Text"/>
37: <xsl:value-of select="text()"/>
38: <xsl:apply-templates select="*"/>
39: </div>
40: </xsl:template>
41: <xsl:template match="sl:LineBreak">
42: <br/>
43: </xsl:template>
44:
45: <xsl:template match="sl:Run">
46: <span>
47: <xsl:value-of select="@Text"/>
48: <xsl:value-of select="text()"/>
49: </span>
50: </xsl:template>
51: </xsl:stylesheet>
Handling more advanced Silverlight applications
How do you design an application that could have dynamic content and robust interaction while at the same time enable a web crawler to understand and categorize the underlying content correctly? Unfortunately there is no simple answer or single correct answer. It depends highly on the application’s purpose. In some situations there will be no way to offer the content of the application up to spider outside of the application. In this case it’s best to have as much meta information on the page hosting the application as possible. By following the standard HTML methods in this document you can still extend the indexability of your application by making sure external links are properly formatted and that high ranking sites link to your application.
Detect and Serve
It requires a little more work up front from a development standpoint to go this route, but if you really have a strong need to get the content in your application indexed then this will be the best approach. The goal is to develop the code of the site to be delivered in multiple formats based on the user agent that is accessing the content. This isn’t all that uncommon anyway with the large range of browser and devices out there that are consuming the web already. Most applications are built with the data stored separately from the interaction in a database or local XML document. The site would have to be built so that it can serve up HTML pages for those who don’t have Flex/Flash/Silverlight installed. Plus, we could potentially change these pages for mobile devices like the iPhone that don’t yet support Flash or Silverlight.
It’s also recommend to have some enticement or value proposition to explain to real users why it would be beneficial to add the plug-ins required to get the optimal experience.
The goal would be to have clients that have the plug-in or runtime installed, would be provided the rich interaction. On those that don’t, a functional page in HTML will be provided. More importantly, to the search engines, these pages that are generated will be tagged and indexed correctly, making the content of our applications visible and increase their visibility.
Very nice introduction to web services with ASP.NET video.
[blipit id="375615"]
This was perfect for what I’m working on today.
Looks like some “Windows 7″ multitouch is starting to, er, surface.
Video: Multi-Touch in Windows 7
personally, this doesn’t seem that special. WPF has had the ability to author multitouch for a little while now. There just hasn’t been any hardware except the Wii hacks and the Surface.
Oh and a side note. This is the first time I’ve seen someone use MSN’s Soapbox.