Architecture + Strategy

Musings from David Chou - Architect, Microsoft

March, 2009

  • Architecture + Strategy

    AJAX, HTTP, and SOAP access to Cloud-based Microsoft Translator


    Many new and interesting developments on the Microsoft Web platform were unveiled at the MIX09 conference last week, such as Silverlight 3, Eclipse Tools for Silverlight, .NET RIA Services, ASP.NET MVC, Web Platform Installer, IIS Smooth Streaming, Windows Web Applications Gallery, Windows Azure enhancements, Expression Blend SketchFlow, Expression Web SuperPreview, Internet Explorer 8, etc. Here’s an innovative service that was not highlighted during the keynote presentations.

    Microsoft Translator

    Microsoft Translator, also branded as Live Search Translator, is a free language translation service that can take any text-based content (text strings, HTML pages, XML, etc.) as input, and translate it from one language to another, such as Arabic, Chinese (both simplified and traditional), French, German, Japanese, Spanish, etc. The service has been around for a while, and is very similar to the Google Translate offering.

    imageAt MIX09, the Microsoft Research Machine Translation (MSR-MT) team unveiled the web page widget (see the picture on the right), which is a fully customizable widget that anyone can be embedded into any website, and gain the ability to allow international visitors to utilize Microsoft Translator to translate web pages into their languages. I have installed it on this blog as well, and you can find it in the column on the right. Give it a try! :)

    To people familiar with the Google Translate service, this may not be anything new (such as hovering on a translated sentence and seeing the original content popup). As Google Translate also provides a widget for people to embed into their websites, and it at this point has a higher number of supported languages. But the user experience in the Microsoft Translator widget is pretty nice. It does not bring the viewer to a new page, but instead, just parses and translates the content in document.body in-line and dynamically. And allows viewers to switch back to the original content by removing the “layer” of translated content.

    On longer pages, the running progress of translation is also displayed in a fixed layer added to the top of the page. Closing this “header” layer also flips the view back to the original content. This is a little different from the Google Translate widget’s behavior, where it points the viewer to a new page with an HTML frame at the top. Ultimately they do very similar things, though the newer Microsoft Translator widget seems to have applied a little more user experience design.

    SDK Support

    Now this is one thing that Google Translate doesn’t seem to support at this moment. Microsoft Translator provides a set of HTTP, AJAX, and SOAP interfaces for anyone to interact with via code. This means any application, whether it’s client-side using JavaScript (which the widget itself uses), Silverlight (C# implementation), WPF, Win32, mobile applications, etc., or server-side (C# using WCF) integration, can now leverage the Microsoft Translator service to translate any text-based content.

    The MSR-MT team has provided a live SDK for people to play with, built in Windows Azure, at

    A couple of interesting functional features or scenarios with the service API’s:

    • Translating individual elements on a web page (instead of the entire page)
    • Performing in-line translation asynchronously (thus not impacting page rendering time)
    • Performing translation by excluding individual elements, which can be quite useful too if we want to translate the entire page except a few elements
    • Parsing and interpreting the language of the input content

    This open and accessible services API has allowed Microsoft to provide a number of clients to the Translator service:

    The quality of translation is very comparable to Google Translate. I didn’t do an exhaustive study of the results, but just comparing a few pages translated to Chinese, I found things that were better on both services.

    And of course, this is not all. The MSR-MT team is busy working on a number of enhancements and new features. Read their blog at for more details, and new announcements as they become available.

  • Architecture + Strategy

    Silverlight 3 Beta


    You may have already heard about the many announcements made at Microsoft’s MIX09 conference this week in Las Vegas. One of the major announcements is the Beta availability of Silverlight 3 (and it does look like three’s the charm).

    Customer adoption to date

    Scott Guthrie during his keynote at MIX09 shared some encouraging statistics:

    • Silverlight launched 18 months ago, shipped Silverlight 2 six months ago
    • 350+ million installations globally
    • 300,000+ designers and developers
    • 200+ partners in 30 countries contributing to the ecosystem
    • 10,000+ applications globally
    • Microsoft has 200+ of its own websites built using Silverlight

    A few major customer adoption announcements were also made:

    • Netflix standardizing on Silverlight to deliver its online on-demand video instant watch service across PCs, Macs, and devices; leveraging PlayReady DRM and smooth/adaptive streaming capabilities
    • 2010 Winter Olympics at Vancouver – NBC announced that the event will again be delivered online using Silverlight, similar to the 2008 Beijing Olympics event
    • NCAA “March Madness” Men’s Basketball Championship – CBS Sports Online coverage of all tournament games delivered using Silverlight at
    • 2008 Presidential Inauguration – the Presidential Inauguration Committee selected Silverlight to enable online video streaming of President Obama’s official swear-in and Whistle Stop Tour events
    • Bondi Publishing (who owns the Playboy Archives above) – working to deliver their set of magazines including the New Yorker, Rolling Stones, and Playboy online using Silverlight. Playboy Archives is now live with with search, navigation, and DeepZoom at (best to visit at home)
    • KEXP – a Seattle-based radio station showed off an out-of-browser version (that works when off-line) of their content browser and player
    • Kelley Blue Book – Perfect Car Finder application using Silverlight at
    • SAP – working to deliver Silverlight controls to be used in Netweaver and Web DynPro
    • Microsoft Worldwide Telescope – now Silverlight enabled at
    • Microsoft Virtual Earth – Silverlight Map Control for any website to use for enhanced visualization of geo-location and mapping capabilities CTP now available
    • Other mentions including Yahoo! Japan, CareerBuilder, 10 Cent QQ, BSkyB, ITV, Intuit, etc.

    Interesting Silverlight applications to see

    Some of the most compelling Silverlight applications I have seen (many are registered on Silverlight Showcase) are listed below.

    General Info:

    Media sites/demos:

    Rich application sites/demos:

    Casual Games:

    Reusable Controls Libraries (for enterprise applications):

    Now these are just some of my favorites. But with the pace of developers building cool Silverlight applications, this list may need to be updated very frequently (last updated 3/20/09).

    What’s new in Silverlight 3?

    Fully supported by Visual Studio and Expression Blend, highlights of new features and functionality of Silverlight 3 include: major media enhancements, out of browser support allowing Web applications to work on the desktop; significant graphics improvements including 3D graphics support, GPU acceleration and H.264 video support; and many features to improve RIA development productivity.

    Enhanced media support

    • Live and on-demand true HD (720p+) Smooth Streaming. IIS Media Services (formerly IIS Media Pack), an integrated HTTP media delivery platform, features Smooth Streaming which dynamically detects and seamlessly switches, in real time, the video quality of a media file delivered to Silverlight based on local bandwidth and CPU conditions.
    • Hardware accelerated HD playback. Leveraging graphics processor unit (GPU) hardware acceleration, Silverlight experiences can now be delivered in true full-screen HD (720p, 1080p, etc.).
    • Extensible media format support. In addition to VC-1/WMA, Silverlight 3 now supports MPEG-4-based H.264/AAC Audio. Also with the new extensible Raw AV pipeline, audio and video can be decoded outside the runtime and rendered in Silverlight, extending format support beyond the native codecs.
    • Digital rights management. Full and built-in support for DRM, powered by PlayReady Content Protection enables protected in-browser experiences using AES encryption or Windows Media DRM.

    Enhanced graphics support

    • Perspective 3D Graphics. Content can now be applied to a 3D plane without writing any code. Live content can be rotated or scaled live content in space.
    • Pixel Shader effects. Image manipulation effects such as blur and drop shadow, using software-based rendering. Custom effects can also be created, and applied to any graphical content.
    • Bitmap Caching. Vector content, text, and controls can now be cached as bitmaps. This improves the rendering performance of applications and is useful for background content and for content which needs to scale without making changes to its internal appearance.
    • New Bitmap API. Support for writing pixels to bitmaps directly.
    • Themed application support. Runtime support for application theme updates driven by templates, and cascading style sheets.
    • Animation Effects. New effects such as spring and bounce. Developers can also now develop their own mathematical functions to describe an animation
    • Enhanced control skinning. Simplified skinning capabilities by keeping a common set of controls external from an application. This allows the sharing of styles and control skins between different applications.
    • Improved text rendering & font support. Enhanced rendering and rapid animation of text. Applications also load faster by enabling the use of local fonts.

    Enhanced rich internet application (RIA) support

    • Out-of-Browser capabilities
      • Run outside of browser. Light-weight, sandboxed companion experiences for the Web that run on the desktop. Enabled without any additional download of runtime or the need to write applications in a different way.
      • Consumer friendly non-administrator install. Applications are hosted in a cache and do not require any privileges to run.
      • Safer, more secure, sandboxed. An application can be trusted without security warnings. All assets are stored in an isolated storage.
      • Built in auto-update. An application will check for new versions on the server and update on launch.
      • Connectivity detection (on-line/off-line). Can detect a loss of connection (or react to event notifications), then choose to cache data locally until a network connection is restored.
      • Desktop integration. On Windows and Macs, applications can be saved as short-cuts on the desktop and be one click away from your customer. On Windows 7, support will be provided for superbar integration, multi-touch, and location awareness services such as GPS support so that your application can react to the users location.
    • Deep Linking. Support for deep linking, which enables bookmarking a page within a RIA.
    • Search Engine Optimization (SEO). By utilizing business objects on the server, together with ASP.NET controls and site maps, users can automatically mirror database-driven RIA content into HTML that is easily indexed by the leading search engines.
    • 60+ default controls with source code. Over 60 fully skinnable and customizable out-of-the-box controls such as charting and media, new layout containers such as dock and viewbox, and controls such as autocomplete, treeview and datagrid. The controls come with nine professional designed themes and the source code can be modified/recompiled or utilized as-is. Other additions include multiple selection in listbox controls, file save dialog, and support for multiple page applications with navigation.
    • Enhanced data support
      • Element-to-element binding. Enables property binding to CLR objects and other UI components via XAML, for instance binding a slider value to the volume control of a media player.
      • Data forms. Provides support for layout of fields, validation, updating and paging through data.
      • Data validation. Automatically catch incorrect input and warn the user with built-in validation controls.
      • Support for business objects on both client and server with n-Tier data support. Easily load, sort, filter and page data with added support for working with data. Includes a new built-in CollectionView to perform a set of complex operations against server side data. A new set of .NET RIA services supports these features on the server.
    • Improved performance
      • Application library caching. Reduced the size of applications by caching framework on the client which helps improve rendering performance.
      • Enhanced DeepZoom. Allows users to fluidly navigate through larger image collections by zooming.
      • Binary XML. Allows communication with the server to be compressed, greatly increasing the speed at which data can be exchanged.
      • Local Connection. This feature allows communication between multiple Silverlight applications on the client-side without incurring a server roundtrip.
    • Enhanced Accessibility Features. Provides access to all system colors, allowing partially-sighted people to make changes such as high contrast color schemes for ease of readability by re-using familiar operating system controls.
  • Architecture + Strategy

    Best practices for development using Visual Studio – free events


    Team System “Big Event”

    How do you take an idea from conception to completion? How can you truly do more with less?

    Please join us for this unique, invitation-only event to discover how both product and processes help your organization succeed in today’s environment. We will explore how Team System assists teams across the board to be successful in today’s tough times. This “break through” event will not only provide you with best practices around development and testing, but will demonstrate key capabilities of both Visual Studio Team System 2008 and the upcoming 2010 release. It’s a day that promises to have something for everyone!


    Test Driven Development: Improving .NET Application Performance & Scalability

    This session will demonstrate how to leverage Test Driven Development in Team System. We’ll highlight both writing unit tests up front as well as creating test stubs for existing code.

    "It Works on My Machine!" Closing the Loop Between Development & Testing

    In this session, we will examine the traditional barriers between the developer and tester; and how Team System can help remove those walls.

    Treating Databases as First-Class Citizens in Development

    Team System Database Edition elevates database development to the same level as code development. See how Database Edition enables database change management, automation, comparison, and deployment.

    Architecture without Big Design Up Front

    Microsoft Visual Studio Team System 2010 Architecture Edition, introduces new UML designers, use cases, activity diagrams, sequence diagrams that can visualize existing code, layering to enforce dependency rules, and physical designers to visualize, analyze, and refactor your software. See how VSTS extends UML logical views into physical views of your code. Learn how to create relationships from these views to work items and project metrics, how to extend these designers, and how to programmatically transform models into patterns for other domains and disciplines.

    Development Best Practices & How Microsoft Helps

    Sometimes development teams get too bogged down with the details. Take a deep breath, step back, and re-acquaint yourself with a review of current development best practice trends, including continuous integration, automation, and requirements analysis; and see how Microsoft tools map to those practices.

    "Bang for Your Buck" Getting the Most out of Team Foundation Server

    Today’s IT budgets are forcing teams to do as much as they can with as little as possible. Why not leverage Team Foundation Server to its full potential? In this session we’ll highlight some capabilities of TFS that you may or may not already know about to help you maximize productivity.



    Register for a date & location near you!

    Welcome: 8:00 AM

    Seminar: 8:30 AM-5:00 PM

    April 22, 2009 - Denver, CO

    Click here to register with invitation code: DD1A7F.


    April 28, 2009 - Mountain View, CA

    Click here to register with invitation code: 80D459.


    April 30, 2009 - Irvine, CA

    Click here to register with invitation code: A86389.


    May 5, 2009 - Portland, OR

    Click here to register with invitation code: 2DC0A9.


    May 7, 2009 - Phoenix, AZ

    Click here to register with invitation code: 90BC47.


    To Register by Phone – Call 1.877.MSEVENT (1.877.673.8368) with invitation code.

  • Architecture + Strategy

    Agile development with Scrum – free events


    A Day in the Life of Scrum with Visual Studio Team System 2008 and Team Foundation Server

    image Please join Microsoft and Neudesic for a day in the life of Scrum with Visual Studio Team System 2008 and Team Foundation Server!  Agile methods are a set of development processes intended to create software in a lighter, faster, more people-centric way. Many development teams have adopted "agile" methodologies to manage change and to improve software quality. These methodologies promote continuous integration as a practice to build and test software products incrementally as new features are included, bugs are fixed, and code is re-factored.

    If you missed the first series of Agile & Scrum Essentials last fall; here’s your chance to attend the follow-on event where we’ll briefly revisit the basics of Agile and Scrum and provide a walkthrough of how to configure Visual Studio Team System 2008 and Team Foundation Server for Scrum.  Participants will be familiarized with how key artifacts are managed within this popular process template for enacting Scrum in organizations.  

    Join us for this interactive event as we explore a “day in the life of a Sprint,” that will give you a practical perspective of how Scrum teams leverage Visual Studio Team System for end to end management of the planning, execution and control of Scrum projects. The day will end with an overview of what’s coming in Visual Studio Team System 2010!

    Register for a date & location near you

    Welcome: 8:30 AM
    Seminar: 9:00 AM-4:30 PM

    To Register by Phone –
    Call 1.877.MSEVENT (1.877.673.8368) with invitation code.

    April 2, 2009 - Bellevue, WA
    Click here to register with invitation code: 46F263.

    June 4, 2009 - Denver, CO
    Click here to register with invitation code: 02B7F8.

    April 9, 2009 - Portland, OR
    Click here to register with invitation code: ED7794.

    April 7, 2009 - Salt Lake City, UT
    Click here  to register with invitation code: FF5466.

    April 14, 2009 - San Diego, CA
    Click here  to register with invitation code: 1A8639.

    April 15, 2009 - Irvine, CA
    Click here to register with invitation code: 808B1B.

    April 16, 2009 - Los Angeles, CA
    Click here to register with invitation code: A61EB4.

  • Architecture + Strategy

    Microsoft Enterprise Developer and Industry Solutions Conference 2009 (May 5 and 6: NYC)



    Please join us for the 7th annual Microsoft Enterprise Developer and Industry Solutions Conference 2009 where you will learn about solutions in Microsoft technologies relevant to the Financial Services and Health & Life Sciences industries, as well  as hear about the latest advancements in major industries. This two day event will be held in New York City on May 5th and 6th.

    The content is tailored for developers, architects,  business decision makers, and technology decision makers  in large enterprise organizations a clear roadmap of the Microsoft development platform. We will  give specific examples of real world solutions using the best of breed technology to bring you from where you are today, to where you will be tomorrow. This is the only conference that will show case enterprise customer solutions directly from the mouth of developers that work in the enterprise industry space as well hear from Microsoft and their partners on topics such as Cloud Computing, Application Lifecycle Management and User Experience.

    Who Should Attend?

    Developers, Architects, Business Decision Makers, CIOs, CTOs, Development Managers and Technical Decision Makers.


    Register today -


    For your convenience, a block of rooms has been reserved at the Marriott Marquis at a rate of $299. You are responsible for your own reservations which can be made by calling (212) 398-1900 or 1-800-843-4898 to receive the discounted rate. Be sure to reference the Microsoft Enterprise Developer & Industry Solution Conference


    Marriott Marquis Hotel

    New York, NY

    Conference attendance is FREE. Breakfast and lunch for both days is provided as well as a welcome reception on the first night of the event. You are responsible for all other travel and hotel expenses. image

    Click on the picture below to see a live demonstration of Microsoft Surface


Page 1 of 2 (10 items) 12