Twitter API from C#: Searching
Following my post Twitter API From C#: Getting a User’s Time Line, I’ll talk about how to use the Twitter Search API.
The main difference between this post and the previous one, is that Twitter Search API currently does not support XML response, and supports only atom and json. So, in order to search for specific terms, I’ll have to take another approach than the one I took before.
Performing a Search
To perform a search in the browser for “DevAcademy3”, I can navigate to: http://search.twitter.com/search?q=devacademy3&show-user=true
In order to get the response in a json format, I’ll use: http://search.twitter.com/search.json?q=devacademy3&show-user=true (added “.json” after the work “search”).
Here’s a sample of the result that contains a list of results with 2 items in it:
{"results":
[
{"text":"Working on my Silverlight demo for #devacademy3",
"to_user_id":null,
"from_user":"bursteg",
"id":997265406,
"from_user_id":145367,
"iso_language_code":"en",
"profile_image_url":"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/30327862\/Guy_Burstein_Small_normal.jpg",
"created_at":"Sun, 09 Nov 2008 08:06:24 +0000"},
{"text":"Registration for #devacademy3 should be open this week",
"to_user_id":null,
"from_user":"devacademy3",
"id":996482591,
"from_user_id":2271567,
"iso_language_code":"en",
"profile_image_url":
"http:\/\/s3.amazonaws.com\/twitter_production\/profile_images\/63650042\/DevAcademy3Logo_-_Copy_normal.jpg",
"created_at":"Sat, 08 Nov 2008 16:42:48 +0000"}
],
"since_id":0,
"max_id":998769058,
"refresh_url":"?since_id=998769058&q=devacademy3",
"results_per_page":15,
"page":1,
"query":
"devacademy3"
}
Using the DataContract and DataMember Attributes
In order to extract the data of of this result, I created a SearchResult Class, that will represent a single item in the result, decorated with the appropriate DataContract attributes, that indicate from which attribute in the result should the value be taken.
[DataContract]
public class SearchResult
{
[DataMember(Name = "text", Order = 0)]
public string Text { get; set; }
[DataMember(Name = "to_user_id", Order = 1)]
public int? ToUserId { get; set; }
[DataMember(Name = "from_user", Order = 2)]
public string FromUser { get; set; }
[DataMember(Name = "id", Order = 3)]
public int Id { get; set; }
[DataMember(Name = "from_user_id", Order = 4)]
public int? FromUserId { get; set; }
[DataMember(Name = "iso_language_code", Order = 5)]
public string IsoLanguageCode { get; set; }
[DataMember(Name = "profile_image_url", Order = 6)]
public string ProfileImageUrl { get; set; }
[DataMember(Name = "created_at", Order = 7)]
public string CreatedAt { get; set; }
}
In addition to that, since the items are encapsulated within a list inside an object, I also created the following SearchResults class:
[DataContract]
public class SearchResults
{
public SearchResults()
{
this.Results = new List<SearchResult>();
}
[DataMember(Name = "results")]
public List<SearchResult> Results { get; set; }
}
Using the DataContractJsonSerializer to Extract the Data
Using the WebHttpWegRequest (with the Get method I created in my previous post), I received the response as a string.
This is the code I used in order to deserialize the response into SearchReaults objects (using the DataContractJsonSerializer in System.Runtime.Serialization.Json namespace).
string response =
Get("http://search.twitter.com/search.json?q=devacademy3&show-user=true");
byte[] brr = ASCIIEncoding.UTF8.GetBytes(response);
StreamReader reader = new StreamReader(new MemoryStream(brr));
DataContractJsonSerializer serializer =
new DataContractJsonSerializer(typeof(SearchResults));
SearchResults searchResults =
(SearchResults)serializer.ReadObject(reader.BaseStream);
reader.Close();
Constructing a Meaningful List of Statuses
Now that I have the search results objects, I can construct a meaningful response using the UserStatus class I created in the previous post, and with some transformations and parsing, get the data I wanted to.
List<UserStatus> users =
(from u in searchResults.Results
select new UserStatus
{
UserName = u.FromUser,
ProfileImage = u.ProfileImageUrl,
Status = HttpUtility.HtmlDecode(u.Text),
StatusDate = DateTimeOffset.Parse(u.CreatedAt).UtcDateTime
}).ToList();
Notice I used HttpUtility (in System.Web namespace) in order to decode special characters such as > to their readable characters.
Wrapping it up...
The final version of the Search method looks like this:
public List<UserStatus> Search(string searchTerm)
{
string url =
string.Format("http://search.twitter.com/search.json?&q={0}", searchTerm);
string response = Get(url);
byte[] brr = ASCIIEncoding.UTF8.GetBytes(response);
StreamReader reader = new StreamReader(new MemoryStream(brr));
DataContractJsonSerializer serializer =
new DataContractJsonSerializer(typeof(SearchResults));
SearchResults searchResults =
(SearchResults)serializer.ReadObject(reader.BaseStream);
reader.Close();
List<UserStatus> users =
(from u in searchResults.Results
select new UserStatus
{
UserName = u.FromUser,
ProfileImage = u.ProfileImageUrl,
Status = HttpUtility.HtmlDecode(u.Text),
StatusDate = DateTimeOffset.Parse(u.CreatedAt).UtcDateTime
}).ToList();
return users;
}
Enjoy Twitter Searching with C#!
Twitter API From C#: Getting a User’s Time Line
From Twitter’s REST API:
User Timeline:
Returns the 20 most recent statuses posted from the authenticating user:
http://twitter.com/statuses/user_timeline.xml
It's also possible to request another user's timeline. For example:
http://twitter.com/statuses/user_timeline/bursteg.xml
Making an HTTP Request
Since all the API is expressed in REST, I figured out that I need a simple reusable method to perform HTTP requests. This method takes the URL and the method (GET or POST), gets the credentials from the configuration file and makes the request.
private string PerformRequest(string method, string url)
{
string user = ConfigurationManager.AppSettings["user"];
string password = ConfigurationManager.AppSettings["password"];
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = method;
request.Credentials = new NetworkCredential(user, password);
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string responseString = reader.ReadToEnd();
reader.Close();
return responseString;
}
Just for the simplicity, I also added the following methods:
private string Post(string url)
{
return PerformRequest("POST", url);
}
private string Get(string url)
{
return PerformRequest("GET", url);
}
Getting a User’s Time Line from Twitter
Using the following code, you can get a user’s timeline from twitter in xml format:
string url = string.Format("http://twitter.com/statuses/friends/{0}.xml", user);
string response = Get(url);
This call returns the following piece of xml:
<?xml version="1.0" encoding="UTF-8"?>
<statuses type="array">
<status>
<created_at>Sat Nov 15 10:08:15 +0000 2008</created_at>
<id>1006846483</id>
<text>Testing "posts" #devacademy3</text>
<source>web</source>
<truncated>false</truncated>
<in_reply_to_status_id></in_reply_to_status_id>
<in_reply_to_user_id></in_reply_to_user_id>
<favorited>false</favorited>
<user>
<id>6849932</id>
<name>Guy Burstein</name>
<screen_name>bursteg</screen_name>
<location></location>
<description></description>
<profile_image_url>http://.../Guy_Burstein_Small_normal.jpg</profile_image_url>
<url>http://blogs.microsoft.co.il/blogs/bursteg</url>
<protected>false</protected>
<followers_count>42</followers_count>
</user>
</status>
<status>
...
</status>
</statuses>
As we can see, this response is an array of statuses, each contains the details about the user who posted it.
Extracting the Data
With my favor to LINQ to XML, I used it to extract the data that I was interested in, and construct CLR objects that I can easily work with.
XDocument document = XDocument.Parse(response, LoadOptions.None);
var query = from e in document.Root.Descendants("status")
select new UserStatus
{
UserName = e.Element("user").Element("name").Value,
ProfileImage = e.Element("user").Element("profile_image_url").Value,
Status = HttpUtility.HtmlDecode(e.Element("text").Value),
StatusDate = (e.Element("created_at").Value.ParseDateTime())
};
First, I parsed an xml document from the response string. Then, I created a list of UserStatus objects from the contents of the response xml.
Few things to note about the above code:
1. HttpUtility.HtmlDecode is being used in order to get a readable text. The response contained text like “Testing "posts" #devacademy3” and this method (in System.Web) converts it to “Testing “posts” #devacademy3”.
2. The ParseDateTime() method on the element’s value is an extension method I created in order to parse a DateTime from the special string representation of the time the status was posted:
Sat Nov 15 10:08:15 +0000 2008
This method looks like:
public static class StringExtensions
{
public static DateTime ParseDateTime(this string date)
{
string dayOfWeek = date.Substring(0, 3).Trim();
string month = date.Substring(4, 3).Trim();
string dayInMonth = date.Substring(8, 2).Trim();
string time = date.Substring(11, 9).Trim();
string offset = date.Substring(20, 5).Trim();
string year = date.Substring(25, 5).Trim();
string dateTime = string.Format("{0}-{1}-{2} {3}", dayInMonth, month, year, time);
DateTime ret = DateTime.Parse(dateTime);
return ret;
}
}
If you come up with another idea of how to parse this string into a DateTime object, please let me know.
Wrapping it up...
The final version of the GetUserTimeLine method looks like this:
public List<UserStatus> GetUserTimeLine(string user)
{
string url = string.Format("http://twitter.com/statuses/user_timeline/{0}.xml", user);
string response = Get(url);
XDocument document = XDocument.Parse(response, LoadOptions.None);
var query = from e in document.Root.Descendants("status")
select new UserStatus
{
UserName = e.Element("user").Element("name").Value,
ProfileImage = e.Element("user").Element("profile_image_url").Value,
Status = HttpUtility.HtmlDecode(e.Element("text").Value),
StatusDate = (e.Element("created_at").Value.ParseDateTime())
};
List<UserStatus> users = (from u in query
where u.Status != ""
orderby u.StatusDate descending
select u).ToList();
return users;
}
The techniques I’ve used here can be used in almost all the “get” methods of the REST API of Twitter.
Enjoy!
Developer Academy 3 Session List – First Draft
ALM301 - Web Sites Testing with Visual Studio Team System (Level 300)
שי רייטן, יועץ בכיר ומפתח במכללת סלע
Visual Studio Team System makes your site better and more robust with its Web Testing capabilities. In this session we will see how to test your web application in various ways, how to extend the out-of-the-box rules and how to integrate it in the daily build.
ALM302 - Implementing Test Driven Development (TDD) with Visual Studio Team System (Level 300)
אריאל גור-אריה, סמנכ"ל פיתוח, MCD
Unit Testing assures that your code behaves as it should. In this session we will implement Test Driven Development using Visual Studio and Team System, for the application code and for the Stored Procedures in the database.
ALM303 - Professional Developer Tools in Visual Studio Team System (Level 300)
מאור דוד, יועץ בכיר, SRL
Visual Studio Team System is not all about source control, and contains many tools for the developer. In this demo-driven session we will see tools such as Code Metrics, Hot Pathing, Code Analysis, Performance Run, Schema Compare & more.
ARC202 - Architecting Real-World Enterprise Application – Considerations and Dilemmas (Level 200)
ממי לביא, יועץ ארכיטקטורה במיקרוסופט ישראל ומתן עצמון, ראש צוות תשתיות וארכיטקט, צה"ל
From choosing a Data Access Layer, Caching and Logging, up to Authentication, Offline support and more architectural aspects in a real-world medical application in the IDF.
ARC301 - Speed it up with Distributed Cache using “Velocity” (Level 300)
יאיר שיבק, יועץ ומרצה במכללת הי טק
Make a difference in your projects with a distributed in-memory application cache platform for developing scalable, high-performance applications. Use partitioned and local cache, use various access ways to your data, take advantage of ASP.NET integration and much more…
DEV301 - HTTP Web Services with Windows Communication Foundation 3.5 (Level 300)
אייל ורדי, מנכ"ל משותף, E4D Solutions
In this session we will see how to use WCF 3.5 to build REST Web Services that agents can interact with using simple HTTP verbs. We will also look into how ADO.Net Data Services were implemented.
DEV302 - Building Your First Great Silverlight 2 Application (Level 300)
גיא בורשטיין, יועץ טכנולוגיות פיתוח, מיקרוסופט ישראל
You have seen how exciting Silverlight applications are, now you want to do it yourself. With 50 minutes of demo-time you'll learn how to build Silverlight applications, give them a little style, and connect them to services and their data.
DEV303 - Integrating Silverlight 2 into Existing Web Sites (Level 300)
גולש אלכס, יועץ בכיר ומרצה במכללת סלע
After we have seen how to build a simple standalone Silverlight 2 application we will see how to integrate it into existing sites, and how to communicate with DOM elements and JavaScript functions.
DEV305 - Leverage SQL Server 2008 in Your .Net Code with Visual Studio 2008 SP1 (Level 300)
דיויד סקסטין, CTO טכנולוגיות מיקרוסופט פיתוח, ג'ון ברייס הדרכה
Visual Studio 2008 SP1 lets you leverage the new features in SQL Server 2008 such as Table Valued Parameters, Change Tracking, FILESTREAM and the new Date and Time types. In this session we'll see how easy they are to use, and how you can do it today.
DEV306 - Windows Azure: Building Web Sites and Services in the Cloud (Level 300)
יוסי תאגורי, VP R&D, nuconomy
Learn about the cloud services that enable developers to easily create or extend their applications and services. In this session we take a tour of Windows Azure by building and running a simple service using the platform SDK. This is a demo-heavy session.
DEV308 - Internet Explorer 8: What's New for Developers? (Level 300)
גל קוג'מן, יועץ בכיר ומרצה בג'ון ברייס
Internet Explorer 8 brings new enhancements for the web developer. From CSS standards, through the new development tools and the new features, we will see how you can benefit from them all.
DEV309 - Building Web Sites with ASP.NET MVC Framework (Level 300)
נועם קינג, CTO מכללת סלע
In this session we will introduce another way for building great web applications. We will talk about the new ASP.NET MVC Framework, take a Look at each layer, and the new routing mechanism.
DEV311 - Building Windows 7 and Windows Vista Compatible Applications (Level 300)
אלון פליס, CTO קבוצת סלע
TBD
DEV312 - Dynamic Languages and the .Net Framework (Level 300)
שי פרידמן, מפתח בכיר, ActionBase
Dynamic languages (Python, Ruby, etc.) have been receiving bigger slices of the dev cycle pie. Microsoft joins the ride and future frameworks will incorporate more dynamic capabilities. Come and see how dynamic languages will effect application development in various programming environments.
DEV313 - Building Composite Applications in WPF (Level 300)
תומר שמם, יועץ בכיר ומרצה במכלת סלע
In this session we will talk about the challenges of Composite UI development, and learn how to leverage Composite Application Guidance for WPF on behalf of WPF for implementing modern enterprise applications UI.
DEV314 - Design Patterns – Learn From the Experience of Others (Level 300)
אבי רוט, ארכיטקט ראשי, מל"ם-תים
You don’t want to reinvent the wheel, so you look for design patterns –lessons learnt by those who've faced same software design problems before. In this session we will look at key OO design principles and dive into design patters such as Decorator, Strategy, Façade and others.
DEV401 - ASP.NET Ajax Internals (Level 400)
דן אמיגה, יועץ בכירו ומרצה, DevelopMentor
In this talk we will deep dive into the client side and server side of ASP.NET Ajax, discussing JavaScript extensions, object orientation and code compilation, HTTP modules and handlers that support the partial page rendering and Extender controls.
DEV402 - Concurrent Programming: From Thread Pool to Parallel Extensions (Level 400)
סשה גולדשטיין, יועץ בכירו ומרצה במכללת סלע
We must develop concurrent applications today, but with concurrency come data races, contention and deadlocks. From System.Thread, the thread pool, through the Parallel Extensions for .NET – we will analyze design patterns specific to concurrent applications and learn to avoid common pitfalls.
DEV403 - A Deep Dive into LINQ (Level 400)
עומר ון קלוטן, מפתח בכיר, nuconomy
Many developers already use LINQ on a daily basis, but most only scratch the surface of what’s possible. In this session we will dive more deeply into LINQ and see how it works behind the scenes, share tips, tricks and common pitfalls.
DEV404 - Hardcore C#: Hidden Power and Flexibility (Level 400)
פבל יוסיפוביץ', CTO מכללת הי טק
This almost demo-only session will explore the powerful, but less known capabilities of the C# language. Topics include partial classes & methods, expression trees & lambda expressions, dynamic delegates, extension methods, elegant iterators, anonymous delegates and more advanced stuff. Will be fun!
Enjoy!
Download PDC 2008 Sessions and Watch Offline
personally prefer watching sessions regardless of my Internet connection status, so I decided to download PDC08 sessions and watch offline.

