tMIX10 – Day Three – Microsoft Silverlight and Windows Azure – A Match Made for the Web

Design Patterns

  • Hosting Silverlight in the Cloud
    • ASP.NET website hosted in Windows Azure
    • XAP file hosted on the website, used in the browser
      • Like an on-premises website, but has the flexibility of the Cloud
  • Shared Storage Signature for WIndows Azure Storage
    • Use the FromConfigurationSetting static method from the CloudStorageAccount class
    • Create a SharedAccessPolicy to define the policy for how the key will be shared.

Tips and Tricks

  • Silverlight
    • Use .NET Framework 3.5 in the Cloud
    • ASP.NET MVC is recommended as the WebRole
    • Make sure you Install Static Content support in IIS
    • Smooth Streaming not supported yet on Windows Azure
  • WCF
    • For load-balanced considerations
      • Load balanced endpoint flags
      • Consider connections timeouts (1 minute)
        • Asynchronous patterns works well
      • PollingDuplexHttpBinding expects affinity
        • In this case you’ll need to store the client state yourself
    • Different port mappings in the cloud
      • Quick: Patch port mappings into auto-generated service reference
  • Other Windows Azure Platform Services
    • SQL Azure
      • SQL Database in the cloud
      • Provisioned on-demand with high-availability
      • No physical administration required
    • Windows Azure Platform AppFabric
      • Service Bus
        • Connect Asynchronously between on-premise services and cloud services
          • Firewall transversal with message rendezvous
      • Access Control
        • STS in the Cloud

MIX10 – Day Three – Deep Dive into Orchard Extensibility for CMS Developers

Renaud Paquay – Senior Technical Lead – Microsoft

  • Blog Support
  • Live Writer Support

