Welcome to MSDN Blogs Sign in | Join | Help

A consumer platform and an opportunity for 3rd party sites and developers.

 

The vast majority of the Internet users has already been in touch with some of the tools and services that are grouped under the Windows Live label. Services like Live Mail (which includes Hotmail and MSN Mail), Live Messenger (MSN Messenger), Live Spaces, Live Search, Live IDs, and Virtual Earth (maps.live.com) are daily used by hundreds million of people.

Windows Live services are in continuous evolution and new services are added regularly, like the new Live Skydrive , Silverlight Streaming, Live OneCare, Live Expo,…

Live Services Overview

These services and the data behind them (always in full respect of privacy and ownership aspects) surface new opportunities for 3rd party web properties to enrich their assets, to drive more visitors, and to keep residents longer within their sites. Aim of this article is to illustrate what are these opportunities and how to realize them.

Enriching, driving more traffic, keeping residents longer

The use of Windows Live ID as an authentication mechanism allows a “single-sign-on” feeling for more than 420Mio users across plenty of Microsoft properties and an increasing number of third-party web sites.

With the Web Authentication SDK available in 6 languages (ASP.NET, Perl, Python, PHP, Java, Ruby) or even easier for Visual Studio developers with the specific control contained in the Live Controls for Visual Studio, a web site can be equipped to use Live ID as authentication mechanism, extending this “single-sign-on” feeling to its users, offering safer authentication thanks to the Windows CardSpace support, and allowing the transparent (no additional login necessary) access other Live Services that it may decide to integrate.

Today, the Windows Live ID authentication platform performs more than 1B user authentications a day.

More information under http://dev.live.com/liveid/.

The API and Visual Studio control for Windows Live Contacts give access to more than 500Mio address books and 30B contact associations. This opens the doors to rather interesting opportunities. Let’s make an example.

I live in Switzerland and in Switzerland we love chocolate. A few weeks ago, it was Eastern. Let’s imagine that I would visit the site of a chocolate vendor with the intention of sending chocolate bunnies to my family and selected friends. Appreciating a good service, I do look for a chocolate-bunny vendor that does bunny delivery. Now, why should I enter all the addresses of my familiars and friends manually onto their web site, when I do have all of them in my Live Contacts and I could simply “transfer” the ones that I want to receive a bunny?

The Live Contacts API and control allow a web site to show to a user her Live Contacts and to give her the possibility to decide to send this information (delegated authentication) to the web site for further processing, see for instance delivering the bunnies to the right addresses. To note is that until the user has explicitly allowed the site to access the contact information, the site doesn’t have any means to see or access it: The data is “tunneled” onto the site directly from the Live Service to the hosted control.

In terms of acquiring new users, the chocolate vendor could even go one step further: Being sure that they have offered a superb service, they could decide to offer the possibility to the users to invite people out of their Live Contacts to join the “chocolate site experience”.

More information under http://dev.live.com/contacts/

 

The amount of digital data has been exponentially growing in the recent past. Because of this, we often struggle in sorting and finding information. Associating a geographical position to the information, it is often of great help. The Virtual Earth AJAX Control is used to add so-called location-based services to web sites. This way, information can be represented and put into relation on geographical maps. Under dev.live.com, you can find an intuitive, interactive SDK that illustrates the capabilities of Virtual Earth and grant you access to the sample code.
Among the many features, Virtual Earth supports GeoRSS, has the unique 3D bird-eye views (see figure), offers 3D modeling and touring, and allows map layering via Map Crunching tool.

Virtual Earth: Zurich HB

In a near future, Microsoft Seadragon, Photosynth, and Silverlight will render the Virtual Earth experience even more stunning, as it was demonstrated at the MIX08 conference in Las Vegas at the beginning of March.
Virtual Earth is free of charge for non-commercial use.

More information under: http://dev.live.com/virtualearth/.


The next way to enrich a web property via Live Services is the integration of Live Messenger instant messaging capabilities. The Instant Messenger Talkback Control and the Instant Messenger Javascript Library help achieving this goal.

With the Instant Messenger Talkback Control, users of a web site can communicate with “entities” in the background, even anonymously.

 IM Talkback

So, for instance users could communicate interactively with “experts” or support teams. We can easily imagine an “ask-the-doctor” or “ask-the-financial consultant” use of this control. It comes by itself that this kind of services could be fee-based. The use of the control is free of charge.

With the full Instant Messenger Javascript Library, web sites can implement a full Instant Messenger experience with the “look & feel” they prefer. It gives almost unlimited possibility to implement IM-based (peer-to-peer) experiences.

More information under http://dev.live.com/Messenger.

Silverlight Streaming offers a platform for high-quality, world-wide streaming of videos. The simplest way to use this service can be summarized in the following steps:

  1. Access silverlight.live.com and open an account. This grants you 10GB of storage and streaming capabilities at up to 1.4 Mbps for videos with a size up to 105MB.
  2. Upload your video or entire Silverlight application.
  3. An iFrame will be returned to you: Simply copy it and paste it into your web site.