I collected the list of available sessions from PDC 08, and they are easy to download. I personally use Free Download Manager for simultaneous efficient downloads - you can try it yourself. Just select all the text in this post, right click and select “Download Selected with Free Download Manager”.
For a full list of downloads and links, you can download this excel file that contains all the information.
KYN01 - Day 1 Morning Keynote
Ray Ozzie, Amitabh Srivastava, Bob Muglia, David Thompson
Video
KYN02 - Day 2 Morning Keynote
Ray Ozzie, Steven Sinofsky, Scott Guthrie, David Treadwell
Video
KYN03 - Day 2 Afternoon Keynote
Chris Anderson, Don Box
Video
KYN04 - Day 3 Morning Keynote
Rick Rashid
Video
BB01 - A Lap Around the Azure Services Platform
John Shewchuk
Video PowerPoint
BB02 - Architecture of the .NET Services
Dennis Pilarinos, John Shewchuk
Video PowerPoint
BB03 - SQL Services : Under the Hood
Gopal Kakivaya, Tony Petrossian
Video PowerPoint
BB04 - Live Services: A Lap around the Live Framework and Mesh Services
Ori Amiga
Video PowerPoint
BB05 - Live Services: Building Applications with the Live Framework
Raymond Endres
Video PowerPoint
BB06 - Live Services: Mesh Services Architecture and Concepts
Abolade Gbadegesin
Video PowerPoint
BB07 - SQL Server 2008: Developing Large Scale Web Applications and Services
Hala Al-Adwan, Jose Blakeley
Video PowerPoint
BB08 - Microsoft Dynamics CRM: The Appealing Business Application
Humberto Lezama Guadarrama
Video PowerPoint
BB09 - Microsoft Office Communications Server and Exchange: Platform Futures
Chris Mayo, David Ollason
Video PowerPoint
BB10 - Live Services: Deep Dive on Microsoft Virtual Earth
Mark Brown
Video PowerPoint
BB11 - Identity Roadmap for Software + Services
Bertocci Vittorio, Kim Cameron
Video PowerPoint
BB12 - .NET Services: Messaging Services - Protocols, Protection, and How We Scale
Clemens Vasters
Video PowerPoint
BB13 - SharePoint 2007: Creating SharePoint Applications with Visual Studio 2008
Chris Johnson
Video PowerPoint
BB14 - SQL Services: Futures
Patric McElroy
Video PowerPoint
BB15 - SQL Server: Database to Data Platform - Road from Server to Devices to the Cloud
David Campbell, Zach Skyles Owens
Video PowerPoint
BB16 - SQL Server 2008: Beyond Relational
Michael Rys
Video PowerPoint
BB18 - "Dublin": Hosting and Managing Workflows and Services in Windows Application Server
Dan Eshner
Video PowerPoint
BB19 - Live Services: Live Framework Programming Model Architecture and Insights
Ori Amiga
Video PowerPoint
BB20 - Live Services: Making your Application More Social
Angus Logan
Video PowerPoint
BB22 - Identity: Live Identity Services Drilldown
Jorgen Thelin
Video PowerPoint
BB23 - A Lap around SQL Services
Soumitra Sengupta
Video PowerPoint
BB24 - SQL Server 2008: Deep Dive into Spatial Data
Isaac Kunen
Video PowerPoint
BB25 - SQL Server 2008: New and Future T-SQL Programmability
Michael Wang
Video PowerPoint
BB26 - SQL Server 2008: Business Intelligence and Data Visualization
Stella Chan
Video PowerPoint
BB27 - .NET Services: Orchestrating Services and Business Processes Using Cloud-Based Workflow
Moustafa Ahmed
Video PowerPoint
BB28 - .NET Services: Access Control Service Drilldown
Justin Smith
Video PowerPoint
BB29 - Identity: Connecting Active Directory to Microsoft Services
Lynn Ayres, Tore Sundelin
Video PowerPoint
BB30 - Live Services: Building Mesh-Enabled Web Applications Using the Live Framework
Arash Ghanaie-Sichanie
Video PowerPoint
BB31 - Live Services: FeedSync and Mesh Synchronization Services
Steven Lees
Video PowerPoint
BB32 - Microsoft Dynamics CRM: Building Line-of-Business Applications
Andrew Bybee
Video PowerPoint
BB33 - Dynamics Online: Building Business Applications with Commerce and Payment APIs
Adam Wilson
Video PowerPoint
BB34 - Live Services: Notifications, Awareness, and Communications
John Macintyre
Video PowerPoint
BB35 - Live Services: The Future of the Device Mesh
Jeremy Mazner
Video PowerPoint
BB36 - FAST: Building Search-Driven Portals with Microsoft Office SharePoint Server 2007 and Microsoft Silverlight
Jan Helge Sagefl?t, Stein Danielsen
Video PowerPoint
BB37 - SQL Server 2008: Developing Secure Applications
Il-Sung Lee
Video PowerPoint
BB38 - .NET Services: Connectivity, Messaging, Events, and Discovery with the Service Bus
Clemens Vasters
Video PowerPoint
BB39 - .NET Services: Logging, Diagnosing, and Troubleshooting Applications Running Live in the Cloud
Mark Gilbert, Steve Garrity
Video PowerPoint
BB40 - Sync Framework: Enterprise Data in the Cloud and on Devices
Liam Cavanagh
Video PowerPoint
BB41 - Live Services: What I Learned Building My First Mesh Application
Don Gillett
Video PowerPoint
BB42 - Identity: "Geneva" Server and Framework Overview
Caleb Baker, Stuart Kwan
Video PowerPoint
BB43 - Identity: "Geneva" Deep Dive
Jan Alexander
Video PowerPoint
BB44 - Identity: Windows CardSpace "Geneva" Under the Hood
Rich Randall
Video PowerPoint
BB45 - Office Communications Server 2007 R2: Enabling Unified Communications
David Ollason, Oscar Newkerk
Video PowerPoint
BB46 - Exchange Web Services Managed API: Unified Communications Development for Exchange
Jason Henderson
Video PowerPoint
BB47 - SharePoint 2007: Advanced Asynchronous Workflow Messaging
Alex Malek
Video PowerPoint
BB48 - Microsoft Advertising Platform: A Lap Around
Erynn Petersen
Video PowerPoint
BB49 - Microsoft Advertising Platform: A Day in the Life of a Click
Robert Devine
Video PowerPoint
BB51 - Live Services: Programming Live Services Using Non-Microsoft Technologies
Nishant Gupta
Video PowerPoint
BB52 - SQL Services: Tips and Tricks for High-Throughput Data-Driven Applications
David Robinson
Video PowerPoint
BB53 - SharePoint Online: Extending Your Service
Troy Hopwood
Video PowerPoint
BB54 - Designing Your Application to Scale
Max Feingold
Video PowerPoint
BB55 - .NET Services: Access Control In Microsoft .NET Services
Justin Smith
Video PowerPoint
BB56 - Showcase: Industry Leaders Moving to the Cloud
Brandon Watson, Erik Johnson, Jitendra Thethi, Larry Beck
Video PowerPoint
BB57 - Microsoft Dynamics AX: Building Business Process into Your Application
Josh Honeyman
Video PowerPoint
BB58 - Case Study: Bridging On-Premises with the Cloud
David Shutt
Video PowerPoint
BB59 - Behind the Scenes: How We Built a Multi-Enterprise Supply Chain Application
Jack Greenfield, Wade Wegner
Video PowerPoint
ES01 - Developing and Deploying Your First Windows Azure Service
Steve Marx
Video PowerPoint
ES02 - Windows Azure: Architecting & Managing Cloud Services
Yousef Khalidi
Video PowerPoint
ES03 - Windows Azure: Cloud Service Development Best Practices
Sriram Krishnan
Video PowerPoint
ES04 - Windows Azure: Essential Cloud Storage Services
Brad Calder
Video PowerPoint
ES06 - Developing with Microsoft .NET and ASP.NET for Server Core
Andrew Mason, Ian Robinson
Video PowerPoint
ES07 - Windows Azure: Modeling Data for Efficient Access at Scale
Niranjan Nilakantan, Pablo Castro
Video PowerPoint
ES09 - Enabling Test Automation Using Windows Server 2008 Hyper-V
Taylor Brown
Video PowerPoint
ES10 - Developing Solutions for Windows Server 2008 Hyper-V Using WMI
Nihar Shah
Video PowerPoint
ES11 - Developing Connected Home Applications and Services for Windows Home Server
CJ Saretto, Fabian Uhse
Video PowerPoint
ES12 - Exposing Connected Home Services to the Internet via Windows Home Server
Brendan Grant, CJ Saretto
Video PowerPoint
ES13 - How to Develop Supercomputer Applications
Jeff Baxter, Sean Mortazavi
Video PowerPoint
ES14 - IIS 7.0 and Beyond: The Microsoft Web Platform Roadmap
Vijay Sen
Video PowerPoint
ES15 - Web Application Packaging and Deployment
Saad Ladki
Video PowerPoint
ES16 - A Lap Around Windows Azure
Manuvir Das
Video PowerPoint
ES17 - Windows Azure: Programming in the Cloud
Daniel Wang, Stefan Schackow
Video PowerPoint
ES19 - Under the Hood: Inside the Windows Azure Hosting Environment
Chuck Lenzmeier, Frederick Smith
Video PowerPoint
ES20 - Developing Applications for More Than 64 Logical Processors in Windows Server 2008 R2
Arie van der Hoeven
Video PowerPoint
ES21 - Windows 7 Presentation Virtualization: Graphics Remoting
RDP
Video PowerPoint
ES22 - Extending Terminal Services and Hyper-V VDI in Windows 7
Christa Anderson, Niraj Agarwala
Video PowerPoint
ES23 - Windows 7: Optimizing Applications for Remote File Services over the WAN
Mathew George
Video PowerPoint
ES24 - PowerShell: Creating Manageable Web Services
Jeffrey Snover
Video PowerPoint
ES25 - Showcase: Windows Azure Enables Live Meeting
John Shriver-Blake, Michael Conrad
Video PowerPoint
ES29 - Showcase: Windows Azure Enables /Nsoftware and Full Armor
Danny Kim, Gent Hito, Steve Marx
Video PowerPoint
ES30 - Datacenters and Resilient Services
Benjamin Ravani
Video PowerPoint
ES31 - Showcase: How HP Built their Magcloud Service on Windows Azure
Andrew E Fitzhugh, Steve Marx
Video PowerPoint
ES32 - Microsoft Application Virtualization 4.5
Elsie Nallipogu, John Sheehan
Video PowerPoint
PC01 - Windows 7: Web Services in Native Code
Nikola Dudar
Video PowerPoint
PC02 - Windows 7: Extending Battery Life with Energy Efficient Applications
Pat Stemen
Video PowerPoint
PC03 - Windows 7: Developing Multi-touch Applications
Anson Tsao, Reed Townsend
Video PowerPoint
PC04 - Windows 7: Writing Your Application to Shine on Modern Graphics Hardware
Anantha Kancherla
Video PowerPoint
PC05 - Windows 7: Unlocking the GPU with Direct3D
Allison Klein
Video PowerPoint
PC06 - Deep Dive: Building an Optimized, Graphics-Intensive Application in Microsoft Silverlight
Seema Ramchandani
Video PowerPoint
PC07 - WPF: Extensible BitmapEffects, Pixel Shaders, and WPF Graphics Futures
David Teitlebaum
Video PowerPoint
PC10 - Microsoft Silverlight 2 for Mobile: Developing for Mobile Devices
Amit Chopra, Giorgio Sardo
Video PowerPoint
PC11 - Microsoft Silverlight Futures: Building Business Focused Applications
Jamie Cool
Video PowerPoint
PC12 - Deep Dive: The New Rendering Engine in Microsoft Internet Explorer 8
Alex Mogilevsky
Video PowerPoint
PC13 - Windows 7: Building Great Audio Communications Applications
Larry Osterman
Video PowerPoint
PC14 - Windows 7 Scenic Ribbon: The next generation user experience for presenting commands in Win32 applications.
Nicolas Brun
Video PowerPoint
PC15 - Windows 7: Benefiting from Documents and Printing Convergence
Adrian Ford
Video PowerPoint
PC16 - Windows 7: Empower users to find, visualize and organize their data with Libraries and the Explorer
David Washington
Video PowerPoint
PC17 - Developing for Microsoft Surface
Brad Carpenter, Robert Levy
Video PowerPoint
PC18 - Windows 7: Introducing Direct2D and DirectWrite
Kam VedBrat, Leonardo Blanco
Video PowerPoint
PC19 - Windows 7: Designing Efficient Background Processes
Vikram Singh
Video PowerPoint
PC20 - ASP.NET 4.0 Roadmap
Scott Hunter
Video PowerPoint
PC21 - ASP.NET MVC: A New Framework for Building Web Applications
Phil Haack
Video PowerPoint
PC22 - Windows 7: Design Principles for Windows 7
Samuel Moreau
Video PowerPoint
PC23 - Windows 7: Integrate with the Windows 7 Desktop
Rob Jarrett
Video PowerPoint
PC24 - Windows 7: Welcome to the Windows 7 Desktop
Chaitanya Sareen
Video PowerPoint
PC25 - Windows 7: The Sensor and Location Platform: Building Context-Aware Applications
Dan Polivy
Video PowerPoint
PC26 - Microsoft Visual Studio: Building Applications with MFC
Damien Watkins
Video PowerPoint
PC27 - Microsoft Silverlight, WPF and the Microsoft .NET Framework: Sharing Skills and Code
Ian Ellison-Taylor
Video PowerPoint
PC29 - Microsoft Silverlight 2: Control Model
Karen Corby
Video PowerPoint
PC30 - ASP.NET Dynamic Data
Scott Hunter
Video PowerPoint
PC31 - ASP.NET and JQuery
Stephen Walther
Video PowerPoint
PC32 - ASP.NET AJAX Futures
Bertrand Le Roy
Video PowerPoint
PC33 - Microsoft Visual Studio: Easing ASP.NET Web Deployment
Vishal Joshi
Video PowerPoint
PC34 - Open XML Format SDK: Developing Open XML Solutions
Eric White, Zeyad Rajabi
Video PowerPoint
PC35 - Silverlight Controls Roadmap
Shawn Burke
Video PowerPoint
PC39 - Inside the Olympics: An Architecture and Development Review
Eric Schmidt, Jason Suess
Video PowerPoint
PC40 - SQL Server Compact: Embedding in Desktop and Device Applications
Steve Lasker
Video PowerPoint
PC41 - ASP.NET: Cache Extensibility
Stefan Schackow
Video PowerPoint
PC42 - Windows 7: Deploying Your Application with Windows Installer
MSI
Video PowerPoint
PC43 - Deep Dive: What's New with user32 and comctl32 in Win32
Raymond Chen
Video PowerPoint
PC44 - Windows 7: Programming Sync Providers That Work Great with Windows
Jason Roberts, Moe Khosravy
Video PowerPoint
PC45 - WPF: Data-centric Applications Using the DataGrid and Ribbon Controls
Mark Wilson-Thomas, Samantha Durante
Video PowerPoint
PC46 - WPF Roadmap
Anson Tsao, Kevin Gjerstad
Video PowerPoint
PC47 - Microsoft Expression Blend: Tips & Tricks
Douglas Olson, Peter Blois
Video PowerPoint
PC48 - Research: Designing the World Wide Telescope
Jonathan Fay
Video PowerPoint
PC49 - Microsoft .NET Framework: CLR Futures
Ian Carmichael, Joshua Goodman
Video PowerPoint
PC50 - Windows 7: Using Instrumentation and Diagnostics to Develop High Quality Software
Kevin Woley, Ricky Buch
Video PowerPoint
PC51 - Windows 7: Best Practices for Developing for Windows Standard User
Crispin Cowan
Video PowerPoint
PC52 - Windows 7: Writing World-Ready Applications
Erik Fortune, Yaniv Feinberg
Video PowerPoint
PC53 - Building High Performance JScript Applications
Sameer Chabungbam
Video PowerPoint
PC54 - Mono and .NET
Miguel de Icaza
Video PowerPoint
PC55 - Oomph: A Microformat Toolkit
Karsten Januszewski
Video PowerPoint
PC56 - Windows Embedded "Quebec": Developing for Devices
Shabnam Erfani
Video PowerPoint
PC58 - Framework Design Guidelines
Brad Abrams, Krzysztof Cwalina
Video PowerPoint
PC59 - Commerce Server "Mojave": Overview
Kerry Havas, Tom Schultz
Video PowerPoint
PC60-V - Driving for software quality through customer feedback
Kevin Hill
Video PowerPoint
PC61-V - Developing compatible applications for Windows
Uday Shivaswamy
Video PowerPoint
PC62-V - Hands On Analysis with Windows Performance Toolkit
General
Video PowerPoint
SYMP01 - Parallel Symposium: Addressing the Hard Problems with Concurrency
David Callahan, Lynne Hill
Video PowerPoint
SYMP02 - Parallel Symposium: Application Opportunities and Architectures
Jerry Bautista, John Feo
Video PowerPoint
SYMP03 - Parallel Symposium: Future of Parallel Computing
David Detlefs, James Reinders, Niklas Gustafsson, Sean Nordberg, Selena Wilson
Video PowerPoint
SYMP04 - Services Symposium: Expanding Applications to the Cloud
Gianpaolo Carraro, Simon Guest
Video PowerPoint
SYMP05 - Services Symposium: Enterprise Grade Cloud Applications
Eugenio Pace
Video PowerPoint
SYMP06 - Services Symposium: Cloud or No Cloud, the Laws of Physics Still Apply
Gianpaolo Carraro
Video PowerPoint
TL01 - Office Business Applications: Enhanced Deployment
Andrew Whitechapel, Saurabh Bhatia
Video PowerPoint
TL02 - Under the Hood: Advances in the .NET Type System
Andrew Whitechapel, Misha Shneerson
Video PowerPoint
TL03 - Microsoft Visual Studio Team System: Software Diagnostics and Quality for Services
Habib Heydarian, Justin Marks
Video PowerPoint
TL04 - Microsoft Visual Studio Team System Team Foundation Server: How We Use It at Microsoft
Stephanie Saad
Video PowerPoint
TL06 - WCF 4.0: Building WCF Services with WF in Microsoft .NET 4.0
Ed Pinto
Video PowerPoint
TL07 - Developing Applications Using Data Services
Mike Flasko
Video PowerPoint
TL08 - Offline-Enabled Data Services and Desktop Applications
Pablo Castro
Video PowerPoint
TL09 - Agile Development with Microsoft Visual Studio
Lori Lamkin, Sunder Raman
Video PowerPoint
TL10 - Deep Dive: Dynamic Languages in Microsoft .NET
Jim Hugunin
Video PowerPoint
TL11 - An Introduction to Microsoft F#
Luca Bolognese
Video PowerPoint
TL12 - Future Directions for Microsoft Visual Basic
Lucian Wischik, Paul Vick
Video PowerPoint
TL13 - Microsoft Visual C++: 10 Is the New 6
Boris Jabes
Video PowerPoint
TL14 - Project "Velocity": A First Look
Murali Krishnaprasad
Video PowerPoint
TL15 - Architecture without Big Design Up Front
Peter Provost
Video PowerPoint
TL16 - The Future of C#
Anders Hejlsberg
Video PowerPoint
TL17 - WF 4.0: A First Look
Kenny Wolf
Video PowerPoint
TL18 - "Oslo": Customizing and Extending the Visual Design Experience
Don Box, Florian Voss
Video PowerPoint
TL19 - Microsoft Visual Studio: Bringing out the Best in Multicore Systems
Hazim Shafi
Video PowerPoint
TL20 - Entity Framework Futures
Tim Mallalieu
Video PowerPoint
TL21 - WF 4.0: Extending with Custom Activities
Matt Winkler
Video PowerPoint
TL22 - Concurrency Runtime Deep Dive: How to Harvest Multicore Computing Resources
Niklas Gustafsson
Video PowerPoint
TL23 - A Lap around "Oslo"
Douglas Purdy, Vijaye Raji
Video PowerPoint
TL24 - Improving .NET Application Performance and Scalability
Ed Glas, Steve Carroll
Video PowerPoint
TL25 - Parallel Programming for C++ Developers in the Next Version of Microsoft Visual Studio
Rick Molloy
Video PowerPoint
TL26 - Parallel Programming for Managed Developers with the Next Version of Microsoft Visual Studio
Daniel Moth
Video PowerPoint
TL27 - "Oslo": The Language
David Langworthy, Don Box
Video PowerPoint
TL28 - "Oslo": Repository and Models
Chris Sells, Martin Gudgin
Video PowerPoint
TL29 - Live Labs Web Sandbox: Securing Mash-ups, Site Extensibility, and Gadgets
Dragos Manolescu, Scott Isaacs
Video PowerPoint
TL30 - Microsoft Sync Framework Advances
Lev Novik
Video PowerPoint
TL31 - "Oslo": Building Textual DSLs
Chris Anderson, Giovanni Della-Libera
Video PowerPoint
TL32 - Microsoft Visual Studio: Customizing and Extending the Development Environment
Tim Wagner
Video PowerPoint
TL33 - Managed Extensibility Framework: Overview
Glenn Block
Video PowerPoint
TL34 - Managed and Native Code Interoperability: Best Practices
Jesse Kaplan
Video PowerPoint
TL35 - WCF: Developing RESTful Services
Steve Maine
Video PowerPoint
TL36 - Microsoft .NET Framework: Declarative Programming Using XAML
Daniel Roth, Rob Relyea
Video PowerPoint
TL37 - Microsoft Visual Studio Team System: Leveraging Virtualization to Improve Code Quality with Team Lab
Ram Cherala
Video PowerPoint
TL38 - WCF: Zen of Performance and Scale
Nicholas Allen
Video PowerPoint
TL39 - Coding4Fun: Windows Presentation Foundation Animation, YouTube, iTunes, Twitter, and Nintendo's Wiimote
Brian Peek, Clint Rutkas, Dan Fernandez, Scott Hanselman
Video PowerPoint
TL40 - "Dublin" and .NET Services: Extending On-Premises Applications to the Cloud
Jacob Avital
Video PowerPoint
TL42 - Microsoft SQL Server 2008: Powering MSDN
Mark Johnston
Video PowerPoint
TL43 - Microsoft XNA Game Studio: An Overview
Frank Savage
Video PowerPoint
TL44 - IronRuby: The Right Language for the Right Job
John Lam
Video PowerPoint
TL45 - Microsoft Visual Studio Team System Database Edition: Overview
Gert Drapers
Video PowerPoint
TL46 - Microsoft Visual C# IDE: Tips and Tricks
Dustin Campbell
Video PowerPoint
TL47 - Microsoft Visual Studio Team System: A Lap Around VSTS 2010
Cameron Skinner
Video PowerPoint
TL48 - Microsoft Visual Studio: Web Development Futures
Jeff King
Video PowerPoint
TL49 - Microsoft .NET Framework: Overview and Applications for Babies
Scott Hanselman
Video PowerPoint
TL50 - Research: BAM, AjaxScope, and Doloto
Emre Kiciman, Ethan Jackson
Video PowerPoint
TL51 - Research: Contract Checking and Automated Test Generation with Pex
Mike Barnett, Nikolai Tillmann
Video PowerPoint
TL52 - Team Foundation Server 2010: Cool New Features
Brian Harry
Video PowerPoint
TL54 - Natural Interop with Silverlight, Office, and Python in Microsoft Visual C# and Microsoft Visual Basic
Alex Turner
Video PowerPoint
TL55 - The Concurrency and Coordination Runtime and Decentralized Software Services Toolkit
George Chrysanthakopoulos
Video PowerPoint
TL56 - Project "Velocity": Under the Hood
Anil Nori
Video PowerPoint
TL57 - Panel: The Future of Programming Languages
Anders Hejlsberg, Douglas Crockford, Erik Meijer, Gilad Bracha, Jeremy Siek, Wolfram Schulte
Video PowerPoint
TL58 - Research: Concurrency Analysis Platform and Tools for Finding Concurrency Bugs
Madan Musuvathi, Thomas Ball
Video PowerPoint
TL59 - Visual Studio Debugger Tips & Tricks
John Cunningham
Video PowerPoint
TL60 - Improving Code Quality with Code Analysis
Ravs Kaur
Video PowerPoint
TL61 - Panel: The Future of Unit Testing
Euan Garden, Jim Newkirk, Nikolai Tillmann, Peter Provost
Video PowerPoint
Enjoy!