Sunday, November 29, 2009

Summary of all PDC09 – Announcements / Product Features / Cool Stuff



  • Silverlight 4.0 Features & More:
    • Support for Webcam, Microphones, Right Click, Mouse Wheel
    • New Rich Text control
    • Clipboard Access
    • Print Preview Dialogs
    • Authorization support in Client HTTP Stack (NTLM, Basic, Digest)
    • Running outside sandbox for Trusted Out of browser applications
      • HTML rendering control inside Silverlight
      • Local file system access
      • Keyboard in full screen
      • COM automation support (read word/excel files)
      • Notification Popups
  • Screen Presentation Framework (MVVM + Prism) for Silverlight
  • Silverlight Media Framework - Smooth Streaming Porting Kit
  • Microsoft XAML Toolkit : Provides Static Analysis, Localization, & XamlDom for .NET/Silverlight XAML
  • ADO.NET Data Services is now “OData”  - Open Data Protocol & WCF Data Services 
  • .NET 4 Location API - Installed by default with .NET 4 and supported in Visual Studio 2010. (System.Device.dll) See WHDC site for Sensors/Location :
  • Bing Maps Silverlight Control
  • Advanced Performance & Profiling in Silverlight 4
  • WCF RIA Services for Silverlight


Windows Azure

  • Windows Azure + Windows Identity Foundation + ADFS2 :
  • Windows Azure Platform AppFabric - provides secure connectivity as a service to help developers bridge cloud, on-premises, and hosted deployments
  • Velocity is now “Windows Server AppFabric Caching
  • Dublin is now  “Windows Server AppFabric” - The Windows Server AppFabric supports WCF and Workflow services by:
    • Providing runtime databases
    • Capabilities for monitoring, persistence, hosting and caching
    • Tooling and scripting to manage and monitor WCF and WF services
  • Windows Azure :
    • Features
      • Blobs – Provide a simple interface for storing named files along with metadata for the file
      • New Type - Page Blob
      • New Operations – Updated, Copy, Snapshot, Lease Blob
      • New Ways of Accessing and Service Blob Content -
        • Custom Domain Names
        • Root Blob Container
        • Content Delivery Network access
        • Shared Access Signatures
      • Entity Group Transactions - Atomically perform multiple insert/update/delete
        over entities in same partition in a single transaction
      • Dequeue count returned with message
    • Futures
      • Administrator privileges in the VM
      • Deployment of pre-configured VM images
      • User-selectable geo-locations for replicas
      • Secondary indices on tables
      • New storage option “Drives” - Provides durable NTFS volumes for Windows Azure applications to use (Feb 2010)
      • Remote terminal server access to VMs
      • Microsoft Sync Framework and ADO.NET Sync Services - Tools for data synchronization with SQL Azure
  • TCO and ROI Calculator - provides a customized estimate of potential cost savings you (or your company or organization) may achieve by building on the Windows Azure Platform
  • Windows Azure Diagnostics - SDK component providing distributed monitoring & data collection for cloud apps
  • Visual Studio 2010 RTM and SQL Azure Futures:
    • Connect to SQL Azure – Data | Add New Data Source (DataSet & EDM)
    • EDM Conceptual Data Modeling Designer – Generate database
    • Server Explorer – Browse
    • Data Sources Window (DataSet, EDM, LinqToSQL, data binding tools)
    • Configure SQL Data Source
  • File Classification Infrastructure (FCI) - provides many avenues to be part of end-to-end data lifecycle management solutions
  • Houston- Project Houston will provide a easy to use cloud based database development experience
  • Access Control Service - claims based access control for REST web services
    • Implements OAuth Web Resource Authorization Protocol (WRAP) & Simple Web Tokens (SWT)
    • Integrates with AD FS v2

Surface & Windows 7

  • Multitouch on Windows 7
    • Manipulation Events
    • ScrollViewer Panning Support
    • WPF Controls Styles with Panning Enabled
    • Multi-Touch on the web with Silverlight
      • Manipulation and Inertia Process API
  • Windows API Code Pack – Managed Class Library to access to Windows (7) features
  • Surface Toolkit for Windows Touch” – Would be coming shortly after the WPF4 Launch
  • Surface Futures:
    • Cheaper
    • Thinner
    • Vertical
  • Surface SDK & Resources now available free