What is Orchard?

  • Free, open source, community-based projected aimed at delivering applications and reusable components on ASP.NET
  • Built in ASP{.NET MVC 2.0
  • Licensed under the BSD license
  • Included in the ASP.NET Open Source Gallery under the CodePlex Foundation
  • Hosted

Extensibility Deep Dive

  • Architecture
    • Based on ASP.NET MVC
    • Modules
      • Pages
      • Blogs
      • Comments
      • Pages
      • Tags
      • Media
      • Feeds
      • Scheduling
      • XmlRpc
      • Users
      • Roles
      • Themes
      • Navigation
      • Setup
      • Settings
      • Homepage
    • All the modules are built in a loosely coupled way
  • Modules
    • Can be Areas or Module in ASP.NET MVC
  • Orchard Themes
    • Based on the Layout View Context component and is composed by:
      • User Control that represents the View
      • Page that Represents the Layout
      • Page that Represents the Document that has the Layout of the View that we are requesting
  • Data Composition
    • ContentManager to  component is responsible for the CRUD operations and will connect to the ContentItem component to get the data and to the ContentHandler components to communicate the Events that happened inside the ContentManager component.
    • ContentItem component is composed by ContentParts

Partners @ MIX

  • Itelios/Magelia – Commerce Module
    • Magelia NetStore
      • Complete e-commerce offering
      • Targets Mid-Sized business
      • Open Source Edition H2 2010 at CodePlex
      • Commercial Version in 2011
  • Matt Lee (RedGate) – Reviewer application
    • To support their reviewing books
  • Charlie Straut (Seven Shadows) – Troav

MIX10 – Day Two – Keynote

Dean Hachamovitch – General Manager – Microsoft

Welcome to Internet Explorer 9 – HTML 5, Hardware Accelerated

  • HTML5 Ahead
    1. Performance
      • Performance software SunSpider v0.9
      • Making JavaScript Even faster for HTML 5 applications
        • Compiled JavaScript In Background and Using Multi-core
    2. IE9 and Standards
      • Same Markup across browsers
      • Same Script
      • Same HTML
      •  Announcement: Contributing DOM, CSS3 Standards. more than 100 Compliance Tests to W3C
    3. GPU-Powered HTML5
      • Excellent performance on the Graphics
      • Announcement: Hardware-accelerated SVG. Contributing SVF Compliance Tests to W3C
    4. IE9 Platform Previews
      • Announcement: IE9 Platform Preview and will be updated every 8 week
      • Standards and Community Feedback
    5. HTML5 Video
      • It will be an update to the Platform Preview
      • Announcement: Hardware Accelerated HTML 5 Video
  • What’s next?


Scott Guthrie – Corporate Vice President – Microsoft

  • Visual Studio 2010
    • Coding Experience
      • Full Multi-monitoring experience
    • Better IntelliSense
    • Improved Navigation
    • Richer Code Visualization
    • Richer Profiling and Debugging Support
  • Web Forms
    • Smaller ViewState
    • Semantic URLs
    • More server controls like charts
  • MVC 2.0
    • Built-in
    • Client Server Validation
    • New UI and Scaffolding Controls
  • AJAX Development
    • Improved JavaScript IntelliSense in terms of activity and responsiveness
  • Deployment
    • Multiple configuration files
    • One Click Way deploying the Application
      • Code
      • Content
      • Tools
      • Database
  • Microsoft JQuery
    • Distributed by the Microsoft AJAX CDN
    • Microsoft is currently contributing for the JQuery Project in terms of features and Compliance Testing elements
  • Web Platform Installer
    • Small Installer that provides every information and products that we need to deploy the applications
    • Can be customized
    • Packages all the dependencies of the project and deploys them automatically
  • Web Application Gallery
  • No Costs – No Obligations
    • Microsoft WebSiteSpark
      • Individuals or Companies with less then 10 people
      • Includes
        • Visual Studio
        • Expression Studio
      • No Costs for 3 years
    • Microsoft BizSpark

Scott Hanselman – Principal Program Manager – Microsoft

  • Visual Studio 2010
    • Pascal Casing Technique – typing only HCP for HttpCachePolicy class
    • Boxed Selection
    • Sequence Diagram
    • MVC Areas – Divides the several Areas of the site, without any interaction between them
    • HTML Snippet support
    • JQuery Template Engine to define Binding that occur on the client side
    • JQuery IntelliSense and Documentation
    • JQuery Template support
    • JQuery Selectors support
    • Deployment
      • Package and Deployment
        • Has the ability to define the Database that will be used as well as the data that should be sent to the new environment

John Resig – Creator of jQuery

  • “Microsoft is working with us”
    • Templating

Michael Comperda – Director of Technology –

  • Online gaming platform
  • Case Study on the BizSpark program

Douglas Purdy – Microsoft – @douglasp

  • “We are shifting from WebSite experience to a Web API experience”
  • Services Powering Experiences
    • How do I:
      1. Enable Many Experiences?
        • New Runtime
        • New Language
        • New Device
        • Answer:
          • Open. Free. Standards
            • Http, ATOM
          • Open Data Protocol
            • Set of conventions (ODATA)
      2. How to make your API Scalable?
        • Simple. Reliable. Scalable.
          • Windows Azure
          • SQL Azure
      3. How do we make money?
        • Evangelize. Monetize. Your API.
        • Microsoft codename “Dallas”
  • OData
    • Example:
    • JSON support: $format=json
    • Retrieve all the metadata that is available for the data: $metadata
    • OData Visualizer. Shows a Diagram with all the OData elements and relationships
    • DataServiceCollection<T> class eases up the Asynchronous  calls and the DataBinding for applications
    • Announcement:
      • Support for iPhone directly to OData Available Today
      • ODATA is available today on Apache 2.0 License
      • to download all the clients
    • Products that use ODATA
      • Sharepoint 2010
        • Every List are all exposed like OData
      • Excel 2010
        • Building OData Support for Excel. Included in the Pivot Data
      • Several Other products are starting to Implement it
        • WIndows Azure
        • SQL Azure
        • Windows Server 2008
        • Silverlight
        • .NET
        • Codename “Dallas”
        • Windows Phone 7
  • SQL Azure
    • Manage Database Button – Database Manager codename “Houston”
    • SQL Azure Labs
      • OData Service generator for exposing the SQL Azure Database as OData
      • Will be available Today at SQL Azure Labs
  • Microsoft codename “Dallas”
    • Data as a Service. Information Market Place to Open Data
    • Marketplace for Data Providers to monetize their data and get it to everybody that needs it
    • Build your own Business Model and Terms of Use
    • Take the advantages of:
      • Discoverability
      • Reliability
      • Scalability

Bill Buxton – Microsoft

  • NUI – Natural User Interface
  • “Project Gustav”
  • What’s really changing?
    • Is not the technology it’s
      • Who
      • When
      • Where
      • How
      • It’s our nature that is making these changes
    • Mobile is Key
    • Tools are here .., now
    • So you can build the design right
    • More important, you can do the right design for the right
      • person
      • local
      • device

MIX10 – Day One – Designing and Delivering Scalable and Resilient Web Services

Ron Jacobs – Sr. Technical Evangelist – Microsoft

“Do the simplest thing that will possibly Work”

Scalability – Able to support the required quality of Service as the system load increases – Wiktionary

Typical Web Architecture

  • Users
    • Need a to get routed to same machine (ex. stick sessions)
  • Web Tier
  • Data Tier

Problem: “It’s simple but isn’t scalable”


  • Keep your data near where she’s processing
    • Ex. Cache
    • Cache is scoped to machines / process
      • machine dies
      • processes recycle
    • Cache memory
    • Imagine “What if?”
      • You could have as much cache as you wanted?
      • You could share giant parts of your applications?
      • What about if it was free?
    • You have: Windows Server App Fabric

What is AppFabric Caching?

  • An explicit, distributed, in-memory application cache for all kinds of data
    • Caching clients can be across machines or processes
    • Clients access the cache as if it was a large single cache
      • This creates a Unified Cache View.
    • Doesn’t need to be recycled or recompiled when some other process or machine is added

Data Distribution

  • Scale on Data Size – more machines => more memory to cache
  • Scale on Cache Throughput – more machines => keys are distributed across machines => better throughput
  • It’s better to scale with several machines that with a large machine with lots of memory, because the throughput

Take control over AppFabric Cache using the DataCacheFactory class.


  1. Configure the AppFabric Configuration Store
  2. Copy the Client Dlls
  3. Update the Web.Config to host the AppFabric Caching


  • Clients: .NET 4.0 and 3.5
  • Cache Server: .NET 4.0


  • PowerShell commands
    • get-CacheHelp
  • Performance Counters

AppFabric Cache Codeplex Tool –


  • Domain-Based Security Option
    • Domain Account / Load Account based Authentication
    • Only authorized servers can join the clusters

AppFabric Caching Logical Hierarchy

Machine –> Cache Host –> Named Caches –> Regions –> Cache Items –> Objects

  • Host
    • Physical processes hosting AppFabric Caching instance
  • Named Caches
    • Can span across machines
  • Regions
    • Groups that you want to treat together

Types of Data

  • Reference Data
    • Primary Read Only
    • ex. Catalog Data
  • Activity Data
    • Read-Write not shared
    • Ex. Shopping cart
  • Resource Data
    • Read-write and Shared
    • Ex. Auction Data / Seat Assignment

Reference Data

  • Performance
    • Catalog data doesn’t change often
    • Unnecessary network cost to access from different machines
    • Solution – Local Cache
  • Bulk Get
    • Bulk Fetch from region
      • 200-300k of calls per second
      • better performance

Activity Data

  • Session Integration
    • Just define SessionState to Custom mode and use the “SessopmStoreProvider” to use AppFabric Caching
  • Availability
    • It’s possible to define AppFabric Caching to use High Availability and replicate the cached data

Resource Data

  • Optimistic Locking
    • GetCacheItem returns a version object
    • Every update to an object internally increments it’s version
    • Supply the version obtained along with the Put/Remove
  • Pessimistic Locking
    • GetAndLock return a lock handle
    • Doesn’t lock the Get

Resource and Activity Data

  • Get Cache Events Notifications
  • Register on any client to notify changes
  • Batched Notifications

Scalable Notifications

  • Register the notification for a specific key
  • Map keys to partition
  • Poll Required nodes
  • Nodes return list of changes

How to get this

  • Use at the Web Platform Installer, on the Options to enable the Enterprise Tab
  • Afterwards just select the Enterprise tab and install it

View the Shows Channel 9