This suffices to enable a site to use Silverlight Streaming to stream high quality videos onto a property. To make everything even easier, Microsoft Expression Encoder allows the assignation of a Silverlight player to an encoded video and, via a plug-in, to directly upload it to Silverlight Streaming.
Silverlight Streaming is currently in Beta phase and for free.

More information under http://dev.live.com/silverlight.

ServiceFromTheSky2

Live ID: How do I get one?

We have seen which benefits Live ID brings and which scenarios it enables. Assuming that not every Internet user has yet a Live ID, how can he get one?

As a consumer, when you try to access one of the Live Services, you have the possibility to sign up for a Live ID.

Web sites that intend to use Live ID, alternatively to the previously mentioned Web Authentication SDK, can decide to implement Live ID authentication through the Relying Party Suite. This ASP.NET application supports the sign-in and the sign-up process, delivering a similar experience to the one accessing a Microsoft Live Service.

Web Sites may also decide to give their “own” Live ID to their users (user@mydomain.xx). If the number of targeted accounts is less than 500, Custom Domain via Admin Center is the right choice. Admin Center is a management web site to administer Live ID accounts. These accounts can also be managed programmatically via an SDK.

Alternatively to Custom Domain, Community Builder offers similar functionality for large communities, Live @edu for schools and universities, and Live @telco for large hosters (often telecommunication companies) that intent to offer co-branded Mail, Instant Messenger, and Spaces capabilities to their users via the Live infrastructure.

More information under http://dev.live.com/admincenter.

 

SDKs, APIs, and Controls

Live Services are accessible through open protocols and APIs that can be used from most (web) platforms and technologies (javascript, soap, jason, atompub, webdav, rest,…). This is also valid for the APIs mentioned in this article.

Additionally to these APIs, the Windows Live Tools for Visual Studio 2008 delivers controls for Login, Contacts, Silverlight Straming, and Instant Messenger for Visual Studio developers. Live Tools makes even easier the integration of Live Services into a web property: drag&drog the control, configure it, add a few lines of code by necessity, and you have Lived up your site!

In the future, there will be a standardization of the APIs towards atompub and more and more controls will be available via the Live Tools to the Visual Studio community.

Conclusion

Live Services are easy to integrate into your web site and brings lots of benefits to your users and your business: Please visit dev.live.com to gather all the information and software you need to profit of these services.

Summary

As a "technical evangelist", I should say that I spend most of my time within Visual Studio. Reality is that I spend most of my time within Outlook, which has become my main source of information - Through emails, mailing lists, and rss feeds.

To survive in my jungle of information items, I heavily use Categories. This post explains how I have implemented a few little macros that allow me to have a menu bar with my most-used categories, at 1-single-click distance of any actions. It looks like this:

Bar 

(You can apply your category selection to multiple items)

 

Step 1: Create the necessary macros

  1. In Outlook, click Tools / Macro / Visual Basic Editor
  2. Create a Module
  3. Copy and adapt for your needs the following code:

    Sub UrgentAndImportant()
        Call updateCategoryMain("01 Emails - Urgent+Important")
    End Sub

    Function updateCategoryMain(cat As String)

        Dim myOlExp As Outlook.Explorer
        Dim myOlSel As Outlook.Selection
        Set myOlExp = Application.ActiveExplorer
        Set myOlSel = myOlExp.Selection
        Dim i As Integer
        For i = 1 To myOlSel.Count
            Call updateCategory(myOlSel(i), cat)
        Next i

    End Function

    Function updateCategory(mi As Object, cat As String)

        Dim pos As Integer
        pos = InStr(1, mi.Categories, cat, vbTextCompare)
        If pos > 0 Then
            a = Left(mi.Categories, pos - 1)
            b = Right(mi.Categories, Len(mi.Categories) - pos - Len(cat) + 1)
            res = a & b
            mi.Categories = res
        Else
            mi.Categories = mi.Categories + "," + cat
        End If
        mi.Save

    End Function

updateCategoryMain and updateCategory are used to set the categories. You can keep them as they are (or make them more robust, if required).

urgentAndImportant is the name that I have chosen for the macro that sets the category of an item to "01 Emails - Urgent+Important". This corresponds to the name in my category list under Actions / Categories / All Categories...

Categories

Just do the same for the categories that you would like to have on your menu bar.

 

Step 2: Create the menu bar

In Outlook, click Tools / Customize / Toolbars Tab and create your new menu bar by clicking New....

Tools-Customize-ToolbarsTab (outlook)

Under Commands select Macros and chose the macros you have defined. Drag each of them on your new menu bar.