Visual Studio, WCF, WPF

  • WCF 4.0 Features:
    • Default Endpoints, Protocol Mapping, Binding Configurations,Behavior Configurations
    • File-less Activation (no .svc)
    • Simple Ad-hoc Service Discovery
    • Service Announcements
    • Routing Service
    • Message Filters and Content-based Routing
    • Automatic Help Page
    • HTTP Caching Support
  • WPF 4.0 New Features: Here is an excellent blog series from Lester covering all the below features with sample code:
    • MultiTouch
    • DatePicker\Calendar
    • Datagrid
    • Visual State Manager (VSM)
    • Easing Functions
    • JumpLists
    • Pixel Shader 3 support
    • Cached Composition
    • Full trust Xbap Deployment
    • Binding to Dynamic Objects
    • Custom Speller Support
    • Script Interop in Xbap
    • UIA Virtualization
    • UIA SynchronizedInputPattern
    • Input Key\Gesture Binding
    • TextFormattingMode
    • CaretBrush
    • SelectionBrush
    • Bindable Run
    • ClearTypeHint
    • LayoutRounding
    • Updated File Dialogs
  • Manycore & .NET 4.0 with Visual Studio 2010 (Concurrency):
    • ThreadPool.QueueUserWorkItem
    • System.Threading.Tasks.Task + System.Collections.Concurrent
    • New Sync Primitives in .NET 4
    • Visual Studio 2010 Concurrency Profiler Views + Parallel Debugger Toolwindow
  • Visual Studio 2010 ExtensibilityExtensions Gallery & VSX Samples & SQL Server

Microsoft Research & Labs

  • Infer.NET - framework for running Bayesian inference in graphical models (from MSR)
  • Axum” : A .NET Language for Safe and Scalable Concurrency
  • Holmes” - Automated Statistical Debugging using Path Profiles (from MSR)
  • Darwin” - An Approach for Debugging Software Regressions (from MSR)
  • Project Trident” - A Scientific Workflow Workbench (from MSR)
  • Pivot” by Live Labs : Visualizing collections of objects, Revealing hidden patterns within data, Acting on discovered insights
  • DevLabs: Reactive Extensions for .NET (Rx)
  • Trustworthy Data Collaboration SQL Azure Codename ‘Vidalia’
  • Microsoft Codename “Dallas” - Content Brokerage and Discovery platform


Thursday, November 19, 2009

@PDC09 – Day 3 – Developing custom applications in SharePoint 2010 using, WCF, REST

SharePoint Web Services

  • REST
  • Client Object Model
  • WCF


  • Access to sharepoint lists and library data ( …/_vti_bin/listdata.svc)
  • Lists and List items map to resources (listdata.svc/Employees(123) )
  • Operation are mapped with HTTP verbs (GET, POST . . )
  • Based on Data Services
    • Flexible URL conventions for querying data
      • listdata.svc/Employees?$filder=JobTitle eq ‘SDE’
      • $orderby=Fullname
    • Multiple representations
      • JSON and Atom (full AtomPub support)
    • Batching, ETags, Paging, Documents

Demo . . .
REST query is converted to CAML query…..

Integrated Development Experience in VS 2010 and VS 2008 SP1 using just “Add Reference”

  • Data Source configuration has a new item to connect to SharePoint
  • Master Details type application development

