Todd Anglin's Code Campground

A casual look at the world .NET coding

February 2008 - Posts

Top 5 Ways Microsoft Will Use Silverlight

Microsoft Silverlight 2.0 Beta With MIX08 less than a week away and, in turn, the expected arrival of the Silverlight 2.0 beta, I thought it would be fun to ponder how Microsoft is planning to use their new browser-based, cross-platform plug-in. After all, history reveals that many Microsoft platforms have their roots in satisfying internal Microsoft project needs (we owe the "X" in Ajax to the Outlook Web Access team), so it's only fair to assume that from the get-go Microsoft saw the opportunity to use Silverlight to build (or enhance) new products. The question is, which products will get the Silverlight treatment and when?

To create my "Top 5" list, I've scoured the Internet for clues, pondered the skunk-works projects in Microsoft's Live Labs, analyzed Microsoft's competitive landscape, and tossed-in a dash of "gut feeling." Clearly, a thorough scientific process. What follows is my best guess at the products Microsoft is planning on building on Silverlight in the next few years.

  1. Microsoft Office Web Edition
    This is the inevitable purpose of Silverlight: to enable Microsoft to deliver the full Microsoft Office experience via the browser. Do you think Microsoft intends to sit idly by while competitors like Google threaten its Office cash cow online? You'd be crazy to think so. I think the reason we haven't seen a serious online Office attempt from Microsoft yet is because they're waiting for a mature Silverlight platform to make the jump. And assuming the next version of Office for Windows is going to be WPF/XAML based anyway, it makes all the more sense to build for Silverlight.

    The key barrier to an online Office experience with Silverlight is obviously local file system access (which Silverlight lacks for security). But given Microsoft is already experimenting with a Windows Live Drive, that is a problem easily solved with cloud storage. I think there is no question that Office running on Silverlight is a question of when not if.

    Likelihood: High
    Arrival: With Office 14 (Note: There will be no Office 13, for obvious naming reasons).

  2. Radically new online mapping tools
    The online competition for mapping tools has really reached a plateau. Google Maps and Microsoft's Live Maps add new features every now and then (like the Google's cool ability to adjust your route), but nothing has been "earth shattering" for a number years. The move to Ajax-based ZUIs (Zoomable User Interfaces) was the last "big" transition for online mapping and that's several years old now.

    If Microsoft introduces a Silverlight version of Live Maps, though, we could start to see a slew of new features delivered to online mapping. For starters, with the .NET framework running in the browser, routes could be quickly calculated and adjusted without the need of significant help from the server, leading to more powerful routing tools. Then, with the strong animation support in Silverlight, routes could be previewed similar to the experience you get with today's GPS units (and similar to a feature Ask.com has, but with more "richness"). The possibilities with a plug-in based tool are endless.

    Even more interesting, though, is the mounting evidence that Silverlight 2.0 will include a technology from Microsoft Live Labs called Seadragon. Seadragon is a technology Microsoft purchased in late 2006 that enables huge amounts of visual data to be smoothly browsed over a network, regardless of bandwidth. According to the research site, Seadragon provides transitions that are "smooth as butter" with performance tied only to the pixel-to-bandwidth ratio. With this technology in Silverlight, the map ZUI that we've come to love could get a big boost.

    Likelihood: High
    Arrival: Within a year

  3. Cross platform .NET IDE
    Before you scoff at the idea, hear me out. One of the key "problems" with .NET is that the only way to really develop .NET is on Windows with Visual Studio (there are other "less elegant" ways, but really...come on). With Silverlight making the push to build the .NET framework on OS X and Linux, there will be new reason for developers on those platforms to want to use .NET to build applications. If Microsoft can create a simplified Visual Studio IDE running on Silverlight for those developers, they could start to increase .NET adoption in the traditionally non-.NET Linux and OS X dev crowds.

    Clearly, this task is not without its challenges. Even more so than Office, a Visual Studio product that doesn't have direct access to the file system would be a hard sell. Maybe this product could drive an innovative and secure way to grant a Silverlight application access to a user's PC- I'm sure Enterprises are going to want that functionality sooner rather than later, anyway. Beyond that, an IDE would also assume the availability of the full .NET framework (something Silverlight isn't delivering in 2.0). This opens up the speculation that maybe future plug-ins could quietly stream (with user permission, of course) a full, cross-platform .NET framework to their PCs so future Silverlight apps could take advantage of all .NET framework features. Time will tell...

    So while a browser-based IDE is a stretch, even simple tools with IntelliSense support would be a step in the right direction. Hopefully Microsoft will make some .NET dev tools- Silverlight or otherwise- available cross platform as the .NET framework moves that direction.

    Likelihood: Eh...
    Arrival: Beyond Silverlight 2.0

  4. Accelerated Software + Service
    Assuming the full .NET framework eventually makes it to Silverlight, and assuming something is done to make local file system access possible, Silverlight could very quickly enable Microsoft to accelerate its path down the Software + Service road. If the Yahoo! deal isn't evidence enough, Microsoft's actions over the last couple of years should make it clear that they are trying to reinvent themselves as an online company capable of competing with Google on its home turf. So far their progress has been slow and largely unsuccessful (thus the Yahoo! deal). A new .NET-enabled platform like Silverlight could help Microsoft quickly port a number of its consumer applications to web-based versions.

    The "software" in the Software + Services model in this case would be the light-weight and flexible Silverlight plug-in. The "services" would be the applications delivered via the plug-in, likely sold on a subscription model or supported via ads. While Google could in theory do the same with Flash, the key difference is that Microsoft already has a large and successful portfolio of consumer desktop applications. If Microsoft can convince those people to try online versions of the tools they're used to, they may capture a large portion of the market Google can't reach. And if you're Microsoft, everything these days seems to be about beating Google.

    Likelihood: Maybe
    Arrival: 1 - 2 years

  5. Cross platform data mining
    This is less of a possible Microsoft "product" and more of a possible Microsoft "use" for Silverlight. To the best of my knowledge, this is the first time Microsoft is releasing a tool that will work on all three "major" OS platforms- Windows, OS X, and Linux. It's also one of the first browser tools from Microsoft that works in all three "major" browsers- IE, Firefox, and Safari. Combine that with the Silverlight plug-in's ability to automatically update itself- which implies "phone home" capabilities- and you have a plug-in that will give Microsoft an unprecedented look at the usage patterns of different browsers and operating systems.

    For example, as the Silverlight plug-in reaches the masses, Microsoft will have millions of plug-ins checking-in to see if new versions of plug-in are available. Clearly, to check for the right version, that "ping" will need to include browser and OS information. By analyzing that info, Microsoft can track first hand the fluctuations in the popularity of different browsers and operating systems (vs. what analysts report). Is that a privacy concern or a big value for Microsoft? Probably not, but it will be interesting to see what they do now that they're supporting "enemy" browsers and OSs.