Right-clicking on the new buttons, you will be able to change them upon your wishes. What I did was

  • Changing the name
  • Copying my icons with Paste Button Image
    • Here, I have used a small trick. Within Powerpoint, I have created a square and applied the colors of my choice. Then with the Snipping Tool, I have copied a square of color, which I have then pasted with the above command. It was surely better than working with the icon editor...

Tools-Customize-(Make Menu)

 

Step 3: Sign the macros

Last step, is to sign your macros. Outlook per default disables the execution of Macros - For security reasons.

Tools-Macros-Security

To allow the execution of your macros, you have to sign them and let Outlook know that he can trust your signature.

This is what I have done:

  1. I have created my own certificate via the Digital Certificates for VBA projects tool. You can find it under Start / All Programs / Microsoft Office / Microsoft Office Tools.
  2. Within the Visual Basic Editor, sign your macros with this new certificate (Tools / Digital Signature).

Tools-Digital Signature (within VB Editor)

The first time you run your macros, tell the system to always trust your signature.

Your are done! Enjoy your new menu bar!

On October 4th, Steve Ballmer was in Switzerland. The Swiss Developer & Platform Evangelism team, to which I belong, organized a public event with a keynote for him. After this keynote, I was supposed to be on stage with my colleague Sascha Corti to present the "next generation Internet application". Unfortunately, a mean virus has kept me away from stage and close to the.... Anyway, I just wanted to share with you the high-level content of that presentation that, by the way, extends pretty nicely one of my previous post (User Experience Matters)...

*** Overview ***

Let's start from the beginning. If we focus on User Interface Technologies, we can identify 3 types of them: Desktop Client, Web Client, and the new Rich Internet Applications (figure below).

 SteveB1

Within these categories, we find today excellent tools/technologies on the market. However, we don't see any of them that can cover the three types with excellence.

SteveB2

But Microsoft :-)

With the newcomer Silverlight for Rich Internet Application, we can complete a picture where

  • Windows Server/IIS and ASP.NET (+AJAX) cover the classical web applications and
  • Office and the .NET are a fantastic platform for developing desktop clients (Winforms, WPF, OBA).

And even more interesting...

SteveB3

... all these technologies rely on the .NET Framework*, making virtually any .NET developer capable of using his .NET skills at best for developing desktop, web, or RIA applications!

[* Regarding Silverlight, I am considering here version 1.1 and successors]

But it is even better...

SteveB4

... because as a developer, I can use the same, familiar tool (Visual Studio) to develop every type of application. Additionally, the latest technologies based on XAML (WPF, Silverlight - see below for additional details), allow a seamless cooperation between Designers and Developers, who can work simultaneously on the same project without disturbing each other - The one designing the user interface with Expression Studio, the other building the business logic.

Isn't this cool?

*** Web UI Technologies ***

In this second part of this post, I would like to focus on the newest Web UI Technologies: ASP.NET AJAX, Silverlight, and WPF rendered in the browser (.xbap).

In my previous post User Experience Matters, I have already started discussing them under the reach vs. rich perspective. I do think that this is an excellent approach to identify which technology should be chosen for which scenario. For this reason, I have tried to "enrich" my previous slides with more details.

If we consider reach, the requirements of these technologies on the desktop systems are the limiting factors. Here, the summary:

SteveB5

As we can clearly see, we have a situation where

  • ASP.NET AJAX runs virtually anywhere allowing us great reach
  • Silverlight runs on the latest Microsoft and Mac OS's, within their most common browsers (with Silverlight plug-in).
  • WPF runs only on the latest Microsoft OS's with the .NET Framework 3.x installed.

So, considering these limitations, for which scenarios is meaningful to consider Silverlight and WPF for Internet applications? The following slide helps to answer this question:

SteveB8

If we look at rich, it increases from left to right.

With AJAX, we are no longer forced to post back the entire web page to the server (and receive back a new one). In fact, it allows so-called partial roundtrips, where only portion of the web site are actualized through server communication. Additionally, AJAX "enables" JavaScript-based client-side processing. The combination of these 2 aspects permits the implementation of web sites that are more responsive and user-friendly, without flickering and with nice features like auto-complete, hovermenu, dragpanels,...

v The canonical example for AJAX stile site is mail.live.com.

 

Silverlight raises the bar pretty higher. In fact, it allows an XAML-based declarative definition of the user interface, which is fully scalable (vector graphic) and able of rendering rich 2D animations. Additionally, one of the strengths of Silverlight is the ability of rendering videos (and audio), even in HD format. If your goal is to develop an application with rich media integration and animation, AJAX is not the technology for you and you should look at Silverlight instead.

v Examples:  Airlines Demo, Tafiti, Halo3 Interactive Game Guide, Allblacks gadget, hsn,... and many more, some of them are listed on http://silverlight.net/showcase/

 