Client Object Model

  • Supports
    • Site Operations
    • Lists, ListItems
    • content types, fields
    • but not administration namespace, farm objects
  • Implemented as WCF Service
    • …/vti_bin/client.svc
    • It passes batch command to the WCF service (in XML)
    • than the server executes and returns the data back to client (in JSON Other SharePoint Web Services
  • Advanced Operations
    • User Profiles
    • People
    • Search
    • Enterprise Metadata
    • Document Coauthoring
    • Excek REST web services
    • Publishing
    • Workflow
    • BCS web services
    • ….. see MSDN
  • we can also extend sharepoint and create custom web services
    • WCF (is now recommended for sharepoint 2010 custom service development)

WCF Services

  • Problem
    • IT Admin configures IIS
      • Different authentication schemes can be configured (Basic, Claims, Windows Integrated . . .)
      • Multiple IIS address bindings
    • Developer configures WCF Service endpoint
  • Solution
    • Dynamic (Programmatic) configuration
      this would be in RTM only
    • SOAP
      • Specify Service Factory in SVC file
      • Add MEX endpoint behavior attribute to the service class
      • Deploy SVC service to ISAPI Folder
    • REST

Demo of creating custom WCF service inside sharepoint

  • sandbox solutions doesn’t support services

WCF Service Configuration

  • Service.svc
  • SharePoint Service Factory creates the endpoint based on all authentications
    • service.svc/negotiate
    • service.svc/ntlm
  • SharePoint Http Modules

@PDC09 – Day 3 – Multitouch in Microsoft Surface and Windows 7 for .NET Developers

Multi touch

  • …creates new opportunities
    • software that is
  • is not new
    • researchers have been exploring this
  • is now going mainstream
    • hardware
    • OS
    • SDK’s

Microsoft surface and WPF4

  • with surface, microsoft became a thought leader in multi touch
  • surface has been shipping a multi touch dev platform for several years
  • Touch API’s baked into sdk

WPF 4 Touch Capabilities

  • (Beta 1)
    • Manipulation Events (pan, zoom & rotate gestures)
  • (Beta 2)
    • Touch Events
    • Extensible Touch Device
    • Win7 Touch Device
  • Release
    • ScrollViewer Panning Support
    • WPF controls styles with events

Demo of sample code

  • TouchDown, TouchMove and TouchUp events for canvas or any control
  • e.GetTouchPoint(_canvas)  - returns the coordinates for the touch point
  • _canvas.CaptureTouch(e.TouchDevice)
  • each UI element can capture multiple device events
  • _canvas.ReleaseTouchCapture(e.TouchDevice)

Multitouch in Web in Silverligh

  • Subset of the WPF4 touch input API
    • Reports groups of touch events in “frames”
    • Apps are responsible for hit testing and event routing
  • Manipulation & Intertia processor API

Demo WPF Multitouch Manipulation Events

  • ManipulationStarting event
  • IsManipulationEnabled = true for the elements like Image, to be manipulated for pan, zoom and rotate
  • ManipulationDelta event

Demo Manipulation Inertia (s

  • ManipulationInertiaStarting event (it is called at the end of manipulation, configure the inertia parameters here)
    e.g we can just scroll or throw the images using finger scroll,
  • e.TranslationBehavior.DesiredDeceleration = 0.001;

Inertia behaviors – 1/96th DIP (Device Independent Pixel) per milli sec

Touch Panning Support

  • Only in Release Candidate
  • Cancel() method on manipulation events
  • ScrollViewer handles manipulation events

Microsoft Surface Extensions of WPF

Surface WPF controls

  • Designed for multi touch
  • Designed for simultaneous user
  • Designed for manipulation & inertia

Drawing with Surface Controls

  • SurfaceInkCanvas control
  • ScatterView control
  • SurfaceScrollViewer control

Announcing – Surface Toolkit for Windows Touch

Surface is not just multi touch

  • Windows 7
  • Massive multi touch
  • Multi user experiences
    • Trend : software continues to reduce the need for face to face human interactions
    • Problem
    • Surface bring people together
  • Surface Objects
    • Byte Tags (256 unique values)
    • Identity Tags (move unique values)
  • Surface Optics
    • Determine the shape and size of every input
    • See into certain objects

Announcing – Surface SDK 1.0 is available for public download

Wednesday, November 18, 2009

@PDC09 – Day 2 – Networking and Web Services with Silverlight

                                                                   (Rough notes from the session)

Getting Data into Silverlight :

  • Message Pattern
    • Request / Reply
    • Duplex (email sending, confirmation received from server)
    • Multicast (Server send only 1 copy)
  • Interaction Model
    • Operation centric (service and client in memory passing messages)
    • Resource centric (start with data or data model, CRUD)

Data Access Examples :

  • “Forms over data” E2E business app  
    (Request / Reply Message Pattern solution / Travel Agent Application example)
    • WCF RIA Services (System.Web.DomainServices)
    • Perscriptive model for CRUD services
    • Great tooling to maximize productivity
    • E2E data: sorting, paging, filtering, validation
  • Access data from third party REST service  (System.Net )
    • ClientHttp networking stack (WebRequestCreator.ClientHttp)
      • Integrated with the OS networking stack
      • Support common BrowserHttp stack features for consistent experience
      • Basic, Digest and NTLM authentication is supported in client stack
    • BrowserHttp stack
  • Access your database or SharePoint data model using REST (System.Data.Services)
    • WCF Data Services
      • Formerly ADO.NET data services
      • Services with RESTful interface and a set of conventions designed for easy data sharing
    • What is Data Services?
      • Server framework for .NET, other coming
      • Clients for silverlight
    • Accessing Data Services
      • Silverlight ClientHttp stack still an option
      • Data services client more usable as it knows the details of the data service interface
      • Features
        • Full abstraction on top of the services – no need to serialize
        • Data as objects with automatic change tracking
        • LINQ to querie
      • WCF Programming Model
        • Programming Model
          • Core Services
          • Web HTTP Services
          • Data Services
          • RIA Services
          • Workflow Services
        • Service Model
        • Channel Model
  • App which accesses server business logic (Operation Centric – System.ServiceModel)
    • Generated proxies
    • Serialization of objects on wire
    • High performance
    • Binary Message Encoder (server throughput increase / message size reduction)
      • Its the default encoder
      • It can also be used with IIS Gzip compression
    • WCF Features
      • Faults enabled in SL3
      • To get full exceptions, use ClientHttp stack
      • Security in cross domain scenarios enabled
        • Normally use browser-managed security (generally not safe for cross-domain use)
        • Transport security with message credentials in cross-domain scenarios
          (Browser never sees the credentials and can’t cache it for malicious things)
  • Chat app (System.Net)
      • Duplex Messaging
        • Server push is compelling when server has to notify client of events (email server)
        • Internet: PollingDuplex (HTTP-based)
          • SL4 – performance enhancements and scale across machines (for azure)
        • Intranet: NetTcp (TCP sockets based)
          • Also works for request / reply services
        • Both of above use same programming models, just need to change the binding
  • Streamed data (video, stock prices) inside an intranet  (System.Net)
    • Multicast Messaging
      • Scales to a large receiver population
      • Two key shapes
        • Single source multicast
        • Any source multicast
      • Need to expose a policy responder (just like sockets and http)
        • SL4 – policy file is going away for both sockets and multicast if app is elevated

@PDC09 – Day 2 – Developing Advanced Applications with Windows Azure

                                                                   (Rough notes from the session)
By Steve Marx, Technical Strategist, Microsoft Corporation

LB –> Web Role + Worker Role

Official shipping version of the Table Storage SDK is available now

What we’ll Build – Search application using IIS + SMTP  + Web and Worker Roles
  • Three role architecture
    • Web UI ( MVC)
    • SMTP Server (TCPListener)
    • Search (Lucene.NET)
  • New Features we’ll take advantage of
    • Inter-role communication
    • Non-HTTP endpoints
    • Role instance lifecycle
    • VM sizes
    • Local storage
HOW TO: Model your application
  • Draw the boxes and arrows
  • Each box is a role
    • Which receive traffic from the internet
    • Which need IIS?
    • Which receive internal communication?
Receiving Traffic. Input Endpoints
  • Different ports on the same domain
  • Always load balanced
  • Declared in ServiceDefinition.csdef
  • Handled by IIS in web roles
  • Handled by your code in worker roles
  • API to find
The instance could should always be atleast 2 or else SLA isn’t valid.
Azure Storage Explorer in codeplex

Input Endpoints Demo :  Set the configurations in the xml file
As an Aside about Email
  • Spammers will use Windows Azure. (sending email should not be done via azure as the IP is not trusted)
Asynchronous work without a Queue
  • Queues deliver messages to one worker
  • We need every worker to see the messages
  • Use a table instead
    • build your own secondary index
    • order references
    • (Beware of clock drift!!)
HOW TI: DO Initialization
  • don’t want traffic until we are listening
  • role instance lifecycle lets us prepare
    • both web roles and worker roles
    • OnStart() - “busy” state, initialization
    • Run() – do work
    • OnStop() – traffic stops, graceful shutdown
HOW TO: Internal Endpoints
  • Declare endpoints in servicedefinition.csdef
  • API to find out what port to listen on:
For internal endpoints always rely on the API to provide the port number, do not assign any port number.
HOW TO: Get more RAM
  • RAMDirectory puts everything in memory
  • If we have lots of data, we need lots of RAM
  • Choose among four VM sizes:
    • Small
    • Medium
    • Large
    • Extra Large
  • Simple edit to servicedefinition.csdef
    <WorkerRole  vmsize=”ExraLarge” />
HOW TO: Save the Index
  • Lucene.NET writes files to the local system
  • Preserve those across reboots/upgrades : 
    <LocalStorage cleanOnRoleRecycle=”false” />
  • Consider writing state on OnStop()
    (this is the to write I was on record XX and save the last state)
Using In-Place Upgrade
  • Rolling Upgrade
  • Specify which roles to upgrade
  • Keep local storage intact
  • Great for stateful roles

Call of Action:
  • Any instance can talk to any other
  • Don’t need IIS to listen for traffic
  • Use the role instance lifecycle
  • Choose different VM sizes
  • In-Place upgrades

@PDC09 – Day 2 - Keynote

These are some very rough notes from the today’s keynote at PDC 09’ . . . .  

Topic : Windows 7

  1. Developing windows 7
  2. developing for windows 7
  3. looking forward

Developing windows 7 : Learning

  • Solving problems + innovation
  • “Engineering 7” dialog
  • Ecosystem readiness
  • Developer pre-beta, beta, RC rhythm
  • Telemetry
    • Send feedback button
    • hardware and device diagnostics
    • reliability analysis component (RAC)
    • software quality monitor (SQM)
    • windows error reporting (WER or “Watson”)

Behind the scenes - “funny video”

  • push pin chairs
  • electric chairs

Telemetry figures (this one was interesting)

  • 514 million times the start menu was clicked (last 6 months)

Developing windows 7 : Research

  • Surveys, market studies
  • Reviews, blogs, commentary
  • Segment engagements
  • follow me home
  • Baseline studies
  • prototype testing, usability testing

Feature explanations and their videos on why they were added : \

  • UAC – Choose when to be notified
  • Windows Management – Tiling, Shake window

Ecosystem Energy – Michael Angiulo

All hardware demos discussing the hardware optimization and enhancements done

Making of a laptop : hardware / software

Announcement - FREE Acer Notebook Laptops with Windows 7 for all attendees !!!!

IE-9 already in progress
- ACID3 (32/100)   IE-8 had (20/100)
- multi system performance (picture)
IE-9 Demo

Windows 7 : Call of Action

  • Integrate with windows 7 desktop
  • develop for 64 bit
  • focus on fundamentals in your code
  • build on new API’s in windows 7

(today – channel9 videos on IE-9)

Scott Guthrie enters in and a huge applaud and woooh from the crowd !!!!

Silverlight 3

  • Sketch flow

Silverlight on 45% of internet PC’s

Announcement : Silverlight 4

Silverlight 4 Beta Download :
Silverlight 4 Training Course :

Below are the new feature List :

  • Media
    • webcam and microphone
    • multicast streaming (IIS smooth streaming)
      • source of silverlight media player is on codeplex
      • publish media on variety of devices (apple iphone)
    • output protection
    • offline DRM
  • Business applications
    • Printing
    • Rich Text
    • Clipboard Access
    • Right Click
    • Mouse wheel
  • Application development
    • implicit styles
    • drag/drop word files into the rich text editor control
    • bidi & rtl
    • HTML control inside silverlight
    • commanding and MVVM
    • additional controls
    • print preview dialogs
  • Data and Networking
    • share assemblies across SL and .Net 4 with just 1 time compilation
    • Data binding improvements
    • UDP multicast support
    • REST enhancements
    • WCF improvements
    • WCF RIA services
  • VS 2010
    • full WYSIWYG design surface
    • XAML intellisense improvements
    • data binding, layouts, styles

Demo of Silverlight 4 (RIA and databinding) by Scott Hanselman demo

  • Beyond the browser (outside browser features)
    • windowing API’s
    • notification popups
    • HTML support
    • Drop Target
    • Running outside sandbox for outside browser application (Trusted applications)
      • Custom window chrome
      • local file system
      • cross-site network
      • keyboard in full screen mode
      • hardware device access
      • COM automation Support (e.g using dynamic keyword in .net 4.0 for office and geolocation API’s)
  • Silverlight 4 Performance
    • Twice as fast
    • 30% faster startup
    • new profiling support

Silverlight SDK for facebook published last week

Reference facebook application would be shipped soon (excellent application demo)

Schedule for Silverlight 4

  • Beta – Now Available
  • RC  -
  • Final  - Mid next year

Kurt Delbene – Office and SharePoint 2010

Microsoft Business Productivity Infrastructure

Announcement – SharePoint2010 Beta available now !!!

SharePoint 2010 Public Beta Download :

Tuesday, November 10, 2009

SharePoint 2010 Developer Training (for FREE)

Another gem coming out of the Channel9 Learning Center Courses is the new ‘SharePoint 2010 Developer’ Course. The course material is presented by Ted Pattison and Andrew Connell themselves which makes it even more interesting.
Currently there are around 37 videos along with the presentation decks being posted on various improvements done in SharePoint 2010 around many areas like :

  • Visual Studio Tools for SharePoint 2010
  • UI Enhancements
  • Lists and Schemas
  • LINQ to SharePoint
  • Client Object Model
  • Workflow
  • Services Architecture
  • Accessing External Data
  • Enterprise Content Management
  • Extending Search
  • PerformancePoint Services
  • Sandboxed Solutions
  • SharePoint 2010 Security

The videos would soon follow by the Hands On Labs, Source Code and other materials for ITPro’s as well, so keep watching the updates on this course . . .