So there you have it. The five things Microsoft is most likely to do with Silverlight in the next few years. Clearly, this doesn't cover at length the ways I expect Microsoft enhance Silverlight over the next couple of years or how I expect other companies to use this emerging technology. That's fodder for a different post.

Do you think I'm on track or have I missed the mark? I guess we'll start to know more next week at MIX!

North Houston DNUG meeting tonight

North Houston .NET User GroupThis is a bit of a late notice, but for any of you in the Houston area here's your official reminder that the newly founded North  Houston .NET User Group will be meting tonight (Thursday) at 6:30 PM. This is the second official meeting on the new Houston-area DNUG, and if the turnout is anything like week one, we should have a full crowd and a good time. Tonight's speaker is Claudio Lassala who will be talking about test driven development (aka TDD). The subject of TDD is increasingly becoming more common in .NET conversations as Microsoft introduces technologies that make it easier to do (such as the forthcoming ASP.NET MVC and the inclusion of VS Test tools in all Pro SKUs), so this is a great opportunity to come learn more about an important .NET topic.

For future reference, the NHDNUG meets the 3rd Thursday of every month at Lone Star Community College (formerly Montgomery College) in The Woodlands, Texas. Doors will open around 6:00 PM and the meeting will officially start at 6:30 PM. As per the DNUG norm, there will also be free pizza and drinks and some great giveaways. I think tonight's prizes include a copy of Expression Studio, a license for the RadControls for ASP.NET from Telerik, and a copy of Visual Studio 2008 Pro! So if you're in the area, you definitely don't want to miss this event. Set your reminders and I'll see you tonight at 6:30 PM!