If you want to raise the bar even higher and you target to develop applications

  • that can render 3D animations, or
  • that contains so intensive graphical calculations that it would be better to use the GPU power instead of the CPU one, or
  • that will need to integrate with other software, like office or the OS itself - and therefore require full trust, or
  • that can support complex printing, or
  • that can be used offline

then WPF is the technology that serves you at best.

v A few self-explicatory examples: British Library, Woodgrove Finance, NY Times reader

 

*** A few more details on Silverlight ***

SteveB7

About one month ago, Silverlight has been released in his version 1.0.

In this version, the XAML Elements are steered via JavaScript, as we can see in the example reproduced in the following slide:

SteveB7b 

To help Mr. Everybody's site to include video rendering capabilities within its assets without having the sorrows of building the necessary streaming infrastructure, Microsoft offers free streaming services for Silverlight.

SteveB9

Under http://silverlight.live.com you can upload up to 4GB of (video) data for free. Microsoft Live delivers you the infrastructure to efficiently stream your videos all over the world.

Once again, isn't this cool?

 

*** Silverlight, the future ***

Silverlight 1.1 is the future of Silverlight.

In a way, it is what most of us were waiting for: The possibility of using .NET to implement applications that target non-Microsoft OS's. With Silverlight 1.1 and its CLR Core, developers will be able to use the .NET object/programming model, as well as the .NET tools (Visual Studio), to develop browser applications that will run

  • on Windows 2000, WS2003, XP SP2, Vista via Internet Explorer or FireFox
  • on MacOS via Safari
  • on Linux (Microsoft and Novell announced a cooperation to develop a Linux Silverlight plugin - more details under moonlight)
  • and later on mobile devices.

SteveB10

Another important feature that will be delivered with Silverlight 1.1 is Digital Right Management capabilities. Silverlight 1.1 will support PlayReady DRM.

 

*** Summarizing... ***

SteveB11

I hope this was helpful and that you will continue reading my post.

Take care and start silverlighting right now!

Last short post is to catch the attention of the developers out there that are interested in building "extensible applications".

With the .NET Framework 3.5 scheduled to hit the market in Q1 2008 with Visual Studio 2008, you find a technology called CLR Add-ins.

From MSDN Magazine, CLR inside Out, .NET Application Extendibility (http://msdn.microsoft.com/msdnmag/issues/07/02/CLRInsideOut/default.aspx): Our goal in designing this model was to enable dynamic composition of version resilient, isolatable components. Our primary concerns were to ensure the add-in developer experience would not be complicated by the mechanics involved in meeting this goal and to make the host's job as easy as possible.

The really cool thing about it is that it will allow you is to generate AppDomain isolated, pluggable WPF Add-ins. If this tease your interest, do not hesitate to visit the team blog: http://blogs.msdn.com/clraddins/.

If you are a developer on .NET technologies, ScottGu’s Blog (http://weblogs.asp.net/scottgu/) is an excellent starting point. Scott Guthrie is a General Manager within Microsoft's Developer Division. He runs the development teams that build: CLR, ASP.NET, WPF, Silverlight, Windows Forms, IIS 7.0, Commerce Server, .NET Compact Framework, and the Visual Studio Web and Client Development Tools. His entries are always very didactical and precise: Probably the most up-to-date source of information about the newest developer technologies. Don’t miss it!

Tim Sneath’s (http://blogs.msdn.com/tims/default.aspx) and Mike Harsh’s (http://blogs.msdn.com/mharsh/default.aspx) Blogs are an important source of implementation examples with the newest client technologies. Go there if you want to know what you can do with Silverlight & friends!

If “Identity” is a topic for you, you cannot miss Kirk Cameron’s Identity Blog (http://www.identityblog.com/)

Have Fun!

Words On Web (www.wordsonweb.net) is a page where we have just started publishing information on cool web solutions that have been developed in Switzerland, as well as “VIP Interviews” (to this last category belongs my interview to Scott Guthrie registered at ReMix – More will follow!). If you want to know what other customers are doing or if you want to generate visibility around your own web solutions on Microsoft technologies, go on www.wordsonweb.net.

Keep an eye on it!

I have heard about the project Astoria for the first time at Mix in Las Vegas this year. It immediately caught my attention and interest...

Project Astoria aims to make data available on the Internet for easy consumption by other (client) applications. If you think in term of mash-ups, this is a technology that you should have on your radar. From the Astoria Team Blog (http://blogs.msdn.com/astoriateam/default.aspx): The goal of the Astoria project is to enable applications to expose data as a data service that can be consumed by web clients within corporate networks and across the Internet. Such data services are reachable over regular HTTP requests using standard HTTP verbs such as GET, POST, PUT and DELETE to represent the operations against the service. The payload format for the data exchanged with the service can be controlled by the client and all options are simple, open formats such as plan XML and JSON. The use of web-friendly technologies make it ideal as a data back-end for AJAX-style applications, Rich Interactive Applications and other applications that need to operate against data that is across the web.

Register till 31 July and save 300 Euros!

 

TE

 

 

.... See you there!

This post contains an easy example of use of Virtual Earth for basic location services. With the following code, you will be able

·         to put a flag on a location

·         to add information about the flagged place

·         to generate direction information to reach the flagged location from any given starting place 

VE 

 

Here below, the simple code you need. For additional information, please go to the Windows Live Developer Center.

 

 

<html>

   <head>

      <title>Your Title</title>

      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

      <script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=5"></script>

      <script>

     

      var map = null;

     

      function initialize()

      {

        GetMap();

        myHome();

      }

     

      // To display a pin and to configure the related popup windows

      function myHome()

      {

        var pin = new VEPushpin(1, map.GetCenter(), null, 'Here is where I live...',

            '<table>' +

                '<tr>' +

                          '<td>' +

                                 '<ul>' +

                                       '<li>My Address</li>'+

                                       '<li>My City</li>' +

                                       '<li>My Email</li>' +

                                 '</ul>' +

                                 '<ul>' +

                                     '<img src="images/My Image.jpg">' +

                                 '</ul>' +

                          '</td>' +

                   '</tr>' +

            '</table>');

        map.AddPushpin(pin);

      }   

          

      // To center the map on your location enter the correct coordinates (

      // XXX, YYY below – Should be something like 47.nnnn, 8.nnnn)

      function GetMap()

      {

 

              // VEMap Class

 

         map = new VEMap('My Map');

 

// VEMap.LoadMap(VELatLong, zoom, style, fixed, mode, showSwitch);

//

//   VELatLong: A VELatLong Class object that represents the center of the

//              map. Optional.

//   Zoom: The zoom level to display. Valid values range from 1 through 19.

//         Optional. Default is 4.

//   Style: The map style. Valid values are a for aerial, h for hybrid, o for

//          oblique (bird's eye), and r for road. Optional. Default is r.

//   Fixed: A Boolean value that specifies whether the map view is displayed

//          as a fixed map that the user cannot change. Optional. Default is

//          false.

//   Mode: A VEMapMode Enumeration value that specifies whether to load the

//         map in 2D or 3D mode. Optional. Default is VEMapMode.Mode2D.

//   showSwitch: A Boolean value that specifies whether to show the map mode

//               switch on the dashboard control. Optional. Default is true

//               (the switch is displayed).

 

         map.LoadMap(new VELatLong(XXX,YYY), 15 ,'r' , false, VEMapMode.Mode3D, true);

      }  

     

      // To draw direction information from the location entered in the textbox ()

      function Button1_onclick() {

 

// VEMap.GetRoute(start, end, units, route_type, callback);

//

//   start: The start location. This can be a string value of an address, a

//          place name, or a VELatLong Class object that specifies the start

//          location

//   end: The ending location. This can be a string value of an address, a

//        place name, or a VELatLong Class object that specifies the end

//        location

//   units: A VEDistanceUnit Enumeration value that specifies either miles or

//          kilometers. Optional. Default is VEDistanceUnit.Miles

//   route_type: A VERouteType Enumeration value specifying either the

//               shortest route or the quickest route. Optional. Default is

//               VERouteType.Shortest

//   callback: Specifies the function to call when the VERoute Class object

//             is returned – See next function

 

        map.GetRoute(Text1.value, new VELatLong(XXX,YYY), VEDistanceUnit.Kilometers,

                     VERouteType.Quickest, onGotRoute);

      }

     

      // This code generates the routing information (

      function onGotRoute(route)

      {

           var routeinfo="Route info:\n\n";

           routeinfo += "Total distance: ";

           routeinfo += route.Itinerary.Distance+" ";

           routeinfo += route.Itinerary.DistanceUnit+"\n";

           var steps="";

           var len = route.Itinerary.Segments.length;

           for(var i = 0; i<len ;i++)

           {

              steps+=route.Itinerary.Segments[i].Instruction+" -- (";

              steps+=route.Itinerary.Segments[i].Distance+") ";

              steps+=route.Itinerary.DistanceUnit+"\n";

           }

           routeinfo += "Steps:\n"+steps;

           TextArea1.value = routeinfo;

           TextArea1.style.visibility='visible';

      }

 

   </script>

   </head>

   <body onload="initialize();">

        <table style="width: 600px">

            <tr>

                <td style="width: 600px; height: 450px">

                    <div id='My Map' style="position:relative; width:600px; height:400px;">

                    </div>

                    <input id="Button1" type="button" value="Give directions from"

                           onclick="return Button1_onclick()" style="width: 195px" />

                    <input id="Text1" type="text"

                           value="Bahnhofstr.1, 8000 Zurich, Switzerland"

                           style="width: 400px" />

                </td>

            </tr>

            <tr>

                <td style="width: 600px; height: 39px">

                   <textarea id="TextArea1" style="width: 599px; height: 153px; visibility:

                             hidden;" onclick="return TextArea1_onclick()"></textarea>

                </td>

            </tr>

        </table>

       <br />

       <br />

   </body>

</html>

 

 

www.mix07.com in Las Vegas is over – and I am one of the lucky guys who could attend to it. Microsoft Silverlight was surely the highlight of this conference. I have had the possibility of seeing amazing applications developed with this technology. For me, the most impressive one was "BBC 1", a new way of delivering what we use to call radio (and in my opinion no longer is, considering the actual richness of the media used). TopBanana (by Metaliq) was also awesome, delivering video editing capabilities in the browsers. Not to forget SilverlightTV that will soon be available as a sample.

In the next week, I will post a complete blog about these technologies and how to use them at best for your great business. Today, I will only use this opportunity to inform you, my Swiss compatriots, that we will have a re-run of the MIX conference in Zurich, on June 18-19. Please book already your agenda, details will follow soon!

… I normally do not post this kind of information but considering the importance of the product… you can find it under www.microsoft.com/getbeta3 and in one of my next post I will tell you more about how it can help you improve your business. Stay tuned!

 

So, it's now time to officially present Silverlight Logo, Microsoft new vision for creating, managing and experiencing content on all platforms, be it the desktop, web or mobile. Microsoft Silverlight is the new name for Windows Presentation Foundation Everywhere (WPF/E). It allows developers to create and users to consume Silverlight applications on Macintosh or Windows operating systems and on multiple browsers like Internet Explorer, Firefox and Safari.

Here are some features of Silverlight:

  • Rich interactive experiences and applications on the Web
  • Robust vector-based graphics and overlays
  • Unmatched video and audio quality from HD to mobile
  • Simple, in-place installer for Silverlight browser plug-in
  • Device support

Other components of Silverlight will include updated Expression tools, a Expression Media Encoder that support WMV and VC-1 video standards. One of the things you'll quickly see is sites using Silverlight will be able to deliver 720p HD content to the masses like Soapbox / Youtube. Checkout the feature comparison chart:

Features/Benefits

Silverlight

.NET 3.0

Rich 2D animation/graphics with audio and video

v

v

Industry standard video codec

v

v

Scalable video format from HD to mobile

v

v

Hardware-assisted editing and encoding solutions

v

v

XML (XAML)-based presentation layer for SEO

v

  

Choice of standards-based and high-performance languages

v

v

End-to-end server and application platform

v

v

Media server licensing (unlimited bandwidth)

$999

$999

Content access protection (DRM)

v

v

Client side playlists for ad-insertion

v

v

Robust video publishing tools and 3rd party ecosystem

v

v

High-performance, multi-core enabled client

v

v

Scalable full screen video up to HD (720p)

v

v

Native support for device-based video

v

v

Offline, document support

  

v

Client size

~2MB

~50MB

Supported operating systems

Windows/Mac

Windows

Microsoft's broader development platform and additional details about Silverlight will be shared in the keynote presentation at Microsoft's upcoming Mix07 conference, April 30 in Las Vegas. Microsoft will also release the beta for Silverlight during the Mix07 conference. More information about the Mix07 event can be found at http://www.mix07.com.

Fact Sheets

Download the more materials here:

Thank you to Backstage at MED blog for providing this content.

I have initially put the pictures of the previous blog entry in a protected area... Now it should work. Thank you very much for your feedbacks.

This blog entry is about user experience. I will try to summarize in a few chapters why it matters and what Microsoft is doing to help you produce better "user experiences".

Definitions

<Wikipedia link=http://en.wikipedia.org/wiki/User_experience>

User experience, often abbreviated UX, is a term used to describe the overall experience and satisfaction a user has when using a product or system.

<\wikipedia>

User Interfaces are an important aspect of UX, but not the only one. UX is about the overall experience, which includes for instance the "feeling of being safe".

In our vision, UX needs to address the perception of satisfaction the user has with a company's products or services. UX is a key component and it can be a competitive differentiator in markets with a large number of competitors.

Connecting Business & User Experience

Simplifying a little bit the game, you have 2 ways to increase your business:

  • Reach more people (consumers, customers,…)
  • Keep them longer on your assets

A precondition is that they perceive the internet as a secure platform.

So, to introduce a few definitions, experience must improve along 3 Vectors:

  • Reach: The browser is just the beginning. Today, web content & services are bursting out of the browser and extending into other PC apps, the Windows desktop and off the PC entirely into a wide range of alternative devices. Reach touches more users, likely on more devices, and can unlock new monetization opportunities.
  • Fidelity: is about keeping your users for a longer time on your assets by delivering rich, enjoyable user experiences through applications (web sites) that look better and perform better.
    Fidelity drives increased revenue per user; further, better content will attract new users.
  • Security & Identity: covers technologies that improve the user's confidence in e-commerce transactions:

Maximizing your investment 

Let's start from the preconditions: how can you make e-commerce safer.

User Experience & Technologies

I have thought that a short, summarizing table of the most important UX-oriented technologies could be a good starting point. After, I will explain with more details how these technologies really help improving UX. (Please note that I will not explain the technologies but how they can improve UX)

 Technologies for UX

IE7 & Windows CardSpace

Today, there are still plenty of potential e-consumers who are kept away from the net because they perceive it as unsafe. I could take my dad as an example: He would never dare to use his credit card number on any web page. And honestly, I do not dare to push him doing it, not being sure that he can make the difference between a "good site" and a "bad site". Here, is where the technology has to help.

With IE7, Microsoft introduced a few, intuitively-understandable mechanisms to help identifying malicious (phishing) sites (more details here). However, Windows CardSpace is the technology that enables a definitely more secure way to deal with digital identity. To avoid repeating what I have already stated in a previous blog, I remand you to the related entry (à A lighthearted introduction to Windows Cardspace ß).

Maybe you may wonder why I have put a "(X)" for Reach. Well, for IE7 this is pretty easily explained: IE7 is also Microsoft RSS platform. With RSS, we clearly have an easy & effective mean to reach more people.

Regarding the reach of CardSpace, this is more subtle and not for the masses. If you decided to become an Identity Provider (and you are successful), you can potentially reach a very high number of customers through your Identity Cards, which have your logos and are probably bound to your (other) services.

Windows Live Gadgets

One of the easiest ways to increase reach is to profit of the traffic generated by other assets. Windows Live Gadgets, help you achieving this, with limited investment (à Why should you produce a gadget? ß).

Windows Sidebar Gadgets

Windows Sidebar Gadgets also helps you increasing a bit Reach, however, they are much worthier in increasing Fidelity. You have to be smart implementing them, but if you are, you can generate a new strong bound with your customers. Previous entries in my blog (à What should I do to make my Gadget successful? ß), have already touched this topic. From my experience in the field, there is one opinion that I would like to share with you here: Consider implementing gadgets that deliver information on a publish/subscribe-basis. This way, the gadget has "its own life", and you can get in touch with your customers when it is more appropriate. I have seen very elegant "search-gadgets", however, I do not think that they really exploit the potential of this technology. The reason is simply that the user remain in charge of firing the search and, this way, you don't achieve the "fidelity" (stay longer in touch with your customers) that you may want to have.

Technologies for richer User Interfaces

As mentioned in the beginning, UX is not only nicer UIs. However, nicer UIs play an important role. It is important to understand that

  • A nicer UI can make the difference in a market where several competitors offer similar features/functionalities. Think for instance about travel agencies: They all offer very similar services and they often use the similar sources for their data. Why do you prefer agency A over agency B?
  • A "table-representation" of information is no longer the most efficient way of representing data. In Switzerland, the Zurich Airport managed by UNIQUE had issues in the past in understanding in real-time what was happening in the airport. As every airport, they had several parties involved in several airport activities, each of them delivering information about the status of their service. Solved the issue of putting together all this information, they faced the issue of being able to interpret it: the table with several hundreds of entries was quite meaningless to human eye. So, they found a different, more graphical way to represent this information (more information later in this blog entry). In this case, a richer UI not only is a better marketing vehicle for this application but also allows to access information in a much more efficient way, increasing drastically the productivity of its users.
    A very similar situation is also narrated in the Scripps Research Institute case study. Here, a short extract: "With mountains of data created daily, The Scripps Research Institute, a world-renowned cancer and biomedical research facility, needed to help scientists and doctors from a variety of disciplines link their work on potential cancer treatments with the latest research. [...] Using the Microsoft .NET Framework 3.0, Windows Vista™, and Microsoft Office SharePoint® Server 2007, InterKnowlogy created an application that allows researchers to examine 3-D models of cancer cell proteins, annotate the models with relevant data, and then share notes with colleagues. Researchers now spend less time searching for data and more time developing potential treatment solutions."

The figure below summarizes these 2 aspects taking into consideration the pure html mail client, the AJAX-style one, and the installed one. In this case, moving from left to right, not only the UI is nicer and more enjoyable but it also allows us to increase our productivity by making use of richer graphical ways of representing and grouping information.

 Rich User Interfaces

ASP.NET 2.0 AJAX Extensions (formerly known under the codename "ATLAS"), Windows Presentation Foundation, and "WPF/E" (still a codename) are the newest Microsoft technologies for UI design and implementation. Each represents an improvement respect the previous technologies and each has a different focus.

 UI Technologies

This figure summarizes the mentioned UI technologies and how they impact Reach and Fidelity. In the next few paragraph, I will try to give you a few more information about them and how they can improve the UX.

ASP.NET 2.0 AJAX Extensions ("ATLAS")

The AJAX Extensions is a framework that aims to improve the UX of the classical browser applications, by adding behaviors that until recently were typical for installed application. Key to this framework is the ability to make a 10-year old powerful but complex technology (AJAX) easily available to the broad community of ASP.NET developers.

It consists of

  • Microsoft AJAX Library
    • The client-side "Atlas" javascript library
    • Works with any browser, and also support any backend web server 
  • ASP.NET 2.0 AJAX Extensions
    • The server-side "Atlas" functionality that integrates with ASP.NET.
    • These controls will also be built into ASP.NET "Orcas" 
  • ASP.NET AJAX Control Toolkit

Windows Presentation Foundation

The Windows Presentation Foundation (WPF) is an extension of the .NET Framework 2.0 and it is part of the .NET Framework 3.0, which is part of Vista and can be installed on Windows XP and Windows Server 2003. WPF brings a few very important innovations to UX. It allows to declaratively define User Interfaces through an "XML dialect" called XAML.

 Declarative Programming

XAML has plenty of technical highlights; however, I am currently more interested in the "organizational ones". New tools, like the Expression Blend or Expression Design but also 3rd party ones, are targeting the designer community to give them means to produce rich XAML interfaces that can then be enhanced by developers with the needed business functionalities. What is really new is the fact that designers and developers can work on the same projects (meaning project files!) with different dedicated tools, both using at best their skills to the full benefit of the final solutions.

WPF brings a bunch of innovations in UI design, allowing an easy integration of text, music, animations, videos, 2D and 3D graphics. Additionally, WPF uses the GPU, avoiding that graphic-intensive representations may impact the CPU, and the entire performance of an application. It makes also use of Vector Graphic, virtually allowing to scale user interfaces to every kind (and size) of display.

 WPF

In the case of WPF, nothing can help you better understand the potential of this technology than a few examples.

Before producing a list of applications, I would like to start with a local case to which I am emotionally very close. Almost 2 years ago, I was at PDC in Los Angeles with the tragically departed WalterZ of Neuropie, discussing with him and the WPF product team how cool would be to bring the Zeus project they did for the UNIQUE/Airport Zurich to WPF. We were all very excited and Neuropie passed this enthusiasm to their development partner Zühlke Engineering, which started almost immediately prototyping a WPF solution. Before giving you the links to Zeus, I feel the need to mention other 3 names: DanielP (Zühlke) who brightly leads the development, JürgenW (Neuropie) who piloted successfully the project in a very difficult phase, and our RonnieS who acted as a fantastic bridge between the local development team and the WPF product team in Redmond. Great job guys!

ZEUS 

Others Examples (running within and/or beyond the browser)

Below, you find a few applications that came to my attention in the past. Tim Sneath on his blog publishes regularly new amazing WPF applications: Visit his blog, I warmly recommend it!
Additionally, Channel9 also publishes a list of WPF application.

(Please note that some of the links may change or have already changed)

"WPF/E"

Windows Presentation Foundation / Everywhere is the technology that allows to bring a subset of XAML in the browser, for rich 2D animations, video integration, and vector graphic. With the current Technical Preview (Feb 2007 "WPF/E" Community Preview), javascript is used to interact with XAML, so for instance events generated by XAML objects are coded with javascript.

On the previous figure on UI Technologies, you have surely notice a question mark (QM) in the WPF/e section: This is not there because I am wondering or I don't know what the characteristics of WPF/e are but because Microsoft plans to make a few important revelations about it at MixO7 (end of April. So, for the moment, I have to keep silent… But I warmly suggest you to stay tuned!

Or even better! Come to MIX… MIX

 WPF/E

You can find a few cute, playful examples of WPF/e application on channel9. Please consider them a teaser to inspire your creativity to produce cooler, more business-oriented applications.

Closing on UI Technologies


As you may already have realized, we now have 3 technologies that allow us to produce "better" user interfaces, and finally User eXperience. However, the level of richness and the reach of the applications that you can build with these technologies is proportionally inverse. The richer, the less reach you have. "ATLAS" runs in every decent browser, WPF/e runs within the browser on Windows and Mac (see figures under WPF/e paragraph for details), WPF runs where the .NET 3.0 can run, so finally under Windows Vista, Windows XP and Windows Server 2003 (for the latest 2, you have to install the .NET3.0 runtime).

So, the technology you choose strongly depends on your business objectives. There are very good reasons for each technologies and if you would like to discuss with us which one suites your needs better, don't hesitate to contact us.

 Summary

In my previous post about CardSpace (A lighthearted introduction to Windows Cardspace), I made an imprecise assertion that I would like to briefly reformulate here. In my example about tax application, I did mention that Self-issued cards were not “secure enough” for that type of applications. In fact, self-issued and managed cards have the same security. What we want to achieve for a tax application is a higher level of trust on the veracity of the information contained in the token. We want that a trusted third-party guarantees for this information. In other words, we want an “official identity provider” that we can use for “official purposes”.

More Posts Next page »
 
Page view tracker