For more details, visit the NHDNUG site: http://www.nhdnug.org

Posted: Feb 21 2008, 02:58 PM by tanglin05 | with no comments
Filed under: , ,
The definitive UI component metaphor

Construction One thing you learn quickly when you leave a Fortune 200, well recognized Enterprise and join a smaller, much more exciting software company is that it is a lot harder to answer the inevitable "what do you do?" question. That is no more true than during the holidays, when you're visiting with distant relatives, many of whom still think of AOL as the Internet and think software is written by geeks in basements. Plagued by this problem, I have constantly sought the "perfect" metaphor for "what I do" so that anyone can understand software UI components. And at last I have the answer.

Rather than keep the metaphor to myself, I have decided to share this simple insight so that your future holiday conversations can proceed without awkward pauses and quick transitions to "how 'bout those <sports team here>". If you're not in the business of making UI components, then hopefully this metaphor will help you explain (or even understand) the role UI components play in software development.

UI components are doors and windows

The crux of the metaphor is this: UI components are to software developers what doors and windows are to a contractor (I know, more of an analogy than a metaphor, but go with it). Let me explain why this comparison is so perfect.

When a contractor is building a house, there are many pieces of the house that he buys pre-made to save time and money on the project. These are things like doors, windows, faucets, and fixtures. All contribute to the final look-and-feel of the house and all come with variety of "features". Windows may be double paned and filled with argon gas for insulation; doors might have decorative glass inserts or an easy-hang frame. At the end of the day, these are well-defined, commodity items that don't need to be custom made to build a beautiful custom home.

With enough time and money, though, there is no reason the contractor couldn't build all of these things himself. He could hand-craft the house's windows, doors, and fixtures. They would all be unique, one-of-a-kind items that were built to the exact specifications of the house.

But since the contractor is an expert at building houses, not windows or doors, the "features" or quality of the items he builds will probably be less than the doors or windows he could have bought pre-made. Even assuming he's had pervious experience building custom doors and windows on past houses, it's unlikely that he knows the latest and greatest techniques for building energy efficient items or has all of the expensive tools for doing advanced things like argon filled windows. For the sake of argument, though, let's say the home owners don't mind that they don't get all of the bells and whistles as long as the doors and windows work. Let's also say the contractor has the ability to build high-quality doors and windows.

Five years pass and the home owners have been happily enjoying their custom home and have decided to do some remodeling. The original contractor moved to a different state and is no longer available, so the home owners pick another qualified contractor. Part of the remodeling includes adding more doors and windows that match the original house, but since they are custom made, it is going to cost them a lot more on the new project. The original contractor didn't leave instructions detailing how he built the custom windows and new contractor is not as good at custom work. "Why didn't you just use pre-made doors and windows?" the new contractor asks. The home owners, faced with mounting maintenance costs, are starting to wonder the same thing.

At the time, it seemed okay to build custom doors and windows with their custom house. The contractor said it wouldn't be a big deal; he'd done it before. It cost a little more, but the contractor said it was better than depending on some outside window or door company. He failed to mention that they'd lose advanced energy saving features, have higher maintenance costs, and be on their own to fix problems- all issues that could have been avoided with pre-made items.

Complete the metaphor

In the previous illustration, simply substitute UI components for doors and windows, custom software development for custom home development, lead programmer for contractor, and management for home owners to bring everything back to software. It should be clear that a strong comparison can be drawn between home building and UI components. It is a much stronger analogy than comparing UI components to car manufacturing (a comparison I've seen before), where often the manufacturers do make many of their own parts (and then produce thousands of the same car).

In short, just like doors and windows for a house, UI components save software developers time and money by delivering advanced, well tested, and high quality tools that can be used in any software project. And down the road, when the original software team has moved on to new projects, the maintenance team has someone to turn to for help fixing problems or adding new features an application.

Hopefully this metaphor/analogy/illustration makes the concept of UI components easier for your to understand and easier to explain to your non-software friends and family. Now if only an equally simple analogy existed for the title "Technical Evangelist"...

More